Módulo 4: Slack
Troubleshooting de Slack
Descripción de la cápsula
Tu workflow de Slack funciona en la prueba. Lo activas y empiezan los problemas que no son de lógica: un error missing_scope que no sabes de dónde salió, el bot que "no puede escribir" en un canal, mensajes que Slack empieza a rechazar, eventos que no disparan.
Igual que en los módulos anteriores, este es el manual de diagnóstico — pero los problemas de Slack tienen un sabor propio. La mayoría no son fallos misteriosos: son consecuencia directa del modelo de app + scopes + membresía de canal que viste en la cápsula 02. Si ese modelo te quedó claro, el 80% de los errores de Slack se diagnostican en segundos.
Esta cápsula recorre los cuatro problemas que verás en producción: scopes que faltan, el bot sin acceso al canal, rate limits, y eventos que no llegan. No hay operación nueva — hay reconocimiento de síntomas.
Lo que vas a aprender
Al terminar esta cápsula serás capaz de:
- ✅ Diagnosticar errores de scope y agregar el permiso que falta
- ✅ Resolver el clásico "el bot no puede escribir en el canal"
- ✅ Entender los rate limits de Slack y no chocar con ellos
- ✅ Diagnosticar por qué un Slack Trigger no dispara
- ✅ Leer los códigos de error de Slack y clasificarlos rápido
- ✅ Reconocer cuándo el problema es tu workflow y cuándo es el setup de la app
Problema 1: Scopes que faltan
El síntoma
Un error con texto missing_scope, normalmente diciendo cuál scope esperaba. Una operación que funcionaba deja de funcionar cuando intentas algo nuevo (escribías mensajes, ahora intentas leer usuarios y falla).
Por qué pasa
Recuerda la cápsula 02: tu app de Slack tiene exactamente los scopes que le diste, ni uno más. Cada operación del nodo necesita su scope:
| Quieres... | Necesitas el scope... |
|---|---|
| Enviar mensajes | chat:write |
| Listar canales | channels:read |
| Listar/buscar usuarios | users:read |
| Buscar usuario por email | users:read.email |
| Leer mensajes de un canal | channels:history |
| Crear canales | channels:manage |
Si tu workflow crece y empieza a hacer cosas nuevas, tarde o temprano choca con un scope que no pediste al inicio.
La solución
- El error te dice qué scope falta — o búscalo en la tabla según la operación
- En el panel de tu app → OAuth & Permissions → Bot Token Scopes → agrega el scope
- Reinstala la app en el workspace — esto es lo que la gente olvida: los scopes nuevos no aplican hasta reinstalar
- Verifica si el token cambió tras reinstalar; si cambió, actualízalo en la credencial de n8n
El patrón:
missing_scopecasi nunca es un bug — es tu app pidiendo permiso para algo nuevo. Agregar el scope + reinstalar lo resuelve. Lo único que confunde es olvidar el "reinstalar".
Problema 2: El bot no puede escribir en el canal
El síntoma
Error not_in_channel. La credencial está bien, chat:write está, pero el mensaje no se envía a ese canal específico.
Por qué pasa
También de la cápsula 02: tener el scope chat:write no es lo mismo que tener acceso a un canal. El bot tiene que ser miembro del canal donde escribe. El scope dice "puede escribir"; la membresía dice "en este canal".
Pasa especialmente con:
- Canales privados — el bot no los ve hasta que lo invitan
- Canales nuevos — creados después de que pensaste el workflow
- Canales a los que el bot fue removido — alguien lo sacó del canal
La solución
- En el canal afectado, en Slack:
/invite @tu-app - Para canales privados, el bot debe ser invitado desde dentro del canal por un miembro
- Si tu workflow escribe en muchos canales, asegúrate de invitar el bot a todos ellos — es fácil olvidar uno
Prevención: cuando un workflow falla en producción con
not_in_channel, el 99% de las veces es esto. Antes de revisar tu lógica, verifica que el bot está en el canal.
Problema 3: Rate limits
El síntoma
Errores con texto rate_limited o 429. Pasa cuando un workflow manda muchos mensajes en poco tiempo.
Por qué pasa
Slack limita cuántas llamadas puede hacer una app por unidad de tiempo. Los números varían por tipo de operación (los métodos de mensajería tienen sus propios límites), pero a nivel práctico: mandar una ráfaga de mensajes choca con el límite. Casos típicos:
- Un workflow que procesa una lista y manda un mensaje por cada item (200 leads → 200 mensajes en segundos)
- Varios workflows golpeando Slack al mismo tiempo
- Un bucle (el del bot, del Problema del módulo anterior) disparando mensajes sin control
Las soluciones
1. Agrupa en vez de multiplicar. En lugar de mandar 50 mensajes (uno por lead), manda un mensaje con los 50 leads listados. Casi siempre el equipo prefiere un resumen a 50 pings.
2. Espacia los envíos. Si de verdad necesitas varios mensajes, un nodo Wait entre ellos reparte la carga.
3. Configura reintentos. El nodo puede reintentar si falla (Settings → Retry On Fail). Un rate limit suele ser temporal — un reintento con espera lo supera.
El principio (igual que en Sheets, Módulo 1): trata cada llamada a la API como cara. El mejor workflow de Slack no manda más mensajes — manda menos y mejores. Un resumen agrupado es mejor producto y mejor ingeniería que una ráfaga de pings.
Problema 4: El Slack Trigger no dispara
El síntoma
Configuraste un evento o un slash command, pero el workflow nunca se ejecuta cuando ocurre en Slack.
Por qué pasa
Recuerda de la cápsula 06: el Slack Trigger es tiempo real — Slack tiene que poder alcanzar a tu n8n. Si no dispara, casi siempre es un problema de esa conexión:
- La URL no está bien configurada en el panel de la app de Slack (Event Subscriptions / Slash Commands)
- n8n no es accesible desde internet (self-hosted sin URL pública)
- El workflow no está activo — los triggers solo funcionan con el workflow en estado Active
- El filtro del trigger excluye el evento que estás generando — disparas en un canal que el trigger no observa
- Faltan scopes de eventos — recibir ciertos eventos requiere sus propios scopes
La solución
- Verifica que el workflow está activo (lo más común y lo más tonto de olvidar)
- Verifica que la URL en el panel de Slack es la que n8n generó y está vigente
- En self-hosted, confirma que tu n8n es accesible desde internet
- Revisa el filtro del trigger — ¿el evento que generas coincide con lo que el trigger observa?
- Revisa si el tipo de evento necesita un scope que no agregaste
Slack tiene una pantalla en el panel de la app que muestra si los eventos se están entregando o fallando — un buen lugar para ver si Slack siquiera está logrando contactar tu n8n.
Cómo leer un error de Slack
Slack devuelve errores con códigos bastante legibles:
| El error dice... | Es un problema de... | Ve a... |
|---|---|---|
missing_scope | Falta un permiso en la app | Problema 1 |
not_in_channel | El bot no es miembro del canal | Problema 2 |
channel_not_found | El canal no existe o el bot no lo ve (a menudo privado) | Problema 2 |
rate_limited, 429 | Demasiadas llamadas | Problema 3 |
invalid_auth, token_revoked | El token es inválido o fue revocado | Recrea/actualiza la credencial |
user_not_found | El usuario buscado no existe (¿typo en el email?) | Revisa el dato de entrada |
| (el trigger no dispara) | Conexión Slack → n8n | Problema 4 |
Lo bueno de Slack: sus errores dicen lo que pasa.
not_in_channeles literalmente "el bot no está en el canal".missing_scopete dice qué scope falta. El error casi siempre es la respuesta — el problema es no leerlo.
Trampas comunes
Trampa 1: Agregar un scope y no reinstalar la app
Qué pasa: Agregas el scope que faltaba, pruebas, y sigue fallando con missing_scope.
Cómo evitar: Los scopes nuevos no aplican hasta reinstalar la app en el workspace. Es el paso que todos olvidan.
Trampa 2: Revisar la lógica del workflow ante un not_in_channel
Qué pasa: Pierdes media hora revisando tu workflow cuando el error decía claramente que el bot no está en el canal.
Cómo evitar: not_in_channel = invita el bot al canal. No es tu lógica.
Trampa 3: Multiplicar mensajes en vez de agruparlos
Qué pasa: El workflow manda un mensaje por item, choca con rate limits, y de paso satura al equipo.
Cómo evitar: Agrupa — un mensaje resumen en vez de muchos pings. Mejor producto y mejor ingeniería.
Trampa 4: Olvidar activar el workflow del trigger
Qué pasa: El Slack Trigger está perfectamente configurado pero el workflow no dispara — porque no está en Active.
Cómo evitar: Los triggers solo funcionan con el workflow activo. Es lo primero que hay que verificar.
Trampa 5: No leer el código de error
Qué pasa: Ves "error" y asumes que algo profundo está roto, cuando el código decía exactamente qué pasaba.
Cómo evitar: Lee el código de error de Slack. Es legible y casi siempre es la respuesta.
Ejercicio: diagnostica cinco situaciones
Objetivo: practicar la clasificación rápida de problemas de Slack.
Tu tarea
Para cada situación, di (1) qué problema es y (2) el primer paso para resolverlo:
- El workflow enviaba mensajes bien; agregas una operación para buscar usuarios y falla con
missing_scope. - El workflow manda mensajes a
#salessin problema pero falla en#sales-privateconnot_in_channel. - Un workflow que procesa 300 leads y manda un mensaje por cada uno empieza a fallar con
429a mitad de la lista. - Configuraste un slash command
/reportepero al ejecutarlo en Slack no pasa nada. - Agregaste el scope
users:read, pero el workflow sigue dandomissing_scope.
Ver respuestas
- Scope faltante (Problema 1). Primer paso: agregar el scope de usuarios (
users:read) en el panel de la app y reinstalar. - Bot no es miembro del canal (Problema 2). Primer paso:
/invite @tu-appen#sales-private(los privados requieren invitación desde dentro). - Rate limit (Problema 3). Primer paso: agrupar — mandar un mensaje resumen con los 300 leads en vez de 300 mensajes; o espaciar con Wait.
- El trigger no dispara (Problema 4). Primer paso: verificar que el workflow está activo, y que la URL en el panel de Slack es la correcta y alcanzable.
- Scope agregado pero app no reinstalada (Trampa 1). Primer paso: reinstalar la app — el scope no aplica hasta entonces.
Resumen y siguiente paso
- La mayoría de los problemas de Slack son consecuencia directa del modelo app + scopes + membresía de canal — no fallos misteriosos
missing_scope: agrega el scope que falta y reinstala la app — el "reinstalar" es lo que todos olvidannot_in_channel: el bot tiene que ser miembro del canal — tenerchat:writeno basta; invítalo con/invite- Rate limits: trata cada llamada como cara — agrupa mensajes en resúmenes en vez de multiplicar pings
- El trigger no dispara: verifica que el workflow esté activo, la URL bien configurada, y n8n alcanzable
- Los errores de Slack son legibles — el código casi siempre es la respuesta; el problema es no leerlo
- 5 trampas: no reinstalar tras agregar scope, revisar la lógica ante
not_in_channel, multiplicar mensajes, olvidar activar el workflow, no leer el error
Antes de avanzar deberías poder:
- Resolver un
missing_scope(incluido el paso de reinstalar) - Diagnosticar un
not_in_channelal instante - Nombrar dos formas de evitar rate limits
- Listar qué revisar cuando un Slack Trigger no dispara
Lo que sigue (cápsula 08):
Tienes todas las piezas del módulo: conectar, enviar, formatear, gestionar canales/usuarios, recibir, y diagnosticar. El mini-proyecto las junta en un sistema de notificaciones interactivas: el workflow avisa al equipo de un evento, y el equipo puede responder desde Slack para que el workflow continúe.
Recursos adicionales
- Slack API: códigos de error - Cada método lista sus posibles errores.
- Slack API: rate limits - Cómo Slack limita las llamadas.
- n8n Slack node Docs - Opciones de reintento del nodo.
Creado: Mayo 14, 2026 Versión: 1.0