---
title: "Intercom-connector"
description: "Volledige Intercom-integratiegids voor het synchroniseren van contacten, gesprekken, bedrijven en engagement-events met Brevo via Tajo."
url: https://tajo.io/nl/docs/connectors/support/intercom/
markdown: https://tajo.io/nl/docs/connectors/support/intercom.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.

# Intercom-connector

Connectorstatus: Gepland Nog niet gebouwd. Tajo draait deze connector vandaag niet.

| 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 je Intercom-workspace met Brevo via Tajo voor uniforme klantberichten, gesprekkentracking en engagementgedreven marketingautomatisering, aangestuurd door je support- en productdata.

## Overzicht

| Eigenschap | Waarde |
| --- | --- |
| **Platform** | Intercom |
| **Categorie** | Support |
| **Setupcomplexiteit** | Gemiddeld |
| **Officiële integratie** | Nee |
| **Gesynchroniseerde data** | Contacten, Gesprekken, Bedrijven, Events |
| **API base URL** | `https://api.intercom.io` |

## Functies

- **Contactsynchronisatie** - Bidirectionele sync van Intercom-users en -leads met Brevo-contacten
- **Gesprekkentracking** - Synchroniseer gespreksdata voor supportgedreven segmentatie
- **Bedrijfskoppeling** - Koppel contacten aan bedrijven voor account-based workflows
- **Custom attributen** - Koppel Intercom-customattributen aan Brevo-contactvelden
- **Event-tracking** - Synchroniseer custom events en gebruikersactiviteiten voor gedragsgerichte targeting
- **Tag-sync** - Koppel Intercom-tags aan Brevo-lijstlidmaatschap of attributen
- **Messenger-data** - Volg in-app-messaging-engagement en chatinteracties
- **AI-agent-integratie** - Synchroniseer uitkomsten van AI-agent-gesprekken met Brevo

## Vereisten

Voordat je begint, zorg dat je beschikt over:

1. Een Intercom-workspace (Starter-, Pro- of Premium-plan)
2. Een Intercom-app met access token (private app) of OAuth-configuratie (public app)
3. Een Brevo-account met API-toegang
4. Een Tajo-account

## Authenticatie

### Access token (private app)

Voor private integraties die data uit je eigen workspace benaderen.

1. Ga naar Developer Hub > Your Apps > Create new app
2. Koppel aan je Intercom-workspace
3. Kopieer het access token

```bash
curl https://api.intercom.io/contacts \
  -H "Authorization: Bearer {access_token}" \
  -H "Content-Type: application/json" \
  -H "Intercom-Version: 2.11"
```

### OAuth 2.0 (public app)

Voor integraties die Intercom-data van andere klanten benaderen.

```bash
# Authorization URL
https://app.intercom.com/oauth?client_id={client_id}&state={state}

# Token exchange
curl -X POST https://api.intercom.io/auth/eagle/token \
  -d "client_id={client_id}" \
  -d "client_secret={client_secret}" \
  -d "code={auth_code}"
```

API-versionering

Neem altijd de `Intercom-Version`-header op in je requests. Tajo gebruikt standaard API-versie 2.11. Raadpleeg de Intercom-changelog voor breaking changes.

## Configuratie

### Basisopzet

```yaml
connectors:
  intercom:
    enabled: true
    access_token: "${INTERCOM_ACCESS_TOKEN}"
    api_version: "2.11"

    # Data sync options
    sync:
      contacts: true
      conversations: true
      companies: true
      events: true
      tags: true

    # Sync direction
    direction: intercom_to_brevo

    # Brevo list assignment
    lists:
      all_users: 35
      active_conversations: 36
      leads: 37
```

### Veldmapping

Koppel Intercom-contactdata aan Brevo-contactattributen:

#### Standaard-mappings

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | E-mailadres contact (unieke identifier) |
| `name` optional | string | Volledige naam, opgesplitst in FIRSTNAME/LASTNAME |
| `phone` optional | string | Koppelt aan SMS-attribuut voor WhatsApp/sms |
| `role` optional | string | Contacttype: user of lead |
| `company.name` optional | string | Naam gekoppeld bedrijf |
| `signed_up_at` optional | timestamp | Registratiedatum van de gebruiker |
| `last_seen_at` optional | timestamp | Timestamp laatste activiteit |
| `custom_attributes` optional | object | Custom attribuut-key-value-paren |

