---
title: "Connettore Klaviyo"
description: "Guida completa all'integrazione di Klaviyo per sincronizzare profili, eventi, liste, segmenti e dati di campagne con Brevo tramite Tajo."
url: https://tajo.io/it/docs/connectors/marketing/klaviyo/
markdown: https://tajo.io/it/docs/connectors/marketing/klaviyo.md
lang: it-IT
robots: noindex
---

Richiedi l’accesso anticipato

Inserisci il tuo nome e indirizzo email aziendale. Ti invieremo un link per confermare la richiesta di accesso a Tajo.

# Connettore Klaviyo

Stato del connettore: In corso In costruzione. Non ancora verificato.

| Campo di origine | Campo di destinazione | Valore di esempio |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Collega Klaviyo a Brevo tramite Tajo per migrare o sincronizzare i dati marketing tra le piattaforme. Sincronizza profili, eventi, liste, segmenti, flussi e dati di campagne per una strategia di marketing multi-canale unificata.

## Panoramica

| Proprietà | Valore |
| --- | --- |
| **Piattaforma** | Klaviyo |
| **Categoria** | Marketing |
| **Complessità di setup** | Media |
| **Integrazione ufficiale** | No |
| **Dati sincronizzati** | Profili, Eventi, Liste, Segmenti, Campagne |
| **Skill disponibili** | 10 |
| **Standard API** | JSON:API |

## Funzionalità

- **Sync dei profili** - Sync bidirezionale dei profili cliente tra Klaviyo e Brevo
- **Inoltro eventi** - Inoltra gli eventi tracciati di Klaviyo a Brevo per i trigger di automazione
- **Migrazione liste** - Sincronizza le liste Klaviyo con le liste contatti Brevo
- **Sync dei segmenti** - Esporta i segmenti Klaviyo come liste o segmenti Brevo
- **Esportazione dati flow** - Estrai dati di performance dei flow per analytics cross-platform
- **Sync delle campagne** - Coordina le campagne tra i canali Klaviyo e Brevo
- **Sync del catalogo** - Replica i cataloghi prodotti tra le piattaforme
- **Gestione coupon** - Sincronizza codici coupon e dati di utilizzo

## Prerequisiti

Prima di iniziare, assicurati di avere:

1. Un account Klaviyo con accesso API
2. Una Private API Key con gli scope appropriati
3. La tua Klaviyo Public API Key (company ID di 6 caratteri)
4. Un account Brevo con accesso API
5. Un account Tajo con credenziali API

## Autenticazione

### Private API Key

Klaviyo utilizza chiavi API private con accesso scopato per l’autenticazione server-side. Imposta la chiave nell’header `Authorization`:

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

### Scope delle chiavi API

Configura gli scope al momento della creazione della tua chiave privata:

| Scope | Accesso | Descrizione |
| --- | --- | --- |
| `profiles` | Read/Full | Accesso ai profili contatti |
| `events` | Read/Full | Accesso agli eventi tracciati |
| `lists` | Read/Full | Accesso alle liste contatti |
| `segments` | Read | Accesso ai segmenti |
| `campaigns` | Read | Accesso ai dati delle campagne |
| `metrics` | Read | Accesso alle definizioni delle metriche |
| `flows` | Read | Accesso alle configurazioni dei flow |
| `catalogs` | Read | Accesso ai cataloghi prodotti |

### Public API Key

Per il tracking client-side, usa il company ID di 6 caratteri:

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

### OAuth (Integrazioni Partner)

Klaviyo supporta OAuth per partner tecnologici, offrendo maggiore sicurezza e limiti di velocità più alti:

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

## Configurazione

### Setup di base

```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
```

### Mappatura dei profili

Mappa le proprietà dei profili Klaviyo agli attributi di contatto Brevo:

```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
```

### Mappatura degli eventi

Mappa le metriche Klaviyo agli eventi Brevo:

```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"
```

## Endpoint API

