Intercom-connector

Verbind je Intercom-workspace met Brevo via Tajo voor uniforme klantberichten, gesprekkentracking en engagementgedreven marketingautomatisering, aangestuurd door je support- en productdata.

Overzicht

EigenschapWaarde
PlatformIntercom
CategorieSupport
SetupcomplexiteitGemiddeld
Officiële integratieJa
Gesynchroniseerde dataContacten, Gesprekken, Bedrijven, Events
API base URLhttps://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
Terminal window
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.

Terminal window
# 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

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

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

MethodeEndpointBeschrijving
GET/contactsAlle contacten opvragen
POST/contactsContact aanmaken
PUT/contacts/{id}Contact bijwerken
GET/contacts/{id}Contact ophalen
POST/contacts/searchContacten zoeken
DELETE/contacts/{id}Contact archiveren

Conversations API

MethodeEndpointBeschrijving
GET/conversationsGesprekken opvragen
GET/conversations/{id}Gesprek ophalen
POST/conversationsGesprek aanmaken
POST/conversations/{id}/replyReageren op een gesprek
POST/conversations/{id}/partsGespreksonderdeel toevoegen

Companies API

MethodeEndpointBeschrijving
GET/companiesBedrijven opvragen
POST/companiesBedrijf aanmaken of bijwerken
GET/companies/{id}Bedrijf ophalen
GET/companies/{id}/contactsBedrijfscontacten opvragen

Events API

MethodeEndpointBeschrijving
POST/eventsEvent indienen
GET/events?type=user&intercom_user_id={id}User-events opvragen

Events

Gespreksevents

EventTriggerUse case
conversation.createdNieuw gesprek gestartSupport-ticket-alert
conversation.closedGesprek afgehandeldCSAT-survey-trigger
conversation.rating.addedBeoordeling ingediendTevredenheidstracking
conversation.snoozedGesprek uitgesteldFollow-up-planning

Contact-events

EventTriggerUse case
contact.createdNieuw contact toegevoegdWelkomstserie
contact.updatedContactdata gewijzigdAttribuutsync
contact.deletedContact gearchiveerdOpschonen
contact.tag.createdTag toegevoegd aan contactSegmentupdate

User-events

EventTriggerUse case
user.createdNieuwe gebruiker aangemeldOnboardingsflow
user.email.updatedE-mail gewijzigdContactsamenvoeging
user.unsubscribedUitgeschreven van e-mailsVoorkeursupdate

Codevoorbeelden

Connector initialiseren

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

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

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:

PlanRatelimitDetails
Starter20 requests/10 secondenPer app
Pro50 requests/10 secondenPer app
Premium100 requests/10 secondenPer app
Search-endpoint1 request/secondePer app
Scroll-endpoint1 request/minuutPer 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

ProbleemOorzaakOplossing
401 UnauthorizedOngeldige of verlopen tokenGenereer access token opnieuw in Developer Hub
Contact niet gesynchroniseerdOntbrekend e-mailveldIntercom-leads missen soms e-mail; filter op rol
Gespreksdata leegApp mist conversation-scopeAutoriseer opnieuw met conversation read-rechten
Webhook niet ontvangenWebhook niet geregistreerdConfigureer webhooks in Developer Hub-instellingen
API-versiemismatchBreaking changes in nieuwe versiePin API-versie met Intercom-Version-header

Debugmodus

Activeer uitgebreide logging:

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

Verbinding testen

Terminal window
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

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI-assistent

Hallo! Stel me vragen over de documentatie.