Skip to main content

CEL variables

Types can change by context. In particular, now is a timestamp on the shared clock contexts and an integer-parts map for computed Form fields. See contexts.

actor​

VariableTypeMeaningContexts
actor.emailstringEmail of the Member who performed the actionSet 9
actor.external_idstringExternal ID of the Member who performed the actionSet 9
actor.first_namestringFirst name of the Member who performed the actionSet 9
actor.idnumberID of the Member who performed the actionSet 9
actor.last_namestringLast name of the Member who performed the actionSet 9
actor.namestringName of the Member who performed the actionSet 9
actor.phonestringPhone of the Member who performed the actionSet 9

assignment​

VariableTypeMeaningContexts
assignment.created_attimestampWhen the assignment was created. Supports timestamp comparison and duration arithmetic (e.g. now > assignment.created_at + duration("4h")). Use string(assignment.created_at) for string comparison.Set 8
assignment.idnumberAssignment IDSet 8
assignment.is_testbooleanWhether this is a test assignmentSet 22
assignment.outcomestringAssignment outcomeSet 22
assignment.statusstringAssignment statusSet 22
assignment.uuidstringAssignment UUIDSet 8
assignment.workflow_idnumberWorkflow this conversation belongs toSet 21

assignment_data_records​

VariableTypeMeaningContexts
assignment_data_records.countnumberNumber of data records attached to the AssignmentSet 22
assignment_data_records.dataobjectField values of the Assignment's records, keyed by Form slug — every routing mode, unlike record.data. Only Forms the run actually wrote are keys, so guard a Form that may be absent: has(assignment_data_records.data.intake.status)Set 24
assignment_data_records.slugslistForm slugs attached to the AssignmentSet 22

assignment_tasks​

VariableTypeMeaningContexts
assignment_tasks.currentstringName of the current TaskSet 22
assignment_tasks.visitedlistNames of visited TasksSet 22
assignment_tasks.visited_countnumberNumber of visited TasksSet 22

call​

VariableTypeMeaningContexts
call.answered_bystringAnswering-party classificationSet 13
call.caller_numberstringCaller phone numberSet 13
call.dispositionstringCall completion dispositionSet 13

chat​

VariableTypeMeaningContexts
chat.channelstringChannel the Chat arrived on (phone-sms, phone-voice, phone-whatsapp, email, web-chat, …)Set 6
chat.channelstringChat channelSet 22
chat.chat_typestringChat type (assignment, dm, manager, …)Set 6
chat.duration_secondsnumberChat duration in secondsSet 22
chat.escalatedbooleanWhether the agent handed this conversation to a human. Lets Agent Handoff Rate be a deterministic expression instead of an LLM rubric. Recorded whether or not the escalation pauses the chat, so it does not depend on 'pause on escalate'.Set 21
chat.escalation_countnumberHow many distinct times this conversation asked for a person. Re-raising an escalation that is still open does not count again, so this is handoffs, not tool invocations.Set 21
chat.escalation_reason_codesarrayEscalations-by-type: the workspace-configured reason slugs on this conversation's escalations, deduped and sorted so a grouping is stable. Empty until reason lists are configured.Set 21
chat.idnumberChat IDSet 6
chat.is_testbooleanWhether the Chat is a test ChatSet 6
chat.message_countnumberNumber of messages in the ChatSet 22
chat.pausedbooleanWhether the Chat is pausedSet 6
chat.titlestringChat title ("" when the Chat has none)Set 6
chat.uuidstringChat UUIDSet 6

configuration_blockers​

VariableTypeMeaningContexts
configuration_blockerslistDetected workflow configuration blockersSet 22

current_date​

VariableTypeMeaningContexts
current_datestringCurrent date (YYYY-MM-DD)Set 5

current_time​

VariableTypeMeaningContexts
current_timestringCurrent time (HH:MM)Set 5

datetime​

