Goal:
Use Attribuly’s first‑party server‑side events in Klaviyo to recover users blocked by iOS/ad blockers
TL;DR (10-minute setup checklist)
1. Connect Klaviyo in Attribuly (Integrations → Klaviyo → Connect).
2. Turn on App Embed in Attribuly.
3. Create a Klaviyo destination in Destination and select server‑side events.
4. In Klaviyo, duplicate your existing flows and use the new metrics ending with “Attribuly SS” as triggers.
5. In each Attribuly SS flow, add a conditional split to prevent duplicate sends.
---
How the integration works
Attribuly sends server-side events to Klaviyo (metrics ending with “Attribuly SS”).
This helps you trigger flows for users that Klaviyo’s native pixel may miss due to iOS/ad blockers—often a large share of traffic.
You can also measure incremental value by comparing:
- Native metric unique profiles (pixel)
vs.
- Attribuly SS metric unique profiles (server-side)
---
Prerequisites
- An Attribuly account
- A Klaviyo account
- In Attribuly:
- Klaviyo integration connected
- App Embed turned on
---
Step 1: Connect Attribuly with Klaviyo
1. Go to Attribuly → Sources
2. Click Klaviyo
3. Click Connect
4. Authorize with your Klaviyo account and approve permissions
Data used by the integration
- Sync event data to Klaviyo
- Create lists and profiles (as needed)
- Read conversions of flows/campaigns (for reporting/attribution)
---
Step 2: Create a Klaviyo destination
1. Go to Connections → Destination
2. Click Add destination
3. Choose Klaviyo
4. Select server-side events (recommended to enable all available)
- Product Viewed
- Collection Viewed
- Added to Cart
- Checkout Started
5. Click Next
6. Choose the connected Klaviyo account
7. Click Save
That’s it—Attribuly will start sending server-side events to Klaviyo.
---
Step 3: Confirm the new metrics in Klaviyo
In Klaviyo, go to Analytics → Metrics
You should see new metrics ending with “Attribuly SS” (they appear after the first event occurs).
Example naming:
- Viewed Product - Attribuly SS
- Added to Cart - Attribuly SS
- Checkout Started - Attribuly SS
---
Step 4: Best practice flow setup (recommended structure)
A common structure is to keep your existing flows (native) and add parallel SS flows:
- Browse Abandonment (native)
- Browse Abandonment — **Attribuly SS**
- Cart Abandonment (native)
- Cart Abandonment — **Attribuly SS**
- Checkout Abandonment (native)
- Checkout Abandonment — **Attribuly SS**
This makes incremental lift easy to measure without breaking your current setup.
---
The key part: Prevent double sending (simple + robust)
Why duplicates happen
Some users may trigger both:
- Klaviyo native pixel event (e.g., *Added to Cart*)
and
- Attribuly server-side event (e.g., Added to Cart - Attribuly SS)
If both flows send, the user may receive duplicate emails.
Recommended solution (simplest): Delay + Conditional Split
A) Clone your existing flow
1. In Klaviyo, open your existing flow (e.g., Cart Abandonment)
2. Click Clone
3. Rename it to something like: Cart Abandonment — Attribuly SS
B) Change the trigger to the SS metric
Set the flow trigger to the corresponding Attribuly SS event.
Examples:
- Browse SS flow trigger: Viewed Product - Attribuly SS
- Cart SS flow trigger: Added to Cart - Attribuly SS
- Checkout SS flow trigger: Checkout Started - Attribuly SS
C) Add a short delay at the start
Add a Delay as the very first step, ignore if you had delay configured.
This gives time for the native pixel event to arrive (if it’s going to), so we can safely filter.
D) Add a Conditional Split to block duplicates
Right after the delay, add a Conditional Split:
Condition: What someone has done → [Native Metric] → at least once → since starting this flow
- YES branch (they did the native event): End this flow (no email)
- NO branch: continue the SS flow email steps
This single split is usually enough to prevent double sending, even if events arrive out of order.
Mapping examples (SS → Native)
- Viewed Product - Attribuly SS → check native Viewed Product
- Added to Cart - Attribuly SS → check native Added to Cart
- Checkout Started - Attribuly SS → check native Checkout Started
---
Validation (don’t skip)
Use Preview in Klaviyo:
1. Preview with a profile that only has SS events → should go to NO branch (receives SS email)
2. Preview with a profile that has both SS + native → should go to YES branch (stops SS email)
---
Attribution (UTM tracking)
1. In Klaviyo, go to **Settings → Other → UTM tracking**
2. Configure UTM parameters following the screenshot
Then in Attribuly, you should see **Email** as a channel.
---
Need help?
Contact us and we can help you configure Klaviyo flows for free.

