Conditions and waits

Two step types control the shape of an automation's run: Condition (If/Else), which branches, and Wait, which pauses.

Condition (If/Else)

A condition step evaluates one Subject against an Operand (and, for two of the subjects, a Value) and takes the Yes or No branch based on the result. Every step below a condition belongs to one branch or the other — add steps to each branch independently, and leave a branch empty if nothing should happen on that side.

A condition step expanded, showing subject, operand and the Yes/No branch columns beneath itA condition step expanded, showing subject, operand and the Yes/No branch columns beneath it
Branch columns are always visible, even before you expand the condition's own settings.

The four subjects

Tag presence

True if the triggering contact currently has the tag given in Operand.

The Operand is a tag id. There's no "Value" field for this subject — the check is simply "does the contact have this tag right now."

Contact field

True if the contact's field named in Operand equals Value, exactly.

Operand is the field name (a built-in column, or a custom:<id> custom field), Value is what it must equal. The comparison is an exact string match — not a contains check — done after both sides are converted to text.

Message content

True if the triggering message's text contains Value, case-insensitively.

Unlike Keyword Match triggers, this subject has no exact-match option — it's always a case-insensitive substring check.

Time of day

True if the current time falls inside the HH:mm-HH:mm window given in Operand.

Operand format is HH:mm-HH:mm, for example 18:00-09:00. If the start time is later than the end time, the window is treated as wrapping past midnight — 18:00-09:00 means "6 PM through 9 AM the next day," not "never." There's no Value field for this subject.

Wait

A wait step pauses the automation for an Amount of Minutes, Hours or Days, then continues to whatever comes next.

A wait step expanded, with an amount field and a unit dropdown set to minutesA wait step expanded, with an amount field and a unit dropdown set to minutes
Wait steps take an amount and a unit — minutes, hours, or days.

Under the hood, a wait step doesn't hold a process open — it records a pending resume (with a due time) and stops running immediately, and Relay's automation cron picks it back up once that time has passed. This means:

  • The run's log status shows partial the moment it hits a wait step, and stays that way until the cron resumes and finishes the rest of the steps.
  • The practical minimum pause is 1 second, even if you enter an amount of 0 — the engine floors it.
  • Very short waits (seconds) may not resume instantly; resumption depends on how often the cron runs, not on the wait step itself.