---
title: "Customer.io-koppling"
description: "Komplett integrationsguide för Customer.io för att synka people, händelser, kampanjer och workflow-data med Brevo via Tajo."
url: https://tajo.io/se/docs/connectors/marketing/customerio/
markdown: https://tajo.io/se/docs/connectors/marketing/customerio.md
lang: sv-SE
robots: noindex
---

Ansök om tidig åtkomst

Ange ditt förnamn och din e-postadress på jobbet. Vi skickar en länk för att bekräfta din begäran om åtkomst till Tajo.

# Customer.io-koppling

Kopplingens status: Planerad Inte byggd än. Tajo kör inte den här kopplingen i dag.

| Källfält | Målfält | Exempelvärde |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Anslut din Customer.io-meddelandeplattform till Brevo för enhetlig kunddata, koordinering av kampanjer över plattformar och konsoliderad engagemangsanalys.

## Översikt

| Egenskap | Värde |
| --- | --- |
| **Plattform** | Customer.io |
| **Kategori** | Marknadsföring |
| **Installationskomplexitet** | Måttlig |
| **Officiell integration** | Nej |
| **Data som synkas** | People, händelser, kampanjer, segment |
| **API:er som används** | Track API, App API, Pipelines API |
| **Autentisering** | Site ID + API Key / App API Key |
| **Bas-URL:er** | `track.customer.io`, `api.customer.io` |

## Funktioner

- **People-synk** - Dubbelriktad synkronisering av kundprofiler med Brevo-kontakter
- **Vidarebefordran av händelser** - Spåra beteendehändelser och vidarebefordra till Brevo som automationstriggers
- **Kampanjanalys** - Synka kampanjprestandadata för enhetlig rapportering
- **Workflow-data** - Spegla Customer.io-workflow-tillstånd i Brevos kontaktattribut
- **Segmentreplikering** - Replikera Customer.io-segment som Brevo-listor
- **Synk av objektdata** - Synka non-people-objekt och relationsdata

## Förutsättningar

Innan du börjar, se till att du har:

1. Ett Customer.io-konto med API-åtkomst
2. Ditt Site ID och din Track API-nyckel (finns under Settings > API Credentials)
3. En App API-nyckel för att läsa kampanj- och segmentdata
4. Ett Brevo-konto med API-åtkomst
5. Ett Tajo-konto med aktivt abonnemang

## Autentisering

Customer.io använder två separata API:er med olika autentiseringsmetoder:

### Track API (beteendedata)

Används för att skicka people, händelser och enhetsdata. Autentiserar med Site ID och API-nyckel 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äsdata)

Används för att hämta kampanjer, segment och kunddata. Autentiserar med Bearer-token.

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

Separerade API-nycklar

Track API-nyckeln och App API-nyckeln är olika uppgifter. Track API-nyckeln används för att skriva data, medan App API-nyckeln är för att läsa data. Båda krävs för full Tajo-integration.

### Anslut till 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äggande konfiguration

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

### Fältmappning

Mappa Customer.io person-attribut till Brevo-kontaktattribut:

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

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

Tajo integrerar med följande Customer.io API-ändpunkter:

| Ändpunkt | Metod | API | Syfte |
| --- | --- | --- | --- |
| `/api/v1/customers/{id}` | PUT | Track | Skapa eller uppdatera en person |
| `/api/v1/customers/{id}/events` | POST | Track | Spåra en person-händelse |
| `/api/v1/events` | POST | Track | Spåra anonyma händelser |
| `/api/v2/entity` | POST | Track | Skapa eller uppdatera people/objekt (Pipelines) |
| `/v1/campaigns` | GET | App | Lista kampanjer |
| `/v1/campaigns/{id}/metrics` | GET | App | Prestandamått för kampanjer |
| `/v1/segments` | GET | App | Lista segment |
| `/v1/segments/{id}/membership` | GET | App | Hämta segmentmedlemmar |
| `/v1/customers/{id}/attributes` | GET | App | Hämta kundattribut |
| `/v1/customers/{id}/activities` | GET | App | Hämta kundens aktivitetslogg |

## Kodexempel

### Initiera kopplingen

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

### Synka people till 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
// }
```

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

### Exportera 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`);
```

## API-gränser

Customer.io tillämpar olika rate limits per API:

| API | Rate limit | Noteringar |
| --- | --- | --- |
| **Track API** | ~100 förfrågningar/sekund | Per arbetsyta |
| **App API** | 10 förfrågningar/sekund | Per API-nyckel |
| **Pipelines API** | 100 förfrågningar/sekund | Rekommenderas för massdata |
| **Batch-ändpunkt** | 1 000 people per förfrågan | Max payload 500 KB |

Använd batch-ändpunkter

För stora synkar använder Tajo Customer.ios batch-ändpunkt för att skicka upp till 1 000 people per förfrågan, vilket avsevärt minskar volymen av API-anrop.

## Felsökning

### Vanliga problem

| Problem | Orsak | Lösning |
| --- | --- | --- |
| 401 Unauthorized | Ogiltigt Site ID eller API-nyckel | Verifiera uppgifterna i Customer.io Settings > API |
| People synkas inte | Identifierare saknas | Se till att varje person har `id` eller `email` |
| Händelser spåras inte | Fel typ av API-nyckel | Använd Track API-nyckeln för händelser, inte App API-nyckeln |
| EU-data går inte att nå | Fel region konfigurerad | Sätt region till `eu` för EU-arbetsytor |
| Rate limit-fel | För många App API-anrop | Minska polling-frekvensen för kampanjdata |

### Debug-läge

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

### Testa anslutningen

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

## Bästa praxis

1. **Använd Pipelines API för massdata** - Det nyare Pipelines-API:et är optimerat för högvolymsinmatning
2. **Sätt upp reporting-webhooks** - Vidarebefordra Customer.io-mejlhändelser till Tajo i realtid
3. **Mappa livscykelstadier** - Synka Customer.io-segmentmedlemskap till Brevo-attribut
4. **Använd konsekventa identifierare** - Matcha `id`-fält över Customer.io och Brevo
5. **Synka inkrementellt** - Undvik fulla exporter; utnyttja `last_activity`-tidsstämplar
6. **Övervaka webhook-leverans** - Sätt upp varningar för misslyckade webhook-leveranser

## Säkerhet

- **Basic Auth** - Track API autentiserar med Site ID och API-nyckel
- **Bearer token** - App API använder OAuth-liknande bearer-token
- **Endast HTTPS** - All API-kommunikation krypteras via TLS 1.2+
- **Regionala data centers** - Alternativ med EU-data center för GDPR-efterlevnad
- **Krypterad lagring** - Alla uppgifter krypteras i vila i Tajo
- **Webhook-signaturer** - Verifiera webhook-payloads med HMAC-signaturer

## Relaterade resurser

- [Braze-koppling](https://tajo.io/se/docs/connectors/marketing/braze)
- [Iterable-koppling](https://tajo.io/se/docs/connectors/marketing/iterable)
- [Skill för kundsynk](https://tajo.io/se/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/se/docs/contact-management)
