Expressions are named values, such as the number a call comes from or the number of calls waiting in a queue. babelforce reads them at the moment you use them, from the call, SMS, chat message, agent or queue that the current event is about.
You use expressions in two places:
-
Trigger conditions (triggers, Switch nodes, advanced routing rules in the New Input Reader, agent selections). Pick or type the name without braces:
call.to.number· starts with ·49 -
Text templates (TTS / audio texts, e-mails, SMS, ticket fields, HTTP and Set session values, the Transfer module's Display as). Write the name in curly braces:
We received a call from {call.from}. The name in braces is called a placeholder. When the text is used, the placeholder is replaced by the current value.
This article explains how to see the expressions of your own account, how they behave, and lists every expression with what it contains.
Jump to an expression
-
Account:
{customer.accessId},{customer.company.name},{customer.defaultTimeZone},{customer.email} -
Date and time:
{time.currentDate},{time.currentTime},{time.utc} -
Basics:
{core.always},{core.time} -
Boolean constants:
{bool.false},{bool.true} -
Number constants:
{number.one},{number.zero} -
Random values:
{sampler.hash},{sampler.random100},{sampler.random10},{sampler.random},{sampler.uuid4} -
Business hours:
hours.<hours>.in.hours -
Calendars:
calendar.<calendar>.is.HOLIDAY -
Call:
{call.caller.number},{call.displayAs},{call.domain.external},{call.domain.internal},{call.domain},{call.duration},{call.finishReason},{call.from.anonymous},{call.from.mobile},{call.from.number_or_anonymous},{call.from.number},{call.from},{call.id},{call.recording.duration},{call.recording.file.size},{call.recording.id},{call.recording.tags},{call.recording.url},{call.source},{call.state},{call.to.mobile},{call.to.number},{call.to},{call.type.inbound},{call.type.outbound},{call.type},call.state.<state> -
Consumer:
{consumer.number} -
Agent:
{agent.email},{agent.enabled},{agent.groups},{agent.id},{agent.name},{agent.number},{agent.presence},{agent.sourceId},{agent.source},{agent.state},{agent.tags},{agent.wrapup.duration},agent.state.<state> -
Session:
{session.agents.email},{session.id} -
Session variables:
ivr.<name> -
Voice application results:
app.<module>.<var>.<sub>,app.<module>.<var>,app.<module>.finishReason -
Queue:
{queue.call.age.timestamp},{queue.call.age.unix},{queue.calls.active},{queue.calls.bridged},{queue.calls.queued},{queue.full},{queue.id},{queue.load},{queue.maxDialCount},{queue.name},{queue.waitTime},queue.<queue>.<sub> -
Queue position:
{acd.queue.position} -
Conversation:
{conversation.idleTime},{conversation.id},{conversation.resumed} -
SMS:
{sms.from},{sms.id},{sms.text},{sms.to},{sms.type} -
Chat message:
{message.channel},{message.correlationId},{message.from},{message.id},{message.provider},{message.text},{message.to} -
Transcript:
{transcript.conversation},{transcript.id} -
Summary:
{summarization.summary} -
Outbound dialer:
{obd.campaign.id},{obd.campaign.name},{obd.lead.callCount},{obd.lead.id},{obd.lead.number2},{obd.lead.number3},{obd.lead.number},{obd.lead.uid},{obd.list.id},{obd.list.name},obd.lead.<name> -
Integration:
{integration.id},{integration.label},{integration.provider},{integration.type} -
End user:
enduser.<item>
1. See the expressions of your account
The exact list depends on your account: every calendar, business-hours set and queue adds its own expressions, and every session variable or voice-application result variable you configure adds one more. There are three ways to see your list.
In the Manager. When you add a condition to a trigger, the expression drop-down shows every expression available in your account, with a short label.
With {core.expressions}. This placeholder prints every expression together with its current value. Put it in the body of an e-mail sent by a local automation in one of your call-flow modules, call the number, and you receive a list like this:
[call.id] evaluates to [c51ce410c124a10e0db5e4b97fc2af39] [call.from] evaluates to [+4930123456789] [call.to.number] evaluates to [+4930987654321] [queue.name] evaluates to [Support DE] [ivr.customerTier] evaluates to [premium] ...
The list shows the right name to use and the value it had at the moment the e-mail was sent. Use it while you build and test, not permanently: the e-mail is long and is sent every time the automation runs.
Through the API. GET /api/v2/expressions returns the list of your account, with label, value type and group for every expression. POST /api/v2/expressions/evaluate evaluates one expression, or a text with placeholders, for a given call, agent or integration. See the babelforce manager SDK documentation for details.
2. How placeholders are replaced in texts
- A placeholder is a name in curly braces. The name may contain letters, digits,
_,.,:,-and|. With any other character, such as a space, the text is left exactly as written. - A name that does not exist leaves the placeholder as written.
-
An empty value also leaves the placeholder as written. If a ticket or e-mail shows
{ivr.customerTier}instead of a value, the expression had no value at that moment. - Every occurrence of the placeholder in the text is replaced.
The substr function
A placeholder can end with one function after a |. The only function is substr, which keeps part of the value:
| Placeholder | Keeps | Example (value +4930123456789) |
|---|---|---|
{call.from|substr:1} |
everything from position 1 | 4930123456789 |
{call.from|substr:0:3} |
positions 0 to 3, both included | +493 |
{call.from|substr:-4} |
the last 4 characters | 6789 |
Positions count from 0; a negative position counts from the end. You can combine a placeholder with fixed text, for example 0{call.from|substr:3}.
Limitation: substr handles only one-digit positions. {call.from|substr:12} behaves like substr:2, and a two-digit end position (substr:0:12) leaves the placeholder unchanged.
3. How conditions work
A condition has three parts: expression · operator · expected value. A trigger is either ALL (every condition must be true; default) or ANY (at least one condition must be true). An ALL trigger without conditions is always true; an ANY trigger without conditions is never true. An automation without a trigger always runs, and an automation can invert its trigger.
- The expected value is text (up to 4,000 characters). If it is exactly one placeholder, such as
{call.from}, it is replaced by that expression's value before comparing. - An expression that does not exist, or cannot be read at that moment, is treated as empty.
-
Names containing a hyphen (
-) are refused when you save a condition. Name your session variables with letters, digits and underscores only.
Operators
| Operator | True when | Good to know |
|---|---|---|
| eq / neq | the value equals / does not equal the expected value | Case-sensitive (Abc eq abc is false). A decimal value never equals a whole number: 5.0 eq 5 is false. A list never equals a single value; use contains. |
| gt / lt | the value is greater / less than the expected value | Numbers compare as numbers. Text that is not a number is compared by its length. A list compares by its number of items. |
| ge / le | greater-or-equal / less-or-equal | Same as gt/lt, but 5.0 ge 5 is false (the equal part compares like eq). |
| regexp | the value matches the regular expression | The pattern may match anywhere; use ^ and $ for start and end, e.g. ^(49|41)[0-9]*$. |
| like | the value contains the expected value, ignoring upper/lower case | Always enter an expected value. A like condition with an empty expected value stops every automation of that event, not only its own. |
| contains / not contains | a list has the expected value as an item, or a text contains it | Case-sensitive. For lists the whole item must match ([ab] contains a is false). |
| starts with / ends with | the value begins / ends with the expected value | Case-sensitive. |
| given / not given | the expression has / has no meaningful value | Not given: no value, empty text, no, false, 0, negative numbers, empty lists. The text 0 counts as given. |
| is null / is not null | the expression has no value / has a value | Empty text is a value. |
| evaluable / not evaluable | — | Only meaningful for values stored by integrations. For anything else use given / not given or is null. |
4. When an expression has a value
Every automation runs on an event, and each event carries certain objects. An expression that needs an object the event does not carry is empty.
| Event | Carries |
|---|---|
| Call created / inbound / outbound | the call and your account; queue, agent and conversation only if the call already has them |
| Call taken | the call when it is answered or handed to an agent, plus queue, agent and conversation |
| Call bridged | the call connected to an agent from a queue or the outbound dialer; dialer calls carry their lead |
| Call transferring / transferred | the call being transferred / the original call when the transfer target rings |
| Call finished | the finished call including duration and finish reason |
| Conference created / joined / left / finished | your account, and the call and agent of the member concerned when known |
| Recording finished / deleted | the recording, its call and your account, and the agent when the recording names one |
| Transcription finished | the transcript and your account; for a call recording also the recording, call and agent |
| Summarization finished | the summary text, your account and the call |
| SMS inbound / outbound | the SMS, your account, and the agent and conversation when the SMS has them |
| Message inbound | the chat message, its conversation, your account and the agent when there is one |
| Agent created / updated / state changed / presence changed | the agent and your account — no call |
| Agent wrap-up started / finished | the agent, your account, and the queue and call of the wrap-up |
| Campaign entered / left | the agent, your account and the campaign — no call |
| Custom events | your account and whatever objects the event names by ID (call, agent, queue, session) |
Always-available expressions (time, random values, constants, account details, business hours, calendars and per-queue figures) work in every event.
5. Expression reference
Each entry below shows what the expression contains, the kind of value, what the event must carry for it to have a value, what happens when it is empty, an example, and any limitations. Names written with <…> are patterns: replace the marked part, for example the ID of a queue or the variable name of a voice application. In the Manager drop-down you pick these by name.
Account
Details of your account.
{customer.accessId}
Shown in the picker as “Account access ID”
The access ID of your account.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | Your account |
| When empty | It has a value whenever your account is available. |
| Example value | aab3238922bcc25a6f606eb525ffdc56 |
| Available in | Every event |
{customer.company.name}
Shown in the picker as “Company name”
The company name of your account.
| Value | Text. |
|---|---|
| Needs | Your account |
| When empty | It has a value whenever your account is available. |
| Example value | Example GmbH |
| In a text | Thank you for calling {customer.company.name}. |
| Available in | Every event |
Limitations
- When no company name is set, the value is the text
null, not empty.
{customer.defaultTimeZone}
Shown in the picker as “Customer time zone”
The default time zone of your account.
A time zone code. Empty when no default time zone is set.
| Value | Text. |
|---|---|
| Needs | Your account |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | Europe/Berlin |
| Available in | Every event |
{customer.email}
Shown in the picker as “Account owner email”
The email address of your account's owner.
Empty when the owner has no email address.
| Value | Text. |
|---|---|
| Needs | Your account |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | owner@example.com |
| Available in | Every event |
Date and time
The current date and time, in your account's time zone or in UTC.
{time.currentDate}
Shown in the picker as “Local date”
Today's date in your account's time zone.
Written as YYYY-MM-DD, using the default time zone of your account.
| Value | A date, as text. |
|---|---|
| Needs | Your account |
| When empty | It has a value whenever your account is available. |
| Example value | 2026-09-26 |
| In a text | Date: {time.currentDate} |
| Available in | Every event |
{time.currentTime}
Shown in the picker as “Local time”
The current time of day in your account's time zone.
Written as HH:MM:SS (24-hour), using the default time zone of your account.
| Value | A time of day, as text. |
|---|---|
| Needs | Your account |
| When empty | It has a value whenever your account is available. |
| Example value | 11:30:00 |
| In a text | Time: {time.currentTime} |
| Available in | Every event |
{time.utc}
Shown in the picker as “UTC time”
The current date and time in UTC.
Written as YYYY-MM-DDTHH:MM:SSZ.
| Value | A date and time in UTC, as text. |
|---|---|
| Needs | Nothing: it can be used anywhere. |
| When empty | It always has a value. |
| Example value | 2026-09-26T09:30:00Z |
| In a text | Received at {time.utc} |
| Available in | Every event |
Basics
The current time and a condition that always holds.
{core.always}
Shown in the picker as “Always”
Always true.
Use it for a condition that must always hold.
| Value | True or false. |
|---|---|
| Needs | Nothing: it can be used anywhere. |
| When empty | It always has a value. |
| Example value | true |
| In a condition | core.always eq true |
| Available in | Every event |
{core.time}
Shown in the picker as “Current time (Unix)”
The current time as a Unix timestamp in milliseconds.
Milliseconds since 1 January 1970 UTC, at the moment of evaluation.
| Value | A point in time, as the number of milliseconds since 1 January 1970 (UTC). |
|---|---|
| Needs | Nothing: it can be used anywhere. |
| When empty | It always has a value. |
| Example value | 1790415000000 |
| Available in | Every event |
Limitations
- The picker describes this as "Unix", but the value is in milliseconds, not seconds. Multiply a Unix timestamp in seconds by 1000 before comparing.
Boolean constants
The constants true and false.
{bool.false}
Shown in the picker as “False”
The constant false.
| Value | True or false. |
|---|---|
| Needs | Nothing: it can be used anywhere. |
| When empty | It always has a value. |
| Example value | false |
| Available in | Every event |
{bool.true}
Shown in the picker as “True”
The constant true.
| Value | True or false. |
|---|---|
| Needs | Nothing: it can be used anywhere. |
| When empty | It always has a value. |
| Example value | true |
| Available in | Every event |
Number constants
The constants 0 and 1.
{number.one}
Shown in the picker as “Number 1”
The constant number 1.
| Value | A whole number. |
|---|---|
| Needs | Nothing: it can be used anywhere. |
| When empty | It always has a value. |
| Example value | 1 |
| Available in | Every event |
{number.zero}
Shown in the picker as “Number 0”
The constant number 0.
| Value | A whole number. |
|---|---|
| Needs | Nothing: it can be used anywhere. |
| When empty | It always has a value. |
| Example value | 0 |
| Available in | Every event |
Random values
Random numbers and identifiers, new on every evaluation.
{sampler.hash}
Shown in the picker as “Random hash”
A new random 32-character hexadecimal value each time it is evaluated.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | Nothing: it can be used anywhere. |
| When empty | It always has a value. |
| Example value | 70efdf2ec9b086079795c442636b55fb |
| In a text | Ticket {sampler.hash} |
| Available in | Every event |
{sampler.random100}
Shown in the picker as “Random number 0 to 100”
A random whole number from 0 to 99.
A new number every time it is evaluated. sampler.random100 lt 30 is true for about 30 % of evaluations.
| Value | A whole number. |
|---|---|
| Needs | Nothing: it can be used anywhere. |
| When empty | It always has a value. |
| Example value | 42 |
| In a condition | sampler.random100 lt 30 |
| Available in | Every event |
Limitations
- The picker label says 0 to 100, but 100 never occurs; the largest value is 99.
{sampler.random10}
Shown in the picker as “Random number 0 to 10”
A random whole number from 0 to 9.
A new number every time it is evaluated.
| Value | A whole number. |
|---|---|
| Needs | Nothing: it can be used anywhere. |
| When empty | It always has a value. |
| Example value | 7 |
| In a condition | sampler.random10 lt 5 |
| Available in | Every event |
Limitations
- The picker label says 0 to 10, but 10 never occurs; the largest value is 9.
{sampler.random}
Shown in the picker as “Random number 0 to 1”
A random decimal number from 0 up to, but not including, 1.
A new number every time it is evaluated. Useful to split traffic by percentage.
| Value | A decimal number. |
|---|---|
| Needs | Nothing: it can be used anywhere. |
| When empty | It always has a value. |
| Example value | 0.4172 |
| In a condition | sampler.random lt 0.2 |
| Available in | Every event |
{sampler.uuid4}
Shown in the picker as “Random UUID”
A new random UUID each time it is evaluated.
Written as 36 characters with hyphens.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | Nothing: it can be used anywhere. |
| When empty | It always has a value. |
| Example value | 9b2d5e7a-4c1f-4e3b-8a6d-2f0c1b7e9d34 |
| In a text | Reference {sampler.uuid4} |
| Available in | Every event |
Business hours
Whether one of your business-hours sets is open.
hours.<hours>.in.hours
A name pattern: replace each marked part to get a concrete name.
True while one of your business-hours sets is open.
There is one such expression per enabled business-hours set. It is evaluated at the moment the condition runs, so it is available in every event. A newly created set appears within about a minute. Deleting a business-hours set also deletes every trigger condition that refers to it.
| Example value | false |
|---|---|
| In a condition | hours.0123456789abcdef0123456789abcdef.in.hours eq true |
| Available in | Every event |
What to fill in
| <hours> | The ID of one of your enabled business-hours sets. |
|---|
Names
| Name | Value | Description |
|---|---|---|
hours.<hours>.in.hours |
True or false. |
Calendars
Whether today is a holiday in one of your calendars.
calendar.<calendar>.is.HOLIDAY
A name pattern: replace each marked part to get a concrete name.
True when the current date is a holiday in one of your calendars.
There is one such expression per enabled calendar. It is evaluated at the moment the condition runs, so it is available in every event. A newly created calendar appears within about a minute. A condition on a calendar that has since been deleted is left in place and sees no value.
| Example value | true |
|---|---|
| In a condition | calendar.0123456789abcdef0123456789abcdef.is.HOLIDAY eq true |
| Available in | Every event |
What to fill in
| <calendar> | The ID of one of your enabled calendars. |
|---|
Names
| Name | Value | Description |
|---|---|---|
calendar.<calendar>.is.HOLIDAY |
True or false. |
Call
The call of the event, its numbers, state and recording.
Write state and reason values exactly as shown on this page: lower case with hyphens (in-progress, no-answer). The true/false variants use underscores in their names (call.state.in_progress).
{call.caller.number}
Shown in the picker as “Caller number, direction-aware (inbound: from, outbound: to)”
The number of the other party, whichever direction the call goes.
On an inbound call the number that called, on an outbound call the number that was dialled. Empty when the event has no call.
| Value | A phone number, as text. |
|---|---|
| Needs | A call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | +4915112345678 |
| In a text | Caller: {call.caller.number} |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{call.displayAs}
Shown in the picker as “Caller ID”
The caller ID stored for the call.
Set when a two-way call is placed with a caller ID. Empty when no caller ID was stored or the event has no call.
| Value | Whatever value was stored under this name: text, a number or another type. |
|---|---|
| Needs | A call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | +4930123456789 |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{call.domain.external}
Shown in the picker as “Domain is external”
Whether the call is external.
true or false; false when the event has no call.
| Value | True or false. |
|---|---|
| Needs | A call |
| When empty | When a call is not available, the value is false. |
| Example value | true |
| In a condition | call.domain.external eq true |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{call.domain.internal}
Shown in the picker as “Domain is internal”
Whether the call is internal.
true or false; false when the event has no call.
| Value | True or false. |
|---|---|
| Needs | A call |
| When empty | When a call is not available, the value is false. |
| Example value | false |
| In a condition | call.domain.internal eq true |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{call.domain}
Shown in the picker as “Domain”
Whether the call is internal or external.
internal or external. Empty when the call has no domain or the event has no call.
| Value | One of these values: internal, external. |
|---|---|
| Needs | A call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | external |
| In a condition | call.domain eq external |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{call.duration}
Shown in the picker as “Duration (full length)”
The full length of the call, in seconds.
A decimal number of seconds, as recorded on the call. Empty when the event has no call.
| Value | A number of seconds, with up to two decimal places. |
|---|---|
| Needs | A call |
| When empty | It has a value whenever a call is available. |
| Example value | 125.4 |
| In a condition | call.duration lt 10 |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{call.finishReason}
Shown in the picker as “Finish reason”
Why the call ended.
One of unknown, hangup, passive-hangup, system-hangup, failed, timeout, unreachable, busy, declined, canceled, transferred, network-unreachable, unallocated-number, invalid-number, no-answer or dropped, in lower case with hyphens. Empty while the call has not ended and when the event has no call.
| Value | One of these values: unknown, hangup, passive-hangup, system-hangup, failed, timeout, unreachable, busy, declined, canceled, transferred, network-unreachable, unallocated-number, invalid-number, no-answer, dropped. |
|---|---|
| Needs | A call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | passive-hangup |
| In a condition | call.finishReason eq no-answer |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
Limitations
- The picker's format description lists the values with underscores or in upper case (
in_progress,INBOUND), but the value itself is lower case with hyphens (in-progress,inbound), andeqis case-sensitive. Write the expectation as shown on this page.
{call.from.anonymous}
Shown in the picker as “Is anonymous call”
Whether the call is anonymous.
true or false. Empty when the event has no call.
| Value | True or false. |
|---|---|
| Needs | A call |
| When empty | It has a value whenever a call is available. |
| Example value | false |
| In a condition | call.from.anonymous eq true |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{call.from.mobile}
Shown in the picker as “Is from mobile”
Whether the number the call comes from is a mobile number.
true or false. Empty when the event has no call.
| Value | True or false. |
|---|---|
| Needs | A call |
| When empty | It has a value whenever a call is available. |
| Example value | true |
| In a condition | call.from.mobile eq true |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{call.from.number_or_anonymous}
Shown in the picker as “Call from-number or Anonymous”
The number the call comes from, or the text Anonymous when there is none.
Also Anonymous when the event has no call.
| Value | A phone number, as text. |
|---|---|
| Needs | A call |
| When empty | When a call is not available, the value is "Anonymous". |
| Example value | Anonymous |
| In a text | Missed call from {call.from.number_or_anonymous} |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
Limitations
- The expression picker shows this as a number, but the value can be the text
Anonymous.
{call.from.number}
Shown in the picker as “Call from-number”
The number the call comes from, as stored on the call. Same value as call.from.
Not normalised. Empty when the call has no from-number or the event has no call.
| Value | A phone number, as text. |
|---|---|
| Needs | A call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | +4915112345678 |
| In a condition | call.from.number starts with +49 |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
Limitations
- On an outbound call this is your own number, not your customer's; use call.caller.number or consumer.number for the other party.
{call.from}
Shown in the picker as “From-number”
The number the call comes from, as stored on the call.
Not normalised. Empty when the call has no from-number or the event has no call.
| Value | A phone number, as text. |
|---|---|
| Needs | A call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | +4915112345678 |
| In a condition | call.from starts with +49 |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
Limitations
- On an outbound call this is your own number, not your customer's; use call.caller.number or consumer.number for the other party.
{call.id}
Shown in the picker as “ID”
The ID of the call.
Empty when the event has no call.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | A call |
| When empty | It has a value whenever a call is available. |
| Example value | c51ce410c124a10e0db5e4b97fc2af39 |
| In a text | Call {call.id} |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{call.recording.duration}
Shown in the picker as “Recording duration”
The length of the call recording, in seconds.
A decimal number of seconds. In recording events, the recording of the event; otherwise the latest recording of the call. Empty when there is no recording.
| Value | A number of seconds, with up to two decimal places. |
|---|---|
| Needs | A recording and a call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | 118.2 |
| In a condition | call.recording.duration gt 60 |
| Available in | Transcription finished, recording events and custom events |
Limitations
- A recording whose length is not known reports -0.001.
{call.recording.file.size}
Shown in the picker as “Recording file size”
The size of the call recording file, in bytes.
A whole number. In recording events, the recording of the event; otherwise the latest recording of the call. Empty when there is no recording or no file.
| Value | A whole number. |
|---|---|
| Needs | A recording and a call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | 1893456 |
| Available in | Transcription finished, recording events and custom events |
{call.recording.id}
Shown in the picker as “Recording ID”
The ID of the call recording.
In recording events, the recording of the event; otherwise the latest recording of the call. Empty when there is no recording.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | A recording and a call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | 1f0e3dad99908345f7439f8ffabdffc4 |
| Available in | Transcription finished, recording events and custom events |
{call.recording.tags}
Shown in the picker as “Recording tags”
The tags of the call recording.
A list of tags. In recording events, the recording of the event; otherwise the latest recording of the call. Empty when there is no recording.
| Value | A list of texts. |
|---|---|
| Needs | A recording and a call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | [flagged] |
| In a condition | call.recording.tags contains flagged |
| Available in | Transcription finished, recording events and custom events |
{call.recording.url}
Shown in the picker as “Recording URL”
The public URL of the call recording.
In recording events, the recording of the event; otherwise the latest recording of the call. Empty when there is no recording.
| Value | A web address. |
|---|---|
| Needs | A recording and a call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | https://recordings.example.com/r/1f0e3dad99908345f7439f8ffabdffc4.mp3 |
| In a text | Recording: {call.recording.url} |
| Available in | Transcription finished, recording events and custom events |
{call.source}
Shown in the picker as “Source”
How the call was started.
One of queue, webrtc, api, dialer, conference, callback, dial, transfer or test. Empty when the call has no source or the event has no call.
| Value | One of these values: queue, webrtc, api, dialer, conference, callback, dial, transfer, test. |
|---|---|
| Needs | A call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | dialer |
| In a condition | call.source eq callback |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{call.state}
Shown in the picker as “State”
The current state of the call.
One of scheduled, ringing, in-progress, failed, completed, queued, bridged, canceled, busy, no-answer or purged, in lower case with hyphens. Empty when the event has no call.
| Value | One of these values: scheduled, ringing, in-progress, failed, completed, queued, bridged, canceled, busy, no-answer, purged. |
|---|---|
| Needs | A call |
| When empty | It has a value whenever a call is available. |
| Example value | in-progress |
| In a condition | call.state eq no-answer |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
Limitations
- The picker's format description lists the values with underscores or in upper case (
in_progress,INBOUND), but the value itself is lower case with hyphens (in-progress,inbound), andeqis case-sensitive. Write the expectation as shown on this page.
{call.to.mobile}
Shown in the picker as “Is to mobile number”
Whether the number the call goes to is a mobile number.
true or false. Empty when the event has no call.
| Value | True or false. |
|---|---|
| Needs | A call |
| When empty | It has a value whenever a call is available. |
| Example value | false |
| In a condition | call.to.mobile eq true |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{call.to.number}
Shown in the picker as “Call to-number”
The number the call goes to, as stored on the call. Same value as call.to.
Empty when the call has no to-number or the event has no call.
| Value | A phone number, as text. |
|---|---|
| Needs | A call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | +4930123456789 |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{call.to}
Shown in the picker as “To-number”
The number the call goes to, as stored on the call.
Empty when the call has no to-number or the event has no call.
| Value | A phone number, as text. |
|---|---|
| Needs | A call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | +4930123456789 |
| In a condition | call.to eq +4930123456789 |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{call.type.inbound}
Shown in the picker as “Type is inbound”
Whether the call is inbound.
true or false; false when the event has no call.
| Value | True or false. |
|---|---|
| Needs | A call |
| When empty | When a call is not available, the value is false. |
| Example value | true |
| In a condition | call.type.inbound eq true |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{call.type.outbound}
Shown in the picker as “Type is outbound”
Whether the call is outbound.
true or false; false when the event has no call.
| Value | True or false. |
|---|---|
| Needs | A call |
| When empty | When a call is not available, the value is false. |
| Example value | false |
| In a condition | call.type.outbound eq true |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{call.type}
Shown in the picker as “Type”
Whether the call is inbound or outbound.
inbound or outbound. Empty when the event has no call.
| Value | Text. |
|---|---|
| Needs | A call |
| When empty | It has a value whenever a call is available. |
| Example value | inbound |
| In a condition | call.type eq inbound |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
call.state.<state>
A name pattern: replace each marked part to get a concrete name.
True when the call is in the named state.
One expression per state. false when the event has no call.
| Example value | false |
|---|---|
| In a condition | call.state.no_answer eq true |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
What to fill in
| <state> | scheduled, ringing, in_progress, failed, completed, queued, bridged, canceled, busy or no_answer. One of: scheduled, ringing, in_progress, failed, completed, queued, bridged, canceled, busy, no_answer. |
|---|
Names
| Name | Value | Description |
|---|---|---|
call.state.<state> |
True or false. |
Limitations
- The names use underscores (call.state.in_progress), while call.state returns hyphens (in-progress).
- The picker's format description lists the values with underscores or in upper case (
in_progress,INBOUND), but the value itself is lower case with hyphens (in-progress,inbound), andeqis case-sensitive. Write the expectation as shown on this page.
Consumer
Your customer's side of an SMS or call.
{consumer.number}
Shown in the picker as “Consumer number”
The number of your customer on the SMS or call, whichever direction it goes.
For an SMS: the sender of an inbound SMS, the recipient of an outbound SMS, in E.164 format.
For a call: on an inbound call the number that called. On an outbound call it depends on how the call was started: the dialled number for outbound-dialer, browser-phone and API or callback calls to an external number; the from-number for queue calls and for API or callback calls to an agent.
Empty when the event has neither an SMS nor a call, and for outbound calls started any other way.
| Value | A phone number, as text. |
|---|---|
| Needs | An SMS and a call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | +4915112345678 |
| In a text | Customer: {consumer.number} |
| Available in | Custom events |
Agent
The agent of the event, and the agent's line state.
{agent.email}
Shown in the picker as “Email”
The agent's email address.
Empty when the agent has no email address or the event has no agent.
| Value | Text. |
|---|---|
| Needs | An agent |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | maria.schmidt@example.com |
| Available in | Call events, conference events, transcription finished, SMS events, message inbound, recording events, campaign events, agent events, wrap-up events and custom events |
{agent.enabled}
Shown in the picker as “Is enabled”
Whether the agent is enabled.
true or false. Empty when the event has no agent.
| Value | True or false. |
|---|---|
| Needs | An agent |
| When empty | It has a value whenever an agent is available. |
| Example value | true |
| In a condition | agent.enabled eq true |
| Available in | Call events, conference events, transcription finished, SMS events, message inbound, recording events, campaign events, agent events, wrap-up events and custom events |
{agent.groups}
Shown in the picker as “Groups”
The names of all groups the agent belongs to.
A list of group names. Use contains to test for one group. Empty when the event has no agent.
| Value | A list of texts. |
|---|---|
| Needs | An agent |
| When empty | It has a value whenever an agent is available. |
| Example value | [Sales, Support] |
| In a condition | agent.groups contains Sales |
| Available in | Call events, conference events, transcription finished, SMS events, message inbound, recording events, campaign events, agent events, wrap-up events and custom events |
{agent.id}
Shown in the picker as “ID”
The ID of the agent.
Empty when the event has no agent.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | An agent |
| When empty | It has a value whenever an agent is available. |
| Example value | 6512bd43d9caa6e02c990b0a82652dca |
| Available in | Call events, conference events, transcription finished, SMS events, message inbound, recording events, campaign events, agent events, wrap-up events and custom events |
{agent.name}
Shown in the picker as “Name”
The agent's name.
Empty when the event has no agent.
| Value | Text. |
|---|---|
| Needs | An agent |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | Maria Schmidt |
| In a text | Handled by {agent.name} |
| Available in | Call events, conference events, transcription finished, SMS events, message inbound, recording events, campaign events, agent events, wrap-up events and custom events |
{agent.number}
Shown in the picker as “Number”
The agent's phone number.
Empty when the agent has no number or the event has no agent.
| Value | A phone number, as text. |
|---|---|
| Needs | An agent |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | +4930987654321 |
| Available in | Call events, conference events, transcription finished, SMS events, message inbound, recording events, campaign events, agent events, wrap-up events and custom events |
{agent.presence}
Shown in the picker as “Presence”
The name of the agent's current presence.
Empty when the agent has no presence or the event has no agent.
| Value | Text. |
|---|---|
| Needs | An agent |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | Lunch break |
| In a condition | agent.presence eq Lunch break |
| Available in | Call events, conference events, transcription finished, SMS events, message inbound, recording events, campaign events, agent events, wrap-up events and custom events |
{agent.sourceId}
Shown in the picker as “Source ID”
The agent's ID in the system the agent comes from.
Set for agents that come from an integration. Empty for other agents and when the event has no agent.
| Value | Text. |
|---|---|
| Needs | An agent |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | 361992458123 |
| Available in | Call events, conference events, transcription finished, SMS events, message inbound, recording events, campaign events, agent events, wrap-up events and custom events |
{agent.source}
Shown in the picker as “Source”
Where the agent comes from.
One of internal, zendesk or custom. Empty when the event has no agent.
| Value | Text. |
|---|---|
| Needs | An agent |
| When empty | It has a value whenever an agent is available. |
| Example value | internal |
| In a condition | agent.source eq internal |
| Available in | Call events, conference events, transcription finished, SMS events, message inbound, recording events, campaign events, agent events, wrap-up events and custom events |
{agent.state}
Shown in the picker as “State”
The agent's current line state.
One of available, selected, originated, ringing, in-call, busy, declined, unreachable, no-answer, no-device or wrap-up, in lower case with hyphens. Empty when the event has no agent.
| Value | One of these values: available, selected, originated, ringing, in-call, busy, declined, unreachable, no-answer, no-device, wrap-up. |
|---|---|
| Needs | An agent |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | in-call |
| In a condition | agent.state eq wrap-up |
| Available in | Call events, conference events, transcription finished, SMS events, message inbound, recording events, campaign events, agent events, wrap-up events and custom events |
Limitations
- The picker's format description lists the values with underscores or in upper case (
in_progress,INBOUND), but the value itself is lower case with hyphens (in-progress,inbound), andeqis case-sensitive. Write the expectation as shown on this page.
{agent.tags}
Shown in the picker as “Tags”
The agent's tags.
A list of tags. Use contains to test for one tag. Empty when the agent has no tags or the event has no agent.
| Value | A list of texts. |
|---|---|
| Needs | An agent |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | [german, vip] |
| In a condition | agent.tags contains german |
| Available in | Call events, conference events, transcription finished, SMS events, message inbound, recording events, campaign events, agent events, wrap-up events and custom events |
{agent.wrapup.duration}
Shown in the picker as “Wrapup Duration”
How long the agent's wrap-up lasted, in seconds.
Set only in the agent wrap-up events: 0 when the wrap-up starts, the wrap-up time when it finishes. May be a decimal number. Empty in every other event.
| Value | Whatever value was stored under this name: text, a number or another type. |
|---|---|
| Needs | Values set earlier in the same flow |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | 45.2 |
| In a condition | agent.wrapup.duration gt 120 |
| Available in | Wrap-up events |
agent.state.<state>
A name pattern: replace each marked part to get a concrete name.
True when the agent is in the named line state.
One expression per state. Empty (not false) when the event has no agent or the agent no longer exists.
| Example value | true |
|---|---|
| In a condition | agent.state.available eq true |
| Available in | Call events, conference events, transcription finished, SMS events, message inbound, recording events, campaign events, agent events, wrap-up events and custom events |
What to fill in
| <state> | available, selected, originated, ringing, in_call, busy, declined, unreachable, no_answer, no_device or wrap_up. One of: available, selected, originated, ringing, in_call, busy, declined, unreachable, no_answer, no_device, wrap_up. |
|---|
Names
| Name | Value | Description |
|---|---|---|
agent.state.<state> |
True or false. |
Limitations
- The names use underscores (agent.state.in_call), while agent.state returns hyphens (in-call).
- The picker's format description lists the values with underscores or in upper case (
in_progress,INBOUND), but the value itself is lower case with hyphens (in-progress,inbound), andeqis case-sensitive. Write the expectation as shown on this page.
Session
The session of the current call, SMS or conversation.
{session.agents.email}
Shown in the picker as “Agent emails”
The email addresses of every agent who took part in the call, as a JSON list.
Lists the agent of the event first, then every other agent who was connected to the call through a transfer or a conference, in the order they joined. Each agent appears once; agents without an email address are left out. The value is a JSON array, so place it in a JSON body without quotes. It is [] when the event has no call.
| Value | A JSON value written as text, such as a list in square brackets. |
|---|---|
| Needs | A call |
| When empty | When a call is not available, the value is "[]". |
| Example value | ["maria.schmidt@example.com","jonas.weber@example.com"] |
| In a text | {"agent_email": {session.agents.email}} |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
Limitations
- When a recording is stopped before the call ends, the list holds only the agents connected up to that moment.
{session.id}
Shown in the picker as “ID”
The ID of the current session.
The session of the call; otherwise the ID of the SMS; otherwise the ID of the conversation. Empty when the event has none of these.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | A call, SMS or conversation session |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | c20ad4d76fe97759aa27a0c99bff6710 |
| Available in | Call events, conference events, transcription finished, summarization finished, SMS events, message inbound, recording events, wrap-up events and custom events |
Session variables
Values stored in the session under ivr.<key>, for example by a session set action.
ivr.<name>
An open set of names: every name that starts with ivr.. What goes after the prefix is described below.
A session variable, named ivr.<key>.
Reads the value stored in the session under ivr.<key>, for example by a session set action. Every key used by one of your enabled session set actions is offered in the picker. Empty when the key is not set or the event has no session.
| Value | Whatever value was stored under this name: text, a number or another type. |
|---|---|
| Needs | A call, SMS or conversation session |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | premium |
| In a condition | ivr.customerTier eq premium |
| Available in | Call events, conference events, transcription finished, summarization finished, SMS events, message inbound, recording events, wrap-up events and custom events |
Limitations
- Keys containing a hyphen cannot be used; a condition with
-in its expression is refused, and a template stops reading the name at the hyphen. Use letters, digits and underscores.
Voice application results
Results your voice applications stored for the call.
app.<module>.<var>.<sub>
A name pattern: replace each marked part to get a concrete name.
Details of a Speech to Text or Input Reader (v2) result stored for the call.
Eight values per application with a result variable name: transcript, confidence, no_match, no_input, no_match.transcript, input_type, valid and attempts. What each one holds is set by the voice application and is not documented here. Empty until the caller has passed through that application, and when the event has no call.
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
|---|
What to fill in
| <module> | The application type: speechToText or inputReaderV2. One of: speechToText, inputReaderV2. |
|---|---|
| <var> | The result variable name configured in the voice application. |
| <sub> | One of transcript, confidence, no_match, no_input, no_match.transcript, input_type, valid, attempts. One of: transcript, confidence, no_match, no_input, no_match.transcript, input_type, valid, attempts. |
Names
| Name | Value | Description |
|---|---|---|
app.<module>.<var>.<sub> |
Whatever value was stored under this name: text, a number or another type. |
app.<module>.<var>
A name pattern: replace each marked part to get a concrete name.
The result a voice application stored for the call under its result variable name.
Exists for each Speech to Text, Input Reader and Simple Menu application that has a result variable name. Empty until the caller has passed through that application, and when the event has no call.
| Example value | 2 |
|---|---|
| In a condition | app.simpleMenu.choice eq 2 |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
What to fill in
| <module> | The application type: speechToText, inputReader, simpleMenu or inputReaderV2. One of: speechToText, inputReader, simpleMenu, inputReaderV2. |
|---|---|
| <var> | The result variable name configured in the voice application. |
Names
| Name | Value | Description |
|---|---|---|
app.<module>.<var> |
Whatever value was stored under this name: text, a number or another type. |
app.<module>.finishReason
A name pattern: replace each marked part to get a concrete name.
How the call's agentic or realtime voice application ended.
Exists once you have at least one voice application of that type. Empty until the caller has passed through such an application, and when the event has no call. The possible values are not documented.
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
|---|
What to fill in
| <module> | The application type: agentic or realtime. One of: agentic, realtime. |
|---|
Names
| Name | Value | Description |
|---|---|---|
app.<module>.finishReason |
Whatever value was stored under this name: text, a number or another type. |
Queue
The queue of the event, the call's queue entry, and live figures of each of your queues.
{queue.call.age.timestamp}
Shown in the picker as “Call age (timestamp)”
The time the call entered the queue, as date and time text.
Written as YYYY-MM-DDTHH:MM:SS, without a time zone. Empty when the event has no queue entry for the call.
| Value | A date, as text. |
|---|---|
| Needs | A call waiting in a queue |
| When empty | It has a value whenever a call waiting in a queue is available. |
| Example value | 2026-09-26T09:25:00 |
| In a text | Queued since {queue.call.age.timestamp} |
| Available in | Call events and custom events |
Limitations
- The time is in the platform's own time zone, not your account time zone; which zone that is is not documented.
{queue.call.age.unix}
Shown in the picker as “Call age (Unix)”
The time the call entered the queue, as a Unix timestamp in milliseconds.
Milliseconds since 1 January 1970 UTC. Empty when the event has no queue entry for the call.
| Value | A point in time, as the number of milliseconds since 1 January 1970 (UTC). |
|---|---|
| Needs | A call waiting in a queue |
| When empty | It has a value whenever a call waiting in a queue is available. |
| Example value | 1790414700000 |
| Available in | Call events and custom events |
Limitations
- The picker describes this as "Unix", but the value is in milliseconds, not seconds. Multiply a Unix timestamp in seconds by 1000 before comparing.
{queue.calls.active}
Shown in the picker as “Number of active calls”
The number of active calls in the queue.
A whole number. Empty when there is no queue.
| Value | A whole number. |
|---|---|
| Needs | A queue |
| When empty | It has a value whenever a queue is available. |
| Example value | 12 |
| In a condition | queue.calls.active gt 10 |
| Available in | Call events, wrap-up events and custom events |
{queue.calls.bridged}
Shown in the picker as “Number of bridged calls”
The number of calls in the queue that are connected to an agent.
A whole number. Empty when there is no queue.
| Value | A whole number. |
|---|---|
| Needs | A queue |
| When empty | It has a value whenever a queue is available. |
| Example value | 8 |
| Available in | Call events, wrap-up events and custom events |
{queue.calls.queued}
Shown in the picker as “Number of queued calls”
The number of calls waiting in the queue.
A whole number. Empty when there is no queue.
| Value | A whole number. |
|---|---|
| Needs | A queue |
| When empty | It has a value whenever a queue is available. |
| Example value | 4 |
| In a condition | queue.calls.queued ge 5 |
| Available in | Call events, wrap-up events and custom events |
{queue.full}
Shown in the picker as “Full (max number of caller reached)”
Whether the queue has reached its maximum number of callers.
true or false. Empty when there is no queue.
| Value | True or false. |
|---|---|
| Needs | A queue |
| When empty | It has a value whenever a queue is available. |
| Example value | false |
| In a condition | queue.full eq true |
| Available in | Call events, wrap-up events and custom events |
{queue.id}
Shown in the picker as “ID”
The ID of the queue in the context.
In call events, the queue the call was placed in. Empty when there is no queue.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | A queue |
| When empty | It has a value whenever a queue is available. |
| Example value | d3d9446802a44259755d38e6d163e820 |
| Available in | Call events, wrap-up events and custom events |
{queue.load}
Shown in the picker as “Load”
The load rate of the queue.
A decimal number. How the load rate is calculated is not documented here. Empty when there is no queue.
| Value | A decimal number. |
|---|---|
| Needs | A queue |
| When empty | It has a value whenever a queue is available. |
| Example value | 0.75 |
| Available in | Call events, wrap-up events and custom events |
{queue.maxDialCount}
Shown in the picker as “Max. dial count”
The maximum dial count configured on the queue.
A whole number. Empty when there is no queue.
| Value | A whole number. |
|---|---|
| Needs | A queue |
| When empty | It has a value whenever a queue is available. |
| Example value | 3 |
| Available in | Call events, wrap-up events and custom events |
{queue.name}
Shown in the picker as “Name”
The name of the queue in the context.
The queue of the event, otherwise the queue of the call's last queue entry. Empty when there is neither.
| Value | Text. |
|---|---|
| Needs | A queue and a call waiting in a queue |
| When empty | It has a value whenever a queue and a call waiting in a queue is available. |
| Example value | Support DE |
| In a condition | queue.name eq Support DE |
| Available in | Call events and custom events |
{queue.waitTime}
Shown in the picker as “Call wait time”
How long the call has waited in the queue, in seconds.
A decimal number of seconds: until an agent answered, or until now while the call still waits. 0 when the event has no queue entry for the call; empty when the queue entry is in a state other than waiting, connected or completed.
| Value | A number of seconds, with up to two decimal places. |
|---|---|
| Needs | A call waiting in a queue |
| When empty | When a call waiting in a queue is not available, the value is 0.0. |
| Example value | 37.5 |
| In a condition | queue.waitTime gt 30 |
| Available in | Call events and custom events |
Limitations
-
queue.waitTimeis a decimal number of seconds, soeqwith a whole number (for exampleeq 0) never matches.leandgefail the same way when the value is exactly that number. Useltorgtinstead (for examplelt 1to mean zero).
queue.<queue>.<sub>
A name pattern: replace each marked part to get a concrete name.
Live figures of one specific queue, named by its ID, usable in any event.
Every queue of your account (enabled or not) gets 23 expressions: call counts, queue state, agent counts and expected wait times averaged over 1, 5, 10, 30 or 60 minutes. Unlike the queue.* expressions without an ID, these do not depend on the queue of the event. A newly created queue appears within about a minute.
| Example value | 4 |
|---|---|
| In a condition | queue.0123456789abcdef0123456789abcdef.calls.queued gt 3 |
| Available in | Every event |
What to fill in
| <queue> | The ID of one of your queues. |
|---|---|
| <minutes> | One of: 1, 5, 10, 30, 60. |
Names
| Name | Value | Description |
|---|---|---|
queue.<queue>.calls.active |
A whole number. | The number of active calls in the queue. |
queue.<queue>.calls.bridged |
A whole number. | The number of calls in the queue that are connected to an agent. |
queue.<queue>.calls.queued |
A whole number. | The number of calls waiting in the queue. |
queue.<queue>.waitTime.initial.<minutes>min |
A whole number. | The expected wait time for this queue stored on the call, in seconds. |
queue.<queue>.waitTime.running.<minutes>min |
A whole number. | The queue's current average expected wait time over the last 1, 5, 10, 30 or 60 minutes, in seconds. |
queue.<queue>.waitTime.expected.<minutes>min |
A whole number. | The wait time still expected for this call, in seconds. |
queue.<queue>.calls.full |
True or false. | Whether the queue has reached its maximum number of callers. |
queue.<queue>.calls.load |
A decimal number. | The load rate of the queue. |
queue.<queue>.agents.available |
A whole number. | The number of agents of the queue that could take the call now. |
queue.<queue>.agents.enabled |
A whole number. | The number of enabled agents of the queue for the call. |
queue.<queue>.agents.availablesoon |
A whole number. | The number of enabled agents of the queue who are available or soon will be. |
Limitations
- Read from the queue as it was when your expression list was last built, which happens at most about a minute apart, so the figure can lag behind.
- The expression picker shows no description for the per-queue expressions; their meaning is described here.
- Cannot be used inside the same queue's own agent selection; there it sees no value.
-
agents.enabled: the picker lists it as true or false, but the value is the number of enabled agents.eq truematches any number above 0; to test the count, usegt 0orgewith the number you need.
Queue position
The call's position in its queue.
{acd.queue.position}
Shown in the picker as “Position in the Queue”
The call's position in its queue, starting at 1 for the next call to be served.
-1 when the position cannot be determined, for example when the event has no call or no queue.
| Value | A whole number. |
|---|---|
| Needs | Your account, a queue and a call |
| When empty | When your account, a queue and a call is not available, the value is -1. |
| Example value | 2 |
| In a text | You are number {acd.queue.position} in the queue. |
| Available in | Call events, wrap-up events and custom events |
Conversation
The conversation a call, SMS or chat message belongs to.
{conversation.idleTime}
Shown in the picker as “Idle-time”
How long the conversation has been idle, in seconds.
A whole number of seconds. Empty when there is no conversation.
| Value | A whole number. |
|---|---|
| Needs | A conversation |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | 900 |
| In a condition | conversation.idleTime gt 600 |
| Available in | Call events, conference events, transcription finished, summarization finished, SMS events, message inbound, recording events, wrap-up events and custom events |
{conversation.id}
Shown in the picker as “ID”
The ID of the conversation.
The conversation of the event, or the conversation of its call, SMS or chat message. Empty when there is none.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | A conversation |
| When empty | It has a value whenever a conversation is available. |
| Example value | e4da3b7fbbce2345d7772b0674a318d5 |
| Available in | Call events, conference events, transcription finished, summarization finished, SMS events, message inbound, recording events, wrap-up events and custom events |
{conversation.resumed}
Shown in the picker as “Resumed”
Whether the conversation has been resumed.
true or false. Empty when there is no conversation.
| Value | True or false. |
|---|---|
| Needs | A conversation |
| When empty | It has a value whenever a conversation is available. |
| Example value | true |
| In a condition | conversation.resumed eq true |
| Available in | Call events, conference events, transcription finished, summarization finished, SMS events, message inbound, recording events, wrap-up events and custom events |
SMS
The SMS of an SMS event.
{sms.from}
Shown in the picker as “From-number”
The number that sent the SMS.
In E.164 format when it is a valid international number, otherwise exactly as received. Empty when the event carries no SMS.
SMS
| Value | A phone number, as text. |
|---|---|
| Needs | An SMS |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | +4915112345678 |
| In a condition | sms.from starts with +49 |
| Available in | SMS events and custom events |
{sms.id}
Shown in the picker as “ID”
The ID of the SMS.
Set in SMS events. Empty when the event carries no SMS.
SMS
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | An SMS |
| When empty | It has a value whenever an SMS is available. |
| Example value | a87ff679a2f3e71d9181a67b7542122c |
| Available in | SMS events and custom events |
{sms.text}
Shown in the picker as “Message text”
The text of the SMS.
Empty when the event carries no SMS.
SMS
| Value | Text. |
|---|---|
| Needs | An SMS |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | Please call me back |
| In a condition | sms.text like call back |
| Available in | SMS events and custom events |
{sms.to}
Shown in the picker as “To-number”
The number the SMS was sent to, in E.164 format.
What this returns when the event carries no SMS is not documented.
SMS
| Value | A phone number, as text. |
|---|---|
| Needs | An SMS |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | +4930123456789 |
| Available in | SMS events and custom events |
{sms.type}
Shown in the picker as “Type”
Whether the SMS is inbound or outbound.
The value is inbound or outbound, in lower case. Empty when the event carries no SMS.
SMS
| Value | One of these values: inbound, outbound. |
|---|---|
| Needs | An SMS |
| When empty | It has a value whenever an SMS is available. |
| Example value | inbound |
| In a condition | sms.type eq inbound |
| Available in | SMS events and custom events |
Limitations
- The picker's format description lists the values with underscores or in upper case (
in_progress,INBOUND), but the value itself is lower case with hyphens (in-progress,inbound), andeqis case-sensitive. Write the expectation as shown on this page.
Chat message
The chat message of a message event.
{message.channel}
Shown in the picker as “Channel”
The channel the chat message came in on.
The possible values are not documented. Empty when the event carries no chat message or the message has no channel.
| Value | Text. |
|---|---|
| Needs | A message |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Available in | Message inbound and custom events |
{message.correlationId}
Shown in the picker as “Webchat session ID”
The webchat session ID of the chat message.
Empty when the event carries no chat message or the message has no webchat session.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | A message |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | 8e296a067a37563370ded05f5a3bf3ec |
| Available in | Message inbound and custom events |
{message.from}
Shown in the picker as “From-number”
The number the chat message came from.
In E.164 format when it is a valid international number. Empty when the event carries no chat message.
| Value | A phone number, as text. |
|---|---|
| Needs | A message and an SMS |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | +4915112345678 |
| Available in | Custom events |
Limitations
- When the chat message's number is not a valid international number, the value is taken from the SMS of the event instead, and is empty when there is no SMS.
{message.id}
Shown in the picker as “ID”
The ID of the chat message.
Set in the message inbound event. Empty when the event carries no chat message.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | A message |
| When empty | It has a value whenever a message is available. |
| Example value | 1679091c5a880faf6fb5e6087eb1b2dc |
| Available in | Message inbound and custom events |
{message.provider}
Shown in the picker as “Provider”
The provider that delivered the chat message.
The possible values are not documented. Empty when the event carries no chat message or the message has no provider.
| Value | Text. |
|---|---|
| Needs | A message |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Available in | Message inbound and custom events |
{message.text}
Shown in the picker as “Message text”
The text of the chat message.
Empty when the event carries no chat message.
| Value | Text. |
|---|---|
| Needs | A message |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | Where is my order? |
| In a condition | message.text like order |
| Available in | Message inbound and custom events |
{message.to}
Shown in the picker as “To-number”
The number the chat message was sent to, in E.164 format.
What this returns when the event carries no chat message is not documented.
| Value | A phone number, as text. |
|---|---|
| Needs | A message |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | +4930123456789 |
| Available in | Message inbound and custom events |
Transcript
The transcript of a call, available when a transcription is completed.
{transcript.conversation}
Shown in the picker as “Transcript Conversation”
The text of the completed transcript.
Set in the transcription finished event. When there is no transcript, or the transcript has no text, the value is empty text: a template inserts nothing and given is false.
| Value | Text. |
|---|---|
| Needs | A transcript |
| When empty | When a transcript is not available, the value is an empty text. |
| Example value | Good morning, how can I help you? |
| In a condition | transcript.conversation like cancel |
| Available in | Transcription finished |
{transcript.id}
Shown in the picker as “Transcript ID”
The ID of the transcript that has just been completed.
Set in the transcription finished event. Empty when the event carries no transcript.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | A transcript |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | 3f2a9c1e-6b7d-4e8f-9a0b-1c2d3e4f5a6b |
| In a text | Transcript {transcript.id} is ready |
| Available in | Transcription finished |
Summary
The summary of a call, available when a summarization is completed.
{summarization.summary}
Shown in the picker as “Summary text”
The summary text delivered for a call.
Set in the summarization finished event. Empty when the event carries no summary.
| Value | Text. |
|---|---|
| Needs | A summary |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | The caller asked to move their appointment to next Tuesday. |
| In a condition | summarization.summary like appointment |
| Available in | Summarization finished |
Outbound dialer
The lead, lead list and campaign of an outbound-dialer call.
{obd.campaign.id}
Shown in the picker as “Campaign ID”
The ID of the outbound-dialer campaign.
On a dialer call, the campaign of the call's lead. In the campaign enter and leave events, the campaign the agent entered or left. Empty otherwise.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | Your account, a call and a campaign |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | eccbc87e4b5ce2fe28308fd9f2a7baf3 |
| Available in | No event lists it as available; see the note above. |
{obd.campaign.name}
Shown in the picker as “Campaign name”
The name of the outbound-dialer campaign.
On a dialer call, the campaign of the call's lead. In the campaign enter and leave events, the campaign the agent entered or left. Empty otherwise.
| Value | Text. |
|---|---|
| Needs | Your account, a call and a campaign |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | Winter offer |
| In a text | Campaign: {obd.campaign.name} |
| Available in | No event lists it as available; see the note above. |
{obd.lead.callCount}
Shown in the picker as “Lead call count”
The call count recorded on the dialer lead of the call.
A whole number. Empty when the call is not a dialer call or the lead no longer exists.
| Value | A whole number. |
|---|---|
| Needs | Your account and a call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | 3 |
| In a condition | obd.lead.callCount ge 3 |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{obd.lead.id}
Shown in the picker as “Lead ID”
The ID of the outbound-dialer lead the call belongs to.
Found through the lead the outbound dialer stored on the call. Empty when the call is not a dialer call or the lead no longer exists.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | Your account and a call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | 8f14e45fceea167a5a36dedd4bea2543 |
| In a text | Lead {obd.lead.id} |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{obd.lead.number2}
Shown in the picker as “Lead phone number 2”
The second phone number of the dialer lead of the call.
The number as stored on the lead. Empty when the lead has no second number, the call is not a dialer call or the lead no longer exists.
| Value | A phone number, as text. |
|---|---|
| Needs | Your account and a call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | +4915112345678 |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{obd.lead.number3}
Shown in the picker as “Lead phone number 3”
The third phone number of the dialer lead of the call.
The number as stored on the lead. Empty when the lead has no third number, the call is not a dialer call or the lead no longer exists.
| Value | A phone number, as text. |
|---|---|
| Needs | Your account and a call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | +4940123456789 |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{obd.lead.number}
Shown in the picker as “Lead phone number”
The first phone number of the dialer lead of the call.
The number as stored on the lead. Empty when the call is not a dialer call or the lead no longer exists.
| Value | A phone number, as text. |
|---|---|
| Needs | Your account and a call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | +4930123456789 |
| In a condition | obd.lead.number starts with +49 |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{obd.lead.uid}
Shown in the picker as “Lead UID”
The UID stored on the dialer lead of the call.
Empty when the call is not a dialer call, the lead no longer exists or the lead has no UID.
| Value | Text. |
|---|---|
| Needs | Your account and a call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | CRM-100234 |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
{obd.list.id}
Shown in the picker as “List ID”
The ID of the lead list the call's dialer lead belongs to.
Empty when the call is not a dialer call or the lead no longer exists.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | Your account and a call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | c4ca4238a0b923820dcc509a6f75849b |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
Limitations
- The expression picker shows this as a list, but the value is a single ID.
{obd.list.name}
Shown in the picker as “List name”
The name of the lead list the call's dialer lead belongs to.
Empty when the call is not a dialer call or the lead no longer exists.
| Value | Text. |
|---|---|
| Needs | Your account and a call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | Renewals September |
| In a text | List: {obd.list.name} |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
Limitations
- The expression picker shows this as a list, but the value is a single name.
obd.lead.<name>
An open set of names: every name that starts with obd.lead.. What goes after the prefix is described below.
A custom field of the call's dialer lead, named obd.lead.<field>.
Reads the custom field <field> (matched in lower case) from the lead data of the call's outbound-dialer lead. Empty when the call is not a dialer call, the lead no longer exists or the lead has no such field.
| Value | Whatever value was stored under this name: text, a number or another type. |
|---|---|
| Needs | Your account and a call |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | Gold |
| In a condition | obd.lead.contract eq Gold |
| Available in | Call events, conference events, transcription finished, summarization finished, recording events, wrap-up events and custom events |
Limitations
- Custom lead fields are not offered in the expression picker, although
obd.lead.<field>is evaluated when it is entered.
Integration
The integration that is part of the context.
{integration.id}
Shown in the picker as “ID”
The ID of the integration in the context.
Empty when no integration is part of the context.
| Value | An identifier: a fixed text that names one record. |
|---|---|
| Needs | An integration |
| When empty | It has a value whenever an integration is available. |
| Example value | 45c48cce2e2d7fbdea1afc51c7c6ad26 |
| Available in | Custom events |
{integration.label}
Shown in the picker as “Label”
The label you gave the integration.
Empty when no integration is part of the context.
| Value | Text. |
|---|---|
| Needs | An integration |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | Main CRM |
| Available in | Custom events |
{integration.provider}
Shown in the picker as “Provider”
The provider name of the integration.
Empty when no integration is part of the context. The possible values are not documented.
| Value | Text. |
|---|---|
| Needs | An integration |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Available in | Custom events |
{integration.type}
Shown in the picker as “Type”
The type of the integration.
One of zendesk, sugarcrm, custom or zoho, in lower case. Empty when no integration is part of the context.
| Value | One of these values: zendesk, sugarcrm, custom, zoho. |
|---|---|
| Needs | An integration |
| When empty | It can be empty (no value). In a text template an empty value leaves the placeholder as written. |
| Example value | custom |
| In a condition | integration.type eq custom |
| Available in | Custom events |
Limitations
- The picker's format description lists the values with underscores or in upper case (
in_progress,INBOUND), but the value itself is lower case with hyphens (in-progress,inbound), andeqis case-sensitive. Write the expectation as shown on this page.
Integration actions also store their results in the session under integration.<provider>.…, for example integration.zendesk_v2.ticket.id or integration.zendesk_v2.enduser.id after a Zendesk ticket creation or end-user lookup. Which names exist depends on the integration action; they appear in the {core.expressions} output once the action has run. See the article of your integration for details.
End user
The end user identified for the session.
enduser.<item>
A name pattern: replace each marked part to get a concrete name.
Details of the end user identified for the current session.
Read from the end-user data stored in the session. Empty when no end user was identified or the event has no session.
| Example value | Anna Meyer |
|---|---|
| In a text | Hello {enduser.name} |
| Available in | Call events, conference events, transcription finished, summarization finished, SMS events, message inbound, recording events, wrap-up events and custom events |
Names
| Name | Value | Description |
|---|---|---|
enduser.provider |
Whatever value was stored under this name: text, a number or another type. | |
enduser.id |
Whatever value was stored under this name: text, a number or another type. | |
enduser.name |
Whatever value was stored under this name: text, a number or another type. | |
enduser.number |
Whatever value was stored under this name: text, a number or another type. | |
enduser.email |
Whatever value was stored under this name: text, a number or another type. |
6. Removed and legacy expressions
If your configuration still uses one of these, replace it:
| Old | Status | Use instead |
|---|---|---|
transaction.key, .label, .message, .source
|
Removed — no longer resolves | — |
queue.call.age.order |
Removed | acd.queue.position |
queue.<id>.expectedWaitTime.<N>min |
Old name | queue.<id>.waitTime.expected.<N>min |
transcription.summary, transcript.summary
|
Removed |
transcript.conversation, summarization.summary
|
zendesk.ticket.id, zendesk.enduser.*
|
Legacy Zendesk integration only |
integration.zendesk_v2.ticket.id, integration.zendesk_v2.enduser.*
|
app.inputReader.*, app.simpleMenu.*
|
Legacy modules (still work) |
app.inputReaderV2.* (New Input Reader) |
7. Common pitfalls
- A placeholder appears literally in a ticket or e-mail → the expression was empty or does not exist at that event, or its name contains a space or another unsupported character.
-
call.fromon callbacks and outbound calls is your own number. For the customer's number usecall.caller.numberorconsumer.number; in the Transfer module choose The original caller's number. -
Unix times are in milliseconds (
core.time,queue.call.age.unix). Multiply a Unix time in seconds by 1000 before comparing. -
Decimal values and eq:
5.0eq5is false. Use lt / gt forqueue.waitTime,call.durationand similar. -
Spelling of state values: lower case with hyphens in values (
no-answer), underscores in the true/false names (call.state.no_answer). -
sampler.random10/random100never reach 10 / 100; the largest values are 9 and 99. - Hyphens in session variable names cannot be used in conditions or templates — use underscores.
-
Lists (
agent.tags,agent.groups,call.recording.tags) need contains, not eq.
8. Related: task automation templates
Task automation templates (Automations › Task automations) use a different syntax with double braces, for example {{task.body.call_id}} or {{env.babelforce.url}}. The expressions in this article are not available inside a task directly — pass the values you need into the task body, for example "body.call_id": "{call.id}". See Task templates explained.
Related to
Comments
0 comments
Please sign in to leave a comment.