Intercom Connector

Verbinde deinen Intercom-Workspace über Tajo mit Brevo für einheitliche Kund:innen-Kommunikation, Conversation-Tracking und engagement-gesteuerte Marketing-Automatisierung – getrieben durch deine Support- und Produktdaten.

Überblick

EigenschaftWert
PlattformIntercom
KategorieSupport
EinrichtungsaufwandMittel
Offizielle IntegrationJa
Synchronisierte DatenKontakte, Conversations, Unternehmen, Events
API-Basis-URLhttps://api.intercom.io

Funktionen

  • Kontaktsynchronisierung - Bidirektionale Synchronisierung von Intercom-Users und -Leads mit Brevo-Kontakten
  • Conversation-Tracking - Synchronisiere Conversation-Daten für support-getriebene Segmentierung
  • Unternehmens-Zuordnung - Verknüpfe Kontakte mit Unternehmen für account-basierte Workflows
  • Benutzerdefinierte Attribute - Ordne benutzerdefinierte Intercom-Attribute Brevo-Kontaktfeldern zu
  • Event-Tracking - Synchronisiere benutzerdefinierte Events und Nutzer:innen-Aktivitäten für verhaltensbasiertes Targeting
  • Tag-Synchronisierung - Ordne Intercom-Tags Brevo-Listenmitgliedschaften oder -Attributen zu
  • Messenger-Daten - Verfolge Engagement in In-App-Messaging und Chat-Interaktionen
  • KI-Agent-Integration - Synchronisiere Ergebnisse von KI-Agent-Conversations mit Brevo

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

  1. Einen Intercom-Workspace (Starter-, Pro- oder Premium-Plan)
  2. Eine Intercom-App mit Access Token (Private App) oder konfiguriertem OAuth (Public App)
  3. Ein Brevo-Konto mit API-Zugriff
  4. Ein Tajo-Konto

Authentifizierung

Access Token (Private App)

Für private Integrationen, die auf Daten deines eigenen Workspaces zugreifen.

  1. Gehe zu Developer Hub > Your Apps > Create new app
  2. Verknüpfe sie mit deinem Intercom-Workspace
  3. Kopiere das 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)

Für Integrationen, die auf Intercom-Daten anderer Kund:innen zugreifen.

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

Füge deinen Anfragen immer den Header Intercom-Version hinzu. Tajo verwendet standardmäßig die API-Version 2.11. Prüfe das Intercom-Changelog auf Breaking Changes.

Konfiguration

Grundeinrichtung

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

Feldzuordnung

Ordne Intercom-Kontaktdaten den Brevo-Kontaktattributen zu:

Standardzuordnungen

Parameter Type Description
email required
string

E-Mail-Adresse des Kontakts (eindeutige Kennung)

name optional
string

Vollständiger Name, aufgeteilt in FIRSTNAME/LASTNAME

phone optional
string

Wird dem SMS-Attribut für WhatsApp/SMS zugeordnet

role optional
string

Kontakttyp: User oder Lead

company.name optional
string

Name des zugehörigen Unternehmens

signed_up_at optional
timestamp

Anmeldedatum des/der Nutzer:in

last_seen_at optional
timestamp

Zeitstempel der letzten Aktivität

custom_attributes optional
object

Schlüssel-Wert-Paare benutzerdefinierter Attribute

Zuordnung benutzerdefinierter Attribute

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

MethodeEndpointBeschreibung
GET/contactsAlle Kontakte auflisten
POST/contactsKontakt erstellen
PUT/contacts/{id}Kontakt aktualisieren
GET/contacts/{id}Kontakt abrufen
POST/contacts/searchKontakte durchsuchen
DELETE/contacts/{id}Kontakt archivieren

Conversations API

MethodeEndpointBeschreibung
GET/conversationsConversations auflisten
GET/conversations/{id}Conversation abrufen
POST/conversationsConversation erstellen
POST/conversations/{id}/replyAuf eine Conversation antworten
POST/conversations/{id}/partsConversation-Teil hinzufügen

Companies API

MethodeEndpointBeschreibung
GET/companiesUnternehmen auflisten
POST/companiesUnternehmen erstellen oder aktualisieren
GET/companies/{id}Unternehmen abrufen
GET/companies/{id}/contactsKontakte eines Unternehmens auflisten

Events API

MethodeEndpointBeschreibung
POST/eventsEvent senden
GET/events?type=user&intercom_user_id={id}Nutzer:innen-Events auflisten

