Branch your automation with conditions
Split an automation into a YES path and a NO path with a Condition step, build rules on fields, tags and lists, and know when each rule is checked.
A straight-line automation treats everyone the same. A Condition step asks one question about the person in front of it and sends them down one of two paths: YES if the answer is yes, NO if it is not. That is what turns a sequence into something that reflects how your business actually works, where a donor hears one thing and a first-time subscriber hears another.
This guide covers where a condition goes, everything it can ask, how to combine several questions into one rule, what each branch does, and exactly when the question gets asked.
Add a Condition to your flow
Open the automation you want to branch. The canvas is always editable, so there is no edit button to press first: the trigger sits at the top, your steps run down the trunk below it, and you add a condition in any of three places.
- Drag Condition from the Steps rail on the left, out of the Flow Control group, and drop it exactly where you want it.
- Hover the connector between two steps and press the small plus, then choose Add condition from the menu.
- Press Add step at the bottom of the flow and choose Add condition to append it at the end.
However you add it, the condition card appears on the trunk with two empty columns hanging below it, and its settings open straight away.
A condition can only sit on the trunk, never inside another condition’s branch. Inside a branch, the plus button adds a plain action and the Steps rail refuses the drop.
If you need a second question after the first one has been answered, do not look for a way to nest it. Let both branches finish, then put another Condition on the trunk below. Every branch flows back into the trunk, so the second condition sees everyone again.

Open your automations in Mailsoftly
Choose what the condition checks
The condition settings open on a grid of eight question types. Pick one and the grid collapses into the settings for that type. There are exactly eight, and none of them is hidden behind a plan or a setting.
- Was the email opened? and Was the email clicked? look at the most recent email this automation sent to this contact.
- Check the Contact’s Fields opens the rule builder, covered in the next two steps.
- Check who created the Contact matches the person, form or webhook endpoint the contact came from.
- How did the contact enter? tells apart the different start events of an automation that has more than one.
- Is the contact unsubscribed? follows YES for exactly the people a send step would skip: unsubscribed, suppressed, or opted out of that kind of email.
- Random split (A/B test) sends a percentage you set down YES and the rest down NO, deciding once per contact.
- Engaged recently? asks whether the contact opened or clicked any of your emails, campaigns and automations alike, inside a window of days you set.
The two email questions read the last email sent by this automation, so they need a send step above them on the same path. Put the send first, then a Wait, then the condition. Opens and clicks that came from a scanner rather than a person are ignored, so YES really does mean a human acted.

Build a rule on a field, a tag or a list
Choose Check the Contact’s Fields and you get a rule row with three parts: which field to look at, how to compare it, and the value to compare against.
The field list is grouped. Default Fields holds the standard contact columns, from first_name and email through company, job_title, city and source. Custom Fields holds whatever fields you created for your own account. Tags offers Tag Name, and Lists offers List Name, so membership is just another thing you can test.
Seven comparisons are available: Equals, Contains, Starts With, Ends With, Does not contain, Is Empty and Is Not Empty. All of them ignore capitalisation, so Gold and gold match each other.
- On Tag Name and List Name, the comparison runs across everything the contact carries. Tag Name Equals VIP means one of their tags is VIP. Tag Name Does not contain VIP means none of their tags is.
- Is Empty and Is Not Empty hide the value box, because there is nothing to type.
- A rule with no field chosen marks the step Missing fields, and an automation with a step in that state cannot be activated.
There is no date comparison here and no way to test "opened three campaigns". Recency has its own condition type, Engaged recently, and dates are handled by the date-based triggers rather than by a rule.

Combine rules with and, or and groups
One question is often not enough. Press Add New Condition inside a group to add another rule row, and a small and / or switch appears above it. That switch says how this rule joins the one before it.
Press Add New Condition Group to start a whole second group. Groups have their own and / or switch, so you can keep two ideas apart and then decide how they meet. There is no limit on how many rules or groups you add.
Here is the shape most people are looking for. To ask "is this person on my Donors list and not tagged VIP", you need one group holding two rules:
- List Name, Equals,
Donors - and
- Tag Name, Does not contain,
VIP
Both rules have to be true, so only untagged donors take the YES path.
Rules are read strictly left to right, with no bracket rules to memorise. A group written as A or B and C is answered as "A or B" first, then "and C". When mixing and with or, put each idea in its own group so the order matches what you meant.

Fill the YES and NO paths
Below the condition card the flow splits into two columns, YES in green and NO in red. Each one holds its own list of actions, and you build them exactly like trunk steps: press the plus at the bottom of a column and choose an action.
A branch can hold anything except another condition: send an email, create a draft, add or remove tags, add or remove list memberships, send a webhook, wait, or stop the flow entirely. Choose the right automation action explains what each of those steps does and what it needs before it will activate. When a column runs out of steps, the contact rejoins the trunk and carries on with whatever comes after the condition. That is what the dashed lines under the two columns mean.
Nobody falls through the cracks: a condition always answers yes or no, so every contact takes one of the two paths. What an empty column means is worth being precise about.
- An empty branch is not an error. The contact simply skips straight to the next step after the condition, and the automation carries on.
- An empty branch does not block activation either. Nothing warns you, which is why a branch you meant to fill and forgot looks exactly like a branch you left empty on purpose.
- To end the journey for one side rather than merge it back, put a Stop step in that column. That is a decision the flow shows on the canvas.
Put together, the worked example reads: Check the Contact’s Fields, with List Name Equals Donors and Tag Name Does not contain VIP. On YES, add the tag VIP and send the VIP invitation email. On NO, leave the column empty so those contacts drop back into the trunk and continue with the normal sequence.
With the two email questions, Was the email opened? and Was the email clicked?, give both columns at least one step. Leaving a column empty on an open or click condition is the one case where the contact can quietly reach the end of the automation instead of rejoining the trunk. A Stop step, or any single action, keeps the outcome explicit.

Check the split before you go live
Timing is the part that surprises people, so it is worth being exact about it. A condition is not evaluated when the contact joins the automation. It is evaluated at the moment that contact arrives at the condition step, reading their record as it stands right then.
That has a practical consequence you can use. If a contact waits three days at a Wait step and picks up a tag on day two, a condition below that Wait sees the new tag. Tag them earlier in the same flow and a later condition sees that too.
The rule itself works the other way around. Each contact carries their own copy of the flow from the moment they enter it, so editing a condition changes what new arrivals will do and leaves everyone already mid-journey on the version they started with. If a fix has to reach people who are already inside, you cannot edit your way there.
Before you activate, walk a real contact through the flow in the simulator and watch which column they take at each condition. It uses the same rule engine the live automation does, and it shows you the contact’s actual value next to what your rule expected, which is usually enough to spot a rule that reads right but matches nothing. The full walkthrough is in Test automations with the simulator.
A condition can only ask about data you already hold, so the rule is only as good as the field behind it. If your branches keep sending everyone down the same path, the fix is usually upstream: see Segment your audience for getting the field, tag or list right in the first place.

Ready to try it in your own account?
Free to start with your Google Workspace or Microsoft 365 account. No credit card required.