How to get a list of all expressions in the system

Christina Dechent
Christina Dechent
  • Updated

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


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

↑ Back to expression list

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

↑ Back to expression list

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.

↑ Back to expression list

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

↑ Back to expression list

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

↑ Back to expression list

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

↑ Back to expression list

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.

↑ Back to expression list

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.

↑ Back to expression list

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), and eq is 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), and eq is 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), and eq is case-sensitive. Write the expectation as shown on this page.

↑ Back to expression list

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

↑ Back to expression list

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), and eq is 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), and eq is case-sensitive. Write the expectation as shown on this page.

↑ Back to expression list

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

↑ Back to expression list

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.

↑ Back to expression list

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.

↑ Back to expression list

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.waitTime is a decimal number of seconds, so eq with a whole number (for example eq 0) never matches. le and ge fail the same way when the value is exactly that number. Use lt or gt instead (for example lt 1 to 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 true matches any number above 0; to test the count, use gt 0 or ge with the number you need.

↑ Back to expression list

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

↑ Back to expression list

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

↑ Back to expression list

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), and eq is case-sensitive. Write the expectation as shown on this page.

↑ Back to expression list

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

↑ Back to expression list

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

↑ Back to expression list

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

↑ Back to expression list

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.

↑ Back to expression list

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), and eq is 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.

↑ Back to expression list

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.

↑ Back to expression list

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.from on callbacks and outbound calls is your own number. For the customer's number use call.caller.number or consumer.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.0 eq 5 is false. Use lt / gt for queue.waitTime, call.duration and 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 / random100 never 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

Was this article helpful?

/

Comments

0 comments

Please sign in to leave a comment.