Conector Intercom
Conectați spațiul de lucru Intercom la Brevo prin Tajo pentru mesagerie unificată a clienților, urmărirea conversațiilor și automatizare de marketing bazată pe implicare, alimentată de datele de suport și produs.
Prezentare generală
| Proprietate | Valoare |
|---|---|
| Platformă | Intercom |
| Categorie | Suport |
| Complexitate configurare | Medie |
| Integrare oficială | Da |
| Date sincronizate | Contacte, Conversații, Companii, Evenimente |
| URL de bază API | https://api.intercom.io |
Funcționalități
- Sincronizare contacte - Sincronizare bidirecțională a utilizatorilor și lead-urilor Intercom cu contactele Brevo
- Urmărire conversații - Sincronizați datele conversațiilor pentru segmentarea bazată pe suport
- Mapare companii - Asociați contactele cu companiile pentru fluxuri de lucru bazate pe cont
- Atribute personalizate - Mapați atributele personalizate Intercom la câmpurile de contact Brevo
- Urmărire evenimente - Sincronizați evenimentele personalizate și activitățile utilizatorilor pentru targetare comportamentală
- Sincronizare etichete - Mapați etichetele Intercom la apartenența la liste sau atribute Brevo
- Date Messenger - Urmăriți implicarea în mesageria în-app și interacțiunile de chat
- Integrare agent AI - Sincronizați rezultatele conversațiilor agentului AI cu Brevo
Cerințe preliminare
Înainte de a începe, asigurați-vă că aveți:
- Un spațiu de lucru Intercom (plan Starter, Pro sau Premium)
- O aplicație Intercom cu token de acces (aplicație privată) sau OAuth configurat (aplicație publică)
- Un cont Brevo cu acces API
- Un cont Tajo
Autentificare
Token de acces (Aplicație privată)
Pentru integrări private care accesează datele propriului spațiu de lucru.
- Mergeți la Developer Hub > Your Apps > Create new app
- Asociați cu spațiul de lucru Intercom
- Copiați token-ul de acces
curl https://api.intercom.io/contacts \ -H "Authorization: Bearer {access_token}" \ -H "Content-Type: application/json" \ -H "Intercom-Version: 2.11"OAuth 2.0 (Aplicație publică)
Pentru integrări care accesează datele Intercom ale altor clienți.
# 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}"Versionare API
Includeți întotdeauna antetul Intercom-Version în cererile dvs. Tajo utilizează versiunea API 2.11 implicit. Verificați jurnalul de modificări Intercom pentru schimbări de rupere.
Configurare
Configurare de bază
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: 37Mapare câmpuri
Mapați datele de contact Intercom la atributele de contact Brevo:
Mapări implicite
| Parameter | Type | Description |
|---|---|---|
email required | string | Adresa de e-mail a contactului (identificator unic) |
name optional | string | Nume complet, împărțit în FIRSTNAME/LASTNAME |
phone optional | string | Mapează la atributul SMS pentru WhatsApp/SMS |
role optional | string | Tipul contactului: utilizator sau lead |
company.name optional | string | Numele companiei asociate |
signed_up_at optional | timestamp | Data înregistrării utilizatorului |
last_seen_at optional | timestamp | Ultima marcă temporală de activitate |
custom_attributes optional | object | Perechi cheie-valoare ale atributelor personalizate |
Mapare atribute personalizate
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_USAGEPuncte finale API
API Contacte
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /contacts | Listează toate contactele |
POST | /contacts | Creează un contact |
PUT | /contacts/{id} | Actualizează un contact |
GET | /contacts/{id} | Recuperează un contact |
POST | /contacts/search | Caută contacte |
DELETE | /contacts/{id} | Arhivează un contact |
API Conversații
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /conversations | Listează conversațiile |
GET | /conversations/{id} | Recuperează o conversație |
POST | /conversations | Creează o conversație |
POST | /conversations/{id}/reply | Răspunde la o conversație |
POST | /conversations/{id}/parts | Adaugă o parte de conversație |
API Companii
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /companies | Listează companiile |
POST | /companies | Creează sau actualizează o companie |
GET | /companies/{id} | Recuperează o companie |
GET | /companies/{id}/contacts | Listează contactele companiei |
API Evenimente
| Metodă | Punct final | Descriere |
|---|---|---|
POST | /events | Trimite un eveniment |
GET | /events?type=user&intercom_user_id={id} | Listează evenimentele utilizatorului |
Evenimente
Evenimente conversații
| Eveniment | Declanșator | Caz de utilizare |
|---|---|---|
conversation.created | Conversație nouă începută | Alertă tichet suport |
conversation.closed | Conversație rezolvată | Declanșator sondaj CSAT |
conversation.rating.added | Rating trimis | Urmărire satisfacție |
conversation.snoozed | Conversație amânată | Programare follow-up |
Evenimente contacte
| Eveniment | Declanșator | Caz de utilizare |
|---|---|---|
contact.created | Contact nou adăugat | Secvență de bun venit |
contact.updated | Date contact modificate | Sincronizare atribute |
contact.deleted | Contact arhivat | Curățare |
contact.tag.created | Etichetă adăugată la contact | Actualizare segment |
Evenimente utilizatori
| Eveniment | Declanșator | Caz de utilizare |
|---|---|---|
user.created | Utilizator nou înregistrat | Flux de onboarding |
user.email.updated | E-mail modificat | Combinare contact |
user.unsubscribed | Dezabonat de la e-mailuri | Actualizare preferințe |
Exemple de cod
Inițializare conector
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'});Sincronizare contacte și conversații
// 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// }Gestionare webhook-uri Intercom
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');});Limite de rată
Intercom aplică limite de rată în funcție de planul dvs.:
| Plan | Limită de rată | Detalii |
|---|---|---|
| Starter | 20 cereri/10 secunde | Per aplicație |
| Pro | 50 cereri/10 secunde | Per aplicație |
| Premium | 100 cereri/10 secunde | Per aplicație |
| Punct final căutare | 1 cerere/secundă | Per aplicație |
| Punct final scroll | 1 cerere/minut | Per aplicație |
Limite suplimentare:
- Operații bulk: 15 contacte per cerere bulk
- Trimiteri evenimente: 500 evenimente/secundă per spațiu de lucru
- Livrare webhook: Reîncercare automată timp de 24 de ore
- Export date: 1 export concurent
Răspuns limită de rată
Intercom returnează 429 Too Many Requests cu un antet Retry-After. Implementați backoff exponențial și respectați fereastra de reîncercare.
Depanare
Probleme frecvente
| Problemă | Cauză | Soluție |
|---|---|---|
| 401 Neautorizat | Token invalid sau expirat | Regenerați token-ul de acces în Developer Hub |
| Contact nesincronizat | Câmp e-mail lipsă | Lead-urile Intercom pot lipsi e-mailul; filtrați după rol |
| Date conversație goale | Aplicației îi lipsesc scope-urile de conversație | Re-autorizați cu permisiunile de citire conversații |
| Webhook neprimit | Webhook neînregistrat | Configurați webhook-urile în setările Developer Hub |
| Nepotrivire versiune API | Schimbări de rupere în versiunea nouă | Fixați versiunea API cu antetul Intercom-Version |
Modul de depanare
Activați jurnalizarea verbosă:
connectors: intercom: debug: true log_level: verbose log_webhooks: trueTestare conexiune
tajo connectors test intercom# ✓ API connection successful# ✓ Contacts readable# ✓ Conversations readable# ✓ Companies readable# ✓ Webhooks registeredBune practici
- Fixați versiunea API - Specificați întotdeauna
Intercom-Versionpentru a evita schimbările de rupere - Utilizați Search API eficient - Utilizați filtre și paginare pentru a reduce transferul de date
- Sincronizați atât utilizatorii cât și lead-urile - Capturați întreaga pâlnie în Brevo
- Mapați etichetele de conversații - Utilizați etichetele de conversații pentru segmentele de marketing post-suport
- Urmăriți evenimentele personalizate - Trimiteți evenimentele cheie de produs la Intercom pentru targetare comportamentală
- Gestionați combinările de contacte - Implementați logică de combinare pentru contactele duplicate
Securitate
- Token de acces - Autentificare cu token bearer pentru aplicațiile private
- OAuth 2.0 - Autorizare delegată pentru aplicațiile publice cu secret client
- Verificare webhook - Validare semnătură HMAC SHA-1 prin
X-Hub-Signature - Criptare TLS - Toate comunicațiile API criptate prin HTTPS
- Controale acces date - Acces granular la date per configurație aplicație