Intercom Connector
Forbind dit Intercom-workspace til Brevo via Tajo for forenet kundekommunikation, samtalesporing og engagementdrevet marketingautomatisering drevet af dine support- og produktdata.
Oversigt
| Egenskab | Værdi |
|---|---|
| Platform | Intercom |
| Kategori | Support |
| Opsætningskompleksitet | Mellem |
| Officiel integration | Ja |
| Synkroniserede data | Kontakter, samtaler, virksomheder, hændelser |
| API-base-URL | https://api.intercom.io |
Funktioner
- Kontaktsynkronisering - Tovejssynkronisering af Intercom-brugere og -leads med Brevo-kontakter
- Samtalesporing - Synkronisér samtaledata til supportdrevet segmentering
- Virksomhedsmapping - Knyt kontakter til virksomheder til account-based workflows
- Brugerdefinerede attributter - Knyt Intercom-brugerdefinerede attributter til Brevo-kontaktfelter
- Hændelsessporing - Synkronisér brugerdefinerede hændelser og brugeraktiviteter til adfærdsmålretning
- Tag-synkronisering - Knyt Intercom-tags til Brevo-listemedlemskab eller attributter
- Messenger-data - Spor in-app-beskedengagement og chatinteraktioner
- AI-agent-integration - Synkronisér resultater fra AI-agentsamtaler med Brevo
Forudsætninger
Før du begynder, skal du sikre dig, at du har:
- Et Intercom-workspace (Starter-, Pro- eller Premium-plan)
- En Intercom-app med adgangstoken (privat app) eller OAuth konfigureret (offentlig app)
- En Brevo-konto med API-adgang
- En Tajo-konto
Autentifikation
Adgangstoken (privat app)
Til private integrationer, der tilgår dit eget workspaces data.
- Gå til Developer Hub > Your Apps > Create new app
- Knyt til dit Intercom-workspace
- Kopiér adgangstokenet
curl https://api.intercom.io/contacts \ -H "Authorization: Bearer {access_token}" \ -H "Content-Type: application/json" \ -H "Intercom-Version: 2.11"OAuth 2.0 (offentlig app)
Til integrationer, der tilgår andre kunders Intercom-data.
# 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
Inkludér altid Intercom-Version-headeren i dine forespørgsler. Tajo bruger som standard API-version 2.11. Tjek Intercoms changelog for breaking changes.
Konfiguration
Grundlæggende opsætning
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: 37Feltmapping
Knyt Intercom-kontaktdata til Brevo-kontaktattributter:
Standardmappings
| Parameter | Type | Description |
|---|---|---|
email required | string | Kontaktens e-mailadresse (unik identifikator) |
name optional | string | Fulde navn, opdelt i FIRSTNAME/LASTNAME |
phone optional | string | Mapper til SMS-attribut for WhatsApp/SMS |
role optional | string | Kontakttype: user eller lead |
company.name optional | string | Tilknyttet virksomhedsnavn |
signed_up_at optional | timestamp | Brugerens tilmeldingsdato |
last_seen_at optional | timestamp | Tidsstempel for seneste aktivitet |
custom_attributes optional | object | Nøgleværdipar for brugerdefinerede attributter |
Brugerdefineret attributmapping
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
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /contacts | Vis alle kontakter |
POST | /contacts | Opret en kontakt |
PUT | /contacts/{id} | Opdatér en kontakt |
GET | /contacts/{id} | Hent en kontakt |
POST | /contacts/search | Søg kontakter |
DELETE | /contacts/{id} | Arkivér en kontakt |
Conversations API
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /conversations | Vis samtaler |
GET | /conversations/{id} | Hent en samtale |
POST | /conversations | Opret en samtale |
POST | /conversations/{id}/reply | Svar på en samtale |
POST | /conversations/{id}/parts | Tilføj samtaledel |
Companies API
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /companies | Vis virksomheder |
POST | /companies | Opret eller opdatér en virksomhed |
GET | /companies/{id} | Hent en virksomhed |
GET | /companies/{id}/contacts | Vis virksomhedens kontakter |
Events API
| Metode | Endpoint | Beskrivelse |
|---|---|---|
POST | /events | Indsend en hændelse |
GET | /events?type=user&intercom_user_id={id} | Vis brugerhændelser |
Hændelser
Samtalehændelser
| Hændelse | Trigger | Anvendelse |
|---|---|---|
conversation.created | Ny samtale startet | Supportsagsadvarsel |
conversation.closed | Samtale løst | CSAT-undersøgelsestrigger |
conversation.rating.added | Rating indsendt | Tilfredshedssporing |
conversation.snoozed | Samtale snoozet | Opfølgningsplanlægning |
Kontakthændelser
| Hændelse | Trigger | Anvendelse |
|---|---|---|
contact.created | Ny kontakt tilføjet | Velkomstsekvens |
contact.updated | Kontaktdata ændret | Attributsynkronisering |
contact.deleted | Kontakt arkiveret | Oprydning |
contact.tag.created | Tag tilføjet kontakt | Segmentopdatering |
Brugerhændelser
| Hændelse | Trigger | Anvendelse |
|---|---|---|
user.created | Ny bruger tilmeldt | Onboarding-flow |
user.email.updated | E-mail ændret | Kontaktflet |
user.unsubscribed | Afmeldt e-mails | Præferenceopdatering |
Kodeeksempler
Initialisér konnektor
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'});Synkronisér kontakter og samtaler
// 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// }Håndtér Intercom-webhooks
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');});Ratebegrænsninger
Intercom anvender ratebegrænsninger baseret på din plan:
| Plan | Ratebegrænsning | Detaljer |
|---|---|---|
| Starter | 20 forespørgsler/10 sekunder | Per app |
| Pro | 50 forespørgsler/10 sekunder | Per app |
| Premium | 100 forespørgsler/10 sekunder | Per app |
| Search-endpoint | 1 forespørgsel/sekund | Per app |
| Scroll-endpoint | 1 forespørgsel/minut | Per app |
Yderligere grænser:
- Bulk-operationer: 15 kontakter per bulk-forespørgsel
- Hændelsesindsendelser: 500 hændelser/sekund per workspace
- Webhook-levering: Automatisk retry i 24 timer
- Dataeksport: 1 samtidig eksport
Svar ved ratebegrænsning
Intercom returnerer 429 Too Many Requests med en Retry-After-header. Implementér eksponentiel backoff, og respektér retry-vinduet.
Fejlfinding
Almindelige problemer
| Problem | Årsag | Løsning |
|---|---|---|
| 401 Unauthorized | Ugyldigt eller udløbet token | Regenerér adgangstoken i Developer Hub |
| Kontakt ikke synkroniseret | Manglende e-mailfelt | Intercom-leads kan mangle e-mail; filtrér efter rolle |
| Samtaledata tomme | App mangler conversation scope | Re-autorisér med conversation read-rettigheder |
| Webhook ikke modtaget | Webhook ikke registreret | Konfigurér webhooks i Developer Hub-indstillinger |
| API-version matcher ikke | Breaking changes i ny version | Fastlås API-version med Intercom-Version-header |
Fejlfindingstilstand
Aktivér udførlig logning:
connectors: intercom: debug: true log_level: verbose log_webhooks: trueTest forbindelse
tajo connectors test intercom# ✓ API connection successful# ✓ Contacts readable# ✓ Conversations readable# ✓ Companies readable# ✓ Webhooks registeredBest practices
- Fastlås API-version - Angiv altid
Intercom-Versionfor at undgå breaking changes - Brug search-API effektivt - Brug filtre og paginering for at reducere dataoverførsel
- Synkronisér både brugere og leads - Fang hele funnel’en i Brevo
- Map samtaletags - Brug samtaletags til marketingsegmenter efter support
- Spor brugerdefinerede hændelser - Indsend centrale produkthændelser til Intercom til adfærdsmålretning
- Håndtér kontaktfletninger - Implementér flet-logik for duplikerede kontakter
Sikkerhed
- Adgangstoken - Bearer-token-autentifikation til private apps
- OAuth 2.0 - Delegeret autorisation til offentlige apps med client secret
- Webhook-verifikation - HMAC SHA-1-signaturvalidering via
X-Hub-Signature - TLS-kryptering - Al API-kommunikation krypteret via HTTPS
- Dataadgangskontroller - Granulær dataadgang per app-konfiguration