Intercom-connector
Connectorstatus: Gepland Nog niet gebouwd. Tajo draait deze connector vandaag niet.
Illustratie · voorbeelddata
Voorbeeld van synchronisatie
Bron
Intercom
Connectorstatus: Gepland
Bestemming
Je andere tool
Connectorstatus: Eigen tool
Veldtoewijzing
| Bronveld | Doelveld | Voorbeeldwaarde |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Opstellen
- Eén record controleren
- Deze versie goedkeuren
Statussen gelden per connector en garanderen niet dat deze synchronisatie klaar is. De velden zijn illustratief. Controleer het echte schema en de rechten voordat een synchronisatie draait.
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:
- 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