Webhook reference
The technical list of every Shopify event Enscale listens for — for developers and for debugging why an automation didn't fire.
Do you need this page?
Probably not. Everything here is set up automatically when you install Enscale, and it all works without you touching it.
Read on only if you're debugging why an automation didn't fire, or you're a developer building something custom. If you just want to know what can start an automation in plain English, What can start an automation is the page you want.
Enscale listens to Shopify events to drive automation triggers, ad attribution and back-in-stock alerts. These are registered automatically at install.
Order and checkout events
| Shopify topic | Workflow trigger |
|---|---|
checkouts/create | Checkout Created |
checkouts/update | Checkout Updated |
carts/create | Cart Created |
carts/update | Cart Updated |
orders/create | Order Created |
orders/paid | Order Paid |
orders/updated | Order Updated |
orders/cancelled | Order Cancelled |
orders/fulfilled | Order Fulfilled |
orders/partially_fulfilled | Order Partially Fulfilled |
orders/edited | Order Edited |
fulfillments/create | Fulfillment Created |
fulfillments/update | Fulfillment Updated |
draft_orders/create | Draft Order Created |
draft_orders/update | Draft Order Updated |
refunds/create | (Meta attribution only) |
Customer events
| Shopify topic | Workflow trigger |
|---|---|
customers/create | Customer Created |
customers/update | Customer Updated |
customers/enable | Customer Account Enabled |
customers/disable | Customer Account Disabled |
customers_marketing_consent/update | Marketing Consent Updated |
Inventory
| Shopify topic | Powers |
|---|---|
inventory_levels/update | Back In Stock trigger and waitlist notifications. |
When a waitlisted product's available count goes positive, Enscale notifies everyone waiting. See Back-in-stock alerts.
Privacy webhooks
Shopify requires every app to handle these. Enscale implements all three.
| Topic | What Enscale does |
|---|---|
customers/data_request | Assembles that customer's data. |
customers/redact | Deletes that customer's personal data. |
shop/redact | Deletes all store data, 48 hours after uninstall. |
App lifecycle
Enscale also handles app-level webhooks for uninstall, scope changes, subscription updates, and the approaching-usage-cap notice that warns you before metered charges stop.
One topic, one trigger
The mapping is deliberately 1:1 — every topic fires its corresponding trigger unconditionally, with no hidden payload conditions.
That's why there's no "abandoned checkout" or "order delivered" trigger. Those are your rules, expressed with a Condition node, rather than ours guessed at inside a webhook handler. The full raw Shopify payload is available as {{trigger.*}}.
See Building the flows people expect.
Deduplication
Related events describing the same thing collapse into one workflow run.
The clearest case: a guest starts a checkout without a phone number, so Enscale can't message them. When they enter a phone, Shopify sends checkouts/update, and Enscale runs your Checkout Created flow at that point. Create and update share one dedup key, so the customer is never messaged twice for the same checkout.
This is invisible in the builder — you still just pick "Checkout Created".
Meta Conversions API
Separately from workflow triggers, some order events feed Meta's Conversions API for ad attribution: Purchase, InitiateCheckout, OrderShipped, OrderDelivered, and OrderCanceled.
These fire only when the contact has an active ad attribution from a Click-to-WhatsApp, Click-to-Messenger, or Instagram ad. Customers who found you organically aren't reported to Meta.
The CAPI mapping is independent of the workflow trigger mapping — the two are deliberately decoupled. See Revenue attribution.
API version
Enscale currently uses Shopify Admin API version 2026-04. Version upgrades are handled by Enscale; you don't need to do anything.
Troubleshooting
| Problem | What to check |
|---|---|
| Workflow never fires | Is it Active? Does its trigger correspond to a topic above? |
| Some orders trigger, others don't | Check for a Condition node narrowing the flow. |
| Delivery events missing | Delivery comes from fulfillments/update with shipment_status, not from an order topic. |
| Restock alerts missing | The product must have inventory tracked in Shopify. |
| Nothing fires after reinstall | Reinstalling re-registers webhooks. If it persists, contact support. |
| Permission errors after an update | Shopify may need you to re-approve scopes. See Shopify installation. |
Next steps
- What can start an automation — the plain-English version of this page.
- Workflows — building flows on these events.
- Revenue attribution — what the Meta events feed.
Asking Shopify Sidekick
Ask Shopify's built-in assistant about your Enscale conversations, reviews, campaigns and usage — in plain English, without opening the app.
Billing and usage
How Enscale charges work — what's on your Shopify invoice, what Meta bills separately, and the cap that stops surprises.