#### Custom attribuutmapping

```yaml
field_mapping:
  # Standard fields
  email: email
  name: FULLNAME
  phone: SMS

  # Engagement fields
  signed_up_at: SIGNUP_DATE
  last_seen_at: LAST_ACTIVE
  session_count: SESSION_COUNT
  unsubscribed_from_emails: UNSUBSCRIBED

  # Company fields
  company.name: COMPANY_NAME
  company.plan: COMPANY_PLAN
  company.size: COMPANY_SIZE

  # Custom attributes
  custom_attributes.plan_tier: PLAN_TIER
  custom_attributes.feature_usage: FEATURE_USAGE
```

## API-endpoints

### Contacts API

| Methode | Endpoint | Beschrijving |
| --- | --- | --- |
| `GET` | `/contacts` | Alle contacten opvragen |
| `POST` | `/contacts` | Contact aanmaken |
| `PUT` | `/contacts/{id}` | Contact bijwerken |
| `GET` | `/contacts/{id}` | Contact ophalen |
| `POST` | `/contacts/search` | Contacten zoeken |
| `DELETE` | `/contacts/{id}` | Contact archiveren |

### Conversations API

| Methode | Endpoint | Beschrijving |
| --- | --- | --- |
| `GET` | `/conversations` | Gesprekken opvragen |
| `GET` | `/conversations/{id}` | Gesprek ophalen |
| `POST` | `/conversations` | Gesprek aanmaken |
| `POST` | `/conversations/{id}/reply` | Reageren op een gesprek |
| `POST` | `/conversations/{id}/parts` | Gespreksonderdeel toevoegen |

### Companies API

| Methode | Endpoint | Beschrijving |
| --- | --- | --- |
| `GET` | `/companies` | Bedrijven opvragen |
| `POST` | `/companies` | Bedrijf aanmaken of bijwerken |
| `GET` | `/companies/{id}` | Bedrijf ophalen |
| `GET` | `/companies/{id}/contacts` | Bedrijfscontacten opvragen |

### Events API

| Methode | Endpoint | Beschrijving |
| --- | --- | --- |
| `POST` | `/events` | Event indienen |
| `GET` | `/events?type=user&intercom_user_id={id}` | User-events opvragen |

## Events

### Gespreksevents

| Event | Trigger | Use case |
| --- | --- | --- |
| `conversation.created` | Nieuw gesprek gestart | Support-ticket-alert |
| `conversation.closed` | Gesprek afgehandeld | CSAT-survey-trigger |
| `conversation.rating.added` | Beoordeling ingediend | Tevredenheidstracking |
| `conversation.snoozed` | Gesprek uitgesteld | Follow-up-planning |

### Contact-events

| Event | Trigger | Use case |
| --- | --- | --- |
| `contact.created` | Nieuw contact toegevoegd | Welkomstserie |
| `contact.updated` | Contactdata gewijzigd | Attribuutsync |
| `contact.deleted` | Contact gearchiveerd | Opschonen |
| `contact.tag.created` | Tag toegevoegd aan contact | Segmentupdate |

### User-events

| Event | Trigger | Use case |
| --- | --- | --- |
| `user.created` | Nieuwe gebruiker aangemeld | Onboardingsflow |
| `user.email.updated` | E-mail gewijzigd | Contactsamenvoeging |
| `user.unsubscribed` | Uitgeschreven van e-mails | Voorkeursupdate |

## Codevoorbeelden

### 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 Intercom
await tajo.connectors.connect('intercom', {
  accessToken: process.env.INTERCOM_ACCESS_TOKEN,
  apiVersion: '2.11'
});
```

### Contacten en gesprekken synchroniseren

```javascript
// Full sync of contacts and conversation data
await tajo.connectors.sync('intercom', {
  type: 'full',
  resources: ['contacts', 'conversations', 'companies'],
  since: '2023-01-01'
});

