Where
Outreach→Workflow Builder
Your role needs
Create access to Workflow Builder
create-workflows. Admin and Member have it by default.To create or change
create-workflows to add one, update-workflows to change one, on top of the permission above.Not listed in the sidebar today; reachable from the surfaces that link to it, and by URL. If you cannot find this in your sidebar, your workspace may have a custom menu configuration. Contact support and we will check it for you.
Before you begin
- You need the
update-workflowspermission to save or activate anything here. Without it, Save and Activate stay disabled, and a tooltip says why. - This assumes a workflow is already open, new or existing, from .
Steps
1
Open the validation panel
Next to Save, the toolbar carries a pill. It reads Valid only when there is nothing at all to report; otherwise it counts what it found, errors and warnings, separated by a dot. Click it and a Validation card opens over the bottom right of the canvas, listing every issue: errors first with a red icon, then warnings in amber.Click an entry that belongs to one block and the canvas selects that block and opens its inspector. An issue that points at a field, a required box left empty or a message with no text, outlines that field in red there; every other issue sits as a coloured banner at the top of the inspector instead. An issue that isn’t tied to a single block, a loop somewhere in the graph, for instance, isn’t clickable at all. The same red or amber dot sits on the block itself on the canvas the whole time, panel open or not: hover it and the tooltip lists every issue on that block.
2
Tell an error from a warning
Only errors hold Activate back; warnings never do, however many pile up. A required field left blank, a message block with nothing to send in its current mode, and a block whose integration isn’t connected are all errors. So is a LinkedIn: Message or a LinkedIn: Engage with post placed before the invite is accepted, and even sending a LinkedIn: Connect invite without a LinkedIn: View Profile step first: a rule that reads like a nudge but is enforced like a wall. A loop with no wait step and no Loop block capping it is an error too, since nothing would stop it spinning forever.Warnings read softer: a block sitting disconnected from everything else, a branch with nowhere to go, and any loop at all, bounded or not, flagged on principle. An email block in a workspace with no email account connected only warns, whichever account it is set to send from, since one might get connected before the workflow ever runs. LinkedIn, WhatsApp and Instagram blocks skip that warning, because a missing integration is already an error for them.One warning comes with its own fix. A send block that could reach a lead missing the address or number it needs offers Add a check first in the inspector. That drops an If / Else already set to the missing field with the operator is not empty, and wires it in front of the block when the block has exactly one incoming connection. With none, or with more than one, the guard lands on the canvas unwired and you connect it yourself.
3
Preview what a block will write
A block that writes something itself can show a Test generation button under its prompt while it is in AI mode: Send Email, Send Follow-up, Send Reply, LinkedIn: Message, a LinkedIn: Connect invite once its personalized note is switched on, Send WhatsApp, Send Instagram DM, Answer MercadoLibre Question, AI Conversation and AI Generate Content. Send WhatsApp and Send Instagram DM start on Custom template instead, so the button only appears once you switch Message to AI. It stays disabled until the block’s own prompt field has text in it, whether that field is Prompt on a send block, the goal on AI Conversation or the instruction on AI Generate Content. Answer MercadoLibre Question is the exception: it tests from an empty prompt, since the buyer’s own question supplies the rest. Instagram: Reply to Comment never gets the button at all: nothing generates a sample for it yet.Click it and a dialog generates a live sample against a real lead from your workspace, picked at random, or a stand-in if you have none yet. On Send Reply, a toggle switches between Interested, Objection and Not interested and shows the message it’s answering, so trying the same prompt against a different reply is one click away. Regenerate runs it again from the same settings. Nothing here sends or saves anything, and the dialog says so itself: the sample comes from a lighter, faster model than a live send uses.
4
Turn it on
Activate (2) is enabled the moment there are no errors, warnings or not; while an error remains it stays disabled and a tooltip tells you to fix them first. The pill (1) reads Valid only when nothing at all is left, warnings included, so a workflow can be activatable and still not read Valid. Press Activate and it saves first, then asks the server to compile the graph and check it again on its own, a second pass that catches a few things the browser’s copy of the rules doesn’t. Once that passes, the button relabels to Deactivate with a small dot confirming it’s live, and a toast confirms the change.
What happens next
The workflow is live. From now on, every lead that reaches its trigger enters it on its own and starts down the blocks you built. Open Workflows any time to see it listed as Active.
Troubleshooting
Activate refused a workflow that read Valid
Activate refused a workflow that read Valid
A Valid pill only reflects what the browser can check on its own. The server compiles the same graph again the moment you press Activate, and it looks for things the browser never does: a trigger with nothing wired after it, an empty canvas, a connection whose block has since been deleted, and a block type it can’t run yet. The browser flags none of those, so a graph that is nothing but a trigger reads Valid and is still refused, because every trigger needs a real path out of it. Wire something after the trigger and try again.
The rejection doesn't say what's wrong
The rejection doesn't say what's wrong
Where you pressed Activate changes what you’re told. From the workflows list, toggling a workflow on names the specific problem right in its own toast. From inside the builder, a refusal only says the save couldn’t go through; it never reads the reason the server sent back. Reopen the validation panel, and if it lists no errors, the problem is one only the server’s compiled check catches, most likely an unwired trigger. Toggling the same workflow from the list will tell you which.
Test generation stays disabled
Test generation stays disabled
The button needs text in the block’s own prompt field first, and hovering it says so. Answer MercadoLibre Question is the exception: it tests from an empty one. Send WhatsApp and Send Instagram DM start on Custom template, not AI, so the button isn’t there at all until you switch Message to AI, and a LinkedIn: Connect invite only offers it once its personalized note is switched on. Instagram: Reply to Comment never gets one: nothing generates a sample for it yet.
Related
Workflow troubleshooting
A missing block, a workflow that won’t activate, a lead that hasn’t moved: what each one actually means.
Logic, Timing and Finish blocks
Branch on what you know, wait for time or for a reply, and end a flow deliberately.
Outreach and AI blocks
The blocks that send something (email, LinkedIn, WhatsApp, Instagram, MercadoLibre), and the AI blocks that decide what to say.
Enrollments and the lead journey
Follow one lead through a flow: where it is now, which branch it took and why it stopped.