---
title: "Klaviyo-connector"
description: "Volledige Klaviyo-integratiegids voor het synchroniseren van profielen, events, lijsten, segmenten en campagnedata met Brevo via Tajo."
url: https://tajo.io/nl/docs/connectors/marketing/klaviyo/
markdown: https://tajo.io/nl/docs/connectors/marketing/klaviyo.md
lang: nl-NL
robots: noindex
---

Vraag vroegtijdige toegang aan

Vul je voornaam en je zakelijke e-mailadres in. We sturen je een link om je aanvraag voor toegang tot Tajo te bevestigen.

# Klaviyo-connector

Connectorstatus: In ontwikkeling In aanbouw. Nog niet geverifieerd.

| Bronveld | Doelveld | Voorbeeldwaarde |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Verbind Klaviyo met Brevo via Tajo om marketingdata tussen platforms te migreren of synchroniseren. Synchroniseer profielen, events, lijsten, segmenten, flows en campagnedata voor een uniforme multi-channel-marketingstrategie.

## Overzicht

| Eigenschap | Waarde |
| --- | --- |
| **Platform** | Klaviyo |
| **Categorie** | Marketing |
| **Setupcomplexiteit** | Gemiddeld |
| **Officiële integratie** | Nee |
| **Gesynchroniseerde data** | Profielen, Events, Lijsten, Segmenten, Campagnes |
| **Beschikbare skills** | 10 |
| **API-standaard** | JSON:API |

## Functies

- **Profielsync** - Bidirectionele sync van klantprofielen tussen Klaviyo en Brevo
- **Event-forwarding** - Stuur in Klaviyo gevolgde events door naar Brevo als automation-triggers
- **Lijstmigratie** - Synchroniseer Klaviyo-lijsten naar Brevo-contactlijsten
- **Segmentsync** - Exporteer Klaviyo-segmenten als Brevo-lijsten of -segmenten
- **Flow-data-export** - Haal flowprestatiedata op voor cross-platform-analytics
- **Campagnesync** - Coördineer campagnes over Klaviyo- en Brevo-kanalen heen
- **Catalogussync** - Spiegel productcatalogi tussen platforms
- **Couponbeheer** - Synchroniseer couponcodes en gebruiksdata

## Vereisten

Voordat je begint, zorg dat je beschikt over:

1. Een Klaviyo-account met API-toegang
2. Een Private API Key met de juiste scopes
3. Je Klaviyo Public API Key (6-character company ID)
4. Een Brevo-account met API-toegang
5. Een Tajo-account met API-inloggegevens

## Authenticatie

### Private API key

Klaviyo gebruikt private API-sleutels met gescopete toegang voor server-side-authenticatie. Zet de sleutel in de `Authorization`-header:

```bash
curl https://a.klaviyo.com/api/profiles/ \
  -H "Authorization: Klaviyo-API-Key your-private-api-key" \
  -H "revision: 2026-01-15"
```

### Scopes van API-sleutels

Configureer scopes bij het aanmaken van je private key:

| Scope | Toegang | Beschrijving |
| --- | --- | --- |
| `profiles` | Read/Full | Toegang tot contactprofielen |
| `events` | Read/Full | Toegang tot getrackte events |
| `lists` | Read/Full | Toegang tot contactlijsten |
| `segments` | Read | Toegang tot segmenten |
| `campaigns` | Read | Toegang tot campagnedata |
| `metrics` | Read | Toegang tot metric-definities |
| `flows` | Read | Toegang tot flowconfiguraties |
| `catalogs` | Read | Toegang tot productcatalogi |

### Public API key

Gebruik voor client-side-tracking de 6-character company ID:

```bash
curl -X POST "https://a.klaviyo.com/client/events/?company_id=COMPANY_ID" \
  -H "Content-Type: application/json" \
  -d '{"data": {...}}'
```

### OAuth (partnerintegraties)

Klaviyo ondersteunt OAuth voor tech-partners, met betere beveiliging en hogere ratelimits:

```bash
curl https://a.klaviyo.com/api/profiles/ \
  -H "Authorization: Bearer YOUR_OAUTH_TOKEN" \
  -H "revision: 2026-01-15"
```

## Configuratie

### Basisopzet

