Read this first: triggers are not all available everywhere
An automation belongs to one channel. That decides which triggers you can pick:- Channel triggers only appear on automations built on that channel. A Story reply trigger exists only on Instagram; Cart order received only on WhatsApp. There is no way to put an Instagram trigger on a WhatsApp automation — build a second automation on the second channel.
- Comment triggers only exist on channels that have comments — Facebook, Instagram and TikTok. WhatsApp, Telegram, SMS and Live Chat are message-only, so nothing on those channels reacts to a comment. Choosing a comment trigger is also what makes the Comment actions steps (reply, like, hide, delete) appear in the builder’s step palette.
- Everything else fires on the event, not on the channel. Contact events, dates, bookings and money events don’t care which channel the automation sits on. When such an automation sends a message, it goes out on the channel the contact was last active on.
Channel triggers
Cart order received is hidden only if your connected WhatsApp number reports that its cart
is switched off. Otherwise it stays available — an order message can’t reach you any other way.
Telegram, SMS, Live Chat, TikTok and Google Business
SMS is text-only. An SMS automation can send a message and ask for a reply — no images, no
buttons — so the builder only offers the steps SMS can actually deliver.
Triggers that work on any channel
These don’t belong to a channel. They fire on the event itself.Scheduled date
Scheduled date fires when a date and time you set arrives — one-off or recurring — and runs for an audience you choose rather than for one contact who just messaged you. Use it for a Monday morning reminder, a monthly check-in, or a seasonal offer. If what you want is a one-off message to a list, a broadcast is the simpler tool; reach for Scheduled date when the message needs branching, a delay, or steps that depend on the contact.Birthday / key date
Birthday / key date fires when a contact’s birthday or another key date arrives. The date comes from the contact record, so this only reaches contacts who actually have that date filled in — see custom fields.Conversation closed
Conversation closed fires when a conversation is marked done or resolved in the inbox. It’s the natural place for a follow-up: a satisfaction question, a review request, or a tag that feeds a later segment.Contact events
Sales, money and bookings
The rest of the list covers the things your business does, and all of it is channel-independent:Store
Shopify and WooCommerce events — Order placed through to Customer milestone.
Payments
A payment succeeds, fails, or is refunded.
Invoices, orders and subscriptions
Invoice, order and subscription events from the finance module.
Appointments and classes
Bookings and class events — booked, rescheduled, cancelled, no-show.
Offerings and credits
Credits issued, used or running low; a coupon redeemed; stock low or back in stock.
Keywords
Message triggers can be narrowed with keywords, on both builders. This is trigger setup, not a different kind of bot — there is no separate “keyword bot”.- With no keywords, the automation replies to every message on that channel. That’s the default, and it’s the single most common cause of a bot answering when you didn’t want it to.
- Matching ignores capitals, and any one keyword matching is enough.
- In the flow builder you also choose how the keyword has to match: Any message (no keyword filter), Message contains a keyword, Message is an exact match, or Message starts with a keyword. Quick automations have no such choice — a quick automation with keywords always matches on contains.
Telegram message is the exception: the flow builder hides the keyword box on it entirely, so
a Telegram flow built there answers every message.
When more than one automation matches
There is no priority order between automations. Every active automation on the channel whose trigger and keywords match the message will start, and the contact gets every one of those replies. DMLY guards against the obvious version of this at publish time: if another automation on the same channel already answers the same trigger and either both reply to everything or they share a keyword, publishing is blocked and the message names the other automation.That check only compares against automations that are Active at the moment you publish.
Switching a Paused automation back on doesn’t re-run it — so after reactivating one, check
that nothing else on the channel already answers the same trigger.
Why a trigger didn’t fire
The automation isn't live
The automation isn't live
A trigger is only considered when the automation is Active and has a published version.
Saving a draft changes nothing for your customers — see
publishing bots. Publishing also opens a fresh draft, so what you
edit next is the next version; the live one keeps running until you publish again.
The contact is mid-conversation with another flow
The contact is mid-conversation with another flow
If the contact is already waiting on a question from any flow, their next message answers that
question instead of starting something new. Only after that message fails to resolve does DMLY
look for a matching trigger.
The bot is paused for that contact
The bot is paused for that contact
When a conversation has been handed to a human, triggers stop starting flows for that contact and
any flow already running freezes rather than fails — it picks up where it left off once the bot
is resumed.
The contact opted out
The contact opted out
A contact who texts
stop (or unsubscribe, cancel, quit, and similar) is opted out, tagged
Unsubscribe, and every running flow for them is cancelled. start opts them back in.It already ran for that contact
It already ran for that contact
An automation can only have one activation in progress per contact at a time, and a flow set to
run only once per contact never starts a second time for them.
Nothing is arriving on the channel at all
Nothing is arriving on the channel at all
If no message reaches the inbox either, the problem is the channel, not the
trigger — see no inbound messages and
automation not triggering.
Warnings the builder shows on a trigger
The builder flags a few trigger choices that reliably cause trouble. They’re advice, not blocks — you can still publish.- A workspace notification already fires on this event — clients may receive a duplicate. Review Notification settings. Appears on appointment, invoice and payment triggers that DMLY already sends its own notification for. Either turn that notification off or don’t repeat it here.
- Store-triggered contacts are usually outside the 24h window — start with a WhatsApp Template (or a Checkout Link with a template fallback). A store event says nothing about when the contact last messaged you, and a plain WhatsApp message won’t reach them if it’s been more than a day. See WhatsApp rules and limits.
- Stock triggers such as back-in-stock have no single recipient, so the builder asks you to name a tag whose contacts should be notified.
Next
Flow builder
Build what happens after the trigger.
Templates
Start from a ready-made automation with its trigger already set.
Publishing bots
Drafts, versions, and going live.
Common mistakes
The traps that catch most new automations.

