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 mensajeschat:write
Listar canaleschannels:read
Listar/buscar usuariosusers:read
Buscar usuario por emailusers:read.email
Leer mensajes de un canalchannels:history
Crear canaleschannels: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

  1. El error te dice qué scope falta — o búscalo en la tabla según la operación
  2. En el panel de tu app → OAuth & PermissionsBot Token Scopes → agrega el scope
  3. Reinstala la app en el workspace — esto es lo que la gente olvida: los scopes nuevos no aplican hasta reinstalar
  4. Verifica si el token cambió tras reinstalar; si cambió, actualízalo en la credencial de n8n

El patrón: missing_scope casi 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

  1. En el canal afectado, en Slack: /invite @tu-app
  2. Para canales privados, el bot debe ser invitado desde dentro del canal por un miembro
  3. 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

  1. Verifica que el workflow está activo (lo más común y lo más tonto de olvidar)
  2. Verifica que la URL en el panel de Slack es la que n8n generó y está vigente
  3. En self-hosted, confirma que tu n8n es accesible desde internet
  4. Revisa el filtro del trigger — ¿el evento que generas coincide con lo que el trigger observa?
  5. 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_scopeFalta un permiso en la appProblema 1
not_in_channelEl bot no es miembro del canalProblema 2
channel_not_foundEl canal no existe o el bot no lo ve (a menudo privado)Problema 2
rate_limited, 429Demasiadas llamadasProblema 3
invalid_auth, token_revokedEl token es inválido o fue revocadoRecrea/actualiza la credencial
user_not_foundEl usuario buscado no existe (¿typo en el email?)Revisa el dato de entrada
(el trigger no dispara)Conexión Slack → n8nProblema 4

Lo bueno de Slack: sus errores dicen lo que pasa. not_in_channel es literalmente "el bot no está en el canal". missing_scope te 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:

  1. El workflow enviaba mensajes bien; agregas una operación para buscar usuarios y falla con missing_scope.
  2. El workflow manda mensajes a #sales sin problema pero falla en #sales-private con not_in_channel.
  3. Un workflow que procesa 300 leads y manda un mensaje por cada uno empieza a fallar con 429 a mitad de la lista.
  4. Configuraste un slash command /reporte pero al ejecutarlo en Slack no pasa nada.
  5. Agregaste el scope users:read, pero el workflow sigue dando missing_scope.
Ver respuestas
  1. Scope faltante (Problema 1). Primer paso: agregar el scope de usuarios (users:read) en el panel de la app y reinstalar.
  2. Bot no es miembro del canal (Problema 2). Primer paso: /invite @tu-app en #sales-private (los privados requieren invitación desde dentro).
  3. Rate limit (Problema 3). Primer paso: agrupar — mandar un mensaje resumen con los 300 leads en vez de 300 mensajes; o espaciar con Wait.
  4. 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.
  5. 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 olvidan
  • not_in_channel: el bot tiene que ser miembro del canal — tener chat:write no 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_channel al 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

  1. Slack API: códigos de error - Cada método lista sus posibles errores.
  2. Slack API: rate limits - Cómo Slack limita las llamadas.
  3. n8n Slack node Docs - Opciones de reintento del nodo.

Creado: Mayo 14, 2026 Versión: 1.0