Sapilon becomes publicly available on 1 December 2026: 42 days to go. The core goes open source the same day →

Klaviyo integration

In short

Create and update profiles, subscribe them and track events. Connect it on the Integrations page; your app then calls Klaviyo through Sapilon without ever holding a Klaviyo credential.

Lets your app create and update profiles, subscribe them to lists, add them to lists and record events (an order placed, a trial started) that drive Klaviyo flows, with a private API key.

Connecting

On the Integrations page choose Connect on Klaviyo and fill in:

  • Private API key — Klaviyo → Settings → Account → API keys → Create Private API Key. Grant Accounts (read), Profiles, Lists, Subscriptions and Events (full) as needed.

Sapilon checks the key with the provider before it saves it, and stores it encrypted; it is never shown again.

What your app can do

Only these requests are available; anything else is refused.

  • GET|POST /profiles
  • GET|PATCH /profiles/*
  • GET /lists
  • POST /lists/*/relationships/profiles
  • POST /profile-subscription-bulk-create-jobs
  • POST /events
  • GET /metrics

How the agent uses it

Use integrations.request('klaviyo', …); paths are relative to https://a.klaviyo.com/api and the revision header is added for you. Bodies are JSON:API ({ data: { type, attributes } }).

  • GET|POST /profiles — Example: { method: 'POST', path: '/profiles', body: { data: { type: 'profile', attributes: { email: 'sara@acme.com', first_name: 'Sara' } } } }; find one with query: { filter: 'equals(email,"sara@acme.com")' }.
  • GET|PATCH /profiles/{id} — read or update.
  • GET /lists, POST /lists/{listId}/relationships/profiles — add profiles to a list: body: { data: [{ type: 'profile', id: '01H…' }] }.
  • POST /profile-subscription-bulk-create-jobs — subscribe with consent (marketing email or SMS).
  • POST /events — Example: { method: 'POST', path: '/events', body: { data: { type: 'event', attributes: { metric: { data: { type: 'metric', attributes: { name: 'Placed Order' } } }, profile: { data: { type: 'profile', attributes: { email: 'sara@acme.com' } } }, properties: { orderId: 'A-1' }, value: 99.5 } } } }.
  • GET /metrics — event names in the account.

More from Klaviyo: https://developers.klaviyo.com/en/reference/api_overview

Last updated .

Was this page helpful?