```yaml
connectors:
  klaviyo:
    enabled: true
    private_api_key: "your-klaviyo-private-key"
    public_api_key: "XXXXXX"
    api_revision: "2026-01-15"

    # Data sync options
    sync:
      profiles: true
      events: true
      lists: true
      segments: true
      catalogs: false

    # Brevo list assignment
    lists:
      all_contacts: 20
      subscribers: 21
      high_value: 22
```

### Profielmapping

Koppel Klaviyo-profieleigenschappen aan Brevo-contactattributen:

```yaml
profile_mapping:
  email: email
  first_name: FIRSTNAME
  last_name: LASTNAME
  phone_number: SMS
  city: CITY
  region: REGION
  country: COUNTRY
  zip: ZIP
  organization: COMPANY
  title: JOB_TITLE

  # Custom properties
  lifetime_value: LTV
  total_orders: ORDER_COUNT
  last_order_date: LAST_ORDER_DATE
  preferred_channel: CHANNEL_PREF
```

### Event-mapping

Koppel Klaviyo-metrics aan Brevo-events:

```yaml
event_mapping:
  "Placed Order": "order_completed"
  "Ordered Product": "product_purchased"
  "Started Checkout": "checkout_started"
  "Added to Cart": "cart_updated"
  "Viewed Product": "product_viewed"
  "Subscribed to List": "customer_subscribed"
  "Received Email": "email_received"
  "Opened Email": "email_opened"
  "Clicked Email": "email_clicked"
```

## API-endpoints

| Methode | Endpoint | Beschrijving |
| --- | --- | --- |
| `GET` | `/api/profiles/` | Profielen opvragen |
| `POST` | `/api/profiles/` | Profiel aanmaken |
| `PATCH` | `/api/profiles/{id}/` | Profiel bijwerken |
| `POST` | `/api/profile-merge/` | Duplicaatprofielen samenvoegen |
| `GET` | `/api/events/` | Events opvragen |
| `POST` | `/api/events/` | Event aanmaken |
| `GET` | `/api/lists/` | Alle lijsten opvragen |
| `POST` | `/api/lists/{id}/relationships/profiles/` | Profielen aan lijst toevoegen |
| `GET` | `/api/segments/` | Segmenten opvragen |
| `GET` | `/api/campaigns/` | Campagnes opvragen |
| `GET` | `/api/flows/` | Flows opvragen |
| `GET` | `/api/metrics/` | Metrics opvragen |
| `POST` | `/api/metric-aggregates/` | Metric-aggregates opvragen |
| `GET` | `/api/catalog-items/` | Catalogusitems opvragen |

## Codevoorbeelden

### Klaviyo-connector initialiseren

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Connect Klaviyo account
await tajo.connectors.connect('klaviyo', {
  privateApiKey: process.env.KLAVIYO_PRIVATE_KEY,
  publicApiKey: process.env.KLAVIYO_PUBLIC_KEY
});
```

### Profielen naar Brevo synchroniseren

```javascript
// Fetch Klaviyo profiles and sync to Brevo
const response = await fetch('https://a.klaviyo.com/api/profiles/', {
  headers: {
    'Authorization': `Klaviyo-API-Key ${PRIVATE_KEY}`,
    'revision': '2026-01-15',
    'Accept': 'application/vnd.api+json'
  }
});

const { data } = await response.json();