VariableTypeMeaningContexts
datetime.day_of_monthnumberDay of month (1-31), workspace timezoneSet 5
datetime.day_of_weeknumberDay of week (0=Monday, 6=Sunday), workspace timezoneSet 5
datetime.has_member_timezonebooleanWhether the member has their own timezone. False means the datetime.member_* fields fell back to workspace time.Set 5
datetime.hournumberCurrent hour (0-23), workspace timezone. Compare as a range, e.g. datetime.hour >= 9 && datetime.hour < 12. Evaluated once, at the instant the event is dispatched — an equality test (== N) DROPS the action whenever the dispatch lands on any other value, and the step/rule still reports success. Use a range instead, and for Journey send windows use the Journey's Active Hours setting, which holds a step until it is in-window rather than discarding it.Set 5
datetime.member_day_of_monthnumberDay of month (1-31) in the member's own timezoneSet 5
datetime.member_day_of_weeknumberDay of week (0=Monday, 6=Sunday) in the member's own timezoneSet 5
datetime.member_hournumberCurrent hour (0-23) in the member's own timezone. Use this for member-local cadences — as a range, e.g. datetime.member_hour >= 9 && datetime.member_hour < 12. Evaluated once, at the instant the event is dispatched — an equality test (== N) DROPS the action whenever the dispatch lands on any other value, and the step/rule still reports success. Use a range instead, and for Journey send windows use the Journey's Active Hours setting, which holds a step until it is in-window rather than discarding it. datetime.hour is workspace time. Falls back to workspace time when the member has no timezone — guard with datetime.has_member_timezone when that matters.Set 5
datetime.member_minutenumberCurrent minute (0-59) in the member's own timezone. Evaluated once, at the instant the event is dispatched — an equality test (== N) DROPS the action whenever the dispatch lands on any other value, and the step/rule still reports success. Use a range instead, and for Journey send windows use the Journey's Active Hours setting, which holds a step until it is in-window rather than discarding it.Set 5
datetime.member_monthnumberMonth (1-12) in the member's own timezoneSet 5
datetime.member_secondnumberCurrent second (0-59) in the member's own timezone. Evaluated once, at the instant the event is dispatched — an equality test (== N) DROPS the action whenever the dispatch lands on any other value, and the step/rule still reports success. Use a range instead, and for Journey send windows use the Journey's Active Hours setting, which holds a step until it is in-window rather than discarding it.Set 5
datetime.member_timestamptimestampCurrent timestamp rendered in the member's own timezone — the same instant as now and datetime.timestamp. Supports timestamp comparison and duration arithmetic (e.g. x + duration("4h")).Set 5
datetime.member_timezonestringIANA timezone the datetime.member_* fields were resolved in — the member's own timezone, or the workspace timezone when the member has none.Set 5
datetime.member_yearnumberCurrent year in the member's own timezoneSet 5
datetime.minutenumberCurrent minute (0-59), workspace timezone. Evaluated once, at the instant the event is dispatched — an equality test (== N) DROPS the action whenever the dispatch lands on any other value, and the step/rule still reports success. Use a range instead, and for Journey send windows use the Journey's Active Hours setting, which holds a step until it is in-window rather than discarding it.Set 5
datetime.monthnumberMonth (1-12), workspace timezoneSet 5
datetime.timestamptimestampCurrent timestamp — the same instant as now. Supports timestamp comparison and duration arithmetic (e.g. x + duration("4h")). Use string(datetime.timestamp) for string comparison.Set 5
datetime.yearnumberCurrent year, workspace timezoneSet 5

effect_intents​

VariableTypeMeaningContexts
effect_intents.eventslistEffects this test run TRIED to perform and a capability door recorded instead (IDs and closed values only; never content, addresses or URLs). Each item is {id, capability, status, task_id, payload}; payload depends on capability — "notification_delivery": {recipient_member_id, intervention_request_id, requested_channels, eligible_channels, prepared_channels, preparation}; "sms_whatsapp_send": {channel, purpose, recipient_member_id, sender_phone_number_id, media_attached}; "workspace_email_delivery": {delivery ("send"/"reply"), inbox_id, recipients [{role (to/cc/bcc), member_id}]}; "pstn_originate": {target_chat_id, phone_call_id, target_member_id, phone_number_id, workflow_id}; "webhook_delivery": {event_rule_id, event_type, event_id, submission}; "journey_enrollment": {journey_id, member_id, member_journey_id, event_rule_id, disposition ("created"/"reenrolled"/"already_enrolled"/"refused"), reason} — reason is a closed refusal code, set only when disposition is "refused", and member_journey_id is set only when an enrollment exists. status "simulated" means prepared and refused at the door — never delivered. A webhook also records status "enqueued" when Temporal accepted the delivery (submission says how); its "simulated" row with the same event_id appears only once the delivery activity has run, so its absence means not observed YET, not failed. Guard payload fields by capability: effect_intents.events.exists(e, e.capability == "sms_whatsapp_send" && e.status == "simulated" && e.payload.channel == "sms").Set 24
effect_intents.recording_failedbooleanTrue when an effect this run attempted could NOT be recorded, so the list is known to be missing it (implies truncated). Such a run is recorded as an instrument failure and is not graded; a criterion never needs to special-case it.Set 24
effect_intents.truncatedbooleanTrue when the recorded set is incomplete (over the read bound, or a row this build cannot read). A criterion that needs every intent — e.g. "nothing else was attempted" — must also require !effect_intents.truncated. An empty list cannot tell a run that attempted nothing from one recorded before this feature.Set 24

fax​

