Skip to main content
Variables are placeholders that Wave Runner replaces with real data when a workflow runs. Use them in any text field — SMS message body, API URL, CRM field value. Write {variable_key} and Wave Runner substitutes the actual value at runtime. For example:
Hi {name}, thanks for your call. Here's what we discussed: {summary}
Resolves to:
Hi Sarah, thanks for your call. Here's what we discussed: You expressed interest in the Pro plan and asked for a follow-up demo next week.

Inserting variables

Click + Insert Variable inside any text field in a node’s configuration panel. The variable picker opens — search by name or browse by category. Click any variable to insert it at your cursor position.
Type variables directly into any field without the picker. Type { followed by the variable key and }.
The picker only shows variables available for your workflow’s trigger type. Call Data variables do not appear in a Facebook Lead workflow, for example.

Variable reference

Contact info

Always available regardless of trigger type.
VariableDescriptionExample
{name}Contact’s full nameSarah Chen
{first_name}First nameSarah
{last_name}Last nameChen
{phone_number}Phone number+14155551234
{email}Email addresssarah@example.com

Call data

Available in workflows triggered by End of Call.
VariableDescriptionExample
{summary}AI-generated call summarySarah asked about pricing and requested a demo.
{outcome}Call outcome labelbooked, interested, not_interested
{duration}Call length in seconds142
{sentiment}Detected sentimentpositive, neutral, negative
{transcript}Full call transcript(full conversation text)
{urgent}Whether the call was flagged urgenttrue or false
{call_id}Unique call record identifierabc123
{start_time}When the call started (ISO 8601)2026-04-18T14:23:00Z
Call data variables resolve to empty strings if used in a workflow with a non-call trigger.

Appointment

Available when a booking was made during the call.
VariableDescriptionExample
{appointment.status}Whether an appointment was bookedbooked or not_booked
{appointment.start_time}Appointment start time (ISO 8601)2026-04-22T10:00:00Z
{appointment.appointment_date}Human-readable dateApril 22, 2026
{appointment.timezone}Appointment timezoneAmerica/New_York
{appointment.calendar}Calendar the booking was added toSales Demo Calendar
Use a Condition node to check {appointment.status} == 'booked' before sending a confirmation SMS, so it only fires when a booking actually occurred.

HubSpot contact

Available in workflows triggered by a HubSpot event.
VariableDescription
{firstname}First name
{lastname}Last name
{email}Email address
{phone}Phone number
{company}Associated company
{lifecyclestage}HubSpot lifecycle stage
Additional properties — city, state, zip, country, job title — are available in the picker when a HubSpot trigger is active.

Facebook lead

Available in workflows triggered by Facebook Lead.
VariableDescriptionExample
{full_name}Lead’s full nameMarcus Rivera
{email}Email addressmarcus@example.com
{phone_number}Phone number+13105559876
{ad_name}Facebook ad nameSpring Promo — Book a Call
{campaign_name}Facebook ad campaignQ2 Lead Gen

Custom variables

Define your own variables on the trigger node. Add entries to the Custom variables list on the trigger, give each a key (e.g., account_tier), and reference it anywhere in the workflow as {account_tier}. Use case: Trigger a workflow via webhook with a custom payload. Define the expected keys as custom variables so downstream nodes can reference them.

Example: SMS after a booked call

Hi {name}! Your appointment is confirmed for {appointment.appointment_date} at {appointment.start_time} ({appointment.timezone}).

Here's a quick summary of our call: {summary}

Reply STOP to opt out.

Next steps

Executions

Monitor workflow runs, inspect node logs, and troubleshoot failures.