I

Variables in automation messages and templates

Personalize automation emails, chat messages, tasks, and notes with double-brace variables like {{contact.firstName}} — here is the full syntax and scope list.


Text an automation sends or writes doesn't have to be static. Any text field — an email template's subject and body, a channel message, a task title and description, a note, a notification, a webhook payload, or a field value — can contain variables that are filled in at the moment the automation fires.

Syntax

Wrap a dotted path in double curly braces:

Hi {{contact.firstName}}! Your application {{application.no}} moved forward.

When the automation runs, each marker is replaced with live data from the deal that triggered it. A variable that has no value renders as an empty string — the message still sends, nothing errors, so templates stay safe for records with missing fields.

You don't need to memorize paths: fields with variable support show an "Insert variable" picker with a search box ("Search variables…").

Available scopes

ScopeWhat it resolves toExample
deal.*The deal the event belongs to{{deal.name}}
contact.*The deal's primary contact{{contact.firstName}}, {{contact.email}}
company.*The deal's primary company{{company.name}}
owner.*The deal's responsible user{{owner.name}}
event.*The triggering event itself{{event.dealId}}
workspace.*Your workspace{{workspace.name}}
application.noThe deal's application number{{application.no}}
custom.*Custom fields of the deal and contact, merged{{custom.service_type}}

Two details worth knowing:

  • custom.* is a shortcut. {{custom.service_type}} merges the deal's and the contact's custom fields (the deal wins on collision) — shorter than writing {{deal.custom_data.service_type}}, though the long form works too.
  • Same paths as conditions. The dotted path you type into a condition field (for example custom_data.service_type) resolves exactly the same way as a template variable — one mental model for both.

Where variables work

  • "Send email" — the subject and body of the selected email template.
  • "Send channel message" — the message text sent via Telegram, WhatsApp, Instagram, or Messenger.
  • "Create task" — the task title and description.
  • "Add note" — the note text.
  • "Notify user" / "Notify team" — the notification title, body, and link.
  • "Call webhook" — every string inside the JSON payload is interpolated before sending.
  • "Update field" — the value being written.

A worked example

A rule on the stage "Contract" with the action "Send email" and this template body:

Hello {{contact.firstName}},

Your agreement for {{deal.name}} (case {{application.no}}) is ready.
Your manager {{owner.name}} will follow up shortly.

renders per deal with the real contact name, deal name, case number, and owner.

Tip: verify how a template renders before going live — run the automation in simulation and read the step output in the runs log on the automation board.

Was this article helpful?

Related articles

Variables in automation messages and templates · Help Center