Connect Klaviyo

Last updated: March 6, 2026

This guide walks you through connecting your Klaviyo account to Engaige using an HTTP integration, so you can create actions that interact with profiles, lists, events, campaigns, and more.

Prerequisites

  • A Klaviyo account with admin or developer access

  • Access to your Engaige dashboard with permission to manage integrations

Step 1 — Create a Klaviyo Private API Key

  1. Log in to your Klaviyo account

  2. Click your account name in the bottom-left corner and go to Settings

  3. Select API Keys from the left menu

  4. Under Private API Keys, click Create Private API Key

  5. Give it a descriptive name, e.g. Engaige Integration

  6. Select the appropriate scope:

    • Read-Only Key — if Engaige only needs to fetch data (profiles, lists, metrics, etc.)

    • Full Access Key — if Engaige needs to create or update data (e.g. add profiles, trigger events)

    • Custom Key — if you want fine-grained control over which resources are accessible

  7. Click Create

  8. Copy the key immediately — Klaviyo only shows it once. Store it securely.

The key will have the format: pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Step 2 — Create the HTTP Integration in Engaige

  1. Log in to your Engaige dashboard

  2. Navigate to Integrations → HTTP

  3. Click Add new integration

  4. Fill in the following fields:

FieldValue

Integration name

Klaviyo (or any name you prefer)

Domain

a.klaviyo.com

Authentication method

API Key

Authorization header

Authorization

API key

Klaviyo-API-Key <your-private-api-key>

Important: Klaviyo uses a non-standard auth format. In the API key field, enter the full value including the prefix: Klaviyo-API-Key pk_yourkey... — the entire string becomes the value of the Authorization header.

  1. Click Save

Step 3 — Create an HTTP Action linked to Klaviyo

  1. In Engaige, go to Actions and click Add new action

  2. Select HTTP as the action type

  3. Link it to the Klaviyo integration you just created

  4. Configure the request depending on what you need:

Fetch a profile by email:

  • Method: GET

  • Path template: /api/profiles/?filter=equals(email,"#{email}")

Create/update a profile:

  • Method: POST

  • Path template: /api/profiles/

  • Body template:

    {  "data": {    "type": "profile",    "attributes": {      "email": "#{email}",      "first_name": "#{first_name}"    }  }}

Add a profile to a list:

  • Method: POST

  • Path template: /api/lists/<list-id>/relationships/profiles/

Track a custom event:

  • Method: POST

  • Path template: /api/events/

  1. Add the required revision header to your action's Headers field:

HeaderValue

revision

2024-10-15

The revision header is required by Klaviyo on all API calls. Use the most recent stable version (currently 2024-10-15). This should be set per-action in the custom headers field.

  1. Save the action

Step 4 — Test the Integration

  1. In the Engaige dashboard, find your Klaviyo integration

  2. Use the Ping / Test option to verify the connection succeeds

  3. Trigger your action in a test conversation to confirm it returns the expected Klaviyo data

Quick Reference

ItemValue

Klaviyo API base URL

https://a.klaviyo.com/api/

Auth header name

Authorization

Auth header value

Klaviyo-API-Key <your-private-key>

Required revision header

revision: 2024-10-15

Profiles endpoint

/api/profiles/

Events endpoint

/api/events/

Lists endpoint

/api/lists/

API key management

Klaviyo → Settings → API Keys

Security note: Use a dedicated Private API Key for Engaige. Only grant the minimum scope needed — use Read-Only for read-only use cases. Never share or expose your private key in public repositories or client-side code.