Skip to main content
Automation is how DMLY replies, tags, books and charges without you in the thread. You pick something that starts it — a customer messages your WhatsApp number, a tag lands on a Contact, an invoice goes unpaid — and then a series of steps runs on its own. Three things are worth knowing before you build anything, because each one catches people out.
An automation belongs to one Channel. Not to the workspace. A bot you build on your WhatsApp number does not answer your Instagram DMs — to cover both, you build it twice, once per Channel. The one exception is triggers that aren’t about messaging at all (a birthday, a paid invoice); those are covered below.The steps you can add depend on the channel. A WhatsApp flow gets buttons, lists and templates. An SMS flow gets text and nothing else. The Sequence step exists only on Facebook and Instagram.“Keyword bot” and “flow bot” are not two different things. Keywords are just settings on the trigger. Every automation can have them; most don’t need them.

One automation, two builders

New automation opens Templates. Pick a template and it decides the builder for you; choose Start from scratch and you’re asked the question directly: How do you want to build it? Both appear in the same list with a Quick or Flow badge, and Filter by builder narrows to one. They are the same underlying thing, so start with whichever fits. A quick automation is genuinely fine for “when someone sends hours, reply with our opening times.” Reach for the flow builder the moment you need a question, a condition, a wait, or a second reply that depends on the first.
You are not stuck with your choice. A quick automation has an Edit in Flow Builder action that converts it into an equivalent flow, keeping its trigger and actions. It’s a one-way door — there is no way back to the form afterwards — but it means you never have to rebuild from scratch when a simple rule outgrows itself.
Both builders can start from Start from scratch or from a ready-made Templates entry. See templates for what’s in the library, and the flow builder for how the canvas works.

What starts an automation

Every automation has exactly one trigger, and the trigger decides everything else — which steps you’re offered, and even whether the automation needs a channel at all. There are two kinds. Channel triggers fire on activity on one connected channel. What’s on offer follows what that channel can actually do, which varies a lot: Notice the imbalance. Instagram and Facebook can react to comments; WhatsApp, SMS and Telegram have no comments to react to, so nothing there will let you build one. WhatsApp is the only channel that can trigger on a phone call. Everything-else triggers don’t belong to a channel and are offered no matter which channel you’re building on: Contact converted to client, Lifecycle stage changed, Conversation closed, Birthday / key date, Scheduled date, plus the whole commercial set — orders, invoices, payments, subscriptions, appointments, classes, credits, coupons and stock. These are the majority of what’s available, and they’re the ones people forget exist. An overdue invoice chase is an automation. So is a birthday message. Three of them do the work most operators actually want:
  • Scheduled dateA date/time you set arrives (one-off or recurring), sent to an audience.
  • Birthday / key dateA contact’s birthday or a key date arrives.
  • Conversation closedA conversation is marked done / resolved. This is how you send a satisfaction ask after your team finishes a chat.
The full list, and what each one hands your flow, is on triggers.

Keywords are part of the trigger

There is no separate keyword bot. On a message trigger you can leave the keyword list empty — the automation then answers every message on that channel — or you can add keywords and pick how they match: any message, an exact match, starts with, or contains. Matching ignores capitals, and one keyword hitting is enough. An empty keyword list is a catch-all, and catch-alls are the single most common cause of a bot that misbehaves. Two active catch-alls on the same channel means the customer gets two replies. DMLY refuses to publish the second one and tells you why:
“<other automation>” is already active on this channel and replies to every message, so both would respond. Give one a specific keyword, or pause the other before publishing.
The same check catches a shared keyword. Overlapping triggers on different events never collide.

Steps change with the channel

The step palette in the flow builder is built from what your channel can deliver, so the same flow built twice on two channels is not offered the same tools. Messaging, AI, Logic, Actions, Appointments, Offerings, Finance and Other are always there. On top of that:
  • WhatsApp adds a whole WhatsApp group — buttons, lists, link buttons, approved templates, WhatsApp Flows, catalogue, location, phone-number requests, satisfaction ratings and call permission. See WhatsApp Flows and request phone.
  • Messenger (FB/IG) adds the Facebook and Instagram–only steps, including the one that enrols a contact in a Sequence and the marketing opt-in step.
  • SMS takes things away. The Messaging group shrinks to a plain message and a question — no image, video, audio or file — because an SMS gateway sends one string of text and nothing more.
  • Comment actions (reply, like, hide, delete) appear only once you’ve picked a comment trigger. Choose a different trigger and they disappear again.
  • Store (Shopify / WooCommerce) appears only when a store is connected, since those steps call the store and do nothing without one.
Two channel rules the builder will flag as you work: a plain WhatsApp text message can’t carry buttons (use the buttons step instead), and Instagram doesn’t support call or webview buttons.
A flow on a Store, Finance or Scheduled date trigger often reaches people who haven’t messaged you in the last 24 hours, and WhatsApp does not allow a freeform message to those contacts. Start that kind of flow with an approved template or the message never lands. See WhatsApp rules and limits.

Draft, publish, live

Quick automations have no publish step, but they aren’t live the moment you save either: a new one is created as a Draft, and a draft never runs. Turn it on with the on/off switch next to it in the automations list. Flows do have a publish step. The canvas always edits a draft; the live version keeps running untouched. Save draft stores your work in progress, and Publish makes it real: it checks the flow, then activates the automation and switches the running version to what you just published. Any conversation already mid-flow finishes on the version it started on. Publish refuses when:
  • your plan doesn’t include a step you’ve used (AI steps and Google review requests are plan-gated — see plans);
  • the flow isn’t buildable — no trigger, more than one trigger, no step after the trigger, a condition with a dead branch, an unconnected step;
  • it would collide with another active automation’s keywords on that channel;
  • you’ve hit the cap on active bots for that channel. Publishing counts as activating.
Amber marks on the canvas are advice, not blockers — the check at publish time is the one that decides. Full detail on publishing bots. An automation is Draft, Active or Paused. Pausing stops it starting anything new and is always allowed; it doesn’t throw away the published version, so turning it back on resumes exactly where it was.
The status filter also offers Failed, but no automation is ever set to that — nothing writes it. An individual run can fail (you’ll get a bell notification and see it in the automation’s analytics), but the automation itself stays Active. Filtering by Failed will always come back empty.

What stops a running flow

Worth knowing before you wonder where a contact went:
  • A customer texts stop (or unsubscribe, cancel, quit and similar). This cancels every running flow for that contact across every automation, stops their sequences, and tags them Unsubscribe. start opts them back in.
  • They go quiet. A flow waiting on a reply gives up after 24 hours. A reply after that starts a new conversation rather than picking up the old one.
  • A contact can only be in one activation of the same automation at a time. Triggering it again while it’s still running does nothing.
  • Pausing the bot on a conversation freezes flows rather than failing them — they carry on when you unpause.

Flow, sequence or broadcast?

They overlap enough to be confusing. The question is what starts it and who it goes to. The edge case: a Scheduled date flow sends to an audience on a date you choose, which looks a lot like a scheduled broadcast. Use a broadcast for one-off sends to a segment; use a scheduled flow when it recurs or when each contact should go down a different path afterwards.

Where to go next

Build a flow

The canvas, the steps, and how a flow actually runs.

Triggers

Everything that can start an automation, and what it gives you.

Templates

Ready-made automations to install and edit.

Bot setup

Per-channel bot behaviour and defaults.

Common mistakes

The traps that make a bot look broken.

Nothing is triggering

Work through why an automation isn’t firing.