// Each profile follows JSON:API format
// {
//   "type": "profile",
//   "id": "01ABCDEF",
//   "attributes": {
//     "email": "jane@example.com",
//     "first_name": "Jane",
//     "last_name": "Kim",
//     "phone_number": "+15551234567",
//     "properties": { "lifetime_value": 450.00 }
//   }
// }
```

### Event aanmaken

```javascript
// Track an event in Klaviyo (forwarded to Brevo via Tajo)
await fetch('https://a.klaviyo.com/api/events/', {
  method: 'POST',
  headers: {
    'Authorization': `Klaviyo-API-Key ${PRIVATE_KEY}`,
    'revision': '2026-01-15',
    'Content-Type': 'application/vnd.api+json',
    'Accept': 'application/vnd.api+json'
  },
  body: JSON.stringify({
    data: {
      type: 'event',
      attributes: {
        metric: {
          data: { type: 'metric', attributes: { name: 'Placed Order' } }
        },
        profile: {
          data: { type: 'profile', attributes: { email: 'jane@example.com' } }
        },
        properties: {
          OrderId: 'ORD-1234',
          Value: 89.99,
          Items: [
            { ProductName: 'Widget Pro', Price: 89.99, Quantity: 1 }
          ]
        },
        value: 89.99
      }
    }
  })
});
```

### Metric-aggregates opvragen

```javascript
// Get aggregate metric data for reporting
await fetch('https://a.klaviyo.com/api/metric-aggregates/', {
  method: 'POST',
  headers: {
    'Authorization': `Klaviyo-API-Key ${PRIVATE_KEY}`,
    'revision': '2026-01-15',
    'Content-Type': 'application/vnd.api+json'
  },
  body: JSON.stringify({
    data: {
      type: 'metric-aggregate',
      attributes: {
        metric_id: 'METRIC_ID',
        measurements: ['count', 'sum_value'],
        interval: 'day',
        filter: ['greater-or-equal(datetime,2024-01-01)',
                 'less-than(datetime,2024-02-01)']
      }
    }
  })
});
```

## Ratelimits

| Authenticatie | Burst-limiet | Continue limiet |
| --- | --- | --- |
| **Private API key** | 75 requests/sec | 700 requests/min |
| **OAuth** | 150 requests/sec | 1.500 requests/min |
| **Client API** | 100 requests/sec | N.v.t. |
| **Bulk-operaties** | 10 requests/sec | 100 requests/min |

API-revision vereist

Alle Klaviyo API-requests vereisen de `revision`-header met een geldige API-versiedatum (bijv. `2026-01-15`). Requests zonder deze header worden geweigerd.

## Probleemoplossing

| Probleem | Oorzaak | Oplossing |
| --- | --- | --- |
| `400 Bad Request` | Ongeldige of ontbrekende API-sleutel | Verifieer dat de private API-sleutel correct is |
| `403 Forbidden` | Onvoldoende scope | Controleer of API-sleutel-scopes overeenkomen met de vereiste rechten |
| Ontbrekende `revision`-header | Header niet ingesteld | Voeg `revision: 2026-01-15` toe aan alle requests |
| Profiel niet gevonden | Verkeerde identifier | Gebruik Klaviyo-profiel-ID, geen e-mail, voor opzoeken |
| Events synchroniseren niet | Verkeerde metricnaam | Match exacte metricnamen zoals gedefinieerd in Klaviyo |
| `429 Too Many Requests` | Ratelimit overschreden | Implementeer exponentiële backoff, overweeg OAuth voor hogere limieten |
| JSON:API-formaatfouten | Verkeerd content-type | Gebruik `application/vnd.api+json` voor Content-Type- en Accept-headers |

## Best practices

1. **Gebruik JSON:API-formaat** - Volg de JSON:API-specificatie voor alle request- en response-payloads
2. **Stel de revision-header in** - Neem altijd de `revision`-header op met de nieuwste API-versiedatum
3. **Gebruik sparse fieldsets** - Vraag alleen benodigde velden op met `?fields[profile]=email,first_name` om payloads te verkleinen
4. **Benut relaties** - Gebruik de JSON:API-`include`-parameter om gerelateerde resources in één request op te halen
5. **Gebruik cursor-paginatie** - Navigeer grote resultsets met de `page[cursor]`-parameter
6. **Implementeer bulk-operaties** - Gebruik bulk-endpoints voor batchimport van profielen en eventcreatie
7. **Gebruik OAuth voor hogere limieten** - OAuth-authenticatie biedt 2x hogere ratelimits dan private keys

## Beveiliging

- **Scopes voor private API-sleutels** - Granulaire Read/Full-toegang per resource-type
- **OAuth-ondersteuning** - Veilige tokengebaseerde authenticatie voor partnerintegraties
- **Isolatie van public key** - Client-side-sleutels beperkt tot create-only-operaties
- **TLS 1.2+** - Alle API-communicatie versleuteld in transit
- **SOC 2 Type II** - Klaviyo is SOC 2 Type II-gecertificeerd
- **AVG-compliance** - Data Privacy API voor profielverwijderingsverzoeken

## Gerelateerde resources

- [Brevo-connector](https://tajo.io/nl/docs/connectors/marketing/brevo)
- [Google Ads-connector](https://tajo.io/nl/docs/connectors/marketing/google-ads)
- [Meta Ads-connector](https://tajo.io/nl/docs/connectors/marketing/meta-ads)
- [Customer Sync-skill](https://tajo.io/nl/docs/skills/data-sync/customer-sync)