// Check sync status
const status = await tajo.connectors.status('intercom');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-01-15T10:30:00Z',
//   contactsSynced: 14200,
//   conversationsSynced: 28400,
//   companiesSynced: 2100
// }
```

### Intercom-webhooks afhandelen

```javascript
import crypto from 'crypto';

app.post('/webhooks/intercom', async (req, res) => {
  const signature = req.get('X-Hub-Signature');
  const expectedSig = 'sha1=' + crypto
    .createHmac('sha1', process.env.INTERCOM_CLIENT_SECRET)
    .update(JSON.stringify(req.body))
    .digest('hex');

  if (signature !== expectedSig) {
    return res.status(401).send('Unauthorized');
  }

  await tajo.connectors.handleWebhook('intercom', {
    topic: req.body.topic,
    data: req.body.data
  });

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

## Ratelimits

Intercom past ratelimits toe op basis van je plan:

| Plan | Ratelimit | Details |
| --- | --- | --- |
| Starter | 20 requests/10 seconden | Per app |
| Pro | 50 requests/10 seconden | Per app |
| Premium | 100 requests/10 seconden | Per app |
| Search-endpoint | 1 request/seconde | Per app |
| Scroll-endpoint | 1 request/minuut | Per app |

Aanvullende limieten:

- **Bulk-operaties**: 15 contacten per bulk-request
- **Event-indieningen**: 500 events/seconde per workspace
- **Webhook-levering**: Automatische retry gedurende 24 uur
- **Data-export**: 1 gelijktijdige export

Ratelimit-response

Intercom geeft `429 Too Many Requests` terug met een `Retry-After`-header. Implementeer exponentiële backoff en respecteer het retry-venster.

## Probleemoplossing

### Veelvoorkomende problemen

| Probleem | Oorzaak | Oplossing |
| --- | --- | --- |
| 401 Unauthorized | Ongeldige of verlopen token | Genereer access token opnieuw in Developer Hub |
| Contact niet gesynchroniseerd | Ontbrekend e-mailveld | Intercom-leads missen soms e-mail; filter op rol |
| Gespreksdata leeg | App mist conversation-scope | Autoriseer opnieuw met conversation read-rechten |
| Webhook niet ontvangen | Webhook niet geregistreerd | Configureer webhooks in Developer Hub-instellingen |
| API-versiemismatch | Breaking changes in nieuwe versie | Pin API-versie met `Intercom-Version`-header |

### Debugmodus

Activeer uitgebreide logging:

```yaml
connectors:
  intercom:
    debug: true
    log_level: verbose
    log_webhooks: true
```

### Verbinding testen

```bash
tajo connectors test intercom
# ✓ API connection successful
# ✓ Contacts readable
# ✓ Conversations readable
# ✓ Companies readable
# ✓ Webhooks registered
```

## Best practices

1. **Pin de API-versie** - Specificeer altijd `Intercom-Version` om breaking changes te voorkomen
2. **Gebruik de search API efficiënt** - Gebruik filters en paginatie om dataoverdracht te beperken
3. **Synchroniseer zowel users als leads** - Leg de volledige funnel vast in Brevo
4. **Koppel gesprekstags** - Gebruik gesprekstags voor post-support-marketingsegmenten
5. **Track custom events** - Dien belangrijke productevents in bij Intercom voor gedragsgerichte targeting
6. **Regel contact-merges** - Implementeer merge-logica voor duplicaatcontacten

## Beveiliging

- **Access token** - Bearer-token-authenticatie voor private apps
- **OAuth 2.0** - Gedelegeerde autorisatie voor public apps met client secret
- **Webhook-verificatie** - HMAC SHA-1-signaturevalidatie via `X-Hub-Signature`
- **TLS-encryptie** - Alle API-communicatie versleuteld via HTTPS
- **Data-access-controls** - Granulaire datatoegang per app-configuratie

## Gerelateerde resources

- [Intercom Developer Documentation](https://developers.intercom.com/docs)
- [Intercom API Reference](https://developers.intercom.com/docs/references/introduction)
- [Zendesk-connector](https://tajo.io/nl/docs/connectors/support/zendesk)
- [Customer Sync-skill](https://tajo.io/nl/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/nl/docs/contact-management)