VariableTypeMeaningContexts
fax.connection_idnumberDocumo connection that received the fax (0 when the fax arrived on a workspace phone number)Set 14
fax.filenamestringFilename of the stored PDF (empty string when absent)Set 14
fax.idnumberInbound fax IDSet 14
fax.page_countnumberNumber of pages received (0 when the provider reported none)Set 14
fax.pdf_file_idnumberFile ID of the received PDF (0 when absent)Set 14
fax.phone_number_idnumberWorkspace phone number that received the fax (0 when the fax arrived through a Documo connection)Set 14
fax.received_atstringISO 8601 timestamp of when the fax became durably stored (empty string when it never did)Set 14
fax.sender_csidstringStation identifier the sending fax machine transmitted about itself. Entirely self-declared — provenance, never identity. Empty string when unavailable.Set 14
fax.sender_numberstringCalling number the provider reported. An unauthenticated, spoofable claim by the sender — provenance, never identity. Empty string when unavailable.Set 14
fax.sourcestringEndpoint the fax arrived on: documo or phone_numberSet 14
fax.statusstringIngestion status: pending, received, or failedSet 14
fax.tiff_file_idnumberFile ID of the original raster, when the provider supplied one (0 otherwise)Set 14
fax.uuidstringInbound fax UUIDSet 14

is_business_hours​

VariableTypeMeaningContexts
is_business_hoursbooleanWhether current time is within business hoursSet 5

journey​

VariableTypeMeaningContexts
journey.enrolled_attimestampTimestamp when the member was enrolled. Supports days_since(...) and now > journey.enrolled_at + duration("72h").Set 15
journey.idnumberJourney IDSet 15
journey.namestringJourney nameSet 15
journey.position.entered_attimestampTimestamp when this enrollment entered its current position — when the current touch became eligible, or when the member completed the previous touch and began waiting for the next one. Null when the step ledger has no timestamp for it, in which case a time comparison is false and the ending does not apply. Use it for stall rules such as days_since(journey.position.entered_at) >= 7.Set 20
journey.statusstringMember's journey status (active, completed, exited)Set 15
journey.step_idnumberCurrent step IDSet 15
journey.step_namestringCurrent step nameSet 15

member​

VariableTypeMeaningContexts
member.agenumberMember age in whole yearsSet 3
member.date_of_birthstringMember date of birth (YYYY-MM-DD)Set 3
member.emailstringMember email addressSet 4
member.emailstringMember's email addressSet 23
member.fieldsobjectCustom MemberField values keyed by the raw "{namespace}:{key}" string (CSV import, Monday sync, connection-owned IDs). Keys contain ':' so bracket access is required — e.g. member.fields["salesforce:id"] == "001..." or "fhir:patient_id" in member.fields.Set 4
member.fields["namespace:key"]stringCustom MemberField values keyed by the raw "{namespace}:{key}" string (CSV import, Monday sync, connection-owned IDs). Keys contain ':' so bracket access is required — e.g. member.fields["salesforce:id"] == "001..." or "fhir:patient_id" in member.fields.Set 4
member.first_namestringMember first nameSet 4
member.form_dataobjectMember's custom form data fieldsSet 4
member.idnumberMember IDSet 1
member.idnumberMember the chat belongs toSet 21
member.idnumberWorkspace member IDSet 23
member.is_testbooleanWhether this is a test MemberSet 21
member.labelslistList of label slug strings applied to the member. Each element is a plain string (e.g. "active"). Use '"slug" in member.labels' or 'member.labels.exists(l, l == "slug")' — NOT 'l.slug' (labels are strings, not objects).Set 1
member.last_namestringMember last nameSet 4
member.namestringMember full nameSet 1
member.namestringMember's full nameSet 23
member.phonestringMember phone numberSet 4
member.phonestringMember's phone numberSet 23

message​

VariableTypeMeaningContexts
messagestringThe message content (for message events)Set 11

messages​

VariableTypeMeaningContexts
messageslistNormalized Chat messagesSet 22

now​

VariableTypeMeaningContexts
nowtimestampCurrent timestamp. Use for time gates such as now > parent_step.completed_at + duration("4h"). Compare against a string literal with string(now) > "2026-01-01".Set 5
now.daynumberCurrent day of month (1-31)Set 2
now.hournumberCurrent hour (0-23)Set 2
now.minutenumberCurrent minute (0-59)Set 2
now.monthnumberCurrent month (1-12)Set 2
now.secondnumberCurrent second (0-59)Set 2
now.weekdaynumberCurrent weekday (0=Monday, 6=Sunday)Set 2
now.yearnumberCurrent yearSet 2

parent_step​

VariableTypeMeaningContexts
parent_step.activated_attimestampTimestamp when parent step became in-progressSet 18
parent_step.completed_attimestampTimestamp when the parent step completed (null if not completed). Supports days_since(parent_step.completed_at) >= 7 and now > parent_step.completed_at + duration("4h").Set 18
parent_step.eligible_attimestampTimestamp when parent step became eligibleSet 18
parent_step.namestringParent step nameSet 18
parent_step.statusstringParent step status (completed, skipped, timed_out, failed)Set 18

pmd_pages​