Events

Conversation-Events

EventAuslöserAnwendungsfall
conversation.createdNeue Conversation begonnenSupport-Ticket-Alarm
conversation.closedConversation gelöstCSAT-Umfrage-Trigger
conversation.rating.addedBewertung abgegebenZufriedenheits-Tracking
conversation.snoozedConversation pausiertFollow-up-Planung

Kontakt-Events

EventAuslöserAnwendungsfall
contact.createdNeuer Kontakt hinzugefügtWillkommensserie
contact.updatedKontaktdaten geändertAttribut-Synchronisierung
contact.deletedKontakt archiviertBereinigung
contact.tag.createdTag zu Kontakt hinzugefügtSegment-Update

Nutzer:innen-Events

EventAuslöserAnwendungsfall
user.createdNeue:r Nutzer:in registriertOnboarding-Flow
user.email.updatedE-Mail geändertKontakt-Merge
user.unsubscribedAbmeldung vom E-Mail-VersandPräferenz-Update

Code-Beispiele

Connector initialisieren

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

Kontakte und Conversations synchronisieren

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

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

Rate Limits

Intercom wendet Rate Limits abhängig von deinem Plan an:

PlanRate LimitDetails
Starter20 Anfragen/10 SekundenPro App
Pro50 Anfragen/10 SekundenPro App
Premium100 Anfragen/10 SekundenPro App
Such-Endpoint1 Anfrage/SekundePro App
Scroll-Endpoint1 Anfrage/MinutePro App

Weitere Begrenzungen:

  • Bulk-Operationen: 15 Kontakte pro Bulk-Anfrage
  • Event-Übermittlungen: 500 Events/Sekunde pro Workspace
  • Webhook-Zustellung: Automatische Wiederholung für 24 Stunden
  • Datenexport: 1 gleichzeitiger Export

Rate-Limit-Antwort

Intercom gibt 429 Too Many Requests mit einem Retry-After-Header zurück. Setze exponentielles Backoff ein und respektiere das Retry-Fenster.

Fehlerbehebung

Häufige Probleme

ProblemUrsacheLösung
401 UnauthorizedUngültiges oder abgelaufenes TokenAccess Token im Developer Hub neu erzeugen
Kontakt nicht synchronisiertFehlendes E-Mail-FeldIntercom-Leads haben evtl. keine E-Mail; nach Rolle filtern
Conversation-Daten leerApp fehlt der Conversation-ScopeMit Conversation-Leseberechtigung neu autorisieren
Webhook nicht empfangenWebhook nicht registriertWebhooks in den Developer-Hub-Einstellungen konfigurieren
API-Versions-MismatchBreaking Changes in neuer VersionAPI-Version mit Header Intercom-Version festsetzen

Debug-Modus

Ausführliches Logging aktivieren:

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

Verbindung testen

Terminal window
tajo connectors test intercom
# ✓ API connection successful
# ✓ Contacts readable
# ✓ Conversations readable
# ✓ Companies readable
# ✓ Webhooks registered

Best Practices

  1. API-Version fixieren - Gib immer Intercom-Version an, um Breaking Changes zu vermeiden
  2. Such-API effizient nutzen - Verwende Filter und Pagination, um die Datenübertragung zu reduzieren
  3. Users und Leads synchronisieren - Bilde den kompletten Funnel in Brevo ab
  4. Conversation-Tags zuordnen - Nutze Conversation-Tags für Post-Support-Marketing-Segmente
  5. Benutzerdefinierte Events verfolgen - Schicke wichtige Produkt-Events an Intercom für verhaltensbasiertes Targeting
  6. Kontakt-Merges handhaben - Implementiere Merge-Logik für doppelte Kontakte

Sicherheit

  • Access Token - Bearer-Token-Authentifizierung für Private Apps
  • OAuth 2.0 - Delegierte Autorisierung für Public Apps mit Client Secret
  • Webhook-Verifizierung - HMAC-SHA-1-Signaturprüfung über X-Hub-Signature
  • TLS-Verschlüsselung - Die gesamte API-Kommunikation erfolgt verschlüsselt über HTTPS
  • Datenzugriffskontrollen - Granularer Datenzugriff pro App-Konfiguration

Verwandte Ressourcen

Subscribe to updates

developer-docs

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

auto-detect
AI-Assistent

Hallo! Fragen Sie mich alles über die Dokumentation.