---
title: "Customer.io Connector"
description: "Komplet guide til Customer.io-integration til synkronisering af personer, hændelser, kampagner og workflow-data med Brevo via Tajo."
url: https://tajo.io/dk/docs/connectors/marketing/customerio/
markdown: https://tajo.io/dk/docs/connectors/marketing/customerio.md
lang: da-DK
robots: noindex
---

Bed om tidlig adgang til Tajo

Indtast dit fornavn og din arbejds-e-mailadresse. Vi sender dig et link til at bekræfte din anmodning om adgang til Tajo.

# Customer.io Connector

Connectorstatus: Planlagt Ikke bygget endnu. Tajo kører ikke denne connector i dag.

| Kildefelt | Destinationsfelt | Eksempelværdi |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Forbind din Customer.io-beskedplatform til Brevo for forenede kundedata, tværplatforms-kampagnekoordinering og konsoliderede engagementanalyser.

## Oversigt

| Egenskab | Værdi |
| --- | --- |
| **Platform** | Customer.io |
| **Kategori** | Marketing |
| **Opsætningskompleksitet** | Moderat |
| **Officiel integration** | Nej |
| **Synkroniserede data** | Personer, hændelser, kampagner, segmenter |
| **Anvendte API’er** | Track API, App API, Pipelines API |
| **Autentifikation** | Site ID + API Key / App API Key |
| **Base-URL’er** | `track.customer.io`, `api.customer.io` |

## Funktioner

- **Personsynkronisering** - Tovejssynkronisering af kundeprofiler med Brevo-kontakter
- **Hændelsesvideresendelse** - Spor adfærdshændelser og videresend til Brevo som automatiseringstriggere
- **Kampagneanalyse** - Synkronisér kampagneperformance-metrikker til forenet rapportering
- **Workflow-data** - Spejl Customer.io-workflowtilstande i Brevo-kontaktattributter
- **Segmentreplikering** - Replicér Customer.io-segmenter som Brevo-lister
- **Synkronisering af objektdata** - Synkronisér ikke-persondata-objekter og relationsdata

## Forudsætninger

Før du begynder, skal du sikre dig, at du har:

1. En Customer.io-konto med API-adgang
2. Dit Site ID og din Track API Key (findes i Settings > API Credentials)
3. En App API-nøgle til læsning af kampagne- og segmentdata
4. En Brevo-konto med API-adgang
5. En Tajo-konto med et aktivt abonnement

## Autentifikation

Customer.io bruger to separate API’er med forskellige autentifikationsmetoder:

### Track API (adfærdsdata)

Bruges til at sende personer, hændelser og enhedsdata. Autentificerer med Site ID og API-nøgle via Basic Auth.

```bash
# Basic Auth: Site ID as username, API Key as password
curl -X POST https://track.customer.io/api/v1/customers/user123 \
  -u "$SITE_ID:$API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com"}'
```

### App API (læse data)

Bruges til at hente kampagner, segmenter og kundedata. Autentificerer med et Bearer-token.

```bash
curl -X GET https://api.customer.io/v1/campaigns \
  -H "Authorization: Bearer $APP_API_KEY"
```

Adskillelse af API-nøgler

Track API-nøglen og App API-nøglen er forskellige legitimationsoplysninger. Track API-nøglen bruges til skrivning af data, mens App API-nøglen er til læsning af data. Begge kræves til fuld Tajo-integration.

### Forbind til Tajo

```bash
tajo connectors install customerio \
  --site-id $CIO_SITE_ID \
  --track-api-key $CIO_TRACK_API_KEY \
  --app-api-key $CIO_APP_API_KEY
```

## Konfiguration

### Grundlæggende opsætning

```yaml
connectors:
  customerio:
    enabled: true
    region: "us"  # or "eu" for EU data center

    sync:
      people: true
      events: true
      campaigns: true
      segments: true
      objects: false

    lists:
      all_contacts: 12
      active_subscribers: 13
      churned: 14
```

### Feltmapping

Knyt Customer.io-personattributter til Brevo-kontaktattributter:

```yaml
field_mapping:
  # Standard fields
  id: CIO_ID
  email: email
  first_name: FIRSTNAME
  last_name: LASTNAME
  phone: SMS

  # Engagement metrics
  created_at: SIGNUP_DATE
  last_activity: LAST_ACTIVE
  plan: PLAN_NAME

  # Custom attributes
  company: COMPANY
  role: JOB_TITLE
  mrr: MONTHLY_REVENUE
  lifecycle_stage: LIFECYCLE_STAGE
```

### Hændelsesmapping

```yaml
event_mapping:
  # Customer.io event -> Brevo event
  purchase_completed: ORDER_PLACED
  subscription_started: SUBSCRIPTION_START
  feature_activated: FEATURE_USED
  support_ticket_opened: SUPPORT_REQUEST
```

## API-endpoints

Tajo integrerer med følgende Customer.io API-endpoints:

