What can start an automation
Every event that can kick off a workflow — orders, messages, comments, ad clicks — and how to build the flows you actually want.
Something has to start an automation. That's the trigger, and every workflow has exactly one.
This page lists everything available. If you're building your first automation, the recipes below are more useful than the full lists — they show how to build the four automations most stores want.
Why there's no ready-made "abandoned cart" trigger
Enscale gives you raw events from Shopify rather than pre-packaged recipes. So there's no single "abandoned checkout" or "order delivered" trigger — you build those from a raw event plus one Condition step.
The upside: you set the rule. Whether abandoned means 30 minutes or 6 hours is your call, not a guess baked into the app. The recipes below show exactly how, and flow templates have them pre-built if you'd rather skip the thinking.
The four flows everyone wants
Abandoned cart recovery
Trigger: Checkout Created
→ Wait 1 hour
→ Condition: did they complete the order?
→ No: send recovery messageThe condition is what makes it abandoned — a checkout that turned into an order shouldn't get chased.
If a shopper starts checkout without entering a phone number, Enscale can't message them yet. When they add a phone later, Shopify sends an update and Enscale runs your flow at that point instead. The two events share one identity, so the customer never gets messaged twice.
Order delivered → ask for a review
Delivery is a shipping state, not an order state — so:
Trigger: Fulfillment Updated
→ Condition: shipment status is "delivered"
→ Yes: wait 2 days, then send a review requestCash-on-delivery confirmation
Trigger: Order Created
→ Condition: payment methods contain "Cash on Delivery (COD)"
→ Yes: send a COD confirmation templateWorth building early if you do COD volume — a confirmation message measurably reduces refused deliveries.
Refunds, or converting COD to prepaid
Trigger: Order Updated
→ Condition: payment status is "refunded" (or "paid")Shopify events
These fire when something happens in your store.
| Trigger | Fires when |
|---|---|
| Checkout Created | A shopper starts checking out |
| Checkout Updated | An existing checkout changes |
| Cart Created | A new cart is created |
| Cart Updated | A cart changes |
| Order Created | An order is placed |
| Order Paid | Payment is captured |
| Order Updated | Anything about an order changes |
| Order Cancelled | An order is cancelled |
| Order Fulfilled | The whole order ships |
| Order Partially Fulfilled | Part of it ships |
| Order Edited | Items on an order are changed |
| Fulfillment Created | A shipment is created |
| Fulfillment Updated | A shipment changes — including delivery |
| Draft Order Created | A draft order is created |
| Draft Order Updated | A draft order changes |
| Customer Created | A new customer record appears |
| Customer Updated | Customer details change |
| Customer Account Enabled | A customer activates their account |
| Customer Account Disabled | You disable a customer account |
| Marketing Consent Updated | A customer's SMS marketing consent changes |
| Back In Stock | A sold-out product is available again |
Three that don't carry what you'd expect
- Order Edited sends a summary of what changed, not the order itself. Add a Fetch Order step to get the order.
- Marketing Consent Updated carries only the customer's id, phone and consent state — no name, no email.
- Fetch Order Checkout looks up orders, not abandoned checkouts. Don't pair it with a checkout trigger; it won't find anything.
More on this in Using customer details.
| Trigger | Fires when |
|---|---|
| Instagram Comment | Someone comments on your post |
| Instagram DM Received | Someone sends you a DM |
| Story Mention | Someone mentions you in their story |
See Instagram comment automation for the comment-to-DM pattern.
The old Comment to DM trigger is retired
Instagram Comment to DM no longer appears when building new flows — it did the same job as Instagram Comment followed by a reply and a DM.
Workflows you already built with it keep running unchanged. Rebuild them on Instagram Comment next time you edit one.
Ad clicks
These fire when someone messages you after tapping one of your ads — so you can treat ad traffic differently from organic.
| Trigger | Fires when |
|---|---|
| WhatsApp Ad Click | They message you after tapping a Click-to-WhatsApp ad |
| Instagram Ad Click | They DM you after tapping an Instagram ad |
| Facebook Ad Click | They message your Page after tapping a Click-to-Messenger ad |
All three tell you which ad brought them in, so you can respond with the offer they clicked rather than a generic greeting. Someone who tapped your Diwali sale ad shouldn't be asked "how can I help?"
Available on all paid plans. These also feed Revenue attribution, so you can see what your ads actually earned.
Inbox activity
| Trigger | Fires when |
|---|---|
| New Conversation | Someone contacts you for the first time |
| Conversation Opened | A closed conversation is reopened |
| Conversation Out of Hours | Someone messages outside your business hours |
| Conversation Resolved | A conversation is closed |
| Keyword Received | A message matches a keyword you set |
| Campaign Response | Someone replies to a campaign |
| AI Handed to Human | An AI agent passes a conversation to a person |
Keyword Received is the quiet workhorse. Set up PRICE, AGENT, OFFER or TRACK and customers can self-serve — a message saying TRACK fires a flow that looks up their order and sends the status, with nobody involved.
AI Handed to Human tells you why it handed over, so you can alert a specific person for payment issues but not for general questions.
Conversation Out of Hours needs business hours configured in first-run setup.
Customers and consent
| Trigger | Fires when |
|---|---|
| Contact Added | A new contact is created |
| Tag Added | A specific tag lands on a contact |
| Popup Subscriber | Someone subscribes through a storefront popup |
| Back-in-stock Subscribed | Someone joins a product waitlist |
| WhatsApp Opt-Out | Someone opts out |
| Review Submitted | A customer leaves a review |
Tag Added is the most flexible trigger in Enscale — see the pattern for why splitting flows around a tag is usually better than one long flow.
WhatsApp Opt-Out fires however they opted out — a STOP reply, an AI agent, or a staff action. Use it to tag, re-segment or alert your team.
Don't use it to send a farewell message. They've just told you to stop, and you're no longer permitted to message them on WhatsApp anyway.
Review Submitted tells you the rating, so you can branch: thank the 5-star reviewers, and route the 1-star ones straight to a human before they post it publicly elsewhere.
The 24-hour service window
This decides what kind of message each trigger can send, and it's the thing that catches everyone out once.
A normal, free-typed message can only be delivered inside an open 24-hour window — the 24 hours after the customer messaged you. An approved template can be sent any time.
A window is open when:
- The trigger is a conversation trigger — the customer just messaged you, so it's already open.
- Or a template earlier in the same flow opened one and the customer replied.
What this means in practice: a flow triggered by Order Fulfilled can't start with a free-typed message. The customer hasn't messaged you, so no window exists. Start it with an approved template instead.
The builder flags this before you publish, so you'll be warned rather than discovering it from a customer.
Which triggers you get
All of them, on every plan, including Free. What changes by plan is how many workflow runs you get per month — see Plans and limits.
Ad-click triggers are the one exception: those need a paid plan.
Next steps
- What an automation can do — the steps that come after a trigger.
- Using customer details — putting real data into messages.
- Flow templates — these recipes, pre-built.