Connettore Intercom

Collega il tuo workspace Intercom a Brevo tramite Tajo per messaggistica cliente unificata, tracciamento delle conversazioni e marketing automation guidata dall’engagement, alimentata dai tuoi dati di supporto e di prodotto.

Panoramica

ProprietàValore
PiattaformaIntercom
CategoriaSupporto
Complessità di setupMedia
Integrazione ufficiale
Dati sincronizzatiContatti, Conversazioni, Aziende, Eventi
API Base URLhttps://api.intercom.io

Funzionalità

  • Sync dei contatti - Sync bidirezionale di utenti e lead Intercom con i contatti Brevo
  • Tracciamento conversazioni - Sincronizza i dati delle conversazioni per la segmentazione guidata dal supporto
  • Mappatura aziende - Associa i contatti alle aziende per workflow account-based
  • Attributi personalizzati - Mappa gli attributi personalizzati Intercom ai campi di contatto Brevo
  • Tracciamento eventi - Sincronizza eventi personalizzati e attività utente per il targeting comportamentale
  • Sync dei tag - Mappa i tag Intercom ad appartenenze a liste o attributi Brevo
  • Dati Messenger - Traccia l’engagement della messaggistica in-app e le interazioni chat
  • Integrazione AI agent - Sincronizza gli esiti delle conversazioni dell’AI agent con Brevo

Prerequisiti

Prima di iniziare, assicurati di avere:

  1. Un workspace Intercom (piano Starter, Pro o Premium)
  2. Un’app Intercom con access token (private app) o OAuth configurato (public app)
  3. Un account Brevo con accesso API
  4. Un account Tajo

Autenticazione

Access Token (Private App)

Per integrazioni private che accedono ai dati del tuo workspace.

  1. Vai in Developer Hub > Your Apps > Create new app
  2. Associa con il tuo workspace Intercom
  3. Copia l’access token
Terminal window
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)

Per integrazioni che accedono ai dati Intercom di altri clienti.

Terminal window
# 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}"

Versionamento API

Includi sempre l’header Intercom-Version nelle tue richieste. Tajo usa la versione API 2.11 di default. Controlla il changelog Intercom per le breaking change.

Configurazione

Setup di base

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

Mappatura dei campi

Mappa i dati di contatto Intercom agli attributi di contatto Brevo:

Mappature predefinite

Parameter Type Description
email required
string

Indirizzo email del contatto (identificatore univoco)

name optional
string

Nome completo, suddiviso in FIRSTNAME/LASTNAME

phone optional
string

Mappato all'attributo SMS per WhatsApp/SMS

role optional
string

Tipo di contatto: user o lead

company.name optional
string

Nome dell'azienda associata

signed_up_at optional
timestamp

Data di registrazione dell'utente

last_seen_at optional
timestamp

Timestamp dell'ultima attività

custom_attributes optional
object

Coppie chiave-valore degli attributi personalizzati

Mappatura attributi personalizzati

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

Endpoint API

API Contatti

MetodoEndpointDescrizione
GET/contactsElenca tutti i contatti
POST/contactsCrea un contatto
PUT/contacts/{id}Aggiorna un contatto
GET/contacts/{id}Recupera un contatto
POST/contacts/searchCerca contatti
DELETE/contacts/{id}Archivia un contatto

API Conversazioni

MetodoEndpointDescrizione
GET/conversationsElenca le conversazioni
GET/conversations/{id}Recupera una conversazione
POST/conversationsCrea una conversazione
POST/conversations/{id}/replyRispondi a una conversazione
POST/conversations/{id}/partsAggiungi parte di conversazione

API Aziende

MetodoEndpointDescrizione
GET/companiesElenca le aziende
POST/companiesCrea o aggiorna un’azienda
GET/companies/{id}Recupera un’azienda
GET/companies/{id}/contactsElenca i contatti dell’azienda

API Eventi

