Control timing and who enters your automation
Set the pace with Wait and Wait Until, filter who gets in, control re-entry, and see, add or remove the contacts inside a live automation.
Building an automation is the easy half. The hard half is everything around it: how far apart the messages land, who gets swept in that you did not mean to include, and what happens to the people already part way through when you touch the thing.
This guide covers those questions. It does not re-explain triggers, actions or conditions. It explains the pace, the door, and the room.
Set the pace with a Wait step
Wait is the plain delay. It sits between two steps and holds every contact there for a fixed stretch before the next step runs.
- Open any Wait step and you get quick picks for the common cases: 15 minutes, 30 minutes, 1 day, 3 days, 7 days. One click sets both the number and the unit.
- Or type your own. The number box takes anything from 1 upward, and the unit dropdown offers exactly two choices: Days and Minutes.
- A preview line under the fields reads the delay back to you before you close the step.
While a contact sits in a Wait, their run is parked on that step and nothing else in the flow moves for them. The step shows In Progress on the Contacts tab, which is how you tell a waiting contact apart from a finished one. A drip sequence is the flow that leans on Wait steps hardest.
There is no hours unit. If you want six hours, set 360 Minutes. Anything measured in days is easier to read as days.

Hold until they open or click with Wait Until
Wait Until is the other timing step, and it works on a completely different principle. Instead of holding everyone for the same fixed stretch, it releases each contact the moment they do something.
- Continue as soon as is a grouped picker now. Under Email: Contact opens the email, Contact clicks a link, both watching the last email this automation sent that person. Under Contact: Contact submits a form, which takes a form picker or Any of your forms and matches the response by email address, and Contact matches a condition, which opens the same rule builder a Condition step uses. The events listed depend on the channels your account has.
- Give up waiting after is the ceiling, not the delay. Set it with the same number and unit fields. Somebody who clicks in twenty minutes moves on in twenty minutes; somebody who never clicks moves on when the ceiling runs out. A hint under the field says what happens when it runs out: the contact takes the No branch if you added one, otherwise the next step.
- A preview line under the fields reads the whole thing back: "Moves on as soon as this happens. If it has not happened within 3 days, moves on anyway."
- Put a Condition step straight after it if you want the two outcomes to go different ways. Without one, both outcomes rejoin the same next step.
Mailsoftly checks a waiting contact roughly every ten minutes, so a Wait Until resolves within minutes of the open or click rather than instantly.


Open your automations in Mailsoftly
Keep the wrong people out with the entry filter
Under the trigger on the builder canvas sits a quiet "+ Add entry filter" link. Once the filter is switched on, or has conditions saved, that link becomes a card called Filter contacts entering automation, with a switch of its own and a small badge counting your conditions. This is the door.
Read the blue note inside it carefully, because this control works backwards from most filters: "If the contact matches the selected filter, do not trigger the automation." A match is an exclusion. The card’s own subtitle says the same thing in four words: matching contacts won’t enter.
- Build the rule out of condition rows: a field, an operator, a value, joined with and or or, grouped if you need brackets. Operators are Equals, Does not equal, Contains, Starts With, Ends With, Does not contain, Is Empty and Is Not Empty. Pick Tags or Lists as the field and the row changes: the value becomes a picker of your real tags or lists, and the operators become Has tag, Does not have tag, Has any tag, Has no tags, or the list equivalents.
- Think in terms of who you want to keep out. A re-engagement flow that should skip your existing retainer clients gets one row: Service tier Equals Retainer.
- The switch that turns the filter on sits both on the card and inside the modal’s note, and they are the same switch. Turn it off and the note turns amber and says so: "This filter is turned off. Every contact will enter the automation." plus "Your conditions are saved but not applied while the filter is off."
- A filter with no conditions shows an honest empty state, "No conditions yet", with an Add New Condition button, rather than a blank row that looks configured.
- Clear Filter empties every row at once when you want to start over.
The rows are the same condition builder a Condition step uses mid-flow, so anything you can ask at a branch you can ask at the door. Branch your automation with conditions covers the rule editor in full.
Above the conditions, When should the filter run? decides how often the rule is checked, and the two answers behave very differently.
- Run filter once at the start checks each contact as they arrive. A match means no run is ever created, so the person never appears on the Contacts tab at all. This is the default and it is what most flows want.
- Run filter before each step re-checks the rule before every step for as long as the contact is inside. The moment somebody starts matching, they exit the automation where they stand. Waits are the one exception: the check happens after a Wait finishes, not during it. Reach for this when the exclusion can become true while the flow is running, say a tag your team adds to anyone who replies.
The entry filter applies to every way in, including a manual add and the own-email test run. If a contact you expected to enroll never appears, check the filter before you check the trigger.

