Skip to content
On this site

AI assist

Three helpers, in the dashboard and over the API: subject lines, a first draft, and an explanation of what happened to a message. All of them are off until a team admin switches them on, and none of them is on the send path — an email is accepted, rendered and delivered exactly as it was before.

What it can do

The three AI surfaces
SurfaceWhereWhat you get
Suggest subject linesThe templates editorUp to five subject lines for the draft on screen.
Draft with AIThe templates editorAn HTML and plain-text body from a brief you write.
Diagnose this emailAn email's Insights tabWhy a message did what it did, from its delivery data.

Nothing here publishes or sends. A suggested subject fills the field for you to keep or change; a draft lands in the editor and is saved only when you save it; a diagnosis is a read of what already happened.

Over the API

The same three helpers are POST /ai/subject-lines, POST /ai/draft and POST /emails/{email_id}/diagnose, and in the Node and Python clients ai.subjectLines, ai.draft and emails.diagnose. They take a full_access key or an OAuth token with ai:use, and they answer to the same switch, the same credits and the same rate limit as the dashboard. None of them touches a send: nothing is saved or sent, and there is no AI field on POST /emails. The AI reference has each call and the order the refusals come in.

What is sent, and what is not

Requests go to Anthropic's API — directly, or routed through Vercel AI Gateway where the deployment is configured that way. The content you ask about is sent to generate the answer, it is not used to train models, and it is not kept by us beyond what is described below.

  • Subject lines and drafts send the template content on your screen — the subject, the HTML and the plain text — plus the brief you typed.
  • A diagnosis sends the email's subject, your sending domain and its verification status, each recipient's domain with its delivery status and bounce classification, the event timeline, the risk flags and the message size.
  • A recipient's address is never sent. Only the part after the @ travels, and every free-text field — a bounce's diagnostic code, an event's message, the subject — has addresses stripped out of it first.
  • A message body is never sent for a diagnosis, and neither are headers, attachments or anything belonging to another team.

We store what the request cost — the kind, the model, token counts, how long it took and whether it succeeded — and, for a diagnosis only, the answer itself. We do not store the prompt or the completion text of anything else. These records are kept for 90 days.

Limits

AI assist limits
LimitWhat it means
Off by defaultA team admin turns it on in Settings → Team, or a full_access key sends PATCH /team with ai_assist_enabled. Nothing runs until then.
Monthly creditsOne accepted request is one credit. Running out answers 422 until the month turns over.
Ten a minutePer team, across every surface. The eleventh answers 429.

Your plan sets the monthly credits, and Settings → Team shows how many are left. A request that fails on our side or the model's costs nothing: only an accepted answer spends a credit.

A diagnosis is stored against the email, so reopening it costs nothing. Asking again after new events have arrived is a new question about a changed message, and spends a credit.

Check the answer

A model writes plausible text, not verified fact. A subject line is a suggestion, a draft is a starting point, and a diagnosis is a reading of the same events you can see on the page yourself. Nothing it produces is applied to anything until you apply it.