FR
Unipile MCP · Webhooks

Câblez les webhooks LinkedIn, WhatsApp et email avec un agent de codage

LinkedIn n'a pas de webhook public pour les messages d'un membre. Unipile les pousse vers votre endpoint, et avec le serveur MCP Unipile , votre agent écrit le handler.
Essai gratuit de 7 jours, sans carte bancaire.
Votre agent · crm-app
MCP Unipile connecté
Sarah
Abonne-toi aux webhooks de nouveaux messages et mets à jour la timeline du contact.
Exécution de la requêtePOST /v2/webhooks/endpoints/201 · we_…
Endpoint créé sur l'app Development, avec un handler idempotent et mis en file.
3 fichiers modifiés · premier événement reçu en moins d'une seconde
Décrivez la fonctionnalité suivante…
La mission

Ce que vous cherchez à faire

Afficher un nouveau message ou email dans votre produit dès son arrivée, et réagir quand un compte se déconnecte, sans polling. LinkedIn n'a pas de webhook public de messages pour un compte membre ; Unipile pousse le même événement pour tous les canaux.
LinkedInNouveau message LinkedInsur le compte connecté par votre utilisateur
WhatsAppNouveau message WhatsAppmême événement, autre canal
GmailNouvel emailGmail, Outlook ou IMAP
message.newmessage.newemail.new
Votre app · timeline du contactPOST /webhooks/unipile
LinkedInSarah K. a répondu sur LinkedIn0.4 s
WhatsAppTom R. a envoyé un message WhatsApp0.3 s
GmailAna L. a envoyé la proposition par email0.5 s
Mis en file, dédoublonné, écrit une fois
Sans lui Boucles de polling et angles morts
Un job qui interroge chaque compte toutes les trente secondes, la plupart du temps pour rien.
Aucun événement de message LinkedIn, car la plateforme n'en expose pas pour un compte membre.
Un compte déconnecté découvert par l'utilisateur, pas par votre produit.
Avec le serveur MCP Unipile Le résultat dans votre application
Un endpoint webhook abonné aux événements que vous traitez, créé sur votre application Development.
Un handler qui répond immédiatement, traite depuis une file et écrit chaque événement une seule fois.
Une timeline de contact et un statut de compte qui se mettent à jour en moins d'une seconde, testés avant la mise en production.
Prompt, étapes, code

Donnez le prompt à votre agent

Deux prompts, chacun avec les endpoints Unipile que l'agent lit et exécute, et ce qui arrive dans votre projet. Les chemins sont complets, sur l'URL de base de l'API https://api.unipile.com, avec votre clé scopée dans l'en-tête X-API-KEY .
Votre agent · crm-appApp Development
Abonne-toi aux webhooks Unipile de nouveaux messages et mets à jour la timeline du contact : crée l'endpoint webhook pour message.new et email.new, ajoute un handler idempotent dans cette application et mets le traitement en file.
Lecture de l'endpointPOST /v2/webhooks/endpoints/schéma chargé
Exécution de la requêtePOST /v2/webhooks/endpoints/201 · we_… + secret
Endpoint créé avec trigger_events: ["message.new", "email.new"] et l'URL publique de l'app, enregistrement du secret renvoyé côté serveur, ajout de POST /webhooks/unipile qui valide la livraison, répond 200 immédiatement et met le payload en file, et d'un worker qui dédoublonne sur l'ID de l'objet avant d'écrire dans la timeline du contact. Message de test envoyé sur l'app Development : timeline mise à jour.3 fichiers modifiés · en file, idempotent, vérifié

Accuser réception d'abord, traiter ensuite, écrire une seule fois