VariableTypeMeaningContexts
pmd_pageslistPHI-free completeness of send_charleston_pmd_page calls. Each item is {call_kind, complete, missing} where missing is required field names from the integration's per-kind set — never values. Empty when the run sent no page. Grade with pmd_pages.exists(p, p.call_kind == "hospital_consult_call" && p.complete).Set 24

record​

VariableTypeMeaningContexts
record.created_atstringRecord creation timestampSet 10
record.dataobjectStrict-workflow session Form dataSet 22
record.external_idstringRecord external IDSet 10
record.idnumberRecord IDSet 10
record.updated_atstringRecord last update timestampSet 10

scenario​

VariableTypeMeaningContexts
scenario.channelstringScenario channelSet 24
scenario.goalstringScenario goalSet 24
scenario.namestringScenario nameSet 24
scenario.slugstringScenario slugSet 24

source​

VariableTypeMeaningContexts
source.agenumberMember age in whole yearsSet 23
source.archivedstringWhether the member is archived ('true'/'false')Set 23
source.created_atstringISO timestamp when the member was createdSet 23
source.created_atstringRemote item creation timestampSet 17
source.date_of_birthstringMember date of birth (YYYY-MM-DD)Set 23
source.emailstringEmail (auto-promoted from email-typed columns)Set 17
source.emailstringEmail addressSet 23
source.external_idstringExternal ID of the memberSet 23
source.fieldsobjectManaged fields keyed by field keySet 23
source.form_dataobjectForm data keyed by DataType slug, then field slugSet 23
source.idstringWorkspace member ID (as string)Set 23
source.item_idstringRemote item IDSet 17
source.labelsobjectMember labels keyed by label nameSet 23
source.member_typestringMember typeSet 23
source.namestringMember nameSet 23
source.namestringRemote item/record nameSet 17
source.phonestringPhone (auto-promoted from phone-typed columns)Set 17
source.phonestringPhone numberSet 23
source.rolestringMember role nameSet 23
source.uuidstringMember UUIDSet 23

strict_trace​

VariableTypeMeaningContexts
strict_trace.attempted_commandsarrayEvery strict command invoke attempt (incl. unavailable)Set 22
strict_trace.commandsarrayStrict-workflow commands successfully invoked, in orderSet 22
strict_trace.eventsarrayFull strict execution trace (type / name / task_id / status / payload)Set 22
strict_trace.task_patharrayTask names entered by the strict engine, in orderSet 22

task​

VariableTypeMeaningContexts
task.idnumberTask IDSet 7
task.namestringTask nameSet 7
task.uuidstringTask UUIDSet 7

testChatRun​

VariableTypeMeaningContexts
testChatRun.driverMemberIdnumberMember ID for a human-driven test ChatSet 24
testChatRun.driverModestringTest Chat driver modeSet 24

tool_invocations​

VariableTypeMeaningContexts
tool_invocationslistList of tools invoked this turn. Each entry has 'name' (string) and 'args' (map). Use .exists() / .size() for conditions.Set 19
tool_invocations.exists(t, t.name == "tool_name" && has(t.args.field))booleanCheck if a tool was called with a specific argumentSet 19
tool_invocations.exists(t, t.name == "tool_name" && t.result == "true")booleanCheck if a tool returned a specific value. 'result' holds the raw ToolMessage content (typically a string; may be a list of content blocks for multi-modal tools). Use 'has(t.result)' to guard against tools whose result hasn't landed yet.Set 19
tool_invocations.exists(t, t.name == "tool_name")booleanCheck if a specific tool was called this turnSet 19
tool_invocations.size()numberNumber of tools invoked this turnSet 19

tool_results​

VariableTypeMeaningContexts
tool_resultslistSummaries of tool results in the ChatSet 22

transcript​

VariableTypeMeaningContexts
transcriptlistChat transcript entriesSet 22

value​

VariableTypeMeaningContexts
valueanyThe current field's value being validatedSet 16

webhook​

VariableTypeMeaningContexts
webhook.board_idstringWebhook board/container IDSet 12
webhook.item_idstringWebhook item identifierSet 12
webhook.item_namestringWebhook item name/titleSet 12
webhook.sourcestringWebhook source identifierSet 12

workflow​

VariableTypeMeaningContexts
workflow.idnumberWorkflow IDSet 7
workflow.namestringWorkflow nameSet 7
workflow.uuidstringWorkflow UUIDSet 7

Context availability​

Availability Set 1​

