Campaigns

Personalization tokens

Kai writes personalised copy for each contact and injects it into your outreach platform using custom variables called tokens. For this to work, the tokens need to be placed in the right fields inside your sequence in your outreach platform steps. This is a one-time setup per sequence.

How tokens work

When Kai approves a contact and pushes them to your outreach platform, it sends a set of variables alongside the lead. Each variable carries the personalised content Kai generated: the email body, the subject line, the LinkedIn note, the call brief. The platform then injects those values into your sequence steps at send time.

The variables are named after the step they belong to. An email at step two gets variables named kai_email2_body and kai_email2_subject. A LinkedIn connection request gets kai_linkedin_note. This naming is generated automatically when you pull the steps in Kai.

The sequence structure is the source of truth. Kai reads your sequence in your outreach platform and generates the exact set of tokens it needs. If you have four email steps, Kai writes four emails and sends four token variables. You do not configure step counts in Kai. It follows whatever is in your outreach platform.

Step 1 -- Pull the steps in Kai

Before placing tokens, Kai needs to read your sequence in your outreach platform and generate the correct token names.

1
Open your campaign in Kai

Go to Campaigns in the sidebar, select the campaign, then scroll down to the Platform sequence section in the settings panel.

2
Confirm the Campaign ID is set

The cam_ ID of your campaign in your outreach platform must be in the Campaign ID field. If it is missing, add it and save before pulling steps.

3
Click "Pull latest steps"

Kai reads the sequence from your outreach platform and displays every step it found. The injection token panel appears below showing the exact variable name for each step, with a Copy button next to each one.

Injection tokens -- paste into your sequence in your outreach platform steps
Step 1 -- LinkedIn Connection
Note
{{kai_linkedin_note}}
Step 2 -- Email 1
Subject
{{kai_email1_subject}}
Body
{{kai_email1_body}}
Step 3 -- Email 2
Subject
{{kai_email2_subject}}
Body
{{kai_email2_body}}
The injection token panel in Kai. Each step in your sequence in your outreach platform gets its own token. Use Copy to grab the variable name, then paste it directly into your outreach platform.

Step 2 -- Place tokens in your sequence in your outreach platform

Open your sequence in your outreach platform. You are going to paste a token into each step that Kai will populate. Steps Kai does not handle (anything that is not an email, LinkedIn touch, or call) do not need tokens.

Email steps

Every email step needs two tokens: one for the subject line and one for the body. Open the step in your outreach platform, clear any existing placeholder content, and paste the tokens from Kai.

{{kai_email1_subject}}

Paste this into the Subject field of your first email step.

{{kai_email1_body}}

Paste this into the Body field. Delete any existing copy first. The entire body should contain only this token.

Your outreach platform -- email step editor (shown: Lemlist)
Subject
{{kai_email1_subject}}
Body
{{kai_email1_body}}
Kai will replace this variable with personalised content for each contact at push time.
Inside the email step editor (Lemlist shown; other platforms are equivalent). The subject and body fields should contain only the Kai token variable. Nothing else.
Do not add anything else to the body. If the body field contains anything other than the token, the platform will send that content alongside Kai's copy or instead of it. The token must be the only thing in the field.

LinkedIn connection request

For the connection request step, paste the note token into the Note field. This is the short personalised message that goes with the connection invite.

{{kai_linkedin_note}}

LinkedIn message steps

For follow-up LinkedIn messages after the connection is accepted, paste the message token into the message body field. If you have multiple LinkedIn message steps, use the numbered tokens in order.

{{kai_linkedin_msg1}}
{{kai_linkedin_msg2}}

Call steps

Call steps in your outreach platform create a task in your CRM for the rep. Kai generates a call brief with a hook, talking points, and prep questions for each contact. The brief is visible to the rep in Kai's Approvals view. No token is needed on the call step in your outreach platform itself.

Call steps in your outreach platform -- leave them as-is. the platform will pause the sequence at the call step and create a task. The rep uses Kai's call brief (visible in the Approvals panel) to prepare. No token needed in your outreach platform for this step.

Token reference

Token Step type Field in your outreach platform
{{kai_email1_subject}}Email 1Subject line
{{kai_email1_body}}Email 1Body (entire field)
{{kai_email2_subject}}Email 2Subject line
{{kai_email2_body}}Email 2Body (entire field)
{{kai_email3_subject}}Email 3Subject line
{{kai_email3_body}}Email 3Body (entire field)
{{kai_email4_subject}}Email 4Subject line
{{kai_email4_body}}Email 4Body (entire field)
{{kai_linkedin_note}}LinkedIn connectionNote field
{{kai_linkedin_msg1}}LinkedIn message 1Message body
{{kai_linkedin_msg2}}LinkedIn message 2Message body
{{kai_linkedin_msg3}}LinkedIn message 3Message body

Step 3 -- Verify before running

1
Preview the sequence in your outreach platform

Your platform shows a preview of each step. Confirm that every email subject and body shows only the token variable with no placeholder text.

2
Run one contact through first

Upload a single test contact, run the pipeline, approve the sequence in Kai, and push it. Check the lead in your outreach platform and confirm all variables populated correctly before running your full list.

3
Check for empty variables in your outreach platform

If a token shows as empty after a push, it usually means one of three things: the token name in your outreach platform does not match the one Kai generated, the step structure changed after the last pull, or the contact sequence failed to generate. Go back to Approvals in Kai and check that the sequence looks complete before pushing again.

Previous Creating a campaign