- US device IDs in the graph
- 750M+
- Match rate on events
- 90%+
- Identity window, per customer
- Lifetime
- Most brands are live
- <20 min
How it flows
How a Shopify event reaches Loops. Captured on the server, resolved to a person, then sent.
01 Capture
Captured from Shopify
One Upstack app setup that captures Shopify storefront and checkout events with the Upstack Pixel, records every order directly from Shopify, and forwards both to every tool you spend on.
See the Shopify integration →
ShopifyWhat it sends order_idShopify order and checkout tokenemail / phonecustomer contact from checkoutcustomer_idShopify customer record, if they have oneline_itemsproducts, variants and quantitiestotal / subtotal / discountorder economics
02 Understand
Resolved to one person before it leaves
Every Shopify event is matched against a 750M+ device graph, so a phone browse and a desktop checkout resolve to one customer rather than two strangers.
How resolution works →
Resolved before it is sent - IdentityMatched against a 750M+ device graph, so a phone browse and a desktop checkout resolve to one customer.
customer_typeNew or returning, resolved before send.- DeduplicationOne person, one record, across devices and identifiers.
- Bot and fraud filteringAutomated traffic never becomes a contact.
03 Activate
Delivered to Loops
Send resolved customer events to Loops for lifecycle messaging.
See the Loops integration →
LoopsWhat it receives emailcontact keyevent namewhat the lifecycle message reacts todata variablespersonalization
Which events reach Loops
Each Upstack event is mapped to the Loops event below before it is sent.
| Upstack event | Sent to Loops as | Key data on the event |
| Product view | Viewed Product | ProductName, ProductID, Price, ImageURL |
| Add to cart | Added to Cart | ProductName, ProductID, Price, Quantity, CartValue |
| Checkout | Started Checkout | CartValue, ItemCount, CheckoutURL |
| Purchase | Placed Order | OrderID, Revenue, Items, DiscountCodes |
When Upstack identifies a visitor, it attaches the contact’s email and other known properties, and syncs profile properties including name, email and location to Loops.
The catch
Shopify's customer ID and the email a shopper types at checkout are frequently not the same person over time.
Treating either as the primary key on its own is how a CRM ends up with duplicate contacts that never merge.
Where to check in LoopsRecords you can audit
Loops › the contact's event history
What changes
What changes when Shopify feeds Loops. Two gains on the Loops side, two on the Shopify side.
Loops
Server-side delivery
Upstack sends events to Loops from its servers only, so ad blockers and browser privacy settings can’t block delivery.
Loops
Identity-resolved events
Events sent to Loops carry the resolved customer whenever Upstack can identify one, matched against a 750M+ device graph.
Shopify
Orders recorded from Shopify itself
Purchases also reach Upstack directly from Shopify, about 10 minutes after the order, so an order still counts when an ad blocker stopped the pixel or the shopper closed the page.
Shopify
Recognize returning customers
Shopify customer IDs, emails and phones are matched against the graph, so repeat buyers are identified across devices.
Setup
Live in under 20 minutes.
App install, no theme edits and no developer. You need a Loops account where you can create an API key with write access to events and contacts and owner or staff access to Shopify.
Upstack dashboardExample
Shopify Data source Connected
Loops Destination Healthy
Read the full Loops setup guide → -
01
Connect Shopify
In the Upstack dashboard, open System, then Data Sources, and click Connect Shopify. Approve the install in your Shopify Admin: Upstack reads products, orders and customers, and writes only its own pixel.
-
02
Add the Loops destination
Under Destinations, add Loops with an API key created under Settings, API in your Loops account. It is the only credential the destination needs.
-
03
Check events in Loops
Trigger a test action on your store, such as viewing a product or adding to cart, and check Events in Loops. In Upstack, the Real-Time Events feed under System, Events Manager shows the events as delivered to Loops.
FAQ
Questions about Shopify and Loops.
How is this different from connecting Loops directly to Shopify?
Standard Shopify integrations only see visitors Shopify has identified, typically logged-in customers or shoppers who entered an email at checkout. Upstack matches anonymous sessions to known customer profiles and sends those events to Loops with the contact’s email attached, so your workflows fire for many more visitors.
What permissions does the Loops API key need?
The key must have permission to write events and contacts, so Upstack can send events and create or update contacts.
Which events does Loops receive?
ViewContent as Viewed Product, AddToCart as Added to Cart, InitiateCheckout as Started Checkout and Purchase as Placed Order. Orders reach Upstack directly from Shopify, even when the browser pixel is blocked.
Which customer parameters are sent to Loops?
When Upstack identifies a visitor, it attaches the contact’s email and other known properties, and syncs profile properties including name, email and location to Loops.
How do I check that Shopify events are reaching Loops?
Trigger a test action on your store, such as viewing a product or adding to cart, and check Events in Loops. In Upstack, the Real-Time Events feed under System, Events Manager shows the events as delivered to Loops.
Do I need a developer to connect Shopify to Loops?
No. Shopify connects as an app install with no theme edits, and most brands are live in under 20 minutes. Headless storefronts add the Upstack Pixel script instead of the theme app extension.