Every variable you can use in a flow
The full list of $ variables Tayon fills in for you, from the contact's record and the visit to bookings, payments and course enrollment, and where each one works.
This is the full list of variables Tayon fills in when a flow runs. Type them anywhere a field accepts variables: screen and message text, email subjects, webhook parameters, redirect URLs, AI prompts and split conditions.
A few rules apply to all of them:
- Write them exactly as shown, in capitals.
$crmdata.cityis not recognised. - Most print as nothing when there is no value, so write sentences that still read well when the value is empty.
- Where it works says which kind of flow fills it in: conversational forms, bot flows, and the flows your AI follow-up agents run.
#Your own answers
| Variable | What it holds | Where it works |
|---|---|---|
$IDENTIFIER |
The answer stored under that identifier, or the result an API/Webhook Call or AI Prompt stored there. | All flows |
If a question named NAME, FNAME, PHONE or EMAIL was skipped, Tayon
fills it from the lead’s name, phone or email when it already knows them.
Answers to password questions are never printed.
An action stores its result only when you type a name in Store Response In
(Identifier). The WEBHOOK_RESPONSE and AI_RESPONSE shown in the empty box
are examples, not names that are filled in for you.
#The visit
| Variable | What it holds | Where it works |
|---|---|---|
$FLOWSESSION |
A unique code for this visit or conversation. | All flows |
$FLOWPARAMETER |
The value of par in the link, as in ?par=spring. |
Forms, bot flows |
$FLOW.EXTRA-KEY |
The value of extra-key in the link. ?extra-plan=gold fills $FLOW.EXTRA-PLAN. |
Forms |
$FLOWPOINTS |
The running score from the options this visitor picked. | Forms |
$UTM_SOURCE $UTM_MEDIUM $UTM_CAMPAIGN $UTM_CONTENT $UTM_TERM |
The campaign tags on the link that brought them. | Forms |
$COUNTRY |
The visitor’s country as a two-letter code, such as US or BR, worked out from their connection. |
Forms |
$FLOW.PARAMETER, $FLOW.POINTS, $FLOW.SESSION, $COUNTRY.ISO2 and
$UTM.SOURCE (and the other $UTM. names) are accepted as other spellings of
the same values.
For extra- link values, the part after extra- may use only letters, numbers
and _. A link carries at most 10 of them, and a value containing = or ,
is ignored.
If your flow asks a question with the identifier COUNTRY, $COUNTRY prints
the answer instead of the detected country.
#The contact
When Tayon knows who it is talking to, the $CRMDATA. variables read from that
contact’s record. In a conversational form that is the contact the visit is
linked to. Tayon finds them once they are saved as a lead, by the email or
phone they gave, or because they signed in. Until then, the name, email and
phone come from what the visitor typed.
These work in every kind of flow.
| Variable | What it holds |
|---|---|
$CRMDATA.NAME |
First and last name |
$CRMDATA.FNAME / $CRMDATA.LNAME |
First name / last name |
$CRMDATA.EMAIL / $CRMDATA.PHONE |
Email / phone |
$CRMDATA.BUSINESS |
Business name |
$CRMDATA.ADDRESS / $CRMDATA.CITY / $CRMDATA.STATE / $CRMDATA.ZIPCODE |
Address details |
$CRMDATA.BIRTHDATE |
Date of birth, as 2026-10-12 |
$CRMDATA.BIRTHMONTH / $CRMDATA.BIRTHYEAR |
Month and year of birth |
$CRMDATA.LANGUAGE |
The contact’s language |
$CRMDATA.STAGE / $CRMDATA.QUALITY |
Pipeline stage and quality, by name |
$CRMDATA.TAGS |
The contact’s tags |
$CRMDATA.SNAPSHOT |
The summary on the contact’s record |
$CRMDATA.CHATLOG |
The information gathered from the contact in earlier conversations |
$CRMDATA.UID |
The contact’s unique ID, handy in webhooks |
$CRMDATA.MEMBERNAME / $CRMDATA.MEMBEREMAIL / $CRMDATA.MEMBERPHONE |
The name, email and phone of the team member who owns the lead |
$CRMDATA.MEMBER |
That team member’s unique ID |
$CRMDATA.FIELD |
Any custom field on the contact, such as $CRMDATA.ROOF_AGE |
Custom fields include the ones your bot collects through Data Capture
Fields. A custom field whose name contains PASSWORD always prints as
nothing.
#People on your side
| Variable | What it holds | Where it works |
|---|---|---|
$ACCOUNTNAME |
The account owner’s full name | All flows |
$ACCOUNTFIRSTNAME / $ACCOUNTLASTNAME |
First and last name | All flows |
$ACCOUNTEMAIL / $ACCOUNTPHONE |
Email and phone | All flows |
$ACCOUNTSMSCREDITS |
The SMS credits left on the account | All flows |
$FLOWASSIGNED.FNAME $FLOWASSIGNED.LNAME $FLOWASSIGNED.EMAIL $FLOWASSIGNED.PHONE |
The team member this conversation is assigned to | All flows |
$ACCOUNT.NAME, $ACCOUNT.EMAIL and $ACCOUNT.PHONE also work.
#Bookings
| Variable | What it holds | Where it works |
|---|---|---|
$FLOWCALENDAR.NAME / $FLOWCALENDAR.INFO |
The name and description of the calendar this flow books into | Forms, bot flows |
$FLOWCALENDAR.PLACE / $FLOWCALENDAR.ADDRESS |
Its place and address, or - if you left them empty |
Forms, bot flows |
$FLOWCALENDLYEVENT |
The Calendly event type booked | Forms |
$FLOWCALENDLYSTART / $FLOWCALENDLYEND |
When it starts and ends | Forms |
$FLOWCALENDLYNAME / $FLOWCALENDLYEMAIL |
The invitee’s name and email | Forms |
The Calendly variables are filled in when the visitor books through a Calendly template and comes back to the flow.
#Datasets
These work in conversational forms. See Datasets for how to use them.
| Variable | What it holds |
|---|---|
$DATASETFILTER |
How many rows the last Filter DataSet found |
$FLOWDATASET |
The ID of the row the last filter selected, or 0 |
$DATASET.SUM $DATASET.AVERAGE $DATASET.MIN $DATASET.MAX |
The results of the last Calculate DataSet |
$[Dataset].COLUMN[1] |
A column from the first row the filter found. Use ID as the column for the row’s ID. |
#Summaries of the answers
Handy in a notification email to yourself. They work in forms and bot flows.
| Variable | What it holds |
|---|---|
$GNRNAME |
The first name-type answer (NAME, FNAME, FIRSTNAME, NOME), or - |
$GNRFNAME / $GNRLNAME |
The first and last word of that name |
$GNRPHONE |
The first phone-type answer (PHONE, WHATSAPP, MOBILE and similar), or - |
$MESSAGE |
Every other answer except the email, separated by commas, or - |
#Results of actions
These are filled in by an action earlier in a conversational form.
| Variable | Set by | What it holds |
|---|---|---|
$PAYMENTSTATUS and the rest of the $PAYMENT family |
Payment Checkout | The payment’s status, order, amount and error. See Take a payment inside your site. |
$ELENROLLSTATUS |
Enroll in Course | requested, no_course, no_email or error. See Enroll people in a course from a flow. |
$VALIDATION_CODE |
Send Email or Send SMS | A one-time code, created when the message text contains $VALIDATION_CODE. |
To check an email address or phone number, put $VALIDATION_CODE in a message
to the lead, with words before it, such as Your code is $VALIDATION_CODE.
Then ask for the code and test the answer in a split: $ECODE = $VALIDATION_CODE.
#Incoming messages to an AI agent
Flows that answer a lead’s reply to an AI follow-up agent can read the reply
itself: $EMAILDATA.BODY, $EMAILDATA.SUBJECT, $IMDATA.BODY, the reply’s
category, and AI-written answers such as $EMAILDATA.AIRESPONSE. They are
covered in Read and answer a lead’s reply in an AI agent
flow.
#Videos you upload
Videos you upload to Tayon and place on a screen need no variable. Tayon handles the link itself, and the video plays only on your own sites and forms.
Updated: