Skip to main content
Building a flow does not make it run. A flow only reaches customers once you Publish it. That takes the version you have been editing, checks it, and turns the automation on. Until then it is a draft that only you can see. Two things have to be true for a flow to reply to anyone: it has a published version, and the automation itself is Active. Publishing sets both the first time. After that they move independently: you can pause an automation without unpublishing it, and you can edit a published flow without changing what customers get.
Quick automations have no Publish. Publishing only exists in the flow builder. A quick automation is live as soon as you turn its On/off switch on in the Automation list; there is no draft to review and no version history. The rest of this page is about flows. See Flow builder.

Draft and published

A flow keeps versions. The builder always edits the draft. The published version is a separate, frozen copy; it is the one the runtime actually reads. The builder autosaves your draft in the background: the label next to the buttons reads All changes saved, Saving… or Unsaved changes. If it says Autosave failed — use Save draft, use Save draft before you leave the page. Editing a published flow is safe. The moment you publish, DMLY opens a fresh draft from the same steps, so the canvas stays editable. Your edits sit in that new draft while customers keep getting the published version, until you publish again.
Conversations already in progress finish on the version they started on. Publishing a change does not move someone mid-conversation onto the new steps; they see it next time they start the flow.

Publish it

1

Clear the amber warnings

A badge with a count in the toolbar means some steps need attention. Select it to jump to the first one; the step’s panel lists them under Needs attention. The badge itself never blocks Publish, but many of the issues it lists are the same ones the server refuses to publish on. Clear them, or expect the red bar.
2

Publish

Select Publish. The draft is saved first, then checked. If anything fails, a red bar appears under the toolbar with the reason and nothing is published.
3

Confirm it went live

The status badge beside the flow name changes to Active, and the Stats button appears in the toolbar; per-step counts only exist once a version is published.

What blocks publishing

Four checks run, in this order. Each one stops the publish and tells you why.
This automation uses an AI step, which your plan does not include. Upgrade your plan to use it, or remove the AI step. The AI step and the Google review-request step are both gated this way. Remove the step or change plan. See Plans.
Structure comes next. The flow needs exactly one trigger, at least one step after it, and every branch wired up:
  • The flow needs a trigger node.
  • The flow can only have one trigger node.
  • Add at least one action after the trigger.
  • A Condition must connect both its TRUE and FALSE outputs.
  • A Randomizer needs between two and five branches, and their weights must total 100%.
  • Find Order must connect both FOUND and NOT FOUND.
Four steps are also checked for the pick you have to make, and only those four:
  • A "Start Another Flow" step has no flow selected.
  • A "Send Product" step has no product selected.
  • A "Send Template" step has no template selected.
  • A "CTA URL" step has no link.
No other empty field stops a publish. An empty message, a step with no media, a blank AI prompt or a webhook with no endpoint all publish; only the amber badge ever mentions them. That last one still bites at runtime: an HTTP Request step with a missing or malformed endpoint fails the run when a contact reaches it.
Two automations on the same channel with the same trigger do not both reply. Only one of them ever answers, so the other silently never does. Publishing refuses:
  • Two catch-alls: “<other flow>” is already active on this channel and also replies to every message. Only one automation answers a message, so the older of the two would answer every time and the other would never reply. Give one a specific keyword, or pause the other before publishing.
  • A shared keyword: The keyword “<word>” is already used by the active automation “<other flow>” on this channel. Only one automation answers a message, so for that keyword one of the two would never reply: the more specific match wins, or the older automation if they match the same way. Remove the keyword from one automation before publishing.
A different trigger event never collides: only the same event on the same channel. More on keywords and match modes: Triggers.
Your plan caps how many automations can be Active per channel. Publishing activates this one, so it counts. Pause an automation you no longer need, or change plan.
The keyword check only compares against automations that are Active at the moment you publish. If you pause one flow so a second one can publish, turning the first back on with the On/off switch does not re-run the check, and one of the two then answers nothing. Before you reactivate anything, filter the list by Active and confirm nothing else already answers the same trigger.

The amber warnings

