Intercom-koppling
Anslut din Intercom-arbetsyta till Brevo via Tajo för enhetlig kundkommunikation, konversationsspårning och engagemangsdriven marknadsautomation som drivs av dina support- och produktdata.
Översikt
| Egenskap | Värde |
|---|---|
| Plattform | Intercom |
| Kategori | Support |
| Installationskomplexitet | Medel |
| Officiell integration | Ja |
| Data som synkas | Kontakter, konversationer, företag, händelser |
| API bas-URL | https://api.intercom.io |
Funktioner
- Kontaktsynkronisering - Dubbelriktad synk av Intercom-användare och leads med Brevo-kontakter
- Konversationsspårning - Synka konversationsdata för supportdriven segmentering
- Företagsmappning - Associera kontakter med företag för kontobaserade arbetsflöden
- Anpassade attribut - Mappa Intercom anpassade attribut till Brevo-kontaktfält
- Händelsespårning - Synka anpassade händelser och användaraktiviteter för beteendebaserad målning
- Taggsynkronisering - Mappa Intercom-taggar till Brevo-listmedlemskap eller attribut
- Messenger-data - Spåra in-app-meddelandeengagemang och chattinteraktioner
- AI-agentintegration - Synka resultat av AI-agentkonversationer med Brevo
Förutsättningar
Innan du börjar, se till att du har:
- En Intercom-arbetsyta (Starter-, Pro- eller Premium-plan)
- En Intercom-app med åtkomsttoken (privat app) eller OAuth konfigurerad (publik app)
- Ett Brevo-konto med API-åtkomst
- Ett Tajo-konto
Autentisering
Åtkomsttoken (privat app)
För privata integrationer som har åtkomst till data i din egen arbetsyta.
- Gå till Developer Hub > Your Apps > Create new app
- Associera med din Intercom-arbetsyta
- Kopiera åtkomsttoken
curl https://api.intercom.io/contacts \ -H "Authorization: Bearer {access_token}" \ -H "Content-Type: application/json" \ -H "Intercom-Version: 2.11"OAuth 2.0 (publik app)
För integrationer som har åtkomst till andra 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
Inkludera alltid Intercom-Version-headern i dina förfrågningar. Tajo använder API-version 2.11 som standard. Kontrollera Intercoms changelog för brytande ändringar.
Konfiguration
Grundinställning
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: 37Fältmappning
Mappa Intercom-kontaktdata till Brevo-kontaktattribut:
Standardmappningar
| Parameter | Type | Description |
|---|---|---|
email required | string | Kontaktens e-postadress (unik identifierare) |
name optional | string | Fullständigt namn, uppdelat i FIRSTNAME/LASTNAME |
phone optional | string | Mappas till SMS-attributet för WhatsApp/SMS |
role optional | string | Kontakttyp: user eller lead |
company.name optional | string | Tillhörande företagsnamn |
signed_up_at optional | timestamp | Datum för användarregistrering |
last_seen_at optional | timestamp | Tidsstämpel för senaste aktivitet |
custom_attributes optional | object | Nyckel-värde-par för anpassade attribut |
Mappning av anpassade attribut
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
| Metod | Endpoint | Beskrivning |
|---|---|---|
GET | /contacts | Lista alla kontakter |
POST | /contacts | Skapa en kontakt |
PUT | /contacts/{id} | Uppdatera en kontakt |
GET | /contacts/{id} | Hämta en kontakt |
POST | /contacts/search | Sök kontakter |
DELETE | /contacts/{id} | Arkivera en kontakt |
Conversations API
| Metod | Endpoint | Beskrivning |
|---|---|---|
GET | /conversations | Lista konversationer |
GET | /conversations/{id} | Hämta en konversation |
POST | /conversations | Skapa en konversation |
POST | /conversations/{id}/reply | Svara på en konversation |
POST | /conversations/{id}/parts | Lägg till konversationsdel |
Companies API
| Metod | Endpoint | Beskrivning |
|---|---|---|
GET | /companies | Lista företag |
POST | /companies | Skapa eller uppdatera ett företag |
GET | /companies/{id} | Hämta ett företag |
GET | /companies/{id}/contacts | Lista företagskontakter |
Events API
| Metod | Endpoint | Beskrivning |
|---|---|---|
POST | /events | Skicka in en händelse |
GET | /events?type=user&intercom_user_id={id} | Lista användarhändelser |
Händelser
Konversationshändelser
| Händelse | Utlösare | Användningsfall |
|---|---|---|
conversation.created | Ny konversation startad | Varning för supportärende |
conversation.closed | Konversation löst | CSAT-enkätutlösare |
conversation.rating.added | Betyg inskickat | Nöjdhetsspårning |
conversation.snoozed | Konversation snoozad | Schemaläggning av uppföljning |
Kontakthändelser
| Händelse | Utlösare | Användningsfall |
|---|---|---|
contact.created | Ny kontakt tillagd | Välkomstsekvens |
contact.updated | Kontaktdata ändrad | Attributsynk |
contact.deleted | Kontakt arkiverad | Rensning |
contact.tag.created | Tagg tillagd till kontakt | Segmentuppdatering |
Användarhändelser
| Händelse | Utlösare | Användningsfall |
|---|---|---|
user.created | Ny användare registrerade sig | Onboardingflöde |
user.email.updated | E-post ändrad | Kontaktsammanslagning |
user.unsubscribed | Avprenumererade från e-post | Preferensuppdatering |
Kodexempel
Initiera kopplingen
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'});Synka kontakter och konversationer
// 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// }Hantera 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');});Hastighetsbegränsningar
Intercom tillämpar hastighetsbegränsningar baserat på din plan:
| Plan | Hastighetsbegränsning | Detaljer |
|---|---|---|
| Starter | 20 förfrågningar/10 sekunder | Per app |
| Pro | 50 förfrågningar/10 sekunder | Per app |
| Premium | 100 förfrågningar/10 sekunder | Per app |
| Search-endpoint | 1 förfrågan/sekund | Per app |
| Scroll-endpoint | 1 förfrågan/minut | Per app |
Ytterligare gränser:
- Bulk-operationer: 15 kontakter per bulk-förfrågan
- Händelseinlämningar: 500 händelser/sekund per arbetsyta
- Webhook-leverans: Automatiskt återförsök i 24 timmar
- Dataexport: 1 samtidig export
Svar för hastighetsbegränsning
Intercom returnerar 429 Too Many Requests med en Retry-After-header. Implementera exponentiell backoff och respektera återförsöksfönstret.
Felsökning
Vanliga problem
| Problem | Orsak | Lösning |
|---|---|---|
| 401 Unauthorized | Ogiltig eller utgången token | Återgenerera åtkomsttoken i Developer Hub |
| Kontakt ej synkad | Saknat e-postfält | Intercom-leads kan sakna e-post; filtrera per roll |
| Konversationsdata tom | App saknar conversation-scope | Återauktorisera med läsbehörigheter för konversationer |
| Webhook ej mottagen | Webhook ej registrerad | Konfigurera webhooks i Developer Hub-inställningar |
| API-versions-mismatch | Brytande ändringar i ny version | Pinna API-version med Intercom-Version-header |
Felsökningsläge
Aktivera utförlig loggning:
connectors: intercom: debug: true log_level: verbose log_webhooks: trueTesta anslutning
tajo connectors test intercom# ✓ API connection successful# ✓ Contacts readable# ✓ Conversations readable# ✓ Companies readable# ✓ Webhooks registeredBästa praxis
- Pinna API-version - Specificera alltid
Intercom-Versionför att undvika brytande ändringar - Använd search API effektivt - Använd filter och sidindelning för att minska dataöverföring
- Synka både användare och leads - Fånga hela tratten i Brevo
- Mappa konversationstaggar - Använd konversationstaggar för marknadsföringssegment efter support
- Spåra anpassade händelser - Skicka in viktiga produkthändelser till Intercom för beteendebaserad målning
- Hantera kontaktsammanslagningar - Implementera sammanslagningslogik för dubblettkontakter
Säkerhet
- Åtkomsttoken - Bearer-tokenautentisering för privata appar
- OAuth 2.0 - Delegerad auktorisering för publika appar med client secret
- Webhook-verifiering - HMAC SHA-1-signaturvalidering via
X-Hub-Signature - TLS-kryptering - All API-kommunikation krypterad via HTTPS
- Dataåtkomstkontroller - Granulär dataåtkomst per appkonfiguration