Skip to content

Klaviyo integration

When an affiliate is approved, Cobalz can push them into a Klaviyo list. Useful for onboarding email sequences, monthly newsletters, and re-engagement campaigns aimed at your affiliates specifically.

Setup

  • In Klaviyo: Account → API Keys → Create Private Key. Scope to List Read + Profile Write.
  • Create (or pick) a list. Copy its list_id.
  • In Cobalz: Settings → Integrations → Klaviyo. Paste API key + list id, save.

What syncs

  • On affiliate.approved: we POST the profile to Klaviyo with email, first_name, last_name, and custom properties (cobalz_slug, cobalz_tier, cobalz_lifetime_commissions_paid).
  • On affiliate.suspended: we tag the profile with cobalz_status:suspended (we do not delete — Klaviyo's data retention is your call).
  • Backfill: at Settings → Integrations → Klaviyo → Sync existing affiliates we push every approved affiliate in one batched call.

Custom profile properties

{
  "cobalz_slug": "alice",
  "cobalz_tier": "gold",
  "cobalz_status": "approved",
  "cobalz_lifetime_commissions_paid": 1234.56,
  "cobalz_signup_at": "2026-01-15T12:00:00Z"
}

Failure handling

Klaviyo sync is best-effort. If Klaviyo's API is down, we log to Sentry and move on — the affiliate is still approved in Cobalz. You can retry the sync from Settings → Integrations → Klaviyo → Resync.

Note:Klaviyo's rate limits are 10 requests/second per account. Backfill of 5,000 affiliates takes ~8 minutes and is run as a single background job.