The badge never blocks Publish by itself, but it is not a separate world from the publish check either: the two overlap, and neither contains the other. Clearing the badge is not a promise the flow will publish, and a step with no badge can still fail a structural check. Two of the things it flags will also fail the publish check, so fix these first:
  • Not connected — no incoming edge. means a step nothing leads to, so it never runs. Publishing fails with Node "<id>" is not connected to the flow.
  • Output “<port>” connects to <n> steps — each output can connect to only one next step.: publishing fails with Step "<name>" has <n> connections from one output (<port>) — each output can connect to only one next step. Remove the extra connection(s).
The rest are badge-only; nothing else will tell you:
  • WhatsApp text messages can't carry buttons — use the Buttons Message step.
  • Instagram does not support call/webview buttons.
  • A workspace notification already fires on this event — clients may receive a duplicate. Review Notification settings. appears on triggers like a booking confirmation or a payment receipt, where DMLY may already be messaging the contact.
  • Store-triggered contacts are usually outside the 24h window — start with a WhatsApp Template (or a Checkout Link with a template fallback). See WhatsApp rules and limits.
Notes on the canvas are never flagged.

Turn automations on and off

Every row in the Automation list has an On/off switch. It flips between Active and Paused, and it is the only control you need day to day.
  • Pausing never touches the published version. The flow stops starting new conversations; turn it back on and the same version runs again. Nothing is lost.
  • Turning on re-checks your plan’s cap on active automations per channel. If you are at the limit, the switch springs back and the page tells you why.
  • A quick automation that has never run is Draft; the switch is how it goes Active.
Pausing an automation is not the same as pausing the bot for one person. To stop the bot in a single conversation, pause it on that contact from the Inbox.

Managing the list

The Automation list shows Builder, Platform, Trigger, Status, Usage and Last run for every automation on the selected channel, ten to a page. Four controls narrow it: Search automations… by name, plus All builders, All triggers and All statuses.
There is no bulk on/off. Automations are turned on and off one at a time, and there’s no “pause everything” control; the filters just narrow which rows you see.
Each row’s menu has Open builder (or Edit for a quick automation), Preview, Analytics, and Delete if your role allows it. Preview opens Try this bot, a link that starts a real conversation with this automation, so you can test it the way a customer reaches it. On WhatsApp, Facebook, Instagram and Telegram that link is a chat deep link (wa.me, m.me, ig.me, t.me); on Live Chat it is a hosted page with nothing on it but your widget. The modal also shows a QR code for opening it on your phone, Open and Copy link, and a What starts it footer naming the trigger and the first keyword to send. On WhatsApp the link pre-types that keyword for you. Anything you send there is a real conversation and lands in your Inbox. SMS, TikTok and Google Business have no link that opens a chat, so there you get neither a link nor a QR code, only Message the connected account directly to test this automation.
Preview also tells you when the bot would answer nothing. Switched off, the modal reads This automation is <status>, so it will not reply. Turn it on to test for real. Switched on but never published, it reads This automation is on, but its flow is not published — so it will not reply. Open the builder and publish it. That second case is the one nothing else surfaces: the row still shows a green Active badge.
Deleting is the one action you can do in bulk: tick a row’s checkbox (the header checkbox grabs everything on the current page) and a Delete bar floats in at the bottom showing how many are selected. The checkbox column only shows up if your role has permission to delete automations. Either way, one row or several, deleting removes an automation’s versions with it and cannot be undone; a contact already inside a deleted automation just finishes or times out on its own.
The status filter offers Failed, but no automation is ever set to that status, so the filter always comes back empty. A run can fail without the automation failing; that shows up in Analytics, not here.
Check, in this order: the automation is Active, not Paused or Draft; the flow has a published version (the Stats button in the builder only appears when it does); and the trigger matches what customers actually send. Then read Automation not triggering and Logs.
You are almost certainly editing the draft of an already-published flow. Save draft and autosave both write to the draft only. Select Publish to make the edits live.

Flow builder

Build the flow itself: steps, branching and the canvas.

Triggers

Choose what starts a flow, and set its keywords and match mode.

Templates

Start from a ready-made flow instead of a blank canvas.

Common mistakes

What goes wrong most often, and how to avoid it.