Shopify
Trigger Wexio flows from Shopify orders, carts, and customers
Shopify signs webhook bodies with HMAC-SHA256 and sends the base64-encoded signature in X-Shopify-Hmac-Sha256. Wexio's Shopify preset configures that for you.
Provider docs: Setting up webhooks in Shopify
Setup
1. Create an inbound Wexio connection
Settings → Webhooks & API → New connection → Inbound. Click the Shopify preset under Generic HMAC-SHA256 presets.
The preset prefills:
| Field | Value |
|---|---|
| Auth mode | GENERIC_HMAC_SHA256 |
| Signature header name | X-Shopify-Hmac-Sha256 |
| Encoding | Base64 |
| Header prefix | (empty) |
You'll add the signing secret and URL next.
2. Register the webhook in Shopify
In Shopify admin → Settings → Notifications → Webhooks → Create webhook (or use the Admin API for programmatic setup).
| Field | Value |
|---|---|
| Event | e.g. orders/paid, checkouts/create, customers/create |
| Format | JSON |
| URL | The Wexio endpoint URL |
| Webhook API version | Latest stable |
Shopify shows a Webhook signing key once per shop in Settings → Notifications — copy that into Wexio's Signing secret field. This key signs all webhooks for this shop (not per-endpoint).
3. Configure contact resolution
| Identifier type | JSON path | Notes |
|---|---|---|
$.email | Order-level events | |
$.customer.email | Customer-nested events | |
| Phone number | $.phone | When SMS marketing is involved |
4. Capture the schema, bind a flow
Trigger a test webhook from Shopify's Send test notification button, let Wexio capture the schema, then add a Webhook Received trigger.
Example — Order Paid → WhatsApp Receipt
- Shopify event:
orders/paid - Wexio: identifier
Email, path$.email - Flow: Webhook Received → WA Template "order_receipt" with
{{webhook.order_number}},{{webhook.total_price}},{{webhook.currency}}
Troubleshooting
| Symptom | Fix |
|---|---|
UNAUTHORIZED: HMAC signature mismatch | Double-check the signing key in Shopify — it's shop-wide, so one wrong copy breaks every webhook |
| Signature always mismatches after reaching Wexio | A reverse proxy is reformatting the JSON body. Shopify's signature is over the exact bytes — pass-through only |
| Missing events | Confirm the webhook is registered for the event you expect in Shopify's admin |