Using runtime data in workflows

Runtime data is the live information a workflow has while it runs: the visitor's name, the new ticket's number, an API's answer or the AI step's verdict. Put it in a message, a field or a condition, and each run fills in the right details by itself.

For example, a Slack alert that says New lead from {{record.visitorName}} arrives as "New lead from Jane Doe".

Before you start

Add runtime data to a step

Select it from the list (easiest)

Most fields have a list above them that shows Enter a custom value. Open the list and select a value, for example Chat · Visitor email. The list shows only the values that the field accepts.

Type it into your text

Keep Enter a custom value, and type the value's path between double braces anywhere in your text. Use this to mix live details with your own words, for example in a Slack message:
When the workflow runs, it replaces each path with the real value:
You writeThe run gives
Call back {{trigger.name}} on {{trigger.phone}}Call back Sam Lee on +14155550123
Ticket #{{trigger.ticket.humanId}} "{{trigger.ticket.subject}}" from {{trigger.ticket.requester.name}} has no agent reply after 4 hours.Ticket #1042 "Order arrived damaged" from Jane Doe has no agent reply after 4 hours.
Tip: Copy each path exactly as the Available runtime data panel shows it. Paths are case-sensitive: visitorName works, but visitorname does not. Do not put spaces inside the braces.

Where each value can go

Not every value works in every field. Personal details, such as the visitor's name, email or last message, can go in Slack messages and conditions, but not in a task title or a ticket.

Each step has an Available runtime data (N) panel. Click it to see every value the step can use, with its exact path and where it works.
The use in line on each value tells you where it works:
use in showsYou can use the value in
triggerFilterThe trigger's Only run when conditions match filter
conditionCondition steps
actionAction fields, for example a task title or a card title
eventWaitA Wait for an event step, to find the right record
notifySend Slack notification messages
Example: for a chat, Visitor name ({{record.visitorName}}) shows use in: condition, notify. You can put the visitor's name in a Slack alert or check it in a condition, but not use it in a task title. If a value is not in a field's list, that field does not accept it.

Each row in the panel also shows:
  • The type: string (text), number, boolean (yes or no), array (list) or object.
  • required or optional: an optional value can be empty for some events.
  • nullable: the value can be empty.
  • related: the value is the ID of another record, for example a conversation, contact or organization.
  • sensitive: the value is personal data, for example an email address.
  • example: a typical value.

Where runtime data comes from

The first part of each path tells you where the value comes from:
Starts withWhat it holdsExamples
trigger.Details of what started the run: the event, schedule, webhook call or AI agent request{{trigger.conversationId}}, {{trigger.ticket.subject}}, {{trigger.card.id}}
record.The record behind the event (a chat, ticket, conversation, card, activity, contact, organization or Feedback issue), with its linked contact and organization{{record.visitorEmail}}, {{record.title}}, {{record.contact.name}}
nodes.The results of earlier steps in this run{{nodes.summarize.output}}, {{nodes.create_ticket.output.ticketId}}

Common paths for each trigger

The values you get depend on the trigger. For what each trigger does, see Choosing what triggers a workflow. The panel always shows the full list; these are the paths used most:
TriggerUseful paths
Chat transcript createdtrigger.conversationId, trigger.conversation.offline, trigger.conversation.answered, record.visitorName, record.visitorEmail, record.rating, record.lastMessage, record.tags
Ticket createdtrigger.ticket.id, trigger.ticket.humanId (ticket number), trigger.ticket.subject, trigger.ticket.requester.name, trigger.ticket.requester.email
Omnichannel Inbox eventstrigger.omnichannel.conversationId, trigger.omnichannel.inboxId, record.channel, record.subject, record.contactName, record.status, record.priority
Pipeline eventstrigger.card.id, trigger.card.title, record.title, record.value, record.currency, record.stageName, record.expectedCloseDate
Feedback eventstrigger.issueId, record.title, record.description, record.votes, record.authorName, record.authorEmail
AI agentEach input that you set, for example trigger.email or trigger.orderNumber, plus trigger.conversationId and trigger.channel
WebhookEach field in the JSON body that you send. For example, {"orderId":"1001"} gives trigger.orderId.
  • Linked contact and organization: if the record has a linked contact or organization, you can use their details, for example {{record.contact.name}}, {{record.contact.primaryEmail}} or {{record.organization.name}}.
  • Custom fields: a record's custom fields are under record.customAttributes, for example {{record.customAttributes.plan}}.

See the shape of your trigger data

