Subscribe to specific events per webhook config — delivering every event to every endpoint burns your endpoint and inflates the delivery logs. The per-config
events field filters the stream.Reward events
The core events most integrations subscribe to.Engagement events
Referral events
The referral distribution events fire when a referee qualifies:Shopify-driven events (inbound bridge)
PR #1780 subscribed Nudj to 16 Shopify webhook topics that drive internal events. These are consumed inside Nudj’shandle-event.ts pipeline and typically trigger achievement.earned / points.awarded outbound webhooks rather than being re-emitted verbatim. See Shopify Webhook Integration for the topic list.
If a Shopify topic does pass through verbatim, the outbound event name is prefixed shopify. (e.g. shopify.orders_create) and the payload includes both the Nudj user context and the raw Shopify event body.
Payload conventions
Every payload is wrapped in a stable envelope:deliveryIdmatches theX-Nudj-Delivery-Idheader. Use it as your idempotency key.- Entity IDs inside
data.*are stable across the lifecycle of the entity. - Timestamps are ISO-8601 UTC.
Signing and retries
Every event is signed with HMAC-SHA256 per Webhook Implementation. Delivery retries with exponential backoff on5xx, timeouts, and connection errors. Terminal 4xx responses (other than the documented 410 Gone — see Shopify-specific webhooks page) are not retried.
Next steps
Webhook implementation
Sign verification, retries, sample endpoints.
Delivery logs
Inspect delivery history and retry state.
Last reviewed: 2026-04 · Related PRs: #1780

