Settingsintermediate

Conditions and operators reference

Every condition field and operator available when narrowing an automation rule, with notes on AND/OR groups and how conditions relate to branches.

5 min read

Conditions and operators reference

Conditions narrow what an automation reacts to. Without them, every rule fires on every event of its trigger type. With them, you can scope a rule to “only emails from VIP contacts that mention ‘refund’” or “only Done conversations untouched for 14 days.”

Conditions are organized into nested groups joined by AND or OR. Each leaf in a group compares one field against a value using one operator.

Operators

  • equals — Exact match — Any field
  • not equals — Negation of equals — Any field
  • contains — Substring match (case-insensitive) — Text fields
  • not contains — Negation of contains — Text fields
  • starts with — Prefix match — Text fields
  • ends with — Suffix match — Text fields
  • is empty — Field has no value — Any field
  • is not empty — Field has a value — Any field
  • greater than — Numeric or date comparison — Numbers, dates
  • less than — Numeric or date comparison — Numbers, dates

Field categories

The fields available depend on which trigger you picked, but most rules can read from these:

Conversation fields

status, channel, assigned agent, assigned team, language, customer level, subject, tags, created at, last message at, reached a queue, inbox routes to.

Reached a queue is a Yes/No field available on conversation-scoped automation rules. Yes means the call reached a queue during the relevant call context. No is the value to use with Call abandoned in IVR rules.

When you use a value-bearing operator such as equals or not equals with Reached a queue, select either Yes or No. Blank values should not be saved or treated as No.

Inbox routes to is mainly useful on Conversation created rules. It lets you tell whether an email inbox routes to a human Team or an Agent Stack before the AI has engaged. The available values are Team and Agent Stack. Non-email inboxes, or inboxes whose route cannot be resolved, evaluate as empty or unresolved, so a condition such as inbox routes to is not Agent Stack can still catch them.

Contact fields

name, email, phone, customer level, country, plus every custom field defined for contacts.

Message fields

body (the message text), direction (inbound/outbound), channel.

Message fields are available when the trigger event includes a message. Message received carries the current message. Conversation created can also expose the conversation’s first inbound customer message where message.* fields are allowed.

Example: a conversation_created rule with message.content contains "urgent" matches a conversation created from an inbound email whose original message includes “urgent”.

Case fields (only on case-typed triggers)

stage, priority, assigned agent, assigned team, tags, linked conversation count.

Event-specific fields

Some triggers expose extra fields specific to the event:

  • Status changedprevious status, new status
  • Tag addedtag (the tag that was added)
  • Customer level changedprevious level, new level
  • Agent assignedprevious agent, new agent

AND / OR grouping

A condition group joined by AND matches when every leaf inside it is true. A group joined by OR matches when at least one leaf is true. Groups can be nested.

Example: (channel is email AND customer level is VIP) OR (tags contain “urgent”). This fires when either an email comes in from a VIP, or any conversation gets the “urgent” tag — regardless of channel.

Conditions vs. branches

A common confusion: conditions on the rule decide whether the rule runs at all. Branches inside the rule then choose which action sequence runs. If you only need one path, use conditions. If the rule needs to do different things in different cases, use one big trigger with multiple branches and put the case-specific filters on each branch.

Custom field gotchas

When matching against a custom field that’s a select or multi-select, the value in the condition is the option’s stored value (machine slug), not its display label. Look it up in Settings → Custom Fields before pasting it into a condition.

See also

Tags

Reference