Computed Form field, Event Rule: assignment:concluded, Event Rule: calendar_event:cancelled, Event Rule: calendar_event:created, Event Rule: calendar_event:ended, Event Rule: calendar_event:no_show, Event Rule: calendar_event:starting, Event Rule: calendar_event:updated, Event Rule: call:completed, Event Rule: call:started, Event Rule: call:summary, Event Rule: chat:callback, Event Rule: chat:created, Event Rule: chat:summary, Event Rule: connector:event, Event Rule: data_record:changed, Event Rule: data_record:created, Event Rule: data_record:updated, Event Rule: fax:received, Event Rule: journey:completed, Event Rule: journey:enrolled, Event Rule: journey_step:execute, Event Rule: link:clicked, Event Rule: member:updated, Event Rule: message:created, Event Rule: routine:triggered, Event Rule: task:command, Event Rule: task:enter, Event Rule: task:execute, Event Rule: task:exit, Event Rule: voicemail:received, Event Rule: workflow:assistant_message, Event Rule: workflow:execute, Event Rule: workflow:user_message, Event Rule: workspace:member_joined, Event Rule: workspace:member_left, Experiment eligibility, Form field validation, Journey edge, Journey goal, Journey v2 edge, Journey v2 ending, Journey v2 goal, Message validation: assignment:concluded, Message validation: calendar_event:cancelled, Message validation: calendar_event:created, Message validation: calendar_event:ended, Message validation: calendar_event:no_show, Message validation: calendar_event:starting, Message validation: calendar_event:updated, Message validation: call:completed, Message validation: call:started, Message validation: call:summary, Message validation: chat:callback, Message validation: chat:created, Message validation: chat:summary, Message validation: connector:event, Message validation: data_record:changed, Message validation: data_record:created, Message validation: data_record:updated, Message validation: fax:received, Message validation: journey:completed, Message validation: journey:enrolled, Message validation: journey_step:execute, Message validation: link:clicked, Message validation: member:updated, Message validation: message:created, Message validation: routine:triggered, Message validation: task:command, Message validation: task:enter, Message validation: task:execute, Message validation: task:exit, Message validation: voicemail:received, Message validation: workflow:assistant_message, Message validation: workflow:execute, Message validation: workflow:user_message, Message validation: workspace:member_joined, Message validation: workspace:member_left, Metric criterion, Task Ability, Task edge, Task guard, Workflow Ability

Availability Set 2​

Computed Form field, Form field validation

Availability Set 3​

Event Rule: assignment:concluded, Event Rule: calendar_event:cancelled, Event Rule: calendar_event:created, Event Rule: calendar_event:ended, Event Rule: calendar_event:no_show, Event Rule: calendar_event:starting, Event Rule: calendar_event:updated, Event Rule: call:completed, Event Rule: call:started, Event Rule: call:summary, Event Rule: chat:callback, Event Rule: chat:created, Event Rule: chat:summary, Event Rule: connector:event, Event Rule: data_record:changed, Event Rule: data_record:created, Event Rule: data_record:updated, Event Rule: fax:received, Event Rule: journey:completed, Event Rule: journey:enrolled, Event Rule: journey_step:execute, Event Rule: link:clicked, Event Rule: member:updated, Event Rule: message:created, Event Rule: routine:triggered, Event Rule: task:command, Event Rule: task:enter, Event Rule: task:execute, Event Rule: task:exit, Event Rule: voicemail:received, Event Rule: workflow:assistant_message, Event Rule: workflow:execute, Event Rule: workflow:user_message, Event Rule: workspace:member_joined, Event Rule: workspace:member_left, Experiment eligibility, Journey edge, Journey goal, Journey v2 edge, Journey v2 ending, Journey v2 goal, Message validation: assignment:concluded, Message validation: calendar_event:cancelled, Message validation: calendar_event:created, Message validation: calendar_event:ended, Message validation: calendar_event:no_show, Message validation: calendar_event:starting, Message validation: calendar_event:updated, Message validation: call:completed, Message validation: call:started, Message validation: call:summary, Message validation: chat:callback, Message validation: chat:created, Message validation: chat:summary, Message validation: connector:event, Message validation: data_record:changed, Message validation: data_record:created, Message validation: data_record:updated, Message validation: fax:received, Message validation: journey:completed, Message validation: journey:enrolled, Message validation: journey_step:execute, Message validation: link:clicked, Message validation: member:updated, Message validation: message:created, Message validation: routine:triggered, Message validation: task:command, Message validation: task:enter, Message validation: task:execute, Message validation: task:exit, Message validation: voicemail:received, Message validation: workflow:assistant_message, Message validation: workflow:execute, Message validation: workflow:user_message, Message validation: workspace:member_joined, Message validation: workspace:member_left, Metric criterion, Outbound sync filter, Task Ability, Task edge, Task guard, Workflow Ability

Availability Set 4​

