Connecteur Intercom

Connectez votre espace de travail Intercom à Brevo via Tajo pour une messagerie client unifiée, un suivi des conversations, et une automatisation marketing guidée par l’engagement alimentée par vos données de support et produit.

Vue d’ensemble

PropriétéValeur
PlateformeIntercom
CatégorieSupport
Complexité de configurationMoyenne
Intégration officielleOui
Données synchroniséesContacts, Conversations, Entreprises, Événements
URL de base APIhttps://api.intercom.io

Fonctionnalités

  • Synchronisation des contacts - Synchronisation bidirectionnelle des utilisateurs et leads Intercom avec les contacts Brevo
  • Suivi des conversations - Synchronisation des données de conversation pour la segmentation guidée par le support
  • Mappage d’entreprises - Association des contacts aux entreprises pour les workflows basés sur les comptes
  • Attributs personnalisés - Mappage des attributs personnalisés Intercom aux champs de contact Brevo
  • Suivi d’événements - Synchronisation des événements personnalisés et activités utilisateur pour le ciblage comportemental
  • Synchronisation des tags - Mappage des tags Intercom vers l’appartenance à des listes ou attributs Brevo
  • Données Messenger - Suivi de l’engagement de messagerie in-app et des interactions de chat
  • Intégration agent IA - Synchronisation des résultats de conversations d’agents IA avec Brevo

Prérequis

Avant de commencer, assurez-vous d’avoir :

  1. Un espace de travail Intercom (plan Starter, Pro ou Premium)
  2. Une application Intercom avec jeton d’accès (application privée) ou OAuth configuré (application publique)
  3. Un compte Brevo avec accès API
  4. Un compte Tajo

Authentification

Jeton d’accès (Application privée)

Pour les intégrations privées qui accèdent aux données de votre propre espace de travail.

  1. Allez dans Developer Hub > Your Apps > Create new app
  2. Associez à votre espace de travail Intercom
  3. Copiez le jeton d’accès
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 (Application publique)

Pour les intégrations qui accèdent aux données Intercom d’autres clients.

Terminal window
# URL d'autorisation
https://app.intercom.com/oauth?client_id={client_id}&state={state}
# Échange de jeton
curl -X POST https://api.intercom.io/auth/eagle/token \
-d "client_id={client_id}" \
-d "client_secret={client_secret}" \
-d "code={auth_code}"

Versioning de l'API

Incluez toujours l’en-tête Intercom-Version dans vos requêtes. Tajo utilise la version API 2.11 par défaut. Consultez le changelog Intercom pour les changements majeurs.

Configuration

Configuration de base

connectors:
intercom:
enabled: true
access_token: "${INTERCOM_ACCESS_TOKEN}"
api_version: "2.11"
# Options de synchronisation des données
sync:
contacts: true
conversations: true
companies: true
events: true
tags: true
# Direction de synchronisation
direction: intercom_to_brevo
# Assignation de listes Brevo
lists:
all_users: 35
active_conversations: 36
leads: 37

Mappage de champs

Mappez les données de contact Intercom aux attributs de contact Brevo :

Mappages par défaut

Parameter Type Description
email required
string

Adresse email du contact (identifiant unique)

name optional
string

Nom complet, divisé en FIRSTNAME/LASTNAME

phone optional
string

Mappé vers l'attribut SMS pour WhatsApp/SMS

role optional
string

Type de contact : user ou lead

company.name optional
string

Nom de l'entreprise associée

signed_up_at optional
timestamp

Date d'inscription de l'utilisateur

last_seen_at optional
timestamp

Timestamp de dernière activité

custom_attributes optional
object

Paires clé-valeur des attributs personnalisés

Mappage d’attributs personnalisés

field_mapping:
# Champs standards
email: email
name: FULLNAME
phone: SMS
# Champs d'engagement
signed_up_at: SIGNUP_DATE
last_seen_at: LAST_ACTIVE
session_count: SESSION_COUNT
unsubscribed_from_emails: UNSUBSCRIBED
# Champs d'entreprise
company.name: COMPANY_NAME
company.plan: COMPANY_PLAN
company.size: COMPANY_SIZE
# Attributs personnalisés
custom_attributes.plan_tier: PLAN_TIER
custom_attributes.feature_usage: FEATURE_USAGE

Endpoints API

API Contacts

MéthodeEndpointDescription
GET/contactsLister tous les contacts
POST/contactsCréer un contact
PUT/contacts/{id}Mettre à jour un contact
GET/contacts/{id}Récupérer un contact
POST/contacts/searchRechercher des contacts
DELETE/contacts/{id}Archiver un contact

API Conversations

MéthodeEndpointDescription
GET/conversationsLister les conversations
GET/conversations/{id}Récupérer une conversation
POST/conversationsCréer une conversation
POST/conversations/{id}/replyRépondre à une conversation
POST/conversations/{id}/partsAjouter une partie de conversation

