Integrations

Connect Shopify

Connect your Shopify store with the LeadJourney app, switch on the tracking embed in your theme, then map orders, refunds and checkouts onto your conversions so every sale is attributed to the ad that drove it.

Connecting Shopify turns store events (orders, refunds, checkouts) into LeadJourney conversions, attributed to the campaign, ad set and ad that brought the shopper in. You enter your store domain and approve the LeadJourney app in Shopify. LeadJourney then installs a checkout pixel and subscribes to your order events automatically. One manual step is left: switching on the LeadJourney Tracking embed in your theme, so the tracking script runs on your storefront. Mapped events flow through the same postback pipeline as your offline conversions, so they pick up every ad postback you've already configured.

Before you start

Have these ready so the connection works end to end:

  • An active LeadJourney workspace and a Shopify store where you can install apps and edit the theme.
  • Your store's .myshopify.com domain (shown in your Shopify admin URL). Your custom domain won't work here.
  • At least one conversion type to map onto (e.g. WonClient). Set these up first in the Events Manager.
  • Optional but recommended: a verified tracking domain, so the storefront script loads first-party.

Where to find it

Open Settings → Apps, or go to app.leadjourney.io/settings?slug=apps. Click the Shopify card (under Payments & Ecommerce) to open the integration. While you're not connected you'll see a “Connect your Shopify store” card; once connected, the same screen shows your store, the store setup status, the storefront tracking step and your triggers.

Step by step

Enter your store domain and approve the app

On the Connect your Shopify store card, type your store into Store domain, e.g. acme.myshopify.com. A bare handle like acme works too: LeadJourney completes it and shows Connecting acme.myshopify.com underneath. Click Connect with Shopify.

You're redirected to Shopify to approve the LeadJourney app. It requests read access to orders, checkouts and customers (to turn sales into attributed conversions), plus permission to install the LeadJourney web pixel that tracks your storefront and checkout. No theme code edits, no API keys to copy. After you approve, Shopify sends you back and you'll see a “Shopify connected” confirmation.

Started the install from Shopify?

If you began installing the app on Shopify's side, you land on this card with Store domain already filled in. Check it's the right store and click Connect with Shopify to link it to this workspace.

Let the store setup finish

Right after connecting, the Store setup panel runs two tasks in the background:

  • Checkout pixel: “Links each completed checkout back to the visit that produced it.” Shows Installed when done.
  • Order events: “Shopify notifies us of every sale, refund and checkout.” Shows Subscribed when done.

Each row shows Working… while it runs and updates on its own. If a row shows Failed, the reason appears in its place and a Retry setup button lets you run it again without reconnecting.

Enable tracking on your storefront

The checkout pixel knows a sale happened, but it needs the LeadJourney script on your storefront to know which ad the shopper came from. In the Enable tracking on your storefront panel, click Open theme editor. It opens your live theme's editor on the app embeds view. Then:

  1. Open App embeds and switch on LeadJourney Tracking.
  2. Paste the two values shown in LeadJourney into its fields: LeadJourney workspace ID and Tracking domain (each has a Copy button).
  3. Click Save.

The Tracking domain value is your verified tracking domain from Settings → Tracking; if you haven't set one up yet, LeadJourney shows its shared default.

Once per theme

Theme settings don't carry over when you switch or duplicate a theme. Whenever you publish a different theme, switch on LeadJourney Tracking and paste both values again.

Add a trigger

In the Triggers panel (“Each trigger maps a Shopify store event to one of your conversions.”) click Add trigger. In the New Shopify trigger dialog:

  1. App: Shopify (already selected).
  2. LeadJourney Event: pick the conversion type this Shopify event should record, e.g. WonClient. (No options? Create one under Settings → Events first.)
  3. Trigger: choose the store event from the card grid, such as an order, a refund or a checkout. Use Search triggers… to filter the list.

Click Continue.

Receive data and confirm the mapping

The dialog opens a three-tab flow:

  • Receive Data: click Find latest data to load the 3 most recent records for that event. If nothing appears, place a test order and check again, then select a record and click Continue with selected record.
  • Configure Mapping: map the Shopify record onto LeadJourney columns: Email, Name, Phone, click_id, Revenue and Currency (add First name / Last name or your own fields with Add custom field). LeadJourney pre-fills sensible paths, e.g. record.email, record.total_price and record.currency. Mapping click_id is recommended but optional.
  • Filtering (optional): click Add filter and set a Path, Operator (e.g. equals, contains, greater than) and Value, so the trigger only fires for matching records.

Click Save & Continue to finish.

How orders link to the right campaign

The storefront embed records the visit and its click ID, and the checkout pixel ties the completed checkout back to that visit. On each record LeadJourney also provides the click ID it recovered from the order as record.lj_click_id, which the click_id row picks up automatically. So every order arrives tied to the click, and therefore the campaign, ad set and ad, that earned it. If there's no click ID, email or phone can still be used to match.

Managing your triggers

Each trigger appears as a row (Shopify event → conversion type) with an Active / Paused pill and a summary of how many fields and filters it uses.

  • Pause / Resume: use the toggle to stop a trigger temporarily without deleting it.
  • Edit: change the event, mapping, filters or target conversion.
  • Delete: remove a single trigger (type delete to confirm); others keep running.
  • Add another: use Add trigger again to map more store events onto different conversions, e.g. orders to a revenue conversion and refunds to a refund event.

Reconnecting

If the LeadJourney app is uninstalled from your store, its permissions are revoked, or Shopify doesn't respond, the header flips to Needs reconnect and a banner explains why (e.g. “Shopify rejected our access token” or “Your store is unreachable”). Click Reconnect to re-run the authorization for the same store. To refresh granted permissions at any time, use Re-authorize in the header. Your triggers and settings are kept either way.

Disconnecting

To remove Shopify, click Disconnect in the header, type disconnect and confirm with Disconnect Shopify. This is deliberate because it's destructive:

Disconnect deletes your triggers

Disconnecting permanently removes the store from this workspace, deletes every trigger and removes the LeadJourney tracking pixel from your storefront. Sales stop flowing into your conversions immediately. You can reconnect later, but your trigger configuration won't be restored.

Troubleshooting

“That doesn't look like a Shopify store”?

The field only accepts a .myshopify.com domain. Use the domain from your Shopify admin URL, not your custom shop domain.

Store setup shows “Failed”?

The failed row names the reason. Fix it if it's something on your side, then click Retry setup. You don't need to reconnect.

No records when you click “Find latest data”?

Your store has no recent records for that event yet. Place a test order (or create a refund to test a refund trigger), then click Find latest data again.

Orders come in but aren't attributed to a campaign?

Check that (1) LeadJourney Tracking is switched on under App embeds in the theme that's actually published, with the correct workspace ID and tracking domain, (2) the Checkout pixel shows Installed, and (3) the trigger is Active and maps click_id.

Common questions