CIIFragments Studio est agréée CII : récupérez jusqu'à 20 % de vos dépenses en développement logicielEn savoir plus

Intégration API Intercom

Nous développons votre connecteur Intercom

Nous branchons Intercom à votre produit : le contact se crée à l'inscription, le chat s'ouvre avec le contexte du compte, le ticket porte le dossier métier.

  • Équipe produit senior
  • connecteurs de support en production
  • du cadrage au monitoring
En bref

À quoi sert l'intégration Intercom et que devient la relation client une fois connectée ?

Intercom est une plateforme de relation client qui combine messagerie in-app, chat, email et support agent. L'intégrer à votre application permet d'ouvrir une conversation ou un ticket directement depuis votre produit avec le contexte du compte, d'enrichir la fiche Intercom avec les données métier de l'utilisateur, et de déclencher un message automatique quand un événement clé se produit dans votre produit. L'agent support voit l'usage réel du client sans chercher dans un autre outil, et le client reçoit un message au bon moment sans que l'équipe décide manuellement de l'envoyer.

Cas d'usage

Ce que nos clients branchent sur Intercom

01

Contact à l'inscription, Messenger ouvert

À l'inscription ou au changement de plan, la fiche Intercom suit. Le chat in-app parle du même humain que votre application.

02

Ticket d'onboarding depuis le formulaire

Le formulaire d'onboarding ouvre un ticket avec les champs métier. L'agent voit le contexte produit, pas un message orphelin.

03

Tracker d'incident, conversations liées

Un incident plateforme regroupe les conversations liées au même dossier. Le support suit une crise sans perdre le fil.

04

Portail « mes demandes »

Le client suit « mes demandes » dans votre portail. Le back-office reste hors de ce miroir.

Pour vous

Ce que ça change dans votre support

La technique au service d'un résultat mesurable : un contact unique, conversation et ticket distincts, un contexte produit partagé.

Chat et ticket, chacun son rôle

Le Messenger porte la conversation in-app ; le ticket porte le dossier agent. On ne mélange pas les deux : la recette reste lisible.

La région EU est cadrée dès le départ

Un workspace européen doit parler au bon point d'entrée. C'est l'argument RGPD concret pour un client français.

Le support voit le contexte sans ressaisie

Plan, compte, incident : la fiche Intercom suit le produit. L'agent arrête l'interrogatoire de première ligne.

Les notifications restent fiables

On vérifie la signature des événements Intercom. Vous agissez sur un vrai statut, pas sur un message falsifiable.

Méthode

Comment nous livrons votre connecteur Intercom

01

Cadrage

App privée ou publique, région, conversations vs tickets, attributs custom (noms uniques). On liste les cas limites avant d'écrire une ligne de code.

02

Développement

Vérif SHA-1 sur le corps brut, 200 immédiat, dédup notif_..., contact.id stocké chez vous. File dimensionnée pour les pics contact / content_stat.

03

Recette

Conversation vs ticket, delete irréversible, 400 INVALID_PARAMETER sur attributs homonymes, 2 500 liens tracker. On rejoue un 429 webhook envoyé par vous.

04

Monitoring

Latence handler, 1 000 erreurs / 15 min, throttle 429 (1 min → 2 h puis drop). Vous savez qu'un flux est cassé avant vos clients.

Ce que permet l'API

Ce que permet l'API Intercom

Contacts
Users et leads. Upsert depuis le produit, identifiant Intercom stocké chez vous. Custom attributes : noms uniques, sinon PUT conversations renvoie 400 INVALID_PARAMETER.
Conversations Messenger
GET/POST /conversations, retrieve (plafond 500 parts les plus récentes), reply, tags. Pagination défaut 20. Ce n'est pas un ticket agent.
Tickets Inbox
POST /tickets, POST /tickets/enqueue (async), search, reply, tags, change_type, link/unlink. Delete irréversible, données sensibles effacées.
Webhooks Developer Hub
Souscription uniquement dans le Hub, associés à l'app, tous les workspaces où elle est installée. URL HTTPS, validation HEAD. Topics versionnés (ticket.created).
Lexique

Le vocabulaire de l'API Intercom

Conversation vs Ticket
Conversation : Messenger, temps réel produit, 500 parts. Ticket : Inbox structurée, types, attributs. POST /conversations n'ouvre pas un ticket agent.
X-Hub-Signature
sha1= + HMAC-SHA1 hex du JSON, client_secret de l'app (RFC 2104). User-Agent intercom-parrot-service-client/1.0. Ce n'est pas SHA-256.
api.eu.intercom.io
Host EU. US : api.intercom.io. AU : api.au.intercom.io. Un workspace EU appelé sur le host US est un bug, pas une optimisation.
Fenêtre REST 10 secondes
10 000 / min / app ⇒ max 1 666 / 10 s. 25 000 / min / workspace. Apps privées : les apps du workspace partagent le seau workspace. Headers X-RateLimit-Limit, -Remaining, -Reset.
Priorité webhook < 500 ms
Réponse < 500 ms : file haute. Sinon file basse. Duplicate si pas de 200 en 5 000 ms. Pause 15 min après 1 000 erreurs HTTP consécutives / 15 min. Private apps : suspension après 7 jours d'erreurs.
linked_conversation_limit_exceeded
Un ticket tracker ne peut pas lier plus de 2 500 conversations. Utile pour un incident plateforme, à cadrer avant de tout rattacher.
À savoir

