Skip to main content

Shopify Integration

Connect your Shopify store to automatically sync products, orders, customers, and abandoned carts. Enable powerful customer segmentation and abandoned cart recovery campaigns.

Features

  • Automatic sync - Products, orders, and customers sync in real-time via webhooks
  • Abandoned cart recovery - Capture checkout URLs for recovery email campaigns
  • Storefront tracking - Track page views, product views, and add-to-cart events
  • Email capture - Automatically identify customers from checkout and forms
  • UTM attribution - Capture and attribute marketing UTM parameters
  • Multi-store support - Connect multiple Shopify stores with per-store event segmentation

Connecting Your Store

  1. Navigate to Settings → Integrations
  2. In the Shopify section, click Connect Shopify
  3. Enter your store domain (e.g., my-store for my-store.myshopify.com)
  4. Click Connect to Shopify
  5. Authorize the app in Shopify
  6. You'll be redirected back with your store connected

Sync Settings

After connecting, configure what data to sync:

SettingDescriptionDefault
Sync ProductsImport products from ShopifyEnabled
Sync OrdersImport orders and update statusesEnabled
Sync CustomersImport customer dataEnabled
Sync CartsTrack abandoned checkoutsEnabled
Historical DaysDays of order history to import90

Access these in Settings → Integrations → Shopify → Settings tab.

Storefront Tracking

A tracking script is automatically installed on your Shopify storefront and captures storefront events out of the box (no extra setup):

EventDescription
Page ViewEvery page visit
Product ViewedWhen a product page is viewed
Add to CartItems added to cart
IdentifyEmail capture from forms

Email Capture

Emails are automatically captured from:

  • Checkout email field
  • Newsletter signup forms
  • Any email input field

UTM Attribution

Marketing parameters are automatically captured:

  • utm_source, utm_medium, utm_campaign
  • utm_term, utm_content

UTM parameters are stored in the session and attached to all events.

Multi-Store Support

When connecting multiple Shopify stores to the same workspace:

  1. Each store gets its own App entity with unique SDK key
  2. All events are tagged with the store's $app_id
  3. Filter events by $platform = 'shopify' or specific $app_id
  4. Users can be linked across stores via email

Webhooks

The integration automatically registers webhooks for real-time updates:

  • Order created, updated, cancelled, fulfilled
  • Checkout created, updated (abandoned carts)
  • Product created, updated, deleted
  • Customer created, updated

View registered webhooks in Settings → Integrations → Shopify → Webhooks tab.

No scheduled re-sync

Your data stays current through real-time webhooks, the one-time historical import, and the manual Sync now button. There is no periodic automatic re-sync. If you notice data drift (for example after downtime), run a manual sync with the Sync All button to backfill.

Connection Health

Once Shopify is connected, a health panel (in Settings → Integrations → Shopify) is the first thing to check if store data stops syncing:

  • Store details - live name, plan, currency, and domain pulled from Shopify. Seeing them confirms the access token still works.
  • Webhook status - each required topic is shown as registered or missing. A Re-register button re-creates any missing webhooks so real-time updates resume.

If data has drifted, re-register missing webhooks here, then run a manual Sync All to backfill.

Abandoned Cart Recovery

When a customer abandons their cart:

  1. The checkout URL is captured
  2. The cart value and items are stored
  3. The customer's email (if captured) is linked

Use this data to create abandoned cart recovery campaigns in Canvas with the actual checkout URL.

Troubleshooting

Products/Orders not syncing

  • Check sync is enabled in Settings tab
  • Verify webhooks are registered in Webhooks tab
  • Try manual sync with "Sync All" button

Email not being captured

  • The tracking script captures emails from standard form inputs
  • Checkout email is captured when the customer enters it

Connection issues

  • Verify your Shopify app has the required permissions
  • Try disconnecting and reconnecting