Créer un bot Slack IA avec n8n : l'assistant interne de votre équipe
Publié le 26 juillet 2026 · 7 min de lecture
Slack est déjà l'endroit où votre équipe pose ses questions — sur les procédures internes, les congés, le produit, le dernier déploiement. Un bot Slack IA branché sur n8n transforme cet endroit en assistant interne : mentionnez l'app dans un canal ou écrivez-lui en message direct, et un agent IA répond dans le thread, avec mémoire de la conversation et, si vous le branchez sur votre base documentaire, des réponses sourcées. Bonne nouvelle par rapport à Discord : n8n dispose ici d'un Slack Trigger natif, ce qui rend l'architecture nettement plus directe que celle décrite dans notre guide du bot Discord IA. Ce guide couvre tout le circuit : création de l'app Slack, déclenchement, filtre anti-boucle, mémoire par thread et branchement RAG.
Ce qu'un assistant Slack interne change concrètement
Trois cas d'usage reviennent systématiquement chez les équipes qui déploient ce type de bot :
- Répondre aux questions récurrentes : politique de congés, procédure de remboursement de frais, configuration d'un environnement de dev, argumentaire produit. Les mêmes questions reviennent chaque semaine, et ce sont toujours les mêmes personnes qui y répondent.
- Résumer un thread : un fil de 60 messages sur un incident de production, résumé en cinq lignes pour la personne qui arrive après coup.
- Trier les demandes entrantes : un canal #support-interne où le bot qualifie chaque demande (IT, RH, produit), répond directement quand il le peut, et route le reste vers la bonne personne.
L'impact de ce genre d'assistant est aujourd'hui mesuré rigoureusement. L'étude de Brynjolfsson, Li et Raymond, « Generative AI at Work » (NBER, 2023), menée sur plus de 5 000 agents de support client, a montré que l'accès à un assistant IA augmentait la productivité d'environ 14 % en moyenne — avec le gain le plus fort pour les agents les moins expérimentés. Transposé à un assistant interne : ce sont les nouveaux arrivants et les équipes juniors qui en profitent le plus, parce que le bot leur donne accès instantanément au savoir accumulé par les autres.
Étape 1 : créer l'app Slack et la connecter à n8n
Tout commence sur api.slack.com, où vous créez une nouvelle app rattachée à votre workspace :
- Créez l'app (« Create New App », depuis zéro ou depuis un manifeste) et donnez-lui un nom parlant — c'est ce nom que votre équipe mentionnera.
- Accordez les scopes OAuth dans « OAuth & Permissions », côté Bot Token. Il faut au minimum de quoi écrire des messages (
chat:write) et recevoir les événements qui vous intéressent — typiquement les mentions de l'app (app_mentions:read) et, si vous voulez un mode conversation privée, la lecture des messages directs. Slack affiche la description de chaque scope au moment de l'ajouter : accordez uniquement ceux dont le workflow a réellement besoin, et élargissez plus tard si nécessaire. - Installez l'app dans le workspace (« Install to Workspace ») : Slack génère alors le Bot Token, à copier dans un credential Slack de votre instance n8n — jamais en clair dans un node. Le node Slack et le Slack Trigger de n8n proposent chacun leur type de credential ; suivez l'écran de configuration du node, qui indique exactement quel token il attend.
- Invitez le bot dans les canaux où il doit intervenir (
/invite @votre-bot) : sans cette invitation, il ne verra rien de ce qui s'y passe.
Étape 2 : déclencher le workflow avec le Slack Trigger
C'est le point où Slack se distingue : n8n fournit un Slack Trigger natif, adossé à l'Events API de Slack — pas besoin de community node ni de webhook bricolé, contrairement au montage nécessaire côté Discord. Deux déclencheurs couvrent l'essentiel d'un assistant interne :
- Mention de l'app : le workflow démarre quand quelqu'un écrit
@votre-botdans un canal où le bot est présent. C'est le mode « assistant public » : la question et la réponse sont visibles de tous, ce qui alimente la connaissance collective. - Message direct : le workflow démarre quand quelqu'un écrit au bot en privé. C'est le mode adapté aux questions RH ou individuelles.
L'événement reçu contient tout ce dont la suite du workflow a besoin : le texte du message, l'identifiant du canal, celui de l'auteur, et le ts (timestamp) du message — qui sert à la fois d'identifiant de message et de clé de thread.
Étape 3 : le filtre anti-boucle (l'erreur classique)
Voici le piège dans lequel tombe à peu près tout le monde au premier essai : le bot répond, sa réponse est un message, ce message déclenche un événement, l'événement relance le workflow, qui génère une nouvelle réponse… et le bot converse avec lui-même à l'infini, en consommant des appels LLM à chaque tour.
La parade est simple mais non négociable : un node If (ou Filter) placé immédiatement après le trigger, qui écarte tout événement émis par le bot lui-même. Concrètement, on rejette les événements dont l'auteur correspond à l'identifiant du bot, ou qui portent un identifiant d'app/bot dans leur payload. Faites-en le tout premier node du workflow, avant l'agent IA : chaque exécution évitée est aussi un appel LLM économisé.
Étape 4 : l'agent IA avec mémoire par thread
Branchez ensuite un node AI Agent avec un system prompt qui cadre le rôle (« Tu es l'assistant interne de l'équipe X ; tu réponds de façon concise ; si tu ne sais pas, tu le dis et tu proposes de router vers un humain »), et surtout une mémoire de conversation avec la bonne clé de session.
Le bon Session ID sur Slack est la combinaison canal + thread : Slack identifie chaque thread par le ts de son message parent (thread_ts pour les réponses, ts pour le message qui ouvre le fil). En construisant la clé de session sur ce couple, chaque thread garde son propre historique — deux conversations parallèles dans le même canal ne se contaminent jamais, et une question de suivi posée dans le fil est comprise dans son contexte. C'est exactement le principe détaillé dans notre article sur la mémoire de conversation d'un agent IA dans n8n, appliqué à la granularité du thread Slack. En message direct, l'identifiant du canal de DM suffit comme clé.
Étape 5 : répondre dans le thread
Dernière brique du circuit de base : le node Slack (opération d'envoi de message), configuré pour répondre dans le thread plutôt que dans le canal. Il suffit de passer le ts du message parent (celui reçu par le trigger, ou son thread_ts si la question était déjà dans un fil) comme thread de destination. Résultat : la question et la réponse de l'agent restent regroupées dans le même fil, le canal reste lisible, et toute l'équipe peut retrouver l'échange plus tard.
Ce même node Slack sait faire beaucoup plus — notamment l'opération d'envoi avec attente de réponse, ce mécanisme d'approbation humaine par boutons que nous détaillons dans notre article sur le node Wait et les boutons interactifs Slack. Combiné à l'agent, il permet un pattern précieux : le bot propose une action (créer un ticket, notifier un responsable) et attend un clic de validation avant de l'exécuter.
Étape 6 : brancher l'agent sur votre base documentaire (RAG)
Un agent qui répond de mémoire, c'est bien ; un agent qui répond à partir de vos documents internes, c'est ce qui rend l'assistant réellement fiable. Le principe : vectoriser votre documentation (procédures, docs produit, FAQ RH) dans une base comme Supabase avec pgvector, puis donner à l'agent un outil de recherche vectorielle qu'il interroge avant de répondre. La mise en place complète — ingestion, embeddings, requêtes — est détaillée dans notre guide RAG avec n8n et Supabase.
Deux réflexes valent la peine dès le départ : demander à l'agent de citer ses sources (le titre ou le lien du document utilisé) dans chaque réponse, et prévoir une réponse honnête quand la base ne contient rien de pertinent, plutôt qu'une improvisation. C'est la même architecture que notre chatbot RAG sur WhatsApp — seul le canal d'entrée et de sortie change, le cœur RAG reste identique.
Slack, Telegram ou Discord : quel canal pour quel assistant
| Critère | Slack | Telegram | Discord |
|---|---|---|---|
| Trigger natif n8n | Oui (Slack Trigger, Events API) | Oui (Telegram Trigger) | Non — community node ou webhook d'interactions |
| Terrain naturel | Équipe interne, entreprise | Assistant personnel, notifications | Communauté, support public |
| Conversations en threads | Oui, natif | Limité | Oui (fils) |
| Cas d'usage typique | Assistant interne RH/produit/support | Bot personnel rapide à déployer | Bot communautaire |
Pour un assistant interne, Slack est presque toujours le bon choix : c'est là que l'équipe travaille déjà, les threads structurent naturellement les conversations, et le trigger natif rend le montage rapide. Pour un bot personnel, notre guide du bot Telegram IA reste le chemin le plus court.
En résumé
Un bot Slack IA avec n8n tient en cinq briques : une app Slack créée sur api.slack.com avec les bons scopes OAuth, un Slack Trigger sur mention ou message direct, un filtre anti-boucle en tout premier node, un agent IA dont la mémoire utilise le couple canal + thread comme clé de session, et une réponse postée dans le thread via le ts du message parent. Branchez ensuite l'agent sur votre base documentaire vectorisée et vous obtenez un assistant interne qui répond avec sources — celui qui fait gagner le plus de temps aux membres les plus récents de l'équipe, comme le montre l'étude NBER citée plus haut. Pour partir d'une base éprouvée plutôt que d'une page blanche, le Pack Assistant RAG (119 €) fournit l'ingestion documentaire et le chatbot RAG avec citations, prêts à rebrancher sur votre Slack Trigger.
FAQ
Questions fréquentes
n8n a-t-il un vrai Slack Trigger déclenché par les messages entrants ?
Oui. Contrairement à Discord, n8n dispose d'un Slack Trigger natif qui s'appuie sur l'Events API de Slack : il peut déclencher un workflow quand l'app est mentionnée dans un canal, quand elle reçoit un message direct, ou sur d'autres événements du workspace. Il faut au préalable créer une app Slack sur api.slack.com, lui accorder les scopes OAuth nécessaires et l'installer dans le workspace.
Comment éviter que le bot Slack réponde à ses propres messages en boucle ?
C'est le piège classique : la réponse du bot est elle-même un événement de message, qui redéclenche le workflow, qui génère une nouvelle réponse, à l'infini. La parade est un node If (ou Filter) placé juste après le trigger, qui écarte tout événement dont l'auteur est le bot lui-même — en comparant l'identifiant de l'auteur à celui du bot, ou en rejetant les événements qui portent un identifiant de bot. Ce filtre doit être le tout premier node après le trigger.
Comment donner au bot une mémoire de conversation par thread Slack ?
En utilisant l'identifiant du thread comme clé de session dans le node de mémoire de l'agent IA. Slack identifie chaque thread par le timestamp (ts) de son message parent : en combinant l'identifiant du canal et ce thread_ts comme Session ID, chaque thread garde son propre historique, et deux conversations parallèles dans le même canal ne se mélangent jamais.
Le bot peut-il répondre dans le thread plutôt que dans le canal ?
Oui, et c'est fortement recommandé pour ne pas noyer le canal : le node Slack de n8n permet de préciser le thread de destination en passant le ts du message parent lors de l'envoi. La question et la réponse de l'agent restent ainsi regroupées dans le même fil, lisible par toute l'équipe.
Bundle FlowKit Complet
269 €