API Companies

MéthodeEndpointDescription
GET/companiesLister les entreprises
POST/companiesCréer ou mettre à jour une entreprise
GET/companies/{id}Récupérer une entreprise
GET/companies/{id}/contactsLister les contacts d’une entreprise

API Events

MéthodeEndpointDescription
POST/eventsSoumettre un événement
GET/events?type=user&intercom_user_id={id}Lister les événements d’un utilisateur

Événements

Événements de conversation

ÉvénementDéclencheurCas d’usage
conversation.createdNouvelle conversation démarréeAlerte de ticket de support
conversation.closedConversation résolueDéclencheur d’enquête CSAT
conversation.rating.addedÉvaluation soumiseSuivi de satisfaction
conversation.snoozedConversation mise en attentePlanification de suivi

Événements de contact

ÉvénementDéclencheurCas d’usage
contact.createdNouveau contact ajoutéSéquence de bienvenue
contact.updatedDonnées de contact modifiéesSynchronisation d’attributs
contact.deletedContact archivéNettoyage
contact.tag.createdTag ajouté au contactMise à jour de segment

Événements utilisateur

ÉvénementDéclencheurCas d’usage
user.createdNouvel utilisateur inscritFlow d’onboarding
user.email.updatedEmail modifiéFusion de contacts
user.unsubscribedDésinscrit des emailsMise à jour de préférences

Exemples de code

Initialiser le connecteur

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connecter Intercom
await tajo.connectors.connect('intercom', {
accessToken: process.env.INTERCOM_ACCESS_TOKEN,
apiVersion: '2.11'
});

Synchroniser contacts et conversations

// Synchronisation complète des contacts et données de conversation
await tajo.connectors.sync('intercom', {
type: 'full',
resources: ['contacts', 'conversations', 'companies'],
since: '2023-01-01'
});
// Vérifier le statut de synchronisation
const status = await tajo.connectors.status('intercom');
console.log(status);
// {
// connected: true,
// lastSync: '2024-01-15T10:30:00Z',
// contactsSynced: 14200,
// conversationsSynced: 28400,
// companiesSynced: 2100
// }

Gérer les webhooks 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');
});

Limites de taux

Intercom applique des limites de taux selon votre plan :

PlanLimite de tauxDétails
Starter20 requêtes/10 secondesPar application
Pro50 requêtes/10 secondesPar application
Premium100 requêtes/10 secondesPar application
Endpoint Search1 requête/secondePar application
Endpoint Scroll1 requête/minutePar application

Limites supplémentaires :

  • Opérations bulk : 15 contacts par requête bulk
  • Soumissions d’événements : 500 événements/seconde par espace de travail
  • Livraison de webhooks : Retry automatique pendant 24 heures
  • Export de données : 1 export concurrent

Réponse de limite de taux

Intercom retourne 429 Too Many Requests avec un en-tête Retry-After. Implémentez un backoff exponentiel et respectez la fenêtre de retry.

Dépannage

Problèmes courants

ProblèmeCauseSolution
401 UnauthorizedJeton invalide ou expiréRégénérez le jeton d’accès dans Developer Hub
Contact non synchroniséChamp email manquantLes leads Intercom peuvent ne pas avoir d’email ; filtrez par role
Données de conversation videsL’app manque de scope conversationRéautorisez avec les permissions de lecture de conversation
Webhook non reçuWebhook non enregistréConfigurez les webhooks dans les paramètres Developer Hub
Incompatibilité de version APIChangements majeurs dans la nouvelle versionÉpinglez la version API avec l’en-tête Intercom-Version

Mode debug

Activer la journalisation détaillée :

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

Tester la connexion

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

Bonnes pratiques

  1. Épinglez la version API - Spécifiez toujours Intercom-Version pour éviter les changements majeurs
  2. Utilisez l’API Search efficacement - Utilisez des filtres et la pagination pour réduire le transfert de données
  3. Synchronisez utilisateurs et leads - Capturez tout le funnel dans Brevo
  4. Mappez les tags de conversation - Utilisez les tags de conversation pour les segments marketing post-support
  5. Suivez les événements personnalisés - Soumettez les événements produit clés à Intercom pour le ciblage comportemental
  6. Gérez les fusions de contacts - Implémentez la logique de fusion pour les contacts dupliqués

Sécurité

  • Jeton d’accès - Authentification par bearer token pour les applications privées
  • OAuth 2.0 - Autorisation déléguée pour les applications publiques avec client secret
  • Vérification des webhooks - Validation de signature HMAC SHA-1 via X-Hub-Signature
  • Chiffrement TLS - Toutes les communications API chiffrées via HTTPS
  • Contrôles d’accès aux données - Accès granulaire aux données par configuration d’application

Ressources liées

Subscribe to updates

developer-docs

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

auto-detect
Assistant AI

Bonjour ! Posez-moi vos questions sur la documentation.