---
title: "Intercom Connector"
description: "Vollständiger Leitfaden zur Intercom-Integration zum Synchronisieren von Kontakten, Conversations, Unternehmen und Engagement-Events mit Brevo über Tajo."
url: https://tajo.io/de/docs/connectors/support/intercom/
markdown: https://tajo.io/de/docs/connectors/support/intercom.md
lang: de-DE
robots: noindex
---

Beantrage frühzeitigen Zugang

Gib deinen Vornamen und deine geschäftliche E-Mail-Adresse ein. Wir senden dir einen Link, mit dem du deine Anfrage für den Tajo-Zugang bestätigst.

# Intercom Connector

Connector-Status: Geplant Noch nicht gebaut. Tajo betreibt diesen Connector heute nicht.

| Quellfeld | Zielfeld | Beispielwert |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

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:

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

```bash
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.

```bash
# 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

```yaml
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

```yaml
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

| 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

```javascript
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

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

```javascript
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:

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

### Verbindung testen

```bash
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

- [Intercom Developer Documentation](https://developers.intercom.com/docs)
- [Intercom API Reference](https://developers.intercom.com/docs/references/introduction)
- [Zendesk Connector](https://tajo.io/de/docs/connectors/support/zendesk)
- [Customer-Sync-Skill](https://tajo.io/de/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/de/docs/contact-management)