Event Rule: assignment:concluded, Event Rule: calendar_event:cancelled, Event Rule: calendar_event:created, Event Rule: calendar_event:ended, Event Rule: calendar_event:no_show, Event Rule: calendar_event:starting, Event Rule: calendar_event:updated, Event Rule: call:completed, Event Rule: call:started, Event Rule: call:summary, Event Rule: chat:callback, Event Rule: chat:created, Event Rule: chat:summary, Event Rule: connector:event, Event Rule: data_record:changed, Event Rule: data_record:created, Event Rule: data_record:updated, Event Rule: fax:received, Event Rule: journey:completed, Event Rule: journey:enrolled, Event Rule: journey_step:execute, Event Rule: link:clicked, Event Rule: member:updated, Event Rule: message:created, Event Rule: routine:triggered, Event Rule: task:command, Event Rule: task:enter, Event Rule: task:execute, Event Rule: task:exit, Event Rule: voicemail:received, Event Rule: workflow:assistant_message, Event Rule: workflow:execute, Event Rule: workflow:user_message, Event Rule: workspace:member_joined, Event Rule: workspace:member_left, Experiment eligibility, Journey edge, Journey goal, Journey v2 edge, Journey v2 ending, Journey v2 goal, Message validation: assignment:concluded, Message validation: calendar_event:cancelled, Message validation: calendar_event:created, Message validation: calendar_event:ended, Message validation: calendar_event:no_show, Message validation: calendar_event:starting, Message validation: calendar_event:updated, Message validation: call:completed, Message validation: call:started, Message validation: call:summary, Message validation: chat:callback, Message validation: chat:created, Message validation: chat:summary, Message validation: connector:event, Message validation: data_record:changed, Message validation: data_record:created, Message validation: data_record:updated, Message validation: fax:received, Message validation: journey:completed, Message validation: journey:enrolled, Message validation: journey_step:execute, Message validation: link:clicked, Message validation: member:updated, Message validation: message:created, Message validation: routine:triggered, Message validation: task:command, Message validation: task:enter, Message validation: task:execute, Message validation: task:exit, Message validation: voicemail:received, Message validation: workflow:assistant_message, Message validation: workflow:execute, Message validation: workflow:user_message, Message validation: workspace:member_joined, Message validation: workspace:member_left, Metric criterion, Task Ability, Task edge, Task guard, Workflow Ability

Availability Set 5​

Event Rule: assignment:concluded, Event Rule: calendar_event:cancelled, Event Rule: calendar_event:created, Event Rule: calendar_event:ended, Event Rule: calendar_event:no_show, Event Rule: calendar_event:starting, Event Rule: calendar_event:updated, Event Rule: call:completed, Event Rule: call:started, Event Rule: call:summary, Event Rule: chat:callback, Event Rule: chat:created, Event Rule: chat:summary, Event Rule: connector:event, Event Rule: data_record:changed, Event Rule: data_record:created, Event Rule: data_record:updated, Event Rule: fax:received, Event Rule: journey:completed, Event Rule: journey:enrolled, Event Rule: journey_step:execute, Event Rule: link:clicked, Event Rule: member:updated, Event Rule: message:created, Event Rule: routine:triggered, Event Rule: task:command, Event Rule: task:enter, Event Rule: task:execute, Event Rule: task:exit, Event Rule: voicemail:received, Event Rule: workflow:assistant_message, Event Rule: workflow:execute, Event Rule: workflow:user_message, Event Rule: workspace:member_joined, Event Rule: workspace:member_left, Experiment eligibility, Journey edge, Journey goal, Journey v2 edge, Journey v2 ending, Journey v2 goal, Message validation: assignment:concluded, Message validation: calendar_event:cancelled, Message validation: calendar_event:created, Message validation: calendar_event:ended, Message validation: calendar_event:no_show, Message validation: calendar_event:starting, Message validation: calendar_event:updated, Message validation: call:completed, Message validation: call:started, Message validation: call:summary, Message validation: chat:callback, Message validation: chat:created, Message validation: chat:summary, Message validation: connector:event, Message validation: data_record:changed, Message validation: data_record:created, Message validation: data_record:updated, Message validation: fax:received, Message validation: journey:completed, Message validation: journey:enrolled, Message validation: journey_step:execute, Message validation: link:clicked, Message validation: member:updated, Message validation: message:created, Message validation: routine:triggered, Message validation: task:command, Message validation: task:enter, Message validation: task:execute, Message validation: task:exit, Message validation: voicemail:received, Message validation: workflow:assistant_message, Message validation: workflow:execute, Message validation: workflow:user_message, Message validation: workspace:member_joined, Message validation: workspace:member_left, Task Ability, Task edge, Task guard, Workflow Ability

Availability Set 6​

Event Rule: assignment:concluded, Event Rule: calendar_event:cancelled, Event Rule: calendar_event:created, Event Rule: calendar_event:ended, Event Rule: calendar_event:no_show, Event Rule: calendar_event:starting, Event Rule: calendar_event:updated, Event Rule: call:completed, Event Rule: call:started, Event Rule: call:summary, Event Rule: chat:callback, Event Rule: chat:created, Event Rule: chat:summary, Event Rule: connector:event, Event Rule: message:created, Event Rule: task:command, Event Rule: task:enter, Event Rule: task:execute, Event Rule: task:exit, Event Rule: voicemail:received, Event Rule: workflow:assistant_message, Event Rule: workflow:execute, Event Rule: workflow:user_message, Journey edge, Journey v2 edge, Journey v2 ending, Message validation: assignment:concluded, Message validation: calendar_event:cancelled, Message validation: calendar_event:created, Message validation: calendar_event:ended, Message validation: calendar_event:no_show, Message validation: calendar_event:starting, Message validation: calendar_event:updated, Message validation: call:completed, Message validation: call:started, Message validation: call:summary, Message validation: chat:callback, Message validation: chat:created, Message validation: chat:summary, Message validation: connector:event, Message validation: message:created, Message validation: task:command, Message validation: task:enter, Message validation: task:execute, Message validation: task:exit, Message validation: voicemail:received, Message validation: workflow:assistant_message, Message validation: workflow:execute, Message validation: workflow:user_message, Task Ability, Task edge, Task guard, Workflow Ability

