Klaviyo
Connect Klaviyo so approved affiliates land in a Klaviyo list automatically.
Rekomi's Klaviyo integration subscribes every approved affiliate to a Klaviyo list you pick. Klaviyo's profile-subscription model handles consent, list membership, and email marketing eligibility in one call.
What syncs
When an affiliate is approved (or, optionally, when they apply), Rekomi sends Klaviyo:
email(the affiliate's email)first_name(split from full name)last_name(split from full name)subscriptions.email.marketing.consent = "SUBSCRIBED"- A relationship attaching the profile to your chosen list
Klaviyo handles dedup server-side. Re-subscribing the same email never duplicates the profile; their attributes update in place.
Finding your API key
In Klaviyo:
- Click your account name in the top right.
- Open Settings → API Keys.
- Click Create Private API Key. Give it a name like "Rekomi".
- Set the scopes Rekomi needs:
- Lists: Full Access (needed for the list picker and subscribe-to-list semantics).
- Profiles: Full Access (needed to create/update profiles).
- Accounts: Read Only (needed for the test-connection ping).
- Save and copy the generated key. It starts with
pk_.
Important: the public site ID (a 6-character string visible in your Klaviyo URL) is not the same thing. Rekomi will refuse to connect if you paste the public ID, the form validates the pk_ prefix.
Connecting Klaviyo in Rekomi
- Go to Integrations in the dashboard sidebar.
- Click the Klaviyo card.
- Paste your private API key. Click Connect.
- Rekomi runs
GET /api/accounts/(with the requiredrevisionheader pinned to2024-10-15) to validate the key. - Pick a default list from the List dropdown. The list picker hits Klaviyo's
/api/lists/endpoint, which caps page size at 10, Rekomi paginates via the cursor inlinks.nextand pulls up to 200 lists across pages.
Tags
Klaviyo doesn't have a tag concept in the same shape as Mailchimp. It uses lists + profile properties + segments. Rekomi's tag field is disabled on the Klaviyo card, segment logic happens in Klaviyo, not Rekomi.
To identify Rekomi-sourced profiles in Klaviyo, build a segment filtered on the list you've connected (or on a custom profile property you write yourself via Klaviyo's API). The "Rekomi affiliate" system tag concept from other CRMs doesn't map cleanly to Klaviyo's model.
When sync fires
- Default: only
Approvedaffiliates sync. - Optional: enable "Include applicants before approval" in Advanced to also sync
Pendingaffiliates immediately on apply.
Per-campaign overrides
Each campaign can route to a different Klaviyo list or skip Klaviyo entirely. Open the campaign's Integrations tab to set:
- A campaign-specific list.
- A per-campaign disable toggle.
Per-affiliate sync visibility
The affiliate detail page's CRM sync panel shows the per-CRM status for each affiliate, including Klaviyo. The Resync button clears prior job rows and re-fires through the worker.
Troubleshooting
- "Use the PRIVATE key (starts with 'pk_')", You pasted the public site ID. Re-copy from Klaviyo Settings → API Keys (the private key, not the site ID).
- "Couldn't load lists: 400, Page size must be an integer between 1 and 10", Old Rekomi build pre-fix. Your current build paginates correctly; if you see this, hard-refresh.
- 403 on subscribe, Your private API key is missing the Profiles: Full Access scope. Update the scopes in Klaviyo and click Resync on the affected affiliate.
- 2xx but profile not visible in Klaviyo, Klaviyo's bulk-create endpoint returns 202 Accepted and processes the job asynchronously. Wait up to 60 seconds, then check Klaviyo. If the profile still isn't there, the per-affiliate CRM sync panel will show the actual reason once Klaviyo's async job reports back.
A note on the API
Rekomi uses Klaviyo's JSON:API surface (revision 2024-10-15). Every request must carry:
Authorization: Klaviyo-API-Key pk_...revision: 2024-10-15accept: application/vnd.api+jsoncontent-type: application/vnd.api+json(for writes)
Brackets in query strings are URL-encoded (%5B and %5D) because Klaviyo's edge rejects literal brackets. None of this affects your usage, it's all internal to Rekomi's provider client.
Disconnecting
Click Disconnect on the Klaviyo connect page. The integration row + any per-campaign overrides are deleted. Historical sync rows are preserved for audit.
See the klaviyo integration overview on the marketing site for use-cases, persona fit, and unique automation patterns.