- 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 Funnelish event reaches Sendlane. Tracked on the funnel page, resolved to a person, then sent.
01 Capture
Captured from Funnelish
Add the Upstack Pixel to your Funnelish funnels to track what shoppers do there. When Funnelish creates the order in Shopify, Upstack records it like any other Shopify order.
See the Funnelish integration →
FunnelishWhat it sends page / eventsfrom the Upstack Pixel in each funnel’s headfbclid / gclid / ttclidclick IDs kept on the way to checkoutorder_idthe Shopify order Funnelish createsorder sourceshows as Funnelish in Upstack reports
02 Understand
Resolved to one person before it leaves
Every Funnelish 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 order produces one event, so a single purchase cannot trigger the same flow twice.
- Bot and fraud filteringAutomated traffic never becomes a profile, so list quality and deliverability are not paying for it.
03 Activate
Delivered to Sendlane
Forward resolved customer events to Sendlane for retention and lifecycle flows.
See the Sendlane integration →
SendlaneWhat it receives email / phonecontact key across email, SMS and reviewsevent propertiesautomation triggersorder valueattribution
Which events reach Sendlane
Each Upstack event is mapped to the Sendlane event below before it is sent.
| Upstack event | Sent to Sendlane as | Key data on the event |
| Product view | product-viewed-upstackified | product_id, product_name, product_img_url, variant_id |
| Add to cart | added-to-cart-upstackified | line_items, subtotal, total, currency |
| Checkout | checkout-started-upstackified | checkout_id, line_items, subtotal, total, currency |
| Purchase | order-placed-upstackified | order_id, line_items, total, currency, discounts |
Upstack looks up each contact in Sendlane by email or Sendlane contact ID, and sends the event only if the contact already exists.
The catch
Funnel pages sit outside your Shopify theme, so storefront tracking never sees the visit that led to the order.
With the Upstack Pixel on each funnel, the funnel visit and the Shopify order Funnelish creates resolve against the same graph as the rest of your store.
Where to check in SendlaneSending you can audit
Sendlane › the contact record
where the event should appear against one person rather than creating a second contact.
What changes
What changes when Funnelish feeds Sendlane. Two gains on the Sendlane side, two on the Funnelish side.
Sendlane
Server-side delivery
Upstack sends events to Sendlane from its servers only, so ad blockers and browser privacy settings can’t block delivery.
Sendlane
Identity-resolved events
Events sent to Sendlane carry the resolved customer whenever Upstack can identify one, matched against a 750M+ device graph.
Funnelish
Funnel pages tracked
The pixel loads in the head of every funnel page, so visits and the events you configure are recorded on pages your theme never touches.
Funnelish
One setup, every destination
Connect Funnelish once and forward to every ad platform and email tool you run.
Setup
Live in under 20 minutes.
You need a Sendlane account where you can generate an API Access Token and create a Custom Integration.
Upstack dashboardExample
Sendlane Destination Healthy
Read the full Sendlane setup guide → -
01
Add the Upstack Pixel to each funnel
In Funnelish, add the Upstack Pixel snippet to each funnel as a tracking code placed with Append To Page Head. If the funnel links to Shopify, add the script that keeps click IDs and UTMs on the link.
-
02
Add the Sendlane destination
Under Destinations, add Sendlane with two credentials: an API Access Token from Settings, API, and the Integration Token from a new Custom Integration under Integrations in Sendlane.
-
03
Check the contact’s activity feed
Trigger a test action on your store, such as adding a product to cart, and check the contact’s activity feed in Sendlane. Events are sent only for contacts that already exist in Sendlane.
FAQ
Questions about Funnelish and Sendlane.
What happens if a contact doesn’t exist in Sendlane?
Upstack only sends events for contacts that already exist in Sendlane. If the visitor’s email isn’t found in your account, the event is skipped, which keeps your account clean and targets only real subscribers.
Which events does Sendlane receive?
ViewContent as product-viewed-upstackified, AddToCart as added-to-cart-upstackified, InitiateCheckout as checkout-started-upstackified and Purchase as order-placed-upstackified.
Which customer parameters are sent to Sendlane?
Upstack looks up each contact in Sendlane by email or Sendlane contact ID, and sends the event only if the contact already exists.
How do I check that Funnelish events are reaching Sendlane?
Trigger a test action on your store, such as adding a product to cart, and check the contact’s activity feed in Sendlane. Events are sent only for contacts that already exist in Sendlane.
How long does it take to connect Funnelish to Sendlane?
Most brands are live in under 20 minutes. Once Funnelish events reach Upstack, every destination receives the same resolved events, Sendlane included.