Shopify Integration
Connect your Shopify store to SegOps in minutes with native webhook support. No SDK required on the Shopify side — just configure the webhook URL in your Shopify Admin.
Webhook URL#
All Shopify webhooks for your tenant are received at:
Replace <your_tenant_slug> with your tenant identifier (e.g., acme). You can find your tenant slug under Settings → General.
HMAC Verification#
Shopify signs every webhook request with an HMAC-SHA256 signature in the X-Shopify-Hmac-SHA256 header. SegOps automatically verifies this signature using your Shopify webhook secret — no API key required for Shopify webhooks.
Shopify Topic → SegOps Event Mapping#
| Shopify Topic | SegOps event_type | Notes |
|---|---|---|
| orders/create | order_placed | Fired when an order is created (may not be paid) |
| orders/paid | order_paid | Fired when payment is confirmed |
| orders/cancelled | order_cancelled | Fired when an order is cancelled |
| customers/create | customer_created | New customer record created in Shopify |
| checkouts/create | checkout_started | Cart proceeded to checkout |
| checkouts/delete | checkout_abandoned | Checkout abandoned (cart deleted) |
Payload Mapping#
SegOps maps key Shopify fields to a standardized payload. For order_placed / order_paid:
| SegOps payload field | Shopify source field |
|---|---|
| order_id | id |
| total | total_price (as number) |
| currency | currency |
| item_count | line_items.length |
| financial_status | financial_status |
The user_idfor Shopify events is set to the customer's email address when available, or the Shopify customer ID as a string fallback.
Setting Up in Shopify Admin#
- In your Shopify Admin, go to Settings → Notifications
- Scroll to Webhooks at the bottom and click Create webhook
- Select the Event (e.g., Order creation)
- Set the URL to
https://api.segops.ai/api/ingestion/shopify/YOUR_TENANT_SLUG/ - Set format to JSON
- Click Save webhook
- Copy the Your webhook signing secret value and paste it into SegOps Settings → Integrations → Shopify
- Repeat for each topic you want to track
Common Segmentation Recipes#
Churned Buyers
Users who placed at least one order but have not placed an order in the last 90 days. Use conditions: event_count(order_placed) >= 1 AND recency(order_placed) > 90 days.
High-Value Customers
Users whose total spend via order_paid exceeds $500. Use: monetary(order_paid, total, sum) >= 500.
Cart Abandoners
Users who triggered checkout_abandoned in the last 7 days without a subsequentorder_placed. Use an event_sequence condition or combine recency conditions:event_count(checkout_abandoned, window=7) >= 1 AND event_count(order_placed, window=7) = 0.