Módulo 4: Slack

Enviar Mensajes

Descripción de la cápsula

Enviar mensajes es el 90% de lo que se hace con Slack en n8n. Casi todos los workflows de Slack tienen la misma forma: pasa algo (un lead, un error, una venta) → se manda un mensaje al equipo. Es la operación dominante, y dominarla bien es dominar el módulo.

En la cápsula 02 ya enviaste un mensaje de prueba a un canal. Esta cápsula te lleva a enviar mensajes de verdad: a canales públicos y privados, a personas por mensaje directo (DM), respondiendo dentro de un hilo, y — lo central — con el contenido compuesto dinámicamente a partir de los datos del workflow.

El reto no es técnico. Es de destino: elegir bien si el mensaje va a un canal o a un DM, a cuál canal, y si abre un mensaje nuevo o continúa una conversación. Un mensaje correcto en el lugar equivocado es casi tan inútil como no mandarlo.


Lo que vas a aprender

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

  • Enviar mensajes a un canal (público o privado)
  • Enviar mensajes directos (DM) a una persona
  • Componer el mensaje dinámicamente con datos del workflow
  • Responder dentro de un hilo en vez de abrir mensajes sueltos
  • Elegir el destino correcto según el tipo de mensaje
  • Actualizar o borrar un mensaje ya enviado

La operación Send

Configuración base del nodo Slack:

  • Resource: Message
  • Operation: Send
  • Send Message To: Channel o User
  • Channel / User: el destino
  • Message Text: el contenido

Lo viste en la cápsula 02 con un canal. Ahora vemos cada decisión a fondo.


Canal vs mensaje directo (DM)

La primera decisión: ¿a un canal o a una persona?

DestinoQuién lo veÚsalo para...
CanalTodos los miembros del canalAlgo que el equipo debe ver: un lead nuevo, una alerta, una venta
DM (User)Solo esa personaAlgo dirigido a un individuo: "tu tarea X está lista", un recordatorio personal

Regla general: prefiere canales. Un canal deja registro visible para el equipo y no depende de que una persona específica esté disponible. Los DM tienen sentido cuando el mensaje es genuinamente personal y no aporta al resto verlo. Una notificación operativa ("llegó un lead") va a un canal, no al DM del vendedor — así si esa persona está de vacaciones, alguien más lo ve.

