Skip to main content
All Shopify integration capabilities

About

Send Shopify webhooks to Sazabi to search orders, refunds, products, inventory, customers, and app uninstalls next to the rest of your production telemetry. Shopify posts each event to your Sazabi intake URL as a JSON POST, signed with an HMAC. There is no agent to deploy, and Sazabi never calls the Shopify API.

What Sazabi records

Each Shopify delivery becomes one Sazabi record that keeps the full payload, timestamped when Sazabi receives it, so a retry a day or two later still lands. The original time is kept as an attribute. These attributes are extracted for filtering:

Prerequisites

  • Access to Settings > Notifications > Webhooks in the Shopify admin, or to the Shopify app whose webhooks you configure.
  • The key Shopify signs with: for an app’s webhook, the app’s client secret from the Shopify Dev Dashboard; for a webhook created in the admin, the ID Shopify says your webhooks are signed with, shown on the Webhooks page.
  • Your Sazabi intake URL.
Signature verification is in early access. While it is on for your organization, Sazabi asks for the verification secret before it creates the intake URL, and rejects any delivery whose signature does not match. Contact support to turn it on.

Set up in the dashboard

1

Add the log source

In the Sazabi dashboard, open Settings > Log sources, choose Shopify Webhooks and add it. If Sazabi asks for a verification secret, paste the key Shopify signs with (see the prerequisites above). Sazabi then shows your intake URL.
2

Create the webhook in Shopify

In the Shopify admin, open Settings > Notifications > Webhooks and click Create webhook.
  • Event: Choose the topic to send, such as Order creation. Each webhook sends one topic, so create one per topic with the same URL.
  • Format: JSON.
  • URL: Paste your Sazabi intake URL.
  • Webhook API version: Choose the latest stable version.
To subscribe an app instead, set the webhook subscription’s uri to your Sazabi intake URL and deploy the app configuration.
3

Save and verify

Save the webhook, then click Send test notification to deliver a sample event.

Set up with the CLI

You can also register the Shopify Webhooks log source with the Sazabi CLI (installed and authenticated — see CLI reference).
The command prints the intake URL. Paste it into the webhook’s URL in Shopify. The secret is read from standard input, so it never appears in your shell history. Run sazabi log-sources get <log-source-id> at any time to reprint the endpoint, or sazabi log-sources list to see every log source in the project.

Verify signatures

Shopify signs every delivery with a base64 HMAC-SHA256 of the body and sends it in the X-Shopify-Hmac-SHA256 header. Sazabi checks it on the exact bytes Shopify sent and rejects a delivery whose signature does not match with 401. A rejected delivery is not stored and not billed. Shopify does not sign a timestamp, so Sazabi cannot tell a replayed delivery from a fresh one. To change the secret later, open the log source in Settings > Log sources and choose Rotate secret. The previous secret keeps working for 24 hours by default, so Shopify keeps delivering while you update it. The Intake page shows rejected deliveries and why.

Verify

Click Send test notification on the webhook, or create a draft order or update a product in a development store. Open the Intake page in the Sazabi dashboard and confirm records from the Shopify Webhooks source appear. Records typically arrive within a minute or two.

Troubleshooting

Shopify reports failed deliveries with 401 — The signature did not match. An app’s webhook is signed with the app’s client secret; a webhook created in the admin is signed with an ID unique to your store. Check that the secret in Sazabi is the one that signs this webhook. 400 from Sazabi — The body was not JSON. Choose JSON as the webhook format. No records after saving — Confirm the URL exactly matches your Sazabi intake URL, including the https:// scheme. Shopify removes a webhook after repeated failed deliveries, so check that it is still listed.

Further reading

Intake

See per-source ingestion volume and health in the Intake page.

Webhook Events

Verify signatures and send webhooks from any other platform.

Verify webhook deliveries

Shopify’s documentation for the signature Sazabi checks.

Webhook topics

Every topic Shopify can send.

Log sources

Browse the full log source catalog.