| Metodo | Endpoint | Descrizione |
| --- | --- | --- |
| `GET` | `/api/profiles/` | Elenca i profili |
| `POST` | `/api/profiles/` | Crea un profilo |
| `PATCH` | `/api/profiles/{id}/` | Aggiorna un profilo |
| `POST` | `/api/profile-merge/` | Unisci profili duplicati |
| `GET` | `/api/events/` | Elenca gli eventi |
| `POST` | `/api/events/` | Crea un evento |
| `GET` | `/api/lists/` | Elenca tutte le liste |
| `POST` | `/api/lists/{id}/relationships/profiles/` | Aggiungi profili a una lista |
| `GET` | `/api/segments/` | Elenca i segmenti |
| `GET` | `/api/campaigns/` | Elenca le campagne |
| `GET` | `/api/flows/` | Elenca i flow |
| `GET` | `/api/metrics/` | Elenca le metriche |
| `POST` | `/api/metric-aggregates/` | Interroga gli aggregati delle metriche |
| `GET` | `/api/catalog-items/` | Elenca gli elementi del catalogo |

## Esempi di codice

### Inizializza il connettore Klaviyo

```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
});
```

### Sincronizza i profili su Brevo

```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 }
//   }
// }
```

### Crea un evento

```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
      }
    }
  })
});
```

### Interroga aggregati di metriche

```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)']
      }
    }
  })
});
```

## Limiti di velocità

| Autenticazione | Burst Limit | Steady Limit |
| --- | --- | --- |
| **Private API Key** | 75 richieste/sec | 700 richieste/min |
| **OAuth** | 150 richieste/sec | 1.500 richieste/min |
| **Client API** | 100 richieste/sec | N/D |
| **Operazioni bulk** | 10 richieste/sec | 100 richieste/min |

Header revision richiesto

Tutte le richieste API Klaviyo richiedono l’header `revision` impostato su una data di versione API valida (es. `2026-01-15`). Le richieste senza questo header verranno rifiutate.

## Risoluzione dei problemi

| Problema | Causa | Soluzione |
| --- | --- | --- |
| `400 Bad Request` | Chiave API non valida o mancante | Verifica che la chiave API privata sia corretta |
| `403 Forbidden` | Scope insufficiente | Controlla che gli scope della chiave API corrispondano ai permessi richiesti |
| Header `revision` mancante | Header non impostato | Aggiungi `revision: 2026-01-15` a tutte le richieste |
| Profilo non trovato | Identificatore errato | Usa l’ID del profilo Klaviyo, non l’email, per le ricerche |
| Eventi non sincronizzati | Nome metrica errato | Allinea i nomi delle metriche esattamente come definiti in Klaviyo |
| `429 Too Many Requests` | Limite di velocità superato | Implementa il backoff esponenziale, considera OAuth per limiti più alti |
| Errori formato JSON:API | Content type errato | Usa `application/vnd.api+json` per gli header Content-Type e Accept |

## Best practice

1. **Usa il formato JSON:API** - Segui la specifica JSON:API per tutti i payload di richiesta e risposta
2. **Imposta l’header revision** - Includi sempre l’header `revision` con l’ultima data di versione API
3. **Usa sparse fieldset** - Richiedi solo i campi necessari con `?fields[profile]=email,first_name` per ridurre la dimensione del payload
4. **Sfrutta le relazioni** - Usa il parametro `include` di JSON:API per recuperare risorse correlate in una singola richiesta
5. **Usa la paginazione cursor** - Naviga grandi result set con il parametro `page[cursor]`
6. **Implementa operazioni bulk** - Usa endpoint bulk per import di profili in batch e creazione eventi
7. **Usa OAuth per limiti più alti** - L’autenticazione OAuth fornisce limiti di velocità 2x più alti rispetto alle chiavi private

## Sicurezza

- **Scope chiave API privata** - Controllo accessi granulare Read/Full per tipo di risorsa
- **Supporto OAuth** - Autenticazione sicura basata su token per integrazioni partner
- **Isolamento public key** - Chiavi client-side limitate alle sole operazioni di creazione
- **TLS 1.2+** - Tutte le comunicazioni API cifrate in transito
- **SOC 2 Type II** - Klaviyo è certificato SOC 2 Type II
- **Conformità GDPR** - Data Privacy API per richieste di eliminazione profilo

## Risorse correlate

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