A condition is the step that splits a flow into True and False. It asks questions such as "is this person a VIP", "are we inside business hours", "did the person send a photo", and walks the customer down a different branch depending on the answer. It is what stops one flow from sending everybody the same message.
💡 A condition sends nothing and changes nothing; it only looks and decides. To change something you need an Action step.
What a condition does
A condition step carries one or more rules. Each rule asks a question, and the selector at the top of the step says how those rules combine:
All must match — The flow takes the True branch when every rule is true.
Any is enough — The flow takes the True branch when any one rule is true.
A step can hold up to 20 rules. With no rules at all, the condition counts as not met and the flow continues down the False branch; the pre-publish check reports this too.
Rule types
Looking at the person
Tag — Whether the person has or does not have a given tag.
Field — The value of a field on the contact card. It works with equals, not equals, contains, does not contain, empty, not empty, greater than and less than.
Person's language — The language on the contact card; if it is blank, the account's language applies. There is no automatic language detection.
Follow status — Whether the person follows your account. Instagram only.
First contact — Whether this is the person's first contact with the business.
Looking at time
Time range — Whether we are between the two times you set. Ranges crossing midnight (22:00–06:00) are supported.
Day — Which days of the week. You can pick several.
Business hours — Whether we are inside or outside the account's own opening schedule. The time zone and holidays are taken into account, so you do not have to type hours by hand.
Looking at the conversation and the channel
Was this article helpful?
Channel — Whether the conversation comes from Instagram or WhatsApp.
Assignment — Whether the conversation is assigned to a team member or unassigned.
Last reply — The text the person last wrote. It works with equals, contains, does not contain, starts with, empty and not empty.
Incoming attachment — Whether the last message carried an attachment and of what kind: image, video, audio, file, or "any attachment". A sticker counts as an image; a location and a contact card do not count as attachments.
Messaging window — Whether the window is open or closed.
Looking at the flow's context
Flow started by — The run's source: keyword, comment, story reply, ad link, button, another flow, a general rule, a sequence or a panel test.
Post — The ID of the post or reel that started the flow. It is filled in by the comment and share triggers, and exists on Instagram only.
The counter
Trigger counter — Counts how many times this condition has been passed. Until the number is reached the flow takes the True branch; afterwards it takes False, and the counter resets once the period you set has elapsed.
The counter belongs to the automation, not to a person: even if a hundred different people trigger it, they all draw from the same counter. It is how you cap flows where the person is not identifiable, such as mentions.
⚠️ Note: the counter is the only rule with a side effect — passing it increments it. It must therefore stand alone in its own step; if it is placed alongside other rules, validation warns you.
All, or any
When choosing between the two modes, ask this: do the rules complete one another, or are they alternatives?
"VIP tag and inside business hours" → All must match.
"VIP tag or loyal-customer tag" → Any is enough.
Rather than squeezing complex logic into one step, placing two condition steps in sequence is usually far more readable.
Operators and comparison rules
Text comparisons ignore case and accents: "İSTANBUL", "istanbul" and "Istanbul" all count as the same. Numeric comparisons (greater than, less than) convert the value to a number; a value that cannot be converted fails the comparison.
The empty and not empty operators are particularly useful: to ask for something only when it is missing, you check whether the field is empty, so you never ask the same question twice of someone who already answered.
Field-to-field comparison with placeholders
You can put a placeholder in the value of the Tag, Field and Last reply rules. That lets you compare two pieces of information: for example, checking the e-mail an External request step saved against the e-mail the person typed in the flow.
Some information is not always available. In those cases the rules choose the side that does not penalise the person:
Follow status has three values: yes, no and unknown. If the person never sent you a DM, or Instagram provided nothing, the result is "unknown". "No" is only true when Instagram explicitly says they do not follow you; otherwise someone who does follow you would receive a "you don't follow me" message.
If the messaging window is unknown, it counts as open. Otherwise a free-form message that could have been delivered would be blocked for nothing.
If business hours are not configured, the account counts as always open.
If first contact is unknown, it counts as "not first contact".
Keeping conditions readable
A condition step accepts 20 rules, but should it carry them? Usually not. For a readable flow:
Ask one question per step. "Is this a VIP" and "are we inside business hours" are two questions; making them two consecutive steps keeps the logs clear about which branch was taken and why.
Put the common branch on top. A flow that reads top to bottom on the canvas still makes sense months later.
Explain with a Note step. Placing a Note beside a complicated condition, saying why it is there, makes your colleague's life easier.
Do not confuse branches with named branches. A condition has two branches; to split into more than two paths you need consecutive conditions or the branches of an External request, not a Random split.
Common mistakes
Leaving the False branch empty. An empty branch ends the flow. Both branches of a condition deserve thought.
Putting the counter in a step with other rules. The counter must stand alone in its own step.
Confusing "no" with "unknown" in follow status. Do not let a message meant for non-followers also reach people whose status is unknown.
Worrying about tag spelling. Tags are compared without accents and without case sensitivity; "VIP" and "vip" are the same tag.
Looking for follow or post conditions on a WhatsApp account. Both exist on Instagram only.