Les contraintes réelles de l'API Intercom

01

Les webhooks se souscrivent dans le Hub

Plus d'API de souscription. Associés à l'app, notifications de tous les workspaces où elle est installée. Les tutos anciens qui POST une subscription sont faux.

02

Répondre vite, ou perdre des events

200 en moins de 5 s, idéalement < 500 ms. Un 429 de votre côté throttle 1 min puis 2 h, puis drop. En EU, Intercom peut émettre 20 000 events / min : votre endpoint est souvent plus petit.

03

Delete est destructif

Delete ticket : irréversible, données sensibles effacées. Delete conversation : retain_metrics true/false, scope dédié si false. Journal d'audit avant, décision produit explicite.

04

App publique : pas de token collé

Demander un Access Token à un client est contraire aux ToS et peut faire révoquer l'accès. App privée : token du workspace. OAuth pour le multi-workspace.

Intercom ou Freshdesk

API Intercom ou API Freshdesk ?

Deux modèles de support. Intercom vit dans le produit (Messenger + Inbox) ; Freshdesk est un helpdesk tickets classique.

CritèreIntercomCette pageFreshdeskHelpdesk tickets
ObjetConversations + TicketsTickets helpdesk
CanalMessenger in-appEmail / portail / phone
WebhooksHub only, SHA-1 X-Hub-SignatureAutomations, pas de bus dédié v2
Régionapi.eu.intercom.io{domaine}.freshdesk.com
Quota REST10 000 / min / appSelon le plan, headers
DeleteIrréversible, retain_metricsSoft + hard_delete
Le bon casProduit avec chat + inboxFile tickets classique

Les trois (Intercom, Freshdesk, Zendesk) ne sont pas le même connecteur. Intercom sépare conversation et ticket et signe en SHA-1. Freshdesk facture les include. Zendesk impose l'export incrémental. C'est un arbitrage de cadrage.

Notre expertise

Ce que nous mesurons sur une intégration Intercom

15 j
premier flux contact ou ticket en production
< 500 ms
réponse webhook visée
EU
host régional figé dès le cadrage
4
développeurs seniors sur le projet
Comparer

Les autres API de support

Si Intercom n'est pas le bon socle, ces options se discutent au cadrage.

On combine Intercom avec

La stack qui entoure Intercom sur nos projets.

  • Stripe
  • Slack
  • n8n
  • PostgreSQL
  • Node.js
FAQ

Intégration Intercom : vos questions

Trois étapes. D'abord figer le host régional et le mode d'auth : Access Token de workspace pour une app privée, OAuth pour une app publique (jamais un token demandé au client). Ensuite le modèle : contact.id chez vous, conversations Messenger distinctes des tickets Inbox, attributs custom aux noms uniques. Enfin les webhooks dans le Developer Hub : vérifier X-Hub-Signature SHA-1 sur le corps brut, répondre 200 tout de suite, dédupliquer sur l'id de notification, se fier à created_at faute d'ordre garanti. La partie sensible n'est pas le POST contact, c'est le handler webhook et le plafond 2 500 liens tracker.

Oui dès que le workspace est en région EU. Un workspace EU appelé sur api.intercom.io est un bug de configuration, pas un détail. Pour un client français qui refuse le routing US, le host EU est un argument RGPD concret, posé au cadrage, pas après la première 4xx. AU : api.au.intercom.io. On ne bascule pas de région à chaud sans le savoir. Le token et le host sont une paire : les mélanger produit des 4xx opaques.

Une conversation est le fil Messenger (in-app), avec un plafond de 500 parts à la lecture. Un ticket est l'objet Inbox : types, attributs, file d'agents. POST /conversations crée un message initié par un contact, pas un ticket. POST /tickets (ou /tickets/enqueue) crée l'objet agent. Un tracker peut lier jusqu'à 2 500 conversations. Delete sur l'un ou l'autre est destructif. Les mélanger est l'erreur de recette la plus fréquente.

Un premier flux utile, typiquement l'upsert contact et une conversation Messenger, se livre en deux à trois semaines. Une chaîne tickets, search portail, tracker d'incident et webhooks Hub demande plutôt six à huit semaines : la région, le HMAC SHA-1 et le dimensionnement du handler pèsent autant que le CRUD. Nous cadrons le périmètre en amont et vous donnons une estimation ferme avant de commencer.

Intercom si le support vit dans le produit (Messenger + Inbox) et que la région EU compte. Freshdesk si vous voulez un helpdesk tickets classique, contacts, automations. Zendesk si le support entreprise est le système d'enregistrement, avec export incrémental et safe_update. SHA-1 chez Intercom, SHA-256 chez Zendesk, pas de bus dédié chez Freshdesk : ce n'est pas le même connecteur. Le Hub à la place d'une API de souscription est le piège des tutos anciens.

Un projet d'intégration Intercom ?

Parlons-en. 30 minutes pour cadrer contacts, tickets et région, et vous dire franchement ce qui est faisable.

Parler de mon projet Intercom
Parler de mon projet Intercom