What is Workflows
A workflow is a triggered, multi-step automation that runs per contact. Set the trigger (manual, scheduled, or when a contact joins a group). Add steps (send an email, wait, branch on engagement). Activate. From that moment on, every contact who matches the trigger walks through the steps on their own — you don’t touch it again. Workflows are how you build welcome series, abandoned-cart sequences, post-event follow-ups, anniversary nudges, and anything else where the event drives the send, not your calendar.
Workflows vs Campaigns
Workflows and Spark campaigns share the same email infrastructure (templates, sender domains, deliverability, stats). They differ in when they fire and who they reach:
| Spark campaign | Workflow |
|---|---|
| One-shot send | Per-contact, multi-step, ongoing |
| You pick the moment | The trigger picks the moment |
| One recipient list defined at send time | Recipients are whoever matches the trigger — forever |
| Newsletter, promo, product launch | Welcome series, drip, follow-up, anniversary |
Most senders end up using both. Run a campaign for the launch announcement. Set up a workflow so every signup over the next year gets the same welcome experience without you remembering to send it.
How a workflow starts: 3 triggers
Three ways a contact lands in a workflow. A workflow has exactly one trigger.
| Trigger | What fires it | Use it for |
|---|---|---|
| Manual | You click Enroll Contacts and pick contacts directly. The trigger never fires on its own. | One-off batches, testing, hand-curated cohorts |
| Schedule | A recurring schedule (e.g. every Monday at 09:00) enrolls everyone in a chosen group. The Brixus365 scheduler evaluates schedules every minute, so timing is precise. | Weekly digest, monthly statement, quarterly check-in |
| When a contact is added to a group | The moment any contact is added to the chosen recipient group, they’re enrolled. | Welcome series (group = new signups), upgrade flows, segmented nurture |
If you want two trigger paths into the same automation, build two workflows that share the same step graph (or the same email templates).
What a workflow does: 3 step types
Once a contact is enrolled, the workflow walks them through a sequence of steps. Three step types are available, and you can combine them in any order:
-
Send. Deliver an email to the contact. You pick the template (from your Existing Templates), the sender address, and the from-domain. Rendered with the contact’s variable values, like any other Brixus365 send.
⚠️ Email only today; SMS and WhatsApp Send steps are on the roadmap.
-
Delay. Pause the contact’s enrollment for a fixed amount of time (5 minutes, 3 hours, 2 days) or until a specific local time-of-day (e.g. continue at 09:00 in the contact’s timezone). Delays are per-contact, not per-workflow — each enrollment is scheduled independently.
-
Condition. Evaluate a rule and branch. Three rule families today:
- Engagement — did the contact open / click any link / click a specific link in a previous Send step?
- Preference — is the contact still subscribed to this channel?
- Variable — is a stored contact attribute equal to / contains / etc. a value?
Each Condition routes to a true-step and a false-step. (Multi-way branching beyond true/false is not built today — see What’s coming below.)
String them together. Send a welcome email → wait 3 days → if they didn’t open it, send a friendly nudge; if they did, route to onboarding part 2.
The lifecycle
A workflow moves through five states:
| State | Meaning |
|---|---|
| Draft | You’re building it. The graph is editable. Nothing fires. |
| Active | The trigger is armed. New enrollments are created as contacts match. Existing enrollments move forward through the steps. The graph is locked — pause first if you need to change a step. |
| Paused | Trigger is silent; existing enrollments freeze where they are. Resume to pick up exactly where each contact left off. |
| Completed | Workflow is permanently stopped. All in-flight enrollments exit. The workflow is read-only history. |
| Archived | Hidden from the default list view. Stays in the system for audit, out of the way. |
The common pattern: build in Draft, send a test enrollment to yourself, Activate, watch the first few real enrollments, Pause if anything looks off.
Budget guardrail. While a workflow is active, you can cap how much it sends — either as a maximum number of messages (e.g. cap at 5,000 sends) or a maximum cost. The cap is enforced atomically before each send. When it’s hit, the workflow stays Active (still armed for new triggers), each affected enrollment is paused at the next send step, and the dashboard shows a budget-paused banner. Raise the cap and the paused enrollments resume from where they were paused — nothing is lost. It’s a soft guardrail, not a hard fail.
What’s coming
Honest forward-look on what isn’t in Workflows yet:
- Multi-way branching beyond true/false. Today a Condition has two branches. Multi-way switches are on the roadmap.
- A/B testing inside a workflow. Splitting enrollments randomly between two send variants isn’t built yet.
- Goal tracking. “Did they buy?” / “Did they upgrade?” attribution is not modelled. Engagement conditions (opened / clicked) work, but full conversion goals don’t.
- SMS / WhatsApp Send steps. The schema supports the channels, but the executors are placeholders. Email-only today.
- Editing an active workflow’s graph. You have to pause first.
If any of these block what you’re trying to build, let us know.
What’s next
| You want to… | Go to |
|---|---|
| Verify a sending domain (prerequisite) | Verify your sending domain |
| Pick or build a template (Workflow Send steps use these) | Pick a sample template |
| Send a one-shot campaign instead | Send your first email campaign |
| Build your first workflow | Build your first workflow |
The send happens. You’re already on to the next thing.
Free tier: 9,000 emails a month. Workflows runs your follow-ups so you don’t have to.