Klaviyo Integration Guide
Set up the Duel x Klaviyo integration in just a few steps. This guide will walk you through the full process.
Connect Duel to Klaviyo to enrich your Klaviyo customer profiles with advocate data and activity from Duel. You can then use that data to segment advocates and trigger flows.
✅ Before you start: check with your Programme Operator that Klaviyo is enabled on your Duel account. If you can't see Klaviyo under Settings → Integrations, ask your Brand Partner to switch it on.
📖 See also: Klaviyo's partner documentation for Duel
📑 On this page
🔌 Choosing a connection method
There are two ways to connect a Klaviyo account:
| OAuth (recommended) | API key | |
|---|---|---|
| Setup | Approve access in Klaviyo in a few clicks | Create and paste a public and private key |
| Security | No keys to copy or store | You manage a private key |
| Status | Recommended for all new integrations | Still fully supported |
We recommend OAuth for new integrations. The API key method is still fully supported, so existing API key integrations don't need to change.
⚠️ Switching method? Read this first. Duel's events reach Klaviyo with different metric names depending on whether the account is connected with OAuth or an API key. If you move from API key to OAuth (or the other way round), your existing Klaviyo flows won't pick up the new metrics automatically. Before you switch syncing over, update each flow's trigger, and any segments that use Duel metrics, to the new metric names. Moving between two accounts that use the same method keeps the same metric names.

1️⃣ Step 1: Add a Klaviyo account in Duel
- Log in to the Duel Dashboard.
- Go to Settings (top right) → Integrations → Klaviyo.
- Click Add new.
- Under Connection Method, choose OAuth (selected by default) or API Key.

Option A: OAuth (recommended)
- Click Connect to Klaviyo.
- Klaviyo opens its authorisation screen. Approve the requested permissions so Duel can sync advocate profiles and activity to your account.
- You're taken back to Duel, to your new account's page.

Option B: API key
- In Klaviyo, go to Settings → API keys.
- Copy your Public API key, and create a Private API key with full access (for example, name it "Duel").
- Back in Duel, fill in:
- Klaviyo Account Name: a name to help you tell accounts apart (for example, "US Klaviyo CRM account").
- Klaviyo Public Token and Klaviyo Private Token: private tokens start with
pk_. Saved tokens are write-only and are never shown again. - Klaviyo List ID: optional (see Step 2).
- Advocate Group(s): see Step 2.
- Click Connect.

2️⃣ Step 2: Complete your account settings
Open the account from the Klaviyo accounts list. On its Account tab:
- Klaviyo Account Name: give the account a clear name, especially if you run more than one Klaviyo account or are migrating between accounts.
- Klaviyo List ID (optional, recommended): advocates are added to this list, which helps with segmentation and flow triggers. Being on the list doesn't mean an advocate has consented to marketing emails: see Email marketing consent. In Klaviyo, go to Lists & Segments, open an existing list (for example "Main List") or create one, and copy the ID from the URL after
/list/. - Advocate Group(s): choose which advocate groups sync to this account. Only advocates in these groups are synced. Each group can only be paired with one Klaviyo account at a time.
- Syncing Enabled: use this toggle to control when the account starts syncing. You can set up and test a new account first, then switch it on when you're ready.
For accounts connected with an API key, the Klaviyo Private Token shows as a masked value (for example pk_••••••••). To change it, click Replace and paste the new key. Accounts connected with OAuth show a Connected via OAuth badge.
Click Save. If you try to leave the page with unsaved changes, Duel asks you to confirm first.

3️⃣ Step 3: Choose events and properties
Events
On the Events tab, choose which Duel events (metrics) are sent to Klaviyo. Each event has a description so you know what triggers it. We recommend turning them all on to start with.

Properties
On the Properties tab, choose which Duel fields are sent to Klaviyo and the Klaviyo property each one is saved as. Every field shows a description and example data. Fields are grouped into sections, which you can expand.

4️⃣ Step 4: Test, then sync all advocates
- On the account page, click Sync a test advocate.
- Search for an advocate by name or email and click Sync advocate. They must be an accepted advocate in one of this account's paired groups. When the sync finishes, expand View synced information to see exactly what was sent to Klaviyo.
- In Klaviyo, search for that advocate's profile and check that the Duel properties appear on it.
- Once you're happy with the data, go back to Duel and click Sync all advocates. A full sync can take a few minutes. You can leave the page while it runs in the background.
After the first full sync, changes are synced to Klaviyo automatically. Last Full Sync on the account page shows when the last full sync finished.



🔁 Migrating to a new Klaviyo account
- Add the new account (Step 1) and name both accounts clearly, for example "Old" and "New".
- Set up the new account (Steps 2 and 3) with Syncing Enabled off.
- If you're changing connection method (API key ↔ OAuth), update your flows and segments to the new metric names (see Switching method? above).
- When you're ready, move your advocate groups to the new account, turn syncing on for it, and run a test sync, then Sync all advocates.
- Turn off syncing on the old account, or delete it.
📧 Email marketing consent
Every advocate in the Duel groups paired with your Klaviyo account is synced to a Klaviyo profile and added to your Klaviyo List. This includes the whole group, whatever their subscription preferences.
Whether an advocate is subscribed to email marketing is handled separately. Their consent status in Klaviyo comes from this Duel property:
- Marketing Consent (Newsletter): whether the advocate opted into marketing emails, if this field is on your sign-up form. Sent as
duel_member_newsletter.
Duel keeps this consent status in sync with Klaviyo through Klaviyo's subscription API. You can see it on an advocate's Klaviyo profile, in the events view and the channel consent section.
To collect consent, add the newsletter checkbox to your sign-up form. See Newsletter Checkbox (CRM Opt-In).
🗑️ What happens to deleted and deactivated advocates
When an advocate's account is deleted, it's removed from Duel, so it's never included in a sync to Klaviyo from that point on.
- Already synced before they were deleted? The advocate keeps their Klaviyo profile. Duel never deletes profiles in your CRM.
- Finding them in Klaviyo: these profiles carry a Deleted Date property (
duel_member_deleted), so you can filter or suppress them in Klaviyo. - Migrating to a new Klaviyo account? Advocates deleted before the migration aren't included in the sync to the new account.
Deactivated advocates are different: their account is kept in Duel and can be reactivated. Their Klaviyo profile carries a Deactivated Date property (duel_member_deactivated), so you can filter or suppress them in Klaviyo too.
🎉 All done!
Your integration is live and ready to power your flows.
💡 Tip: turn on the newsletter checkbox on your application form so advocates can receive your Klaviyo emails. Read more