Commerce
Connect your store

Shopify integration

Ingest Shopify orders into Pulse in real time by pointing a pair of webhooks at the commerce-webhook function.

Webhook URL

Under Integrations → Shopify / Woo, copy the Shopify URL. It looks like:

https://zruqflqnlzriyowvhcdy.supabase.co/functions/v1/commerce-webhook?workspace_id=<id>&source=shopify

In Shopify admin

  1. Go to Settings → Notifications → Webhooks.
  2. Add a webhook for Order creation. Format: JSON. URL: the Pulse URL above.
  3. Add another for Order payment with the same URL.
  4. Optionally add Product update to sync catalog changes.

What happens on receipt

  1. Pulse normalizes the Shopify payload into the canonical order shape.
  2. It upserts commerce_orders using (workspace_id, source, external_id).
  3. It upserts the customer by email, creating one if needed.
  4. It emits an event: order_created for new orders, order_completed when the order becomes paid.
  5. It runs last-touch attribution against campaigns sent in the last 7 days.

HMAC verification

Shopify signs every webhook with an HMAC-SHA256 header. Pulse validates the signature using your store's shared secret. If verification fails, the request is rejected with HTTP 401.

Backfilling history

The webhook only captures new orders from the moment it's configured. To import historical orders, export a CSV from Shopify and upload it under Imports → Orders.