Decide whether somebody can come back
Two settings decide re-entry, and both live in the trigger’s own settings.
- Run only once per contact is the blunt one. On, and each email address enters at most once, ever, including contact records that share one address, however many times they match again afterwards. Off, and they enter again every time they match.
- Even with re-entry allowed, there is a floor. The same email address cannot re-enter more often than once every ten minutes. That cooldown collapses same-burst duplicates, for example three contact records with one address all picking up the tag in a single pass, while leaving a genuine re-entry hours or days later alone. A "How duplicates are handled" line in Trigger Settings spells this out.
Two more rules govern who ends up inside, and they surprise people often enough to be worth stating plainly.
- Almost nothing reaches backwards. Switching an automation on today enrolls the people who match tomorrow, not the ones who matched last week. The single exception is the "Add everyone on a contact list to this automation" trigger. That one enrols everybody on its chosen list either as soon as you activate it, or at the date and time you set. It then marks itself as fired and never runs again on its own. Activating it again, or picking a new date, runs it for the list again.
- The contact updated trigger ignores more than you would expect. It ignores changes made by a CSV import, so a bulk update of ten thousand rows does not enroll ten thousand people. It ignores anything in a contact’s first five minutes, because a form filling in the rest of somebody’s details straight after signup is part of being created, not a life change. And it ignores housekeeping fields the system writes on its own, such as the last engaged timestamp.


See who is inside right now
The Contacts tab on any automation is the live roster. It sits after Automation Details and Performance, and its badge is the number of runs the automation has ever started.
- One card per run, newest first, sixteen to a page, with a search box across first name, last name and email.
- Each card shows the contact, a progress bar with a percentage, and the state of that run: a switch when it is still going, a green Done chip when it finished, or a grey chip when it was stopped.
- The count line above the list tells you how many runs match your search.
If this tab is empty on a live automation, nobody has triggered it yet. That is a trigger question, not a timing one.

Read one person’s run
Open the chevron on any card and the run unfolds into a timeline. This is where you find out where somebody actually is.
- The trigger card at the top shows how that person entered and when.
- Then every step of their run, each with its own chip: Done for what has happened, To Do for what has not, In Progress for the step they are parked on, Stopped for a step that was skipped or cut short.
- Steps that have not run yet are dimmed, and the step the run is sitting on carries an amber ring. A small pill next to each completed step shows how long after entering it ran, so a drip reads as plus 2 days, plus 5 days.
- Sent emails carry open and click chips that turn green once the event happens, and a condition shows which branch this person took with the other side faded out.
Each run is a snapshot taken the moment the contact entered. That is why the timeline can show a trigger or a step that no longer matches the automation you are looking at. It is not a bug, it is the record of what actually ran for that person.

Add somebody by hand
The Add Contacts to the Automation button appears on the Contacts tab and nowhere else. Use it for the people the trigger will never catch: everybody who joined before you built the flow, or a handful you want to start today.
- Search and filter down to the people you want, tick them, then choose Run the automation for selected contacts. A confirmation spells out what is about to happen before anything runs.
- Suppressed addresses and anyone who has complained or unsubscribed are not in the list at all, so you cannot pick them by accident.
- People who have already been through this automation are hidden by default. Allow re-listing contacts already processed puts them back in the list if you genuinely want to run it for them again.
- If any step still shows a missing fields badge, nothing is added and you get told why. Fix the step first.
A manual add is a real run, not a rehearsal. It sends real email to real people, it holds every Wait step at full length instead of fast forwarding, and it works even while the automation is a draft or paused, which is exactly what the amber warning in that window means. The entry filter still applies, and unsubscribed or suppressed people are still skipped at each send, but nothing else softens it. If you want a rehearsal, use the simulator or the own-email test instead.

Remove somebody, and know what a pause does to everyone else
Taking one person out is done from their card on the Contacts tab. Flip the switch on their row, confirm, and their run stops where it stands.
- Do it deliberately. Once a run is stopped there is no control on that row to start it again, and Mailsoftly says so in the confirmation. If you want that person in the flow later, add them back with Add Contacts to the Automation, which starts them from step one.
- Removing one contact changes nothing for anybody else and nothing about the automation itself.
Now the two questions people actually worry about before touching a live flow.
Editing while people are inside is safe. Every run is a snapshot taken at entry, so changing a message, adding a step or reordering the flow reaches the next person to enter and leaves everyone already inside on the version they started. The one edit that does reach them is deleting an email template a step points at: that step has nothing left to send, so those runs stop.
Pausing is not a hold button. Mailsoftly has one run state control, and off is called Paused on the toggle, while the automations list shows the same state as Deactive. Pausing stops the automation for everyone, including the people part way through. They do not queue up and resume later; each one is dropped the next time their flow tries to take a step, which for a Wait Until is within ten minutes. Resuming starts the automation for the next people who trigger it, not for the ones it dropped. A very short pause is the exception that proves it: somebody sitting in a three day Wait is untouched if you pause and resume before their wait runs out, because nothing tried to move them meanwhile.
- The same toggle covers all of it: Draft means not live yet, Active means running, Paused (Deactive in the list) means it can be resumed, and the buttons read Activate, Pause and Resume accordingly.
- From the list you can select several automations and pause them together. Bulk activation is deliberately not offered, because each one deserves a look at its activation summary before it goes live.
Pause and delete are not interchangeable. Deleting an automation destroys every run record and every draft it created, so the history and the statistics go with it. If you only want the sending to stop, pause it.

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