Availability Set 7​

Event Rule: assignment:concluded, Event Rule: calendar_event:cancelled, Event Rule: calendar_event:created, Event Rule: calendar_event:ended, Event Rule: calendar_event:no_show, Event Rule: calendar_event:starting, Event Rule: calendar_event:updated, Event Rule: connector:event, Event Rule: task:command, Event Rule: task:enter, Event Rule: task:execute, Event Rule: task:exit, Event Rule: voicemail:received, Event Rule: workflow:assistant_message, Event Rule: workflow:execute, Event Rule: workflow:user_message, Journey edge, Journey v2 edge, Journey v2 ending, Message validation: assignment:concluded, Message validation: calendar_event:cancelled, Message validation: calendar_event:created, Message validation: calendar_event:ended, Message validation: calendar_event:no_show, Message validation: calendar_event:starting, Message validation: calendar_event:updated, Message validation: connector:event, Message validation: task:command, Message validation: task:enter, Message validation: task:execute, Message validation: task:exit, Message validation: voicemail:received, Message validation: workflow:assistant_message, Message validation: workflow:execute, Message validation: workflow:user_message, Task Ability, Task edge, Task guard, Workflow Ability

Availability Set 8​

Event Rule: assignment:concluded, Event Rule: calendar_event:cancelled, Event Rule: calendar_event:created, Event Rule: calendar_event:ended, Event Rule: calendar_event:no_show, Event Rule: calendar_event:starting, Event Rule: calendar_event:updated, Event Rule: connector:event, Event Rule: task:command, Event Rule: task:enter, Event Rule: task:execute, Event Rule: task:exit, Event Rule: voicemail:received, Journey edge, Journey v2 edge, Journey v2 ending, Message validation: assignment:concluded, Message validation: calendar_event:cancelled, Message validation: calendar_event:created, Message validation: calendar_event:ended, Message validation: calendar_event:no_show, Message validation: calendar_event:starting, Message validation: calendar_event:updated, Message validation: connector:event, Message validation: task:command, Message validation: task:enter, Message validation: task:execute, Message validation: task:exit, Message validation: voicemail:received, Task Ability, Task edge, Task guard, Workflow Ability

Availability Set 9​

Event Rule: calendar_event:cancelled, Event Rule: calendar_event:created, Event Rule: calendar_event:ended, Event Rule: calendar_event:no_show, Event Rule: calendar_event:starting, Event Rule: calendar_event:updated, Event Rule: connector:event, Event Rule: data_record:changed, Event Rule: data_record:created, Event Rule: data_record:updated, Event Rule: member:updated, Event Rule: voicemail:received, Message validation: calendar_event:cancelled, Message validation: calendar_event:created, Message validation: calendar_event:ended, Message validation: calendar_event:no_show, Message validation: calendar_event:starting, Message validation: calendar_event:updated, Message validation: connector:event, Message validation: data_record:changed, Message validation: data_record:created, Message validation: data_record:updated, Message validation: member:updated, Message validation: voicemail:received

Availability Set 10​

Event Rule: calendar_event:cancelled, Event Rule: calendar_event:created, Event Rule: calendar_event:ended, Event Rule: calendar_event:no_show, Event Rule: calendar_event:starting, Event Rule: calendar_event:updated, Event Rule: connector:event, Event Rule: data_record:changed, Event Rule: data_record:created, Event Rule: data_record:updated, Event Rule: task:enter, Event Rule: task:exit, Event Rule: voicemail:received, Message validation: calendar_event:cancelled, Message validation: calendar_event:created, Message validation: calendar_event:ended, Message validation: calendar_event:no_show, Message validation: calendar_event:starting, Message validation: calendar_event:updated, Message validation: connector:event, Message validation: data_record:changed, Message validation: data_record:created, Message validation: data_record:updated, Message validation: task:enter, Message validation: task:exit, Message validation: voicemail:received

Availability Set 11​

