Flow rules
Rules are the steps that neither react to anything nor act on the world: they only organize the flow. There are three, together in the Rules tab of the palette:

Condition
Section titled “Condition”Splits the flow into branches. Each branch is an exit, and the automation follows the first branch whose conditions are true:

Each branch is a three-part comparison:
- Compare — the left-hand value. Almost always a variable: the output of an AI step, a contact field, the conversation’s channel.
- The operator —
equals,does not equal,contains,does not contain,is greater than,is less than,is empty,is not empty. - With — the right-hand value. Either fixed text or another variable.
The is empty and is not empty operators need no right-hand value — the With field disappears when you pick one of them.
Beyond the branches you create, a condition always has a None exit: that’s where the automation goes when no branch matched.
Branch order matters. The first one that comes out true wins, and the rest aren’t even evaluated. Put the most specific case on top.
Each branch is its own path on the canvas: whatever you hang off one doesn’t happen on the others. That applies to variables too — a step on branch B can’t see the output of a step on branch A.
Makes the automation pause before moving to the next step. It’s what turns three messages into a sequence instead of three messages in the same second:

How long it waits
Section titled “How long it waits”A duration in minutes, hours or days, written as a sentence: “The automation waits 2 days before moving to the next step.”
Exit conditions
Section titled “Exit conditions”Two checkboxes that say what ends the automation if it happens during the wait:
- The contact replies
- The conversation is resolved
Three details that change the outcome:
- The check happens when the wait ends, not during it. SquadOS looks at the conversation’s state at wake-up time.
- Ending here cancels the whole automation, not just this step. The following steps don’t happen.
- For the conversation to enter again, it has to meet the trigger from the start once more.
The contact replies is checked by default, and unchecking it has an effect worth knowing: besides the sequence carrying on, it also starts writing over people who are waiting on your team. It’s the only sending safeguard that a setting can waive — opt-out, snoozed conversation, frequency cap and the 24h window still apply regardless.
Exit conditions only appear when there’s a conversation at that point in the flow. In an email sequence going out to a list, there’s nothing to cancel.
Sending window
Section titled “Sending window”Restricts when the next step is allowed to happen: the days of the week, a start time and an end time, in your organization’s time zone.
Outside the window the automation keeps waiting until it opens — it doesn’t skip the step or send early. That’s what prevents the automated 3 a.m. message.
Finishes the automation on that branch. It has no configuration and no exit: it’s the end of the path.
It’s most useful right after a Condition — the branch where nothing else needs to happen ends explicitly, instead of just running out of steps. The run log shows the difference: a flow that reached End got there on purpose.