Enscale Docs
Shopify surfaces

Webhook reference

Every Shopify event Enscale subscribes to, and what each one powers.

Enscale subscribes to Shopify webhooks to drive automation triggers, ad attribution, and back-in-stock alerts. They're registered automatically at install — this page is for understanding what fires what, and for debugging when something doesn't.

Order and checkout events

Shopify topicWorkflow trigger
checkouts/createCheckout Created
checkouts/updateCheckout Updated
carts/createCart Created
carts/updateCart Updated
orders/createOrder Created
orders/paidOrder Paid
orders/updatedOrder Updated
orders/cancelledOrder Cancelled
orders/fulfilledOrder Fulfilled
orders/partially_fulfilledOrder Partially Fulfilled
orders/editedOrder Edited
fulfillments/createFulfillment Created
fulfillments/updateFulfillment Updated
draft_orders/createDraft Order Created
draft_orders/updateDraft Order Updated
refunds/create(Meta attribution only)

Customer events

Shopify topicWorkflow trigger
customers/createCustomer Created
customers/updateCustomer Updated
customers/enableCustomer Account Enabled
customers/disableCustomer Account Disabled
customers_marketing_consent/updateMarketing Consent Updated

Inventory

Shopify topicPowers
inventory_levels/updateBack 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.

TopicWhat Enscale does
customers/data_requestAssembles that customer's data.
customers/redactDeletes that customer's personal data.
shop/redactDeletes all store data, 48 hours after uninstall.

See Data export and deletion.

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

ProblemWhat to check
Workflow never firesIs it Active? Does its trigger correspond to a topic above?
Some orders trigger, others don'tCheck for a Condition node narrowing the flow.
Delivery events missingDelivery comes from fulfillments/update with shipment_status, not from an order topic.
Restock alerts missingThe product must have inventory tracked in Shopify.
Nothing fires after reinstallReinstalling re-registers webhooks. If it persists, contact support.
Permission errors after an updateShopify may need you to re-approve scopes. See Shopify installation.

Next steps

On this page