Run the conversation

Messages that know who they're talking to.

Field tokens inject contact and campaign data into the system prompt at call time. The AI uses real names, real products, and real context — not generic phrasing it had to fabricate because the data wasn't there.

7 tokenssupported — contacts.first_name, campaigns.campaign_goal, and more
Resolved at call timetokens expanded from live database values before every AI call
400 errorreturned for unknown or malformed tokens — never silently passed
0 invented infoAI uses only supplied campaign fields — deflects if missing
How personalisation works

Tokens resolved before the AI reads a single word.

Campaign configuration fields and question text can include placeholder tokens — such as contacts.first_name or campaigns.campaign_goal — that are resolved at context assembly time. The token resolver expands all supported tokens to their live database values before the system prompt is built. The AI never sees a raw token.

  • Tokens in campaign fields and question text resolved before every AI call
  • contacts.first_name, contacts.last_name — contact PII fields
  • campaigns.campaign_goal, campaigns.product_or_service — campaign-level fields
  • Unknown tokens return HTTP 400 — never silently passed to the AI
  • Singular-namespace legacy tokens (contact.first_name) flagged with corrective hint
  • AI uses resolved values as natural context — never acknowledges the token mechanism
Token resolution
  1. 1
    Campaign config loaded
    Fields may contain {{contacts.first_name}} tokens
  2. 2
    Token scan
    All tokens identified and validated against supported set
  3. 3
    Unknown token
    400 error returned — campaign save blocked
  4. 4
    Resolution
    Each token replaced with live database value
  5. 5
    System prompt built
    AI receives fully resolved context — no raw tokens
  6. 6
    AI call
    Personalised context used to craft the response
What personalisation enables

Context that makes the conversation feel real.

The AI uses campaign fields in a defined priority order when answering objections and questions. The more you populate, the more precisely the AI can respond — without inventing anything.

Contact-level tokens

contacts.first_name, contacts.last_name, and contacts.company are resolved from the contact record at call time. Use them in persona fields, question text, or campaign goal to make every message feel personal.

How it works: Contact name is available for context — the AI guardrail still prohibits using it in outbound messages (feels presumptuous on cold SMS).

Campaign-level tokens

campaigns.campaign_goal, campaigns.product_or_service, and campaigns.assistant_name are resolved from the campaign record. Use them to make a shared template work across multiple campaigns with different products.

How it works: All seven supported tokens are tested — multiple tokens in a single string resolve correctly.

Objection handling context

The AI uses product_or_service, benefits, background, and objection_handling fields — in that priority order — when a contact asks a question the AI needs to answer. If no usable information is present, it deflects to a specialist rather than fabricating an answer.

How it works: No invented information is enforced via base guardrails — applies to every campaign without configuration.

Token validation on save

When an operator saves campaign configuration containing an unknown or malformed token, the platform returns a 400 error with a descriptive message identifying the bad token. Unknown tokens are never silently passed to the AI.

How it works: Singular legacy tokens (contact.first_name without the 's') are flagged with a corrective hint pointing to the correct format.

Want to see personalisation
in a live campaign?

We'll configure token fields, show you the resolved context, and run a test conversation.