L'agent lit le contrat de l'endpoint via le serveur : trigger_events et url sont obligatoires, account_ids restreint le périmètre, et la réponse contient l'ID de l'endpoint et son secret. Il écrit ensuite le handler comme un webhook l'exige : 2xx immédiat, traitement asynchrone, dédoublonnage sur l'identifiant de l'objet, et vérification du journal de livraison quand quelque chose semble manquer.
Endpoints utilisés par l'agent
POST/v2/webhooks/endpoints/GET/v2/webhooks/endpoints/GET/v2/webhooks/conversations/GET/v2/{account_id}/chats/{chat_id}/messages/{message_id}
Erreur fréquente : Faire le travail dans le handler. Répondez tout de suite par un 2xx et traitez l'événement depuis une file, sinon les livraisons expirent et sont renvoyées.
Alimenter une inbox unifiée avec ces événements
Votre agent · crm-appApp Development
Gère les webhooks du cycle de vie des comptes : sur account.status.disconnected, marque le compte comme nécessitant une action et affiche un bouton Reconnecter, et sur account.add, enregistre le nouvel account_id sur le workspace porté par state.
Lecture de l'endpointPOST /v2/webhooks/endpoints/enum des événements
Exécution de la requêtePATCH /v2/webhooks/endpoints/{id}200 · événements mis à jour
Ajout de account.add, account.reconnect et account.status.disconnected à l'endpoint. Sur account.add le worker enregistre le champ account_id sur le workspace trouvé dans state ; sur account.status.disconnected il signale le compte et la page Paramètres affiche le bouton Reconnecter, qui appelle la route de reconnexion Hosted Auth. Vérifié en déconnectant le compte mock sur l'app Development.2 fichiers modifiés · reconnexion affichée dans l'interface

Les événements de compte bouclent la boucle avec Hosted Auth

account.add et account.reconnect portent le state que vous avez défini à la création du lien d'authentification : le webhook devient la source de vérité pour une nouvelle connexion. Les événements de statut signalent à votre produit qu'un compte demande une action avant que l'utilisateur ne s'en aperçoive. L'agent câble les deux sur le même endpoint et garde le handler idempotent.
Endpoints utilisés par l'agent
PATCH/v2/webhooks/endpoints/{id}GET/v2/accounts/{account_id}POST/v2/auth/link
Erreur fréquente : S'abonner à tout. Il existe trente-neuf événements ; un endpoint abonné à tous reçoit sans arrêt des accusés de lecture et des ouvertures de tracking. Abonnez-vous à ce que vous traitez.
Implémenter le parcours de reconnexion avec un agent
Payload

Le body de l'endpoint, la réponse et les événements

Tel quel, depuis le contrat v2 que l'agent lit via le serveur. Deux champs sont obligatoires, la réponse contient le secret, et les événements sont regroupés par familles.
1Créer l'endpointtrigger_events et url sont obligatoires. account_ids limite l'endpoint à certains comptes ; vide ou omis, il écoute tous les comptes de l'application.POST https://api.unipile.com/v2/webhooks/endpoints/ { "trigger_events": ["message.new", "email.new", "account.add"], "url": "https://app.example.com/webhooks/unipile", "account_ids": ["acc_…"], "description": "crm timeline" }
2La réponseUn WebhookEndpoint avec son id, l'application, le secret à conserver côté serveur, et les comptes qu'il cible.{ "object": "WebhookEndpoint", "id": "we_…", "application_id": "app_…", "enabled": true, "secret": "…", "trigger_events": [ … ], "account_targets": [ … ] }
3Les événements, par familleCompte (statut, ajout, reconnexion, suppression, synchro), message (nouveau, mise à jour, suppression, accusés, réactions), chat, email (nouveau, rebond, suppression, brouillons, dossiers), calendrier (création, mise à jour, suppression, event.*), tracking et relations.message.new · message.update · message.receipt.read · chat.update email.new · email.new.bounce · email.draft.new · email.folder.update account.add · account.reconnect · account.status.disconnected · account.initial_sync.completed
Du développement à la production

Testez d'abord sur une application Development

Votre dashboard Unipile sépare une application Development de la Production. Donnez à l'agent une clé scopée issue de Development, un compte de test et une URL de tunnel : de vrais événements, aucun vrai client.
1Créez l'endpoint sur l'app DevelopmentURL de tunnel, trigger_events limité à ce que vous traitez.
2Recevez un événement de bout en boutaccount.add depuis un lien Hosted Auth mock, puis message.new depuis le compte de test.
3Rejouez-le, puis changez de cléLe worker écrit une seule fois ; account_ids restreint au bon client avant la Production.
crm-app · DevelopmentUtilisée par votre agent
Scopedev-tests · 2 comptes
Cléclé Account API scopée
ComptesCompte LinkedIn de test, boîte mail Gmail de test
Webhooks1 endpoint · événements de message
crm-app · ProductionIntacte
Scopeun par workspace
Cléclés scopées, uniquement dans votre backend
Comptesles propres comptes de vos utilisateurs, via Hosted Auth
Dépannage

Erreurs fréquentes et leur signification

Les quatre erreurs qui rendent les webhooks peu fiables, et la correction de chacune. Aucune ne concerne les événements eux-mêmes.
L'endpoint répond lentement
Les livraisons expirent et s'accumulent en renvois. CorrectionRépondez 2xx immédiatement et traitez depuis une file. Un handler qui écrit en base avant de répondre finit par rejouer son propre retard.
Un handler non idempotent
Le même message apparaît deux fois dans la timeline. CorrectionUn même événement peut être livré plusieurs fois. Dédoublonnez sur l'identifiant de l'objet porté par le payload avant d'écrire.
Abonné à tout
L'endpoint reçoit sans arrêt des accusés de lecture et des ouvertures de tracking. Correctiontrigger_events accepte trente-neuf valeurs. Abonnez-vous aux événements que vous traitez, et créez plusieurs endpoints quand le traitement diffère.
account_ids oublié dans un produit multi-clients
Le worker d'un client reçoit les événements d'un autre client. CorrectionVide ou omis, account_ids écoute tous les comptes de l'application. Restreignez-le explicitement par client, ou filtrez sur le compte du payload avant d'écrire.
6000+ Les entreprises qui innovent avec Unipile
Des entreprises leaders nous font confiance
1 API
Toutes les plateformes centralisées en une API
2 jours
Intégration très rapide
30%
Réduction des efforts et des ressources de maintenance

Sécurité et conformité

Une protection de niveau entreprise pour vos données et workflows En savoir plus sur notre sécurité
SOC 2 Type II
SOC 2 Type II
Certifié
Contrôles de sécurité vérifiés de manière indépendante garantissant la protection des données et l'intégrité opérationnelle.
GDPR
GDPR
Conforme à la loi
Conformité totale avec les réglementations européennes en matière de protection des données pour le respect de la vie privée des utilisateurs.
99.9%
Temps de disponibilité de la plateforme au cours des 24 derniers mois
24/7
Support mondial avec API performante

FAQ webhooks

LinkedIn a-t-il un webhook de messages, comment créer un endpoint, quels événements existent, comment limiter un endpoint à un client, et comment vérifier une livraison.
Pas pour un compte membre. Les webhooks publics de LinkedIn couvrent les actions sociales des organisations et les formulaires de leads ; les messages des membres relèvent d'un programme de conformité qui n'accepte plus de nouveaux partenaires. Avec Unipile, l'événement message.new couvre LinkedIn comme tous les autres canaux, sur le compte que votre utilisateur a lui-même connecté.
POST https://api.unipile.com/v2/webhooks/endpoints/ avec l'en-tête X-API-KEY et un body contenant trigger_events et url. La réponse contient un id au format we_… et un secret.
Trente-neuf valeurs réparties dans les familles account, message, chat, email, calendar, tracking et relation. Les plus utilisées sont message.new, email.new, account.add, account.reconnect et account.status.disconnected.
Avec account_ids, un tableau d'identifiants au format acc_…. Omis ou vide, l'endpoint écoute tous les comptes de l'application.
La création de l'endpoint renvoie un secret. Conservez-le côté serveur et validez chaque livraison avant de la traiter. Votre URL doit être en HTTPS et accessible publiquement ; le journal de livraison est disponible sur la route des conversations webhook.