Intercom Connector
Connector-Status: Geplant Noch nicht gebaut. Tajo betreibt diesen Connector heute nicht.
Illustration · Beispieldaten
Sync-Beispiel
Quelle
Intercom
Connector-Status: Geplant
Ziel
Ihr anderes Tool
Connector-Status: Eigenes Tool
Feldzuordnung
| Quellfeld | Zielfeld | Beispielwert |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Entwerfen
- Einen Datensatz prüfen
- Diese Version freigeben
Der Status gilt für einzelne Connectoren und garantiert nicht, dass dieser Sync bereit ist. Felder zur Veranschaulichung. Prüfen Sie vor dem Sync das tatsächliche Schema und die Berechtigungen.
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
| Eigenschaft | Wert |
|---|---|
| Plattform | Intercom |
| Kategorie | Support |
| Einrichtungsaufwand | Mittel |
| Offizielle Integration | Nein |
| Synchronisierte Daten | Kontakte, Conversations, Unternehmen, Events |
| API-Basis-URL | https://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:
- Einen Intercom-Workspace (Starter-, Pro- oder Premium-Plan)
- Eine Intercom-App mit Access Token (Private App) oder konfiguriertem OAuth (Public App)
- Ein Brevo-Konto mit API-Zugriff
- Ein Tajo-Konto
Authentifizierung
Access Token (Private App)
Für private Integrationen, die auf Daten deines eigenen Workspaces zugreifen.
- Gehe zu Developer Hub > Your Apps > Create new app
- Verknüpfe sie mit deinem Intercom-Workspace
- Kopiere das 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)
Für Integrationen, die auf Intercom-Daten anderer Kund:innen zugreifen.
# 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-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: 37Feldzuordnung
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_USAGEAPI-Endpoints
Contacts API
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET | /contacts | Alle Kontakte auflisten |
POST | /contacts | Kontakt erstellen |
PUT | /contacts/{id} | Kontakt aktualisieren |
GET | /contacts/{id} | Kontakt abrufen |
POST | /contacts/search | Kontakte durchsuchen |
DELETE | /contacts/{id} | Kontakt archivieren |
Conversations API
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET | /conversations | Conversations auflisten |
GET | /conversations/{id} | Conversation abrufen |
POST | /conversations | Conversation erstellen |
POST | /conversations/{id}/reply | Auf eine Conversation antworten |
POST | /conversations/{id}/parts | Conversation-Teil hinzufügen |
Companies API
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET | /companies | Unternehmen auflisten |
POST | /companies | Unternehmen erstellen oder aktualisieren |
GET | /companies/{id} | Unternehmen abrufen |
GET | /companies/{id}/contacts | Kontakte eines Unternehmens auflisten |
Events API
| Methode | Endpoint | Beschreibung |
|---|---|---|
POST | /events | Event senden |
GET | /events?type=user&intercom_user_id={id} | Nutzer:innen-Events auflisten |
Events
Conversation-Events
| Event | Auslöser | Anwendungsfall |
|---|---|---|
conversation.created | Neue Conversation begonnen | Support-Ticket-Alarm |
conversation.closed | Conversation gelöst | CSAT-Umfrage-Trigger |
conversation.rating.added | Bewertung abgegeben | Zufriedenheits-Tracking |
conversation.snoozed | Conversation pausiert | Follow-up-Planung |
Kontakt-Events
| Event | Auslöser | Anwendungsfall |
|---|---|---|
contact.created | Neuer Kontakt hinzugefügt | Willkommensserie |
contact.updated | Kontaktdaten geändert | Attribut-Synchronisierung |
contact.deleted | Kontakt archiviert | Bereinigung |
contact.tag.created | Tag zu Kontakt hinzugefügt | Segment-Update |
Nutzer:innen-Events
| Event | Auslöser | Anwendungsfall |
|---|---|---|
user.created | Neue:r Nutzer:in registriert | Onboarding-Flow |
user.email.updated | E-Mail geändert | Kontakt-Merge |
user.unsubscribed | Abmeldung vom E-Mail-Versand | Prä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 Intercomawait tajo.connectors.connect('intercom', { accessToken: process.env.INTERCOM_ACCESS_TOKEN, apiVersion: '2.11'});Kontakte und Conversations synchronisieren
// 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 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:
| Plan | Rate Limit | Details |
|---|---|---|
| Starter | 20 Anfragen/10 Sekunden | Pro App |
| Pro | 50 Anfragen/10 Sekunden | Pro App |
| Premium | 100 Anfragen/10 Sekunden | Pro App |
| Such-Endpoint | 1 Anfrage/Sekunde | Pro App |
| Scroll-Endpoint | 1 Anfrage/Minute | Pro 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
| Problem | Ursache | Lösung |
|---|---|---|
| 401 Unauthorized | Ungültiges oder abgelaufenes Token | Access Token im Developer Hub neu erzeugen |
| Kontakt nicht synchronisiert | Fehlendes E-Mail-Feld | Intercom-Leads haben evtl. keine E-Mail; nach Rolle filtern |
| Conversation-Daten leer | App fehlt der Conversation-Scope | Mit Conversation-Leseberechtigung neu autorisieren |
| Webhook nicht empfangen | Webhook nicht registriert | Webhooks in den Developer-Hub-Einstellungen konfigurieren |
| API-Versions-Mismatch | Breaking Changes in neuer Version | API-Version mit Header Intercom-Version festsetzen |
Debug-Modus
Ausführliches Logging aktivieren:
connectors: intercom: debug: true log_level: verbose log_webhooks: trueVerbindung testen
tajo connectors test intercom# ✓ API connection successful# ✓ Contacts readable# ✓ Conversations readable# ✓ Companies readable# ✓ Webhooks registeredBest Practices
- API-Version fixieren - Gib immer
Intercom-Versionan, um Breaking Changes zu vermeiden - Such-API effizient nutzen - Verwende Filter und Pagination, um die Datenübertragung zu reduzieren
- Users und Leads synchronisieren - Bilde den kompletten Funnel in Brevo ab
- Conversation-Tags zuordnen - Nutze Conversation-Tags für Post-Support-Marketing-Segmente
- Benutzerdefinierte Events verfolgen - Schicke wichtige Produkt-Events an Intercom für verhaltensbasiertes Targeting
- 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