| Endpoint | Metode | API | Formål |
| --- | --- | --- | --- |
| `/api/v1/customers/{id}` | PUT | Track | Opret eller opdatér en person |
| `/api/v1/customers/{id}/events` | POST | Track | Spor en persons hændelse |
| `/api/v1/events` | POST | Track | Spor anonyme hændelser |
| `/api/v2/entity` | POST | Track | Opret eller opdatér personer/objekter (Pipelines) |
| `/v1/campaigns` | GET | App | Vis kampagner |
| `/v1/campaigns/{id}/metrics` | GET | App | Kampagneperformance-metrikker |
| `/v1/segments` | GET | App | Vis segmenter |
| `/v1/segments/{id}/membership` | GET | App | Hent segmentmedlemmer |
| `/v1/customers/{id}/attributes` | GET | App | Hent kundeattributter |
| `/v1/customers/{id}/activities` | GET | App | Hent kundeaktivitetslog |

## Kodeeksempler

### Initialisér konnektor

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

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

await tajo.connectors.connect('customerio', {
  siteId: process.env.CIO_SITE_ID,
  trackApiKey: process.env.CIO_TRACK_API_KEY,
  appApiKey: process.env.CIO_APP_API_KEY,
  region: 'us'
});
```

### Synkronisér personer til Brevo

```javascript
// Incremental sync of Customer.io people
await tajo.connectors.sync('customerio', {
  type: 'incremental',
  resources: ['people'],
  since: '2024-01-01',
  batchSize: 100
});

const status = await tajo.connectors.status('customerio');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-03-15T14:20:00Z',
//   peopleCount: 32500,
//   campaignsTracked: 18,
//   eventsProcessed: 87000
// }
```

### Videresend hændelser

```javascript
// Forward Customer.io reporting webhook events to Brevo
app.post('/webhooks/customerio', async (req, res) => {
  const events = req.body;

  for (const event of events) {
    await tajo.connectors.handleEvent('customerio', {
      type: event.metric,
      payload: {
        customerId: event.data.customer_id,
        campaignId: event.data.campaign_id,
        timestamp: event.timestamp
      }
    });
  }

  res.status(200).send('OK');
});
```

### Eksportér segment

```javascript
const result = await tajo.connectors.exportSegment('customerio', {
  segmentId: 42,
  targetList: 13,
  includeAttributes: ['email', 'first_name', 'last_name', 'plan']
});

console.log(`Exported ${result.count} people to Brevo list 13`);
```

## Ratebegrænsninger

Customer.io håndhæver forskellige ratebegrænsninger per API:

| API | Ratebegrænsning | Noter |
| --- | --- | --- |
| **Track API** | ~100 forespørgsler/sekund | Per workspace |
| **App API** | 10 forespørgsler/sekund | Per API-nøgle |
| **Pipelines API** | 100 forespørgsler/sekund | Anbefalet til massedata |
| **Batch-endpoint** | 1.000 personer per forespørgsel | Maks. payload 500 KB |

Brug batch-endpoints

Til store synkroniseringer bruger Tajo Customer.io batch-endpointet til at sende op til 1.000 personer per forespørgsel, hvilket reducerer API-kaldsvolumen markant.

## Fejlfinding

### Almindelige problemer

| Problem | Årsag | Løsning |
| --- | --- | --- |
| 401 Unauthorized | Ugyldigt Site ID eller API-nøgle | Verificér legitimationsoplysninger i Customer.io Settings > API |
| Personer synkroniseres ikke | Manglende identifikator | Sørg for, at hver person har et `id` eller en `email` |
| Hændelser ikke sporet | Forkert API-nøgletype | Brug Track API-nøgle til hændelser, ikke App API-nøgle |
| EU-data utilgængelige | Forkert region konfigureret | Sæt region til `eu` for EU-workspaces |
| Ratebegrænsningsfejl | For mange App API-kald | Reducér pollingfrekvens for kampagnedata |

### Fejlfindingstilstand

```yaml
connectors:
  customerio:
    debug: true
    log_level: verbose
    log_api_calls: true
```

### Test forbindelse

```bash
tajo connectors test customerio
# ✓ Track API connection successful
# ✓ App API connection successful
# ✓ People accessible
# ✓ Campaigns readable
# ✓ Segments listable
```

## Best practices

1. **Brug Pipelines API til massedata** - Det nyere Pipelines API er optimeret til ingest med højt volumen
2. **Opsæt rapporteringswebhooks** - Videresend Customer.io e-mailhændelser til Tajo i realtid
3. **Map lifecycle-stadier** - Synkronisér Customer.io-segmentmedlemskab til Brevo-attributter
4. **Brug konsekvente identifikatorer** - Match `id`-felter på tværs af Customer.io og Brevo
5. **Synkronisér inkrementelt** - Undgå fulde eksporter; udnyt `last_activity`-tidsstempler
6. **Overvåg webhook-levering** - Opsæt advarsler for mislykkede webhook-leveringer

## Sikkerhed

- **Basic Auth** - Track API autentificerer med Site ID og API-nøgle
- **Bearer-token** - App API bruger OAuth-lignende bearer-tokens
- **Kun HTTPS** - Al API-kommunikation krypteret via TLS 1.2+
- **Regionale datacentre** - EU-datacentermulighed for GDPR-overholdelse
- **Krypteret lagring** - Alle legitimationsoplysninger krypteres i hvile i Tajo
- **Webhook-signaturer** - Verificér webhook-payloads med HMAC-signaturer

## Relaterede ressourcer

- [Braze Connector](https://tajo.io/dk/docs/connectors/marketing/braze)
- [Iterable Connector](https://tajo.io/dk/docs/connectors/marketing/iterable)
- [Customer Sync Skill](https://tajo.io/dk/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/dk/docs/contact-management)