Event Rule: calendar_event:cancelled, Event Rule: calendar_event:created, Event Rule: calendar_event:ended, Event Rule: calendar_event:no_show, Event Rule: calendar_event:starting, Event Rule: calendar_event:updated, Event Rule: connector:event, Event Rule: message:created, Event Rule: voicemail:received, Message validation: assignment:concluded, Message validation: calendar_event:cancelled, Message validation: calendar_event:created, Message validation: calendar_event:ended, Message validation: calendar_event:no_show, Message validation: calendar_event:starting, Message validation: calendar_event:updated, Message validation: call:completed, Message validation: call:started, Message validation: call:summary, Message validation: chat:callback, Message validation: chat:created, Message validation: chat:summary, Message validation: connector:event, Message validation: data_record:changed, Message validation: data_record:created, Message validation: data_record:updated, Message validation: fax:received, Message validation: journey:completed, Message validation: journey:enrolled, Message validation: journey_step:execute, Message validation: link:clicked, Message validation: member:updated, Message validation: message:created, Message validation: routine:triggered, Message validation: task:command, Message validation: task:enter, Message validation: task:execute, Message validation: task:exit, Message validation: voicemail:received, Message validation: workflow:assistant_message, Message validation: workflow:execute, Message validation: workflow:user_message, Message validation: workspace:member_joined, Message validation: workspace:member_left

Availability Set 12​

Event Rule: calendar_event:cancelled, Event Rule: calendar_event:created, Event Rule: calendar_event:ended, Event Rule: calendar_event:no_show, Event Rule: calendar_event:starting, Event Rule: calendar_event:updated, Event Rule: connector:event, Event Rule: voicemail:received, Message validation: calendar_event:cancelled, Message validation: calendar_event:created, Message validation: calendar_event:ended, Message validation: calendar_event:no_show, Message validation: calendar_event:starting, Message validation: calendar_event:updated, Message validation: connector:event, Message validation: voicemail:received

Availability Set 13​

Event Rule: call:completed, Event Rule: call:started, Event Rule: call:summary, Event Rule: task:command, Event Rule: task:enter, Event Rule: task:execute, Event Rule: task:exit, Message validation: call:completed, Message validation: call:started, Message validation: call:summary, Message validation: task:command, Message validation: task:enter, Message validation: task:execute, Message validation: task:exit

Availability Set 14​

Event Rule: fax:received, Message validation: fax:received

Availability Set 15​

Event Rule: journey:completed, Event Rule: journey:enrolled, Event Rule: journey_step:execute, Journey edge, Journey goal, Journey v2 edge, Journey v2 ending, Journey v2 goal, Message validation: journey:completed, Message validation: journey:enrolled, Message validation: journey_step:execute

Availability Set 16​

Form field validation, Inbound sync filter, Outbound sync filter

Availability Set 17​

Inbound sync filter

Availability Set 18​

Journey edge, Journey v2 edge

Availability Set 19​

Journey edge, Journey v2 edge, Journey v2 ending, Task Ability, Task edge, Task guard, Workflow Ability

Availability Set 20​

Journey v2 ending

Availability Set 21​

Metric criterion

Availability Set 22​

Metric criterion, Workflow evaluation criterion

Availability Set 23​

Outbound sync filter

Availability Set 24​

Workflow evaluation criterion

Form-dependent collection paths​

Replace form_slug and field_slug with actual slugs. Availability follows the selected context: Assignment collections are not offered on every surface. Field types follow your Form schema.

assignment​

VariableTypeMeaningContexts
assignment.collections.form_slug.countnumberTotal records (Form, current Assignment)Set 1
assignment.collections.form_slug.latest.created_atstringCreation time of latest record (Form, current Assignment)Set 1
assignment.collections.form_slug.latest.data.field_slugtextField (Form, latest, current Assignment)Set 1
assignment.collections.form_slug.latest.external_idstringExternal ID of latest record (Form, current Assignment)Set 1
assignment.collections.form_slug.recentlistUp to 50 records (Form, current Assignment, newest first). Use .exists(r, r.data.field == val) or .filter(r, ...) for list operationsSet 1

member​

VariableTypeMeaningContexts
member.collections.form_slug.countnumberTotal records (Form, Member lifetime)Set 1
member.collections.form_slug.latest.created_atstringCreation time of latest record (Form, Member lifetime)Set 1
member.collections.form_slug.latest.data.field_slugtextField (Form, latest, Member lifetime)Set 1
member.collections.form_slug.latest.external_idstringExternal ID of latest record (Form, Member lifetime)Set 1
member.collections.form_slug.recentlistUp to 50 records (Form, Member lifetime, newest first). Use .exists(r, r.data.field == val) or .filter(r, ...) for list operationsSet 1

Collection Context availability​

Availability Collection Set 1​

Context with matching collection namespace

Dynamic maps​

member.form_data.<form_slug>.<field_slug> contains singular Member Form values. record.data.<field_slug> uses the selected record's Form. member.fields["namespace:key"] uses your Workspace's Member Field keys. Evaluation criteria can expose assignment_data_records.data.<form_slug>.<field_slug>. Webhook and sync source maps follow the integration's payload schema; their arbitrary keys are not a finite global variable list.