Intercom-connector
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 | Ja |
| 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:
- Een Intercom-workspace (Starter-, Pro- of Premium-plan)
- Een Intercom-app met access token (private app) of OAuth-configuratie (public app)
- Een Brevo-account met API-toegang
- Een Tajo-account
Authenticatie
Access token (private app)
Voor private integraties die data uit je eigen workspace benaderen.
- Ga naar Developer Hub > Your Apps > Create new app
- Koppel aan je Intercom-workspace
- Kopieer het access token
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.
# Authorization URLhttps://app.intercom.com/oauth?client_id={client_id}&state={state}
# Token exchangecurl -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: 37Veldmapping
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_USAGEAPI-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
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Intercomawait tajo.connectors.connect('intercom', { accessToken: process.env.INTERCOM_ACCESS_TOKEN, apiVersion: '2.11'});Contacten en gesprekken synchroniseren
// Full sync of contacts and conversation dataawait tajo.connectors.sync('intercom', { type: 'full', resources: ['contacts', 'conversations', 'companies'], since: '2023-01-01'});
// Check sync statusconst 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:
| 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:
connectors: intercom: debug: true log_level: verbose log_webhooks: trueVerbinding testen
tajo connectors test intercom# ✓ API connection successful# ✓ Contacts readable# ✓ Conversations readable# ✓ Companies readable# ✓ Webhooks registeredBest practices
- Pin de API-versie - Specificeer altijd
Intercom-Versionom breaking changes te voorkomen - Gebruik de search API efficiënt - Gebruik filters en paginatie om dataoverdracht te beperken
- Synchroniseer zowel users als leads - Leg de volledige funnel vast in Brevo
- Koppel gesprekstags - Gebruik gesprekstags voor post-support-marketingsegmenten
- Track custom events - Dien belangrijke productevents in bij Intercom voor gedragsgerichte targeting
- 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