These Shopify topics drive Nudj’s internal event pipeline, which in turn can trigger achievements, fire outbound Nudj webhooks, and update metrics. For the outbound Nudj webhook catalog and payload shapes, see Webhook Events Catalog.
Programmatic registration
PR #1684 replaced manual webhook registration with programmatic registration on app install. Nudj’s install flow calls Shopify’s webhook API to register every topic the app consumes, so merchants don’t manage subscriptions themselves.Achievement-trigger topics
PR #1780 added 16 new Shopify webhook topics to drive achievement triggers. They span the core commerce lifecycle:| Category | Example topics |
|---|---|
| Orders | orders/create, orders/paid, orders/fulfilled, orders/cancelled |
| Customers | customers/create, customers/update |
| Carts | carts/create, carts/update |
| Checkouts | checkouts/create, checkouts/update |
| Products | products/create |
| App lifecycle | app/uninstalled, app/scopes_update |
handle-event.ts pipeline that drives all Nudj achievements.
Removed / unsupported topics
Not every topic made it into production — Shopify occasionally deprecates scopes, and some topics were pulled to reduce background cost:- Subscription contracts — PR #1808 removed subscription contract webhooks and their scope after Shopify’s subscription API shape changed.
- Unsupported topics — PR #1789 removed webhook topics Shopify no longer accepts from apps, preventing install-time failures.
- Compliance webhooks config — PR #2323 fixed an invalid
[compliance_webhooks]TOML that was blocking the dev deployment pipeline.
Cost-protective hotfixes
Two production incidents drove hotfixes into the webhook layer:- PR #2112 — hotfix disabling certain Shopify webhooks to stop a Redis cost spiral caused by high-cardinality event traffic.
- PR #2124 — return
410 Goneon disabled webhook routes to force Shopify to unregister them.410is the Shopify-documented signal to remove a subscription; returning other codes would leave Shopify retrying indefinitely.
Session Service
PR #1833 implemented the Shopify Sessions Service — the backing store for merchant access tokens (encrypted per PR #1484). Webhooks arrive pre-authenticated; the Session Service resolves the token needed to make any outbound Shopify API call triggered by the webhook.Next steps
Webhook events catalog
Outbound Nudj webhook events that these Shopify topics ultimately drive.
Shopify integration overview
Where webhook registration fits in the full install flow.
Last reviewed: 2026-04 · Related PRs: #1484, #1654, #1684, #1780, #1789, #1808, #1833, #2112, #2124, #2323

