What a workflow really is
New to this? Start with the idea, not the buttons. A workflow is a set of instructions you write once, and Exabloom follows them for you, automatically, every time, day or night. Think of it as a reliable teammate who never forgets a follow-up and never sleeps.
Every workflow boils down to one simple sentence:
You won’t write code. You build the workflow by drawing a flowchart on a canvas: dropping in boxes (we call them nodes) and connecting them top to bottom in the order they should run. Once it’s switched on, contacts flow through that chart one step at a time, all on their own.
Plan it before you build
The single biggest beginner mistake is opening the canvas and dragging nodes around hoping a flow appears. It won’t. The people who build good workflows always plan in plain words first, then translate that plan into nodes. Here’s a four-question method you can use every single time.
- 1What starts it?Name the exact moment this should kick off: “a new lead replies”, “a lead moves to Qualified”, “every Monday morning”. That moment becomes your trigger.
- 2What’s the outcome?Finish the sentence “by the end, I want…”. For example: “…the lead either booked a call, or a teammate has been told to step in.” Knowing the destination keeps the middle honest.
- 3What happens in between?Write the steps as a numbered list in everyday language: reply, wait two days, check if they answered, follow up. Don’t think about node names yet, just the story.
- 4Where does it fork?Find every “if… otherwise…” in your story. Each fork is a branch (an If else). “If they replied, flag it for a teammate. If not, send one more nudge.”
Do that and you’ve already done the hard part. Building is just transcription: each line of your plan becomes a node. Here’s the same plan, written out and then translated to the canvas.
- WhenA new lead messages us
- DoReply with a friendly greeting
- WaitGive them 2 days to respond
- CheckDid they reply to us?
- If yesFlag it so a teammate takes over
- If noSend one gentle nudge
The anatomy of a workflow
You’ve seen the shape already: one trigger that decides who enters and when, then a chain of nodes that run once they’re in. This section names the actual pieces you get to choose from, so the rest of the guide has a vocabulary to lean on.
A workflow has exactly one trigger. Most triggers are events that fire when something happens; Time driven is the odd one out, because it enrols people on a timetable instead. This is the full list, grouped the way the builder groups it:
Everything after the trigger is an action or a control-flow step. The Actions drawer sorts them into these groups; you’ll meet each family as you go.
A tour of the builder
Before you build, get the lay of the land. You reach the builder from the Workflows page, and the two screens are laid out differently on purpose. Three short steps get you in and looking around.
Open Workflows
In the left sidebar, click Workflows.
The list shows folders first, then workflows, each with an icon for its trigger. Status reads Published or Draft. Active now counts the people moving through it right now, Enrolled counts everyone who has ever entered, and Owner is who created it. Three controls above the table change what you see:
- Folders / List - Folders shows one level at a time; List puts every workflow from every folder in one paged list, newest first.
- Filter - Published, Drafts or All workflows, plus Has config issues when any workflow has one.
- Search by workflow name… - searches every folder at once.
Click New workflow
At the top right, click New workflow.
The workflow is created on the spot as a Draft called Workflow plus a number, in the folder you are looking at, and the builder opens. The builder fills the whole window and the sidebar is gone. That is deliberate, not a glitch: the builder is one of the few screens that hides it, so Back at the top left is your way out.
Find your way round
One bar runs across the top; the canvas fills the rest. Find each region on your own screen first, then read it at full size below.
Time-Driven Logs only appears when the workflow’s trigger is Time driven.
The six tabs, left to right:
- Editor - the canvas, where you add and connect nodes. You’ll spend most of your time here.
- Settings - who can enter, what stops people, what happens when they leave, and what to do when a step fails (Level 6).
- Logs - Execution Logs: every step that ran, for every contact. Your first stop when something looks off (Level 7).
- Time-Driven Logs - appears only when the trigger is Time driven; it lists each scheduled run.
- Test - runs the workflow against a test contact in a simulated chat, with a trace of each step, so you can watch it work before you publish. Only one person can test a workflow at a time.
- Metrics - counts how many people reached each Milestone step you place in the flow. Analytics links straight here.
Now the canvas itself. Every node is a white card with a coloured tile, and the colour tells you what kind of step it is.
Two badges are worth knowing on sight. A dashed amber border with Needs setup means a required step is incomplete and will block publishing. A purple warning triangle on the corner means Configuration issue detected: hover it, or open the node, to see what is wrong.
Click the ⋯ on an action or control-flow step for its menu. Copy, Move and Delete each ask how much to take with them.
Click a node and a panel opens from the right. Trigger panels are titled Add Trigger or Edit Trigger; action panels Add Action or Edit Action. Each starts with a name field, then that node’s own settings, and ends with Cancel and Save.
Your first workflow
Let’s build the simplest useful thing: an instant reply when a brand-new contact messages you. Five steps, and you’ll be back on the builder screen from the tour.
Add the trigger
On the canvas, click Add new trigger, then pick Contact replied.
Contact replied fires whenever a contact sends you a message. That’s broader than it sounds, which is the next step.
Say who it is for
Open the Contact tab, choose New contacts only, then click Save.
Choose whether this workflow runs for first-time contacts, returning ones, or both.
New and existing contacts
The contact was created by this message. Contacts added from forms, imports or by hand do not count as new.
The contact already existed before this message
This is the step people skip. Out of the box, Contact replied fires for every message from anyone, so a returning customer asking about an invoice gets your “thanks for reaching out” greeting too. New contacts only narrows it to messages that create the contact. A lead you added from a form, an import or by hand doesn’t count as new, so they won’t get the greeting the first time they reply.
- Message tab - which message types count (any, or only text, images, documents, video, audio) and, on WhatsApp Business, whether replies to your ads count.
- Filter tab - extra conditions on the contact’s fields.
- Re-engagement (on the Contact tab, except under New contacts only) - only trigger if the contact has been quiet for a set time.
Save closes the panel and the trigger appears on the canvas. Remember: that Save only updates the canvas. We’ll store it in step 5.
Add the reply
Click the + on the line under the trigger, then choose Send WhatsApp Business.
There are two WhatsApp send steps, named after the two ways a number can be connected. Send WhatsApp Business is for the WhatsApp Business API connection (the channel called Whatsapp Business in your Social Channels settings). Send Whatsapp is for the other one, the channel called Whatsapp. Pick the one that matches your number.
Write the message
Type your greeting in Message, then click Save.
A free-form message works here because the contact has just written to you, which opens WhatsApp’s 24-hour window for ordinary text. Once a step runs after that window has closed (say, after a wait of a day or more), WhatsApp only delivers an approved Template Message. Templates are covered in WhatsApp templates.
The 2. Delivery & Flow tab decides when it goes and what the workflow does next:
- Send immediately (the default) or schedule it for later.
- Wait for Delivery Status (marked RECOMMENDED) pauses the workflow until WhatsApp reports Delivered or Failed, so a failure can be handled. Don’t Wait (Fire & Forget) moves straight on and ignores failures.
Turn it on and save
Flip the switch to Published, then click Save in the top bar.
That’s a complete workflow: a trigger, one action and an END. In the Workflows list it now reads Published. If you’d rather keep editing, leave the switch on Drafted; a Draft never enrols anyone.
Branch on what happens
One path is rarely enough. The If else step splits your flow: it checks its branches from top to bottom, sends the contact down the first branch whose conditions are true, and sends everyone who matched none down Else. Order matters, so a narrow branch belongs above a broad one.
Click a + where you want the fork, choose If else (under Control flow), fill in the branch, then click Save.
Back on the canvas, each branch becomes its own path, headed by a grey label with the name you gave it. Add steps under each with the +.
What you can test depends on the field’s type. The operators you’ll reach for most:
You can branch on almost anything Exabloom knows: a contact or lead field, a tag, the pipeline stage, the text of the message, whether you are open or closed (Availability > Business Status), or the result of an earlier step. Need more than one test in a branch? Use + Add condition and switch between AND and OR; + Add condition group nests one level of grouping.
Add timing
Great follow-up is about when as much as what. Two amber steps give you control over time.
- Wait for time delay - pause for a fixed time (a number and Seconds, Minutes, Hours or Days) or until a specific date and time, then carry on.
- Wait for reply - hold until the contact messages back, or until the timeout runs out. It records whether they Replied (True or False) so you can branch on it.
Example: Wait for 30 minutes after the previous step completes
Together they make the classic follow-up. Put the Wait for reply straight after the message it is waiting on, with the timeout you want, then branch on Replied.
Bring in the AI agent
So far you’ve scripted every message. The AI Agent step (under AI in the Actions drawer) hands the conversation to one of your AI agents to run freely (answering, qualifying, booking) and then tells you how it ended. You choose which agent and channel; the agent itself is built under AI Agents in the Admin Dashboard (see The AI agent & Knowledge Hub).
How long to wait for a reply before timing out.
When the agent finishes, the step records an Exit Reason. Branch on it with an If else to decide what happens next.
- goal_achieved - the conversation goal was met. timeout - the session went quiet. max_turns_exceeded - it ran past the allowed number of turns.
- error, taken_over_by_human and agent_not_published are written by the system; the agent can’t choose them, but your branches can match them. A run that errors or is taken over matches no branch unless you add one.
Drive your pipeline
Workflows don’t just talk; they keep your CRM tidy. The Lead and Contact steps let automation do the admin your team would otherwise forget:
A classic: the moment a lead reaches your Qualified stage, hand it to the right person and flag it. Start it with the Lead updated trigger and a condition on the stage using the Has changed operator.
Click a +, choose Assign Owner (under Lead), pick the teammate, then click Save.
Choose whether to set or remove the lead owner
How should the lead be identified?
1How should the user be identified?
Select the user to assign as the lead owner
2Control enrolment & exits
As you run more workflows, the important questions become who enters and when they leave. Get these wrong and you double-message people. The Settings tab is where you tune both. It has four sections, top to bottom: End Workflow Conditions (the stop switches), Enrolment Criteria (who can enter), Exit Actions (what happens after someone leaves) and Error Handling (what to do when a step fails).
Click the Settings tab, set the switches you need, then click Save in the top bar.
End Workflow Conditions
End the workflow as soon as any teammate manually replies to the contact.
End workflow when contact (your customer) sends a message.
Enrolment Criteria
When this is turned ON, a contact can enter this workflow more than once.
When this is turned OFF, a contact can only enter this workflow once.
Exit Actions
Configure logical rules to transition contacts to other workflows based on how they exit.
Select exit reasons to apply this rule.
Error Handling
Control what happens when a step in your workflow fails.
- How people enter - a trigger fires, you bulk-add them from Contacts or Leads (the Add to workflow bulk action), or a schedule enrols them. Re-entry is allowed by default, but even then a contact who is already running (or has been handed to a human) isn’t enrolled a second time at once. Switch Allow contact to enter workflow more than once off and each contact can go through only once, ever.
- How people leave - they reach END, a Remove from workflow step runs, or a stop switch fires: Stop when contact replied (your customer messages) or Stop when a teammate takes over (a teammate manually replies). An error can end them too, if Error Handling is Exit.
- What happens after - an Exit Actions rule drops someone into another workflow based on how they left: any reason, any of, or none of a list (Contact Replied, User Replied, Taken over by teammate, Removed from Workflow Node, User Requested Exit, Error Occurred, Node Removed, Completed). That’s how you chain small workflows instead of building one giant one.
- When a step fails - Continue keeps going with the next step, Pause holds the contact for manual review, and Exit stops them immediately.
Go live & monitor
Going live is two clicks you already know: the Published switch, then Save. What’s new is what happens when the switch says no, and how you watch it work afterwards.
Flip the switch to Published. If it refuses, click Set up beside the step it names.
Can't publish yet
1 required step still needs setup.
Flag for attention
Add a note for the flag
- Published vs Drafted - a Published workflow enrols and runs people; flipping it back to Drafted stops new enrolments. Treat the switch as your on/off. (In the Workflows list the same states read as a Published or Draft badge.)
- The check is narrow - the publish check covers Find Contact, Flag for attention, Share context, AI Agent and Milestone steps. It won’t notice, say, an empty message on a Send WhatsApp Business step, so open every step once before you publish.
- Edits apply when you save - so change a live, enrolling workflow deliberately, and lean on the roll-out tip below.
You can also flip a workflow’s status without opening it. From the list, hover the row and click the ⋮ beside its name.
To see what it did, open the workflow and click the Logs tab.
The Status column tells you where each contact is: Completed, Waiting (mid-wait), Processing (an AI step working), Sending or Message Scheduled for messages on their way, and Error when a step failed.
Almost every “it’s not working” turns out to be one of these six. Run down the list before assuming something’s broken; the Logs tab will usually confirm which one it is.
- 1Nobody is entering itLikely cause: It’s still on Drafted, or the switch was flipped but Save wasn’t clicked.Fix: Flip the switch to Published, then click Save in the top bar. Double-check the trigger really matches your contacts: a too-narrow trigger lets no one in.
- 2A contact ran once and won’t run againLikely cause: Re-entry was switched off, or they are still inside the workflow from last time.Fix: Re-entry is ON by default, so check Enrolment Criteria on the Settings tab. Even when it’s on, a contact who is still running isn’t enrolled twice at once.
- 3It stopped partway throughLikely cause: A stop switch fired, or a Remove from workflow step ran.Fix: Open the Logs and find that contact. Often it’s Stop when contact replied doing its job.
- 4It looks frozen on one stepLikely cause: It’s almost certainly mid-Wait, counting down.Fix: That’s normal. A wait holds just that one person until its time is up or they reply. The Logs show Waiting against the step.
- 5The greeting goes to everyone, even old customersLikely cause: Contact replied is on All contacts.Fix: Open the trigger, click the Contact tab and choose New contacts only.
- 6My edits aren’t showing upLikely cause: The panel’s Save only updates the canvas.Fix: Click Save in the top bar too. Remember a live workflow is enrolling people as you edit, so change it deliberately and re-test with a small group.
Setups to copy
Six recipes, roughly easiest to most involved. Each combines pieces you’ve now met, so read them as patterns to adapt, not scripts to copy exactly. Green is the trigger, violet an action, amber a control-flow step.
Never leave a new enquiry hanging, even at midnight. Set the trigger to New contacts only, and switch on Stop when contact replied.
Let the AI qualify, then flag anyone it couldn’t close so a human replies.
A gentle sequence that backs off the moment they reply. The second message is a Template Message, because it lands after WhatsApp’s 24-hour window.
Reply differently when you’re closed. Branch on Availability > Business Status.
A scheduled sweep that re-engages leads who’ve gone quiet.
Push a won deal to an external system the instant the stage changes.
Mini-glossary of terms
Every term you’ve met in this guide, in one place. Skim it now, or come back whenever a word doesn’t click.
- Trigger
- The event that starts the workflow for one contact: a reply, a new lead, a stage change, or a schedule. Every workflow has exactly one, and it is green on the canvas.
- Node
- A single step on the canvas: send a message, wait, check a condition, update a lead. You connect nodes top to bottom to make a flow.
- Branch (If else)
- A fork in the flow. The branches are checked top to bottom and the contact goes down the first one whose conditions are true, or down Else if none is.
- Enrol / enrolment
- When a contact enters a workflow and starts moving through it. Each contact has its own enrolment, running independently of everyone else’s.
- Stop condition
- A switch under End Workflow Conditions on the Settings tab that ends someone’s enrolment early: Stop when contact replied, or Stop when a teammate takes over.
- Re-entry
- Whether a contact who already went through can enter again. It’s on by default; switch it off for one-time sequences.
- Exit reason
- How something ended. An AI Agent step records goal_achieved, timeout, max_turns_exceeded and so on, which you branch on. A whole enrolment has exit reasons too (Contact Replied, Completed…), which Exit Actions match on.
- Exit Action
- A rule that drops a contact into another workflow based on how they left, so you chain small workflows instead of building one giant one.
- Published / Drafted
- A workflow’s on/off state. Published means it is live and enrolling people; Drafted means it is switched off while you edit. (The Workflows list shows the same as a Published or Draft badge.)
- Wait
- A step that pauses one contact’s journey: Wait for time delay for a set time, Wait for reply until they answer or a timeout passes. It doesn’t hold up anyone else.
Good to know & pitfalls
- Save twice. A panel’s Save updates the canvas; the top-bar Save stores it. Flipping the Published switch also needs a Save. There’s no warning if you leave with unsaved changes.
- Narrow Contact replied. Left on All contacts, it greets everyone who ever messages you, returning customers included. Choose New contacts only for a first-touch reply.
- Always set a stop condition on sequences, so the automation goes quiet the moment a real conversation starts.
- Mind double enrolment. Re-entry is on by default; switch it off for one-time sequences so no one gets the same journey twice.
- Mind the clock. A wait fires whenever it elapses, so branch on Business Status if a message shouldn’t land in the middle of the night, and use a Template Message for anything sent after WhatsApp’s 24-hour window.
- Put Wait for reply right after the send, or name the send step in “Wait for reply to”, so a reply that arrives early isn’t missed.
- Assign Owner needs a lead and a named teammate. Under a contact trigger it is skipped unless you Find Lead first. To raise a hand, use Flag for attention.
- Add Note is not an alert. It writes a contact note and tells nobody.
- Name your nodes clearly. Those names show up in the Logs and when you reference a step’s output later: “Ask budget” beats “AI Model”.
- Keep workflows small and chained. Several focused workflows joined by Exit Actions are far easier to debug than one sprawling one.
- Test before you scale. Use the Test tab, publish from inside the builder, enrol a few contacts, read the Logs, then widen.
Want a workflow built for your business?
Tell us how you sell and our team will map your first workflows with you during onboarding.