Módulo 4: Slack

Recibir Eventos de Slack

Descripción de la cápsula

Hasta ahora Slack solo ha sido un destino: tu workflow le manda mensajes. Esta cápsula invierte la dirección — hace que algo que pasa en Slack dispare un workflow.

Esto convierte a Slack de un tablero de avisos en una interfaz desde la que el equipo actúa. Alguien escribe /nuevo-cliente Acme en un canal → se dispara un workflow que crea la ficha. Alguien menciona al bot con una pregunta → el workflow responde. Alguien reacciona con ✅ a un mensaje → el workflow marca la tarea como hecha. Slack deja de ser solo el lugar donde el equipo se entera y se vuelve el lugar donde el equipo trabaja.

La herramienta es el Slack Trigger, y hay dos formas principales de disparar desde Slack: eventos (un mensaje, una mención, una reacción) y slash commands (comandos como /algo que el equipo escribe). Esta cápsula cubre ambas, y un concepto importante que las atraviesa: a diferencia del Gmail Trigger (que hacía polling), el Slack Trigger trabaja con eventos en tiempo real — lo cual cambia cómo se diseña el workflow.


Lo que vas a aprender

Al terminar esta cápsula serás capaz de:

  • Configurar el Slack Trigger para disparar workflows desde Slack
  • Disparar desde eventos: mensajes, menciones al bot, reacciones
  • Disparar desde slash commands (/comando)
  • Entender por qué el Slack Trigger es en tiempo real (y qué implica)
  • Acceder a los datos del evento: quién, dónde, qué dijo
  • Responder de vuelta al canal o usuario que disparó el workflow

Eventos en tiempo real (no polling)

Recuerda el Gmail Trigger del Módulo 2: hacía polling — revisaba cada cierto tiempo, con retraso. El Slack Trigger es distinto: trabaja con eventos en tiempo real.

Cuando pasa algo en Slack (un mensaje, una mención, un comando), Slack avisa a n8n en el momento — no n8n preguntando, sino Slack empujando el evento. Por eso el Slack Trigger es prácticamente instantáneo.

Esto tiene una consecuencia de setup: para recibir esos avisos, Slack tiene que poder alcanzar a tu n8n. La app de Slack que creaste en la cápsula 02 necesita una URL a la que Slack envía los eventos. n8n la genera (igual que la URL de un webhook); tú la configuras en el panel de la app de Slack, en la sección de Event Subscriptions o Slash Commands según el caso.

Self-hosted: para que Slack alcance tu n8n, tu instancia debe ser accesible desde internet (con una URL pública). En n8n Cloud esto ya está resuelto. Es el mismo requisito que tendría cualquier webhook entrante.


Disparar desde eventos

El Slack Trigger puede dispararse con distintos tipos de evento:

EventoSe dispara cuando...Caso típico
Mensaje en un canalAlguien escribe en un canal que el bot observaProcesar lo que se dice en #support
Mención al bot (@app)Alguien menciona a tu botEl equipo "le pregunta" algo al bot
Reacción a un mensajeAlguien reacciona con un emoji✅ marca una tarea como hecha
Nuevo miembro en un canalAlguien entra a un canalOnboarding automático

Configuras en el Slack Trigger qué evento(s) quieres observar y en qué canal(es).

Filtra qué observas — la misma regla del Gmail Trigger. Si configuras el trigger para dispararse con cualquier mensaje de un canal activo, tu workflow se ejecuta decenas de veces por hora con conversación normal. Acota: un canal específico, o solo las menciones al bot, o solo cierta reacción. Un workflow reacciona a un tipo de evento.

Cuidado: el bucle del bot

Un riesgo concreto: tu workflow se dispara con "un mensaje en el canal", responde con un mensaje en el mismo canal, y esa respuesta... es un mensaje nuevo que vuelve a disparar el workflow. Bucle infinito.

Defensas:

  • Filtra para que el trigger ignore mensajes del propio bot
  • O dispara solo con menciones al bot, no con cualquier mensaje
  • O usa slash commands (más abajo), que no tienen este problema

Disparar desde slash commands

Un slash command es un comando que el equipo escribe en Slack: /nuevo-lead, /reporte, /aprobar. Es la forma más limpia de que el equipo dispare workflows, porque es explícita: nadie dispara un comando sin querer, como sí puede pasar con "cualquier mensaje".

Cómo se configura

  1. En el panel de tu app de Slack → Slash CommandsCreate New Command
  2. Defines el nombre del comando (/nuevo-lead), una descripción, y la URL a la que Slack debe enviar — la que n8n te da para el Slack Trigger
  3. En n8n, el Slack Trigger recibe el comando cuando alguien lo ejecuta

Qué te llega

Cuando alguien escribe /nuevo-lead Acme Corp, el workflow recibe:

  • El comando que se usó (/nuevo-lead)
  • El texto que escribió después (Acme Corp) — los "argumentos" del comando
  • Quién lo ejecutó (su ID de usuario)
  • Dónde lo ejecutó (el canal)

Eso te da todo para actuar: sabes qué pidió el equipo, quién y desde dónde.

Los slash commands son ideales para acciones deliberadas del equipo: registrar algo, lanzar un reporte, aprobar. Los eventos (menciones, reacciones) son para reacciones más orgánicas. Elige según el caso.


Qué datos te da un evento de Slack

Cuando el trigger dispara, te entrega el evento como un item. Los campos varían según el tipo, pero típicamente incluyen:

CampoQué contiene
userEl ID del usuario que originó el evento
channelEl ID del canal donde ocurrió
textEl texto del mensaje / los argumentos del comando
tsEl timestamp del mensaje (para responder en el hilo)
typeEl tipo de evento

Como siempre: antes de construir el workflow, dispara el trigger con un evento de prueba y mira el output real. La estructura exacta depende del tipo de evento.


Responder de vuelta

El patrón completo no es solo "recibir" — es recibir y responder. El equipo dispara algo, el workflow actúa, y confirma de vuelta en Slack.

Como el evento te da el channel (y el user, y el ts), tienes todo para responder al lugar correcto:

Slack Trigger (alguien usa /nuevo-lead Acme)
   │
   ▼
[el workflow hace el trabajo: registra en Sheets, etc.]
   │
   ▼
Slack (Send)  ──  Channel: {{ $json.channel }}   ← responde al mismo canal
                  Message: "✅ Lead 'Acme' registrado"

Responder de vuelta cierra el ciclo: la persona que disparó el comando sabe que funcionó. Sin esa confirmación, el equipo no sabe si el comando hizo algo o se perdió.


Trampas comunes

Trampa 1: El bucle del bot

Qué pasa: El trigger se dispara con "cualquier mensaje", el workflow responde con un mensaje, esa respuesta dispara el trigger otra vez → bucle infinito.

Cómo evitar: Filtra los mensajes del propio bot, dispara solo con menciones, o usa slash commands.


Trampa 2: Trigger sin filtrar

Qué pasa: El trigger observa "todos los mensajes" de un canal activo. El workflow corre decenas de veces por hora con conversación normal.

Cómo evitar: Acota: canal específico + tipo de evento específico. Un workflow = un tipo de evento.


Trampa 3: La URL no llega a n8n

Qué pasa: Configuras el evento/comando pero el workflow nunca se dispara. Slack no puede alcanzar tu n8n.

Cómo evitar: En self-hosted, tu n8n debe ser accesible desde internet con una URL pública. Verifica que la URL configurada en el panel de Slack sea la correcta y esté activa.


Trampa 4: No responder de vuelta

Qué pasa: El equipo usa un slash command y no pasa nada visible. No saben si funcionó. Dejan de usarlo.

Cómo evitar: Siempre confirma de vuelta en Slack — aunque sea un "✅ hecho". El ciclo se cierra cuando la persona ve el resultado.


Trampa 5: Construir sin ver el output del trigger

Qué pasa: Asumes que el texto del comando está en {{ $json.message }} pero está en {{ $json.text }}. El workflow apunta a campos que no existen.

Cómo evitar: Dispara el trigger con un evento real, mira el output, construye sobre los nombres reales.


Ejercicio: un slash command que responde

Objetivo: construir el ciclo completo recibir → actuar → responder.

Tu tarea

  1. En tu app de Slack, crea un slash command /registrar con la URL que te da un Slack Trigger en n8n
  2. Construye el workflow: Slack Trigger (slash command) → Set → Slack (Send)
    • El Set: captura who = {{ $json.user }}, text = {{ $json.text }}, channel = {{ $json.channel }} (simula "procesar")
    • El Slack Send: responde al mismo canal ({{ $json.channel }}) con un mensaje como ✅ Registrado: "{{ $json.text }}" por <@{{ $json.who }}>
  3. Activa el workflow
  4. En Slack, escribe /registrar prueba uno en un canal
  5. Verifica que el bot responde casi al instante con la confirmación

Checklist de éxito:

  • El slash command dispara el workflow
  • El workflow capturó quién, qué y dónde
  • El bot respondió en el mismo canal
  • La respuesta fue prácticamente instantánea (tiempo real, no polling)

Resumen y siguiente paso

  • El Slack Trigger hace que algo en Slack dispare un workflow — convierte Slack en una interfaz de trabajo, no solo un tablero de avisos
  • A diferencia del Gmail Trigger (polling), el Slack Trigger es tiempo real — Slack empuja el evento; requiere que Slack pueda alcanzar tu n8n (URL pública en self-hosted)
  • Dos formas de disparar: eventos (mensaje, mención, reacción — más orgánico) y slash commands (/comando — más deliberado y limpio)
  • Filtra qué observas — un workflow reacciona a un tipo de evento, no a toda la conversación
  • Cuidado con el bucle del bot: filtra los mensajes propios, usa menciones o slash commands
  • El patrón completo es recibir → actuar → responder de vuelta — sin la confirmación, el equipo no sabe si funcionó
  • 5 trampas: el bucle del bot, trigger sin filtrar, URL que no llega, no responder, construir sin ver el output

Antes de avanzar deberías poder:

  • Configurar un Slack Trigger con un slash command
  • Explicar por qué el Slack Trigger es tiempo real y qué implica
  • Construir el ciclo recibir → actuar → responder

Lo que sigue (cápsula 07):

Tienes todas las piezas: conectar, enviar, formatear, gestionar canales/usuarios, recibir. La cápsula 07 cubre lo que se rompe en producción y no es de lógica: scopes que faltan, permisos de canal, rate limits, el bot que "no puede". El manual de troubleshooting de Slack.


Recursos adicionales

  1. n8n Slack Trigger Docs - Referencia del trigger.
  2. Slack API: Events - Los tipos de evento que Slack puede enviar.
  3. Slack API: Slash Commands - Cómo funcionan los comandos.

Creado: Mayo 14, 2026 Versión: 1.0