MetodoEndpointDescrizione
POST/eventsInvia un evento
GET/events?type=user&intercom_user_id={id}Elenca gli eventi utente

Eventi

Eventi conversazione

EventoTriggerCaso d’uso
conversation.createdNuova conversazione iniziataAvviso ticket di supporto
conversation.closedConversazione risoltaTrigger sondaggio CSAT
conversation.rating.addedRating inviatoTracciamento soddisfazione
conversation.snoozedConversazione in snoozePianificazione follow-up

Eventi contatto

EventoTriggerCaso d’uso
contact.createdNuovo contatto aggiuntoSequenza di benvenuto
contact.updatedDati contatto modificatiSync attributi
contact.deletedContatto archiviatoPulizia
contact.tag.createdTag aggiunto al contattoAggiornamento segmento

Eventi utente

EventoTriggerCaso d’uso
user.createdNuovo utente registratoFlusso di onboarding
user.email.updatedEmail modificataMerge contatto
user.unsubscribedDisiscritto dalle emailAggiornamento preferenze

Esempi di codice

Inizializza il connettore

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'
});

Sincronizza contatti e conversazioni

// 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
// }

Gestisci i webhook 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');
});

Limiti di velocità

Intercom applica limiti di velocità in base al tuo piano:

PianoLimiteDettagli
Starter20 richieste/10 secondiPer app
Pro50 richieste/10 secondiPer app
Premium100 richieste/10 secondiPer app
Endpoint search1 richiesta/secondoPer app
Endpoint scroll1 richiesta/minutoPer app

Limiti aggiuntivi:

  • Operazioni bulk: 15 contatti per richiesta bulk
  • Invio eventi: 500 eventi/secondo per workspace
  • Consegna webhook: Retry automatico per 24 ore
  • Esportazione dati: 1 esportazione concorrente

Risposta limite di velocità

Intercom restituisce 429 Too Many Requests con un header Retry-After. Implementa il backoff esponenziale e rispetta la finestra di retry.

Risoluzione dei problemi

Problemi comuni

ProblemaCausaSoluzione
401 UnauthorizedToken non valido o scadutoRigenera l’access token nel Developer Hub
Contatto non sincronizzatoCampo email mancanteI lead Intercom potrebbero non avere email; filtra per ruolo
Dati conversazione vuotiL’app non ha lo scope per le conversazioniRiautorizza con i permessi di lettura conversazioni
Webhook non ricevutoWebhook non registratoConfigura i webhook nelle impostazioni del Developer Hub
Mismatch versione APIBreaking change in nuova versioneFissa la versione API con l’header Intercom-Version

Modalità debug

Abilita il logging dettagliato:

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

Testa la connessione

Terminal window
tajo connectors test intercom
# ✓ API connection successful
# ✓ Contacts readable
# ✓ Conversations readable
# ✓ Companies readable
# ✓ Webhooks registered

Best practice

  1. Fissa la versione API - Specifica sempre Intercom-Version per evitare breaking change
  2. Usa la search API in modo efficiente - Usa filtri e paginazione per ridurre il trasferimento dati
  3. Sincronizza sia utenti che lead - Cattura l’intero funnel in Brevo
  4. Mappa i tag delle conversazioni - Usa i tag delle conversazioni per segmenti marketing post-supporto
  5. Traccia eventi personalizzati - Invia eventi prodotto chiave a Intercom per il targeting comportamentale
  6. Gestisci il merge dei contatti - Implementa logica di merge per contatti duplicati

Sicurezza

  • Access Token - Autenticazione bearer token per private app
  • OAuth 2.0 - Autorizzazione delegata per public app con client secret
  • Verifica webhook - Convalida firma HMAC SHA-1 tramite X-Hub-Signature
  • Cifratura TLS - Tutte le comunicazioni API cifrate via HTTPS
  • Controlli accesso ai dati - Accesso ai dati granulare per configurazione app

Risorse correlate

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
Assistente AI

Ciao! Chiedimi qualsiasi cosa sulla documentazione.