Skip to content
Meirra
Back to Email

Overview

AI personalization adds two variables to your email templates — `{{ai_hook}}` (a short, curiosity-led opener) and `{{ai_subject}}` (a subject line). Both are written by an LLM from the lead's own website data, in the locale you send. Each fresh generation costs 6 credits; cache hits and failures are never charged. The feature is **off by default** for every customer — turn it on in settings before sequences can use the variables.

Turning it on

In the email platform, open **Settings → General → AI Personalization** and switch **Enable AI-generated email variables** on. The toggle persists per customer; the next sequence you launch with `{{ai_hook}}` or `{{ai_subject}}` in any step will run generation. Until you switch it on, sequences with AI variables still send — they just substitute through your template fallbacks (see the format-and-fallbacks section below).

Adding the variables to a sequence

Open any sequence step in the editor. In the body/subject editor, click the variable picker (`{{ ... }}`) — under the **AI** category you'll see **AI Hook** and **AI Subject Line**. Drop them anywhere they fit your copy: ``` Subject: {{ai_subject}} Hey {{first_name}}, {{ai_hook}} — wanted to ask if you've looked at how {{company_name}} ranks for… ``` The same per-step **AI toggle** on the step editor (next to the variable picker) controls whether *that* step's recipients get a fresh generation. Off → existing values reused if present, otherwise the template fallback substitutes.

When generation runs

Generation **drips in at sequence launch**, the same way cold reports do. The moment you launch a sequence with the opt-in on and an AI-enabled step, every eligible recipient gets queued — hard-bounced contacts are skipped automatically. The worker fleet generates in the background and writes the values to a per-lead store; send time pulls the latest value from there. Typical generation is ~3 seconds per lead; a 500-lead launch finishes well before email 1 is scheduled to send. The progress UI on the sequence shows enqueued/completed counts and a cancel button if you change your mind.

Costs

Each successful `ai_hook` or `ai_subject` generation costs **6 credits**. The cost preview card on the sequence launch dialog shows the estimated total before you commit, so you see exactly what a 500-lead launch will run you. Cache hits — repeat generation for the same lead within the cache window — and any generation that fails the format guardrails or LLM call cost **zero credits**. The billing dashboard breaks AI spend out by variable type so you can track usage per campaign.

Format guarantees and the fallback chain

Every hook is format-checked before it's stored: word count, no spammy openers, no fake stats, must reference something the LLM actually saw on the lead's site. Generations that fail the guardrails are discarded (free) and the substitution chain takes over. The chain is: 1. The stored AI value (from the latest successful generation). 2. The per-template fallback in `variable_fallbacks` if you set one (e.g., `{{ai_hook|default:"wanted to reach out"}}`). 3. An empty substitution that leaves the surrounding text clean. No `{{ai_hook}}` or `{{ai_subject}}` token ever reaches a recipient — if all layers fail, the variable becomes empty space and the rest of your copy stands on its own.

Troubleshooting

**"My sequence launched but recipients got empty AI fields."** Check that the opt-in toggle is on (Settings → General → AI Personalization). Without it, generation is skipped and the fallback chain runs. **"Some recipients have hooks and others don't."** Recipients that hard-bounced previously are auto-skipped at launch. Recipients with no scrape-able domain data (private LinkedIn, parked domains) fall through to the fallback chain. **"I want to cancel mid-launch."** The progress UI on the sequence has a cancel button; in-flight generations finish, queued ones don't fire. **"How do I tell which value was used?"** The billing dashboard shows per-generation entries with the variable type. The send log shows the rendered email body, so you can compare what was generated vs. what shipped. For anything not covered here, contact support from the help hub.

Need More Help?

Contact Support