Run now shows the trigger data as JSON. Each level in the JSON is one part of the path, joined by dots. For example, "conversation": { "offline": true } becomes {{trigger.conversation.offline}}.

Use the results of earlier steps

When a step finishes, its result goes into nodes.<step ID>.output, and later steps can use it. For what each step does, see Building workflow steps: actions, conditions, waits and AI steps.
StepWhat later steps can use
AI stepThe AI's full answer: {{nodes.<step ID>.output}}
AI step with output fieldsEach field on its own: {{nodes.<step ID>.output.<field name>}}, for example {{nodes.write_update.output.title}}
Find Feedback issues…output.count, …output.issueIds, …output.issues, …output.hasMore (more issues matched than fit)
Publish to Changelog…output.entryId, …output.status
Send email, Send SMS, Send WhatsApp message, Reply to inbox conversation…output.conversationId, …output.messageId, …output.status (delivery status)
Create ticket…output.ticketId
Create card, Create activity…output.sourceRef.value, the reference of the new record. Later actions such as Move card to stage or Complete created activity use it to find the record.
HTTP request…output.data.status (HTTP status), …output.data.body (response body), …output.data.headers, …output.data.bodyTruncated
Create FAQ, Update FAQ…output.data.qna.id
Add issue in Feedback, Update issue in Feedback…output.issue.id, …output.issue.status
Fetch conversationThe conversation's transcript, for an AI step to read. You cannot put it straight into a ticket or a message. To send it, ask the AI step to copy it, then use the AI's answer.
Wait for an event (with a timeout route)…output.timedOut: yes if no event came in time
In the panel and in the lists, a step result has the step number in its label, for example Step 1 · HTTP status.

About step IDs

The <step ID> is a fixed name for each step, so your paths keep working when you move steps.
  • Templates use readable IDs, for example fetch_chat or summarize.
  • Steps that you add get a generated ID, for example n_lSrH6QRTuBxEMXSm.
Do not guess an ID. Select the value from the list, or copy the path from the Available runtime data panel.

Runtime data in AI steps

You write AI step instructions in plain language, without double braces. Tell the AI where the data is by its path:

You qualify sales leads. The chat transcript is in nodes.fetch_chat.output. The visitor details are in record. Start your reply with INTENT=HOT, INTENT=WARM or INTENT=COLD. Then write one sentence about who the visitor is and what they need.

To give a conversation to an AI step, add a Fetch conversation step before it. Set Conversation ID to {{trigger.conversationId}}, then select the conversation's Channel.

Later steps can then use the AI's answer, for example {{nodes.summarize.output}} in a task description or a Slack message. To get separate values instead of one answer, add Output fields to the AI step.

Runtime data in conditions

In a Condition step or a trigger filter:
  • The field can be any value in the list. If a step result is not in the list, select Advanced field path, then type the path without braces, for example nodes.classify.output.
  • The value can be a Fixed value that you type, or Runtime data. For runtime data, enter one reference on its own, for example {{trigger.card.value}}.
Example: IF nodes.classify.output contains INTENT=HOT, go to Create card.

When a value is missing

  • Slack messages: an optional value with no data shows Not provided.
  • AI agent inputs: if the agent cannot find an input in the conversation, the input is set to Not provided, and the run gets the label Some inputs not provided. If the workflow cannot work without an input, make it Required. See Letting your AI agent run workflows.
  • Values that the trigger does not give: the run fails, and the error names the missing value. For example: "Step 2 uses {{trigger.orderId}}, which this run's trigger didn't include." Use a value that the trigger gives, or remove it from the step.
  • Data on every route: after a Condition, a step can use results only from steps that always run before it. If not, you see this error when you save: "Step N uses runtime data that is not available on every route to that step." Move the step, or use data from a step on every route.
  • Wait for an event: the event's data exists only if the event came. Steps on the Nothing arrives route cannot use it.
To find which value was missing in a failed run, open the run in the Runs tab. See Testing, monitoring and troubleshooting workflow runs.

Tips

  • URLs: runtime data in a URL is not URL-encoded. If a value can contain spaces, ? or &, encode it first.
  • Dates: a date field accepts a date, or one runtime data path on its own, for example {{trigger.activity.dueAt}}.
  • Testing with Run now: change the JSON in Run now to try other values, for example a different rating or email. This is a real run, so its actions really happen.
  • Sensitive data: values marked sensitive, such as email addresses, are personal data. Send them only to channels and apps that your team trusts.

Related guides


Have a question we haven't covered or need support?

Was this article helpful?

0 out of 0 liked this article

Still need help? Message Us