Configure conditions
Last updated: September 9, 2026
Conditions determine whether a workflow is executed. All conditions must be met (AND logic).
Condition Structure
Each condition consists of:
{
"field": "message_content",
"operator": "contains",
"value": "billing"
}
Available Fields
Conversation Fields
| Field | Description | Example Values |
|---|---|---|
conversation_status | Current status | open, assigned, closed |
conversation_priority | Current priority | low, normal, high, urgent |
widget_id | Widget ID | "1", "5" |
department_id | Department ID | "2", "3" |
assigned_user_id | Assigned agent | "10", "" (empty = not assigned) |
Message Fields (only for message.received)
| Field | Description | Example Values |
|---|---|---|
message_content | Message text | Free text |
sender_type | Sender type | visitor, agent, bot |
Custom Fields
Additional fields can be checked via EventData (e.g., visitor metadata).
Operators
| Operator | Description | Example |
|---|---|---|
equals | Exact match (case-insensitive) | priority equals "high" |
not_equals | Not equal | status not_equals "closed" |
contains | Contains substring | message_content contains "help" |
not_contains | Does not contain | message_content not_contains "spam" |
starts_with | Starts with | message_content starts_with "Urgent:" |
ends_with | Ends with | — |
is_empty | Field is empty | assigned_user_id is_empty |
is_not_empty | Field is not empty | department_id is_not_empty |
Multiple Conditions
All conditions are linked with AND. If you need OR logic, create separate workflows with different conditions.
Example: "Message contains 'billing' AND priority is not 'urgent'"
[
{"field": "message_content", "operator": "contains", "value": "billing"},
{"field": "conversation_priority", "operator": "not_equals", "value": "urgent"}
]
No Conditions
If you do not define any conditions, the workflow will be executed every time the trigger event occurs.