Choose the right automation action
Every step a Mailsoftly automation can take, what each one does to a contact, and which two can quietly overwrite your own audience data.
A trigger decides who enters an automation. An action decides what happens to them once they are in. Mailsoftly ships thirteen actions, and most flows only ever use three or four of them, which means the other nine sit unused because nobody knows what they do.
This guide is the full library. Every action by name, one line on when to reach for it, and honest warnings on the two that can rewrite your audience without asking.
Open the step picker
Open any automation in the builder and choose Add step, or pick a step from the Steps rail on the left. Either way you land on the same picker: a grid of every action you can add, sorted into groups.
The groups are the fastest way to find what you want:
- Messaging: send an email, or draft one.
- Tags & Lists: change what the contact belongs to.
- Contact Data (Webhook): write to the contact record itself. Hidden unless the automation is triggered by a webhook, so you will usually see four groups, not five.
- Integration: push data to another system.
- Flow Control: wait, or end the flow.
Every action explains itself once you pick it. The panel that opens carries a short description of exactly what that step does, so you never have to guess from the name alone.

Open your automations in Mailsoftly
Send something
Two actions put a message in front of the contact.
- Send Email. Use this when the contact should receive an email at this point in the flow. Choose a template and write a subject line. Both are required: an automation will not go live until every send step has them.
- Create email draft. Use this when a person should review the message before it goes out. It builds the draft from your template for that contact and sends nothing.
Sender and Reply-to both fall back to your account defaults, so leaving them alone will not block you from activating the automation. Set them when a specific person should appear as the sender.
A Send Email step still respects your unsubscribe and suppression rules. If the contact has opted out by the time the step runs, that one email is skipped and the rest of the flow carries on.

Change tags and lists
Five actions change what a contact belongs to. None of them deletes a contact, and none of them touches the contact’s own details.
- Add tag. Use this to mark what the contact did, so you can segment on it later.
- Remove tag. Use this to clear a marker once it no longer applies. Removing a tag the contact never had does nothing and reports no error.
- Add to selected lists. Use this to move someone into the list a later campaign will send to.
- Remove from selected lists. Use this to take someone out of one specific list while leaving the rest alone.
- Remove from all lists. Use this when a contact should stop receiving list based sending entirely. It clears every one of your contact lists and needs no setup.
There is one deliberate exception built into Add tag and Add to selected lists. If the automation is triggered by that same tag or that same list, the step skips it. Without that guard the flow would re-enroll the contact it is currently running for, over and over.
Tagging inside an automation is what makes the next campaign easy. Tag people at the moment they act, then build a segment on that tag instead of trying to reconstruct the behaviour later.

Wait, or wait for a signal
Two actions pause the flow, and the difference matters.
- Wait. Use this for a fixed pause: a number plus a unit. The units are Minutes and Days, with one click presets for 15 minutes, 30 minutes, 1 day, 3 days and 7 days.
- Wait until. Use this when the pause should end on the contact’s behaviour rather than the clock. Set Continue as soon as to either Contact opens the email or Contact clicks a link, and set a maximum wait under Or continue anyway after. Whichever comes first wins.
Wait until watches the last email this automation sent to that contact. Place it after a Send Email step, not before one, or it has nothing to watch and can only ever end on its timeout.

Write to a contact from incoming webhook data
Two actions write to the contact record itself, using data that arrived at one of your webhook endpoints. They only appear when the automation’s trigger is a webhook, because that is the only trigger that supplies a payload for them to read.
- Create or find contact, which the settings panel heads as Find or Create Contact. Use this to turn an incoming request into a contact. You pick the field in the payload that holds the email address. Mailsoftly looks for a contact with that address and creates one only if none exists. On an existing contact it changes nothing at all, and a new contact is created with the email address and nothing else. A webhook triggered automation must start with this step.
- Update contact. Use this to copy values out of the payload into the contact’s fields. You map each contact field to a field in the incoming data.
Update contact overwrites. Whatever is already in a mapped field is replaced by the incoming value, with no check for whether you had something better there. If the incoming value is empty, the contact’s field is emptied. Email is one of the fields you can map, so a wrong mapping can change who the contact even is. This is not how the HubSpot sync behaves, which fills blanks and never overwrites, so do not carry that assumption across.
These two steps read the most recent data your endpoint received. Put them at the top of the flow, before any Wait step, so they act on the request that started the run.

Call an outside system, or end the flow
- Send Webhook. Use this to push the contact’s data to another system at this point in the flow. You set the URL, any headers, and which contact fields go in the request. Both halves of webhooks have their own guides: see receive data with a webhook endpoint for data coming in, and connect integrations and the API for this step going out.
- Stop. Use this to end the automation for one contact, wherever you place it, including inside a branch. It needs no setup.
Stop is narrower than it sounds. It ends this one contact’s run and nothing else. The automation stays active and keeps enrolling everyone else exactly as before.
Stop does not lock the contact out. The next time the trigger fires for them, they enter again and start from the top. If you want a genuine one and done, turn on Run only once per contact in Trigger Settings.

Steps run in order, and what happens when one cannot run
Actions run top to bottom, one at a time, in the order they sit on the canvas. Nothing runs in parallel and nothing jumps ahead. Drag a card by its handle to reorder it, or use Add a step here to insert between two existing steps.
When a step cannot run, Mailsoftly almost always keeps going rather than stranding the contact:
- The contact has unsubscribed or is on your suppression list, so a Send Email step is skipped. The step is marked Stopped with the reason shown, and the rest of the flow continues. Tag, list and webhook steps still apply.
- The webhook URL on a Send Webhook step is missing or malformed. The step is skipped with a reason and the flow continues.
- A Contact Data step has lost its webhook trigger. It is skipped with a reason and the flow continues.
- Your sending limit is reached. The email step is held at Waiting for Limit, nothing advances past it, and it resumes on its own when your quota frees up. Nothing is lost.
- The template a send step points at has been deleted. That run ends there.
You can read all of this per contact. Open the automation, go to the Contacts tab, and expand a person to see their run step by step with each step’s status and, where one applies, the reason it was skipped. When a whole automation refuses to go live, or goes live and reaches nobody, Fix an automation that will not activate works through it in order.
Before you activate, check that no step wears a Missing fields badge. An automation with an incomplete step cannot go live, and the badge tells you exactly which field is missing. Walking the flow through the simulator first is the fastest way to catch a step that runs but does the wrong thing.

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