Enviar a un canal

  • Send Message To: Channel
  • Channel: elígelo del selector, o por nombre (#sales), o por ID

Recuerda de la cápsula 02: el bot debe estar invitado al canal. Para canales privados, el bot también necesita ser miembro.

Enviar un DM

  • Send Message To: User
  • User: la persona — por nombre de usuario, o por su ID de usuario de Slack

Los DM de un bot llegan como mensaje de la app, no de una persona. Está bien para notificaciones, pero ten claro que es un bot escribiendo — no lo uses para mensajes que pretendan parecer humanos.


Componer el mensaje dinámicamente

El poder real está en que el mensaje refleja los datos. El Message Text mezcla texto fijo y expressions, igual que el cuerpo de un correo en el Módulo 2:

🔔 Nuevo lead: {{ $json.name }}
Email: {{ $json.email }}
Ciudad: {{ $json.city || 'No especificada' }}
Origen: {{ $json.source }}

Con valores por defecto para campos opcionales — el diseño defensivo de siempre.

Un mensaje de Slack es corto por naturaleza. A diferencia de un correo, no escribes párrafos: escribes lo esencial, escaneable de un vistazo. La cápsula 04 profundiza en el formato; por ahora, piensa en líneas cortas y datos claros.


Responder dentro de un hilo

Slack organiza conversaciones en hilos (threads). Un mensaje puede ser:

  • Suelto — aparece en el canal como mensaje nuevo
  • En un hilo — aparece como respuesta a un mensaje existente

Por qué importa para automatizaciones

Imagina un workflow que procesa un pedido en 3 pasos y notifica cada uno. Si los 3 mensajes son sueltos, el canal se llena de mensajes desconectados. Si los 3 van en el mismo hilo, son una conversación ordenada: "Pedido #123" → respuesta "Pago confirmado" → respuesta "Enviado".

Cómo hacerlo

Para responder en un hilo, el nodo Slack necesita el identificador del mensaje original — el timestamp (ts) del mensaje. Cuando envías un mensaje, el nodo te devuelve su ts. Si guardas ese ts y lo pasas como Thread Timestamp (o Reply to Thread) en el siguiente Slack node, ese mensaje se engancha al hilo.

Slack (Send) → guarda el ts → Slack (Send, Thread TS = ts anterior)

Patrón útil: el primer mensaje de un proceso es suelto (abre el hilo), y los siguientes van en el hilo. Así cada proceso es una conversación limpia en el canal.


Actualizar o borrar un mensaje

A veces un mensaje tiene que cambiar después de enviado:

  • Update — modifica un mensaje ya enviado. Caso típico: mandas "⏳ Procesando pedido #123..." y cuando termina, actualizas el mismo mensaje a "✅ Pedido #123 completado". El canal no se llena de mensajes; uno solo refleja el estado.
  • Delete — borra un mensaje. Úsalo con cuidado; rara vez necesario.

Ambas operaciones necesitan el ts del mensaje (igual que el threading). Update es especialmente elegante para mostrar progreso sin saturar el canal.


Trampas comunes

Trampa 1: Mandar al DM lo que debería ir a un canal

Qué pasa: Las notificaciones operativas van al DM de una persona. Esa persona se va de vacaciones, nadie más ve los avisos.

Cómo evitar: Notificaciones de equipo → canal. DM solo para lo genuinamente personal.


Trampa 2: El bot no está en el canal

Qué pasa: Error not_in_channel (visto en la cápsula 02). Pasa especialmente con canales privados nuevos.

Cómo evitar: Invita el bot a cada canal donde deba escribir, incluidos los privados.


Trampa 3: Mensajes sueltos que deberían ser un hilo

Qué pasa: Un workflow de varios pasos manda 5 mensajes sueltos. El canal se vuelve un caos de notificaciones desconectadas.

Cómo evitar: Abre un hilo con el primer mensaje y manda los siguientes dentro del hilo usando el ts.


Trampa 4: Mensajes demasiado largos

Qué pasa: Traes la mentalidad del correo y escribes un párrafo de 6 líneas. En Slack se ve pesado y nadie lo lee completo.

Cómo evitar: Slack = corto y escaneable. Lo esencial, en pocas líneas. Si necesitas estructura, la cápsula 04 (bloques) lo resuelve.


Trampa 5: Expressions sin valor por defecto

Qué pasa: El mensaje dice "Ciudad: undefined" porque el campo no llegó.

Cómo evitar: {{ $json.city || 'No especificada' }} en todo campo opcional. El diseño defensivo de siempre.


Ejercicio: cuatro envíos

Objetivo: practicar canal, DM, mensaje dinámico y threading.

Tu tarea

  1. A un canal: Manual Trigger → Slack (Send a #pruebas-n8n) — un mensaje fijo
  2. Un DM a ti mismo: Slack (Send a User = tu usuario) — un mensaje directo
  3. Mensaje dinámico: Manual Trigger → Set (name, email, city) → Slack (Send) — un mensaje de "nuevo lead" con los datos, usando expressions y valores por defecto
  4. Threading: dos nodos Slack en secuencia — el primero abre un mensaje, el segundo responde en el hilo usando el ts del primero
Ver pistas
  • En el 4: el primer Slack (Send) devuelve un ts en su output. El segundo Slack (Send) usa ese valor en el campo Thread Timestamp / Reply to Thread: {{ $('Slack').item.json.ts }} (ajusta al nombre real del primer nodo).
  • Verifica en Slack que el segundo mensaje aparece como respuesta dentro del hilo del primero, no suelto en el canal.

Resumen y siguiente paso

  • Send es la operación dominante de Slack — el 90% de los workflows solo notifican
  • Canal vs DM: prefiere canales (registro visible, no depende de una persona); DM solo para lo genuinamente personal
  • El bot debe estar invitado al canal — incluidos los privados
  • El mensaje se compone dinámicamente con expressions y valores por defecto — corto y escaneable, no un párrafo de correo
  • Threading: guarda el ts de un mensaje para que los siguientes vayan en el hilo — un proceso = una conversación limpia
  • Update un mensaje (usando su ts) muestra progreso sin saturar el canal
  • 5 trampas: DM por canal, bot no invitado, mensajes sueltos, mensajes largos, expressions sin default

Antes de avanzar deberías poder:

  • Enviar a un canal y a un DM
  • Componer un mensaje dinámico con datos del workflow
  • Responder dentro de un hilo usando el ts

Lo que sigue (cápsula 04):

Ya sabes enviar. Pero un mensaje de texto plano se pierde en el ruido de un canal activo. La cápsula 04 cubre el formato: cómo dar estructura visual a un mensaje, y cómo usar menciones (@persona, @canal) para que el aviso le llegue de verdad a quien tiene que actuar.


Recursos adicionales

  1. n8n Slack node Docs - Operación Send y sus opciones.
  2. Slack: hilos de conversación - Cómo funcionan los threads.
  3. Slack API: mensajes - El modelo de mensajes de Slack.

Creado: Mayo 14, 2026 Versión: 1.0