Connecter Crisp à n8n : trier et router automatiquement les conversations du chat
Publié le 30 août 2026 · 6 min de lecture
Un widget Crisp installé sur un site e-commerce ou SaaS reçoit vite des dizaines de conversations par jour, toutes dans la même file, sans distinction entre une question de livraison mineure et un bug bloquant pour un client premium. Crisp propose bien un plan avec IA intégrée, mais à un coût qui grimpe avec le volume et sans accès à la logique de tri elle-même. Ce guide montre comment brancher n8n sur Crisp via ses Website Hooks et son API REST, pour classer chaque conversation entrante et router les urgences vers Slack, sans dépendre de l'offre IA propriétaire de Crisp.
Deux façons de brancher Crisp sur n8n
n8n n'a pas de node Crisp natif (n8n-nodes-base). Il existe un community node, n8n-nodes-crisp-api, installable sur une instance self-hosted depuis Settings > Community Nodes — mais comme il n'a pas obtenu le badge « verified », il reste indisponible sur n8n Cloud ; notre guide sur les community nodes détaille cette distinction et les risques de sécurité à connaître avant d'en installer un.
Ce guide prend donc le chemin qui fonctionne partout, self-hosted comme Cloud, et qui reste le plus simple à auditer : un Webhook Trigger pour recevoir les évènements Crisp, et le node HTTP Request pour appeler l'API REST en retour. Si le choix de l'hébergement n'est pas encore tranché chez vous, notre comparatif self-hosted vs Cloud aide à peser ce critère face aux autres.
Générer et sécuriser les identifiants API
Crisp propose deux types de credentials :
- Website Token : généré en un clic depuis les paramètres d'un workspace, le plus rapide pour un site unique.
- Plugin Token : une paire
identifier/keycréée depuis le Crisp Marketplace, qui permet d'appeler l'API sur plusieurs workspaces avec le même credential — le bon choix pour une agence qui centralise le support de plusieurs clients dans une seule instance n8n, sur le même principe que décrit dans notre guide sur l'hébergement n8n en agence multi-clients.
Dans les deux cas, l'authentification passe par un header Authorization: Basic avec la paire encodée en base64 (identifier:key), plus un header X-Crisp-Tier: plugin pour un Plugin Token. Créez un credential n8n de type « Header Auth » plutôt que de coller le token en clair dans chaque node HTTP Request : notre guide sur la sécurisation des credentials API détaille cette pratique, valable pour n'importe quel service tiers appelé sans node dédié.
Configurer le Website Hook côté Crisp
Dans Settings > Website Settings > Advanced Configuration > Webhooks de votre workspace, ajoutez un endpoint et sélectionnez l'évènement message:send — celui déclenché uniquement quand un visiteur envoie un message (par opposition à message:received, déclenché côté opérateur, à ne pas cocher ici pour éviter du bruit inutile). Collez l'URL de test de votre Webhook Trigger n8n pour valider la réception, puis remplacez-la par l'URL de production une fois le workflow activé.
Crisp signe chaque appel avec les headers X-Crisp-Request-Timestamp et X-Crisp-Signature (HMAC-SHA256 du couple timestamp;corps_json, calculé avec le secret affiché lors de la création du webhook). Vérifiez cette signature dans un node Code avant de traiter quoi que ce soit : notre guide sur la sécurisation des webhooks n8n explique la logique générale, directement transposable ici pour s'assurer qu'un appel provient bien de Crisp et non d'un tiers qui aurait deviné l'URL.
Construire le workflow de tri
Le pipeline reprend une structure déjà éprouvée sur ce blog pour la priorisation de tickets support, appliquée ici au flux temps réel du chat plutôt qu'à une file de tickets :
- Webhook Trigger — reçoit chaque évènement
message:send; un node IF filtre surdata.type === "text"pour ignorer les évènements de statut (visiteur en train de taper, fichier envoyé) qui ne portent pas de contenu à classer. - Node IA — envoie le texte du message, plus l'historique récent de la conversation si disponible, à un LLM avec une sortie structurée (urgence, catégorie, résumé en une phrase) sur le modèle décrit dans notre guide sur le Structured Output Parser.
- Switch — route selon l'urgence : un message classé critique part vers Slack, sur le schéma déjà documenté pour l'approbation humaine via Slack ; les autres sont simplement tagués pour que l'équipe support les retrouve triés dans Crisp.
Répondre ou taguer via l'API REST
Deux endpoints suffisent à la plupart des usages. Pour taguer silencieusement une conversation sans notifier le visiteur — utile pour classer par urgence ou par sujet sans changer le contenu de l'échange — un appel PATCH sur /website/{website_id}/conversation/{session_id}/meta avec un tableau segments (par exemple ["urgent", "facturation"]) suffit, sur le même principe que les segments décrits dans la documentation Crisp.
Pour envoyer un message, l'endpoint est POST /website/{website_id}/conversation/{session_id}/message, avec type, from: "operator" et content. Réservez cet appel aux cas très cadrés (réponse automatique à une question fréquente déjà validée par l'équipe) : sur un chat en direct, une réponse mal calibrée est visible du visiteur en quelques secondes, contrairement à un brouillon d'email qu'un humain relit avant envoi comme décrit dans notre guide sur les brouillons de réponse email par IA. Par défaut, ce workflow devrait taguer et alerter plutôt que répondre à la place d'un humain.
Cas d'usage concrets
- E-commerce : un message contenant « remboursement », « colis perdu » ou un ton clairement frustré est tagué urgent et pousse une alerte Slack immédiate, pendant que les questions de disponibilité produit attendent leur tour sans déranger personne.
- SaaS : un message mentionnant une erreur technique ou une interruption de service déclenche une alerte vers le canal d'astreinte, distincte du canal support général — la même logique de séparation des files que dans notre guide sur le circuit breaker budgétaire d'un agent IA, appliquée ici à la criticité plutôt qu'au coût.
- Agence multi-clients : un seul workflow n8n, paramétré par
website_id, traite les workspaces Crisp de plusieurs clients avec le Plugin Token, et alimente un canal Slack différent par client.
Pièges à éviter
- Cocher aussi
message:receiveddans le Website Hook : ce n'est pas une boucle infinie (l'API répond en tant qu'opérateur, sans redéclenchermessage:send), mais cela double le volume d'appels webhook à traiter pour rien si seul le message du visiteur vous intéresse. - Ignorer la vérification de signature : un endpoint webhook public sans contrôle
X-Crisp-Signatureaccepte n'importe quel appel qui devine son URL — un risque à ne jamais laisser filer, même sur un simple prototype. - Ne pas gérer les retries : comme tout webhook, un appel Crisp peut être renvoyé après un timeout côté n8n ; notre guide sur l'idempotence des webhooks évite de tagger deux fois ou d'alerter en double la même conversation.
- Sur-solliciter l'API REST : les endpoints Crisp sont soumis à des quotas ; groupez les mises à jour de segments plutôt que d'enchaîner plusieurs appels
PATCHpour une même conversation.
Ce que dit la recherche
Automatiser le tri plutôt que de le laisser à l'ordre d'arrivée n'est pas qu'un confort d'équipe. Une étude de Ya-Ling Wang et Chi-Wen Lo, « The effects of response time on older and young adults' interaction experience with Chatbot » (2025), montre que l'effet du temps de réponse sur l'expérience varie selon le profil de l'utilisateur — les plus jeunes valorisant fortement l'instantanéité, les plus âgés étant moins pénalisés par un léger délai. C'est un argument en faveur d'un tri automatique qui accélère les cas réellement urgents sans forcer une réponse instantanée sur tout le flux, plutôt qu'un chatbot qui répondrait vite mais de travers à tout le monde. Sur l'automatisation elle-même, une étude d'Ahmed Raza Amir et Syed Muhammad Atif, « Evaluating Workflow Automation Efficiency Using n8n: A Small-Scale Business Case Study » (2026), mesure sur un pipeline de notification comparable un temps d'exécution divisé par plus de 150 par rapport à un traitement manuel équivalent, avec un taux d'erreur observé nul — le type de gain attendu ici sur le tri d'un flux de chat à volume soutenu.
Pour aller plus loin
Le classement par urgence puis l'alerte Slack décrits ici reprennent l'architecture déjà livrée dans le Pack Inbox IA (79 €), dont les workflows de scoring et de digest s'adaptent sans réécriture à un flux de conversations Crisp plutôt qu'à une boîte mail. Si votre priorité est plutôt de documenter et prouver votre conformité sur ce type de traitement, le Pack Conformité & Audit (149 €) couvre la piste d'audit correspondante, et le Bundle FlowKit Complet (269 € au lieu de 347 €) réunit l'ensemble pour qui veut couvrir les deux besoins d'un coup.
FAQ
Questions fréquentes
Faut-il un node Crisp natif ou le node HTTP Request ?
n8n n'a pas de node Crisp natif (n8n-nodes-base). Il existe un community node, n8n-nodes-crisp-api, mais il n'a pas le badge « verified » : installable sur une instance self-hosted, pas sur n8n Cloud. Le node HTTP Request, combiné aux Website Hooks de Crisp, fonctionne partout et suffit largement pour un déclenchement, un appel API et une réponse.
Website Token ou Plugin Token : lequel choisir ?
Le Website Token se génère en un clic depuis les paramètres d'un seul workspace Crisp : c'est le plus rapide pour un site unique. Le Plugin Token (une paire identifier/key) se crée depuis le Crisp Marketplace et permet d'appeler l'API sur plusieurs workspaces avec le même credential n8n — pertinent pour une agence qui gère le support de plusieurs clients Crisp depuis une seule instance n8n.
Le workflow répond-il tout seul aux visiteurs, avec un risque d'erreur ?
Ce n'est pas obligatoire, et ce guide recommande de commencer sans : router et taguer les conversations selon leur urgence apporte déjà l'essentiel de la valeur, sans qu'un LLM parle jamais directement au visiteur. L'envoi automatique d'une réponse via l'API reste possible pour des cas très cadrés (FAQ récurrente), mais devrait rester une exception validée au cas par cas, pas le comportement par défaut.
Bundle FlowKit Complet
269 €