SlackMessageComponent
El SlackMessageComponent es una herramienta fundamental dentro del sistema de automatización Nappai que te permite conectar tu flujo de trabajo directamente con Slack. Su propósito principal es actuar como un puente seguro entre tus procesos de automatización y tu espacio de trabajo en Slack, permitiéndote automatizar la comunicación.
En términos simples, este componente te permite decirle a Nappai que “hable” por ti en Slack: enviar avisos, programar recordatorios, buscar información antigua en los canales o incluso interactuar con emojis (reacciones) en los mensajes. Actúa como una capa inteligente que traduce tus instrucciones en acciones reales dentro de la plataforma de mensajería.
¿Cómo funciona?
Internamente, este componente se comunica con la API de Slack, que es el conjunto de instrucciones que permiten que diferentes programas intercambien información. En lugar de tener que programar manualmente cómo conectar con Slack (lo cual suele ser complejo y requerir conocimientos técnicos avanzados), Nappai se encarga de esa parte técnica por ti.
Cuando configuras el componente, le proporcionas una “llave de acceso” (token) que demuestra que tienes permiso para actuar en nombre de tu equipo o bot. Una vez autenticado, el componente sigue estas reglas básicas:
- Traduce tus acciones: Si le dices “envía un mensaje al canal #ventas”, el componente sabe exactamente qué dirección web y formato de datos necesita usar para que Slack entienda la solicitud.
- Valida y Envía: Verifica que los canales y usuarios existan y envía los datos a través de Internet.
- Reporta el resultado: Te devuelve información sobre si el mensaje se envió correctamente o si hubo algún error, permitiéndote tomar decisiones en tu flujo de automatización (por ejemplo: “si el mensaje falla, envíame un correo de advertencia”).
Conexión y Credenciales
Para que este componente pueda “hablar” con Slack, es obligatorio configurar una credencial previamente en Nappai. Esto asegura que solo tú tengas control sobre las acciones que se realizan en tu equipo de Slack.
Sigue estos pasos para configurarlo:
- Dirígete a la sección de Credenciales en tu panel de Nappai.
- Crea una nueva credencial del tipo Slack bot API.
- Para obtener la información necesaria, deberás iniciar sesión en la API de Slack.
- Necesitarás el Slack bot App token (una clave larga que suele empezar con
xoxb-).
- Guarda la credencial.
- En tu flujo de trabajo, al añadir este componente, verás un campo llamado Credential. Selecciona la credencial que acabas de crear en la lista desplegable.
Nota: Sin esta credencial, el componente no podrá enviar ningún mensaje ni realizar operaciones.
Operaciones
Este componente es muy versátil y ofrece varias operaciones distintas. Debes recordar que solo puedes usar una operación a la vez por cada vez que el componente se ejecute. Para elegir qué quieres hacer, utiliza el menú desplegable Operation.
- List Files Message: Permite buscar y listar archivos compartidos en Slack. Es útil si necesitas auditar qué documentos se han compartido en un canal específico o filtrar por un usuario en particular.
- Delete Message: Elimina permanentemente un mensaje específico de Slack. Útil para limpiar información obsoleta o accidentalmente enviada.
- Get Permalink Message: Genera un enlace directo (permalink) a un mensaje específico. Esto es ideal si quieres incrustar un mensaje en otro lugar, enviarlo por email o tener un registro permanente de una conversación.
- Get Messages: Busca y recupera mensajes basados en criterios específicos (como texto o fecha). Es perfecto para revisar historiales de conversaciones o buscar información específica compartida recientemente.
- Send Message: Envía un nuevo mensaje de texto a un canal o grupo de Slack. Es la operación más común, usada para enviar alertas, notificaciones o respuestas automáticas.
- Schedule Message: Programa un mensaje para que se envíe en una fecha y hora futuras. Ideal para recordatorios, comunicados programados o mensajes de “buenos días” en horarios fijos.
- Update Message: Edita el contenido de un mensaje que ya fue enviado anteriormente. Útil para corregir errores tipográficos o actualizar información que ha cambiado (como cambiar el estado de una tarea en el texto del mensaje).
- Add Reaction Message: Agrega un emoji (reacción) a un mensaje existente. Funciona de forma similar a cuando haces clic en un “Me gusta” o un emoji en Slack manualmente.
- Get Reaction Message: Obtén información sobre qué emojis están reaccionando en un mensaje específico y quién los ha puesto. Útil para ver el “estado de ánimo” o la participación en una encuesta o anuncio.
- Remove Reaction Message: Elimina una reacción específica de un mensaje. Es el contrario de la operación “Add Reaction”.
Para usar el componente, primero debes seleccionar la operación que necesitas en el campo Operation. Una vez seleccionada, los campos de entrada cambiarán para mostrarte solo lo necesario para esa acción específica.
Entradas
Modo de Mapeo (Mapping Mode)
Este componente cuenta con un modo especial llamado “Mapping Mode” (Modo de Mapeo). Cuando activas este interruptor en el dashboard, se habilita una entrada adicional llamada “Mapping Data”.
Activar este modo cambia la forma en que interactúas con los campos de entrada. Cada campo te ofrecerá ahora tres opciones para proporcionar datos:
- Fixed (Fijo): Escribes el valor directamente (ejemplo: siempre enviar al canal “#general”).
- Mapped (Mapeado): Conectas la salida de otro componente anterior para usar su resultado dinámicamente (ejemplo: enviar al canal que el usuario eligió en el paso anterior).
- Javascript: Escribes un pequeño código en lenguaje Javascript para calcular el valor en tiempo real.
Esta flexibilidad te permite crear flujos de trabajo complejos y personalizados. Por ejemplo, puedes usar “Mapped” para que el mensaje llegue al usuario correcto en lugar de a un canal genérico.
Campos de Entrada
A continuación, se detallan los campos disponibles. Recuerda que no todos los campos aparecerán siempre; solo verás los necesarios según la Operación que hayas seleccionado.
-
Operation: Permite elegir qué acción realizará el componente (Enviar, Borrar, Programar, etc.).
- Visible en: List Files Message, Delete Message, Get Permalink Message, Get Messages, Send Message, Schedule Message, Update Message, Add Reaction Message, Get Reaction Message, Remove Reaction Message
-
Channel ID: Es el identificador único del canal de Slack (generalmente empieza por “C…”, como
C12345678). Es más seguro usar el ID que el nombre para asegurar que el mensaje vaya al lugar correcto.- Visible en: List Files Message, Delete Message, Get Permalink Message, Get Messages, Send Message, Schedule Message, Update Message, Add Reaction Message, Get Reaction Message, Remove Reaction Message
-
Channel Name: Te permite seleccionar un canal directamente desde una lista desplegable.
- Visible en: List Files Message, Delete Message, Get Permalink Message, Get Messages, Send Message, Schedule Message, Update Message, Add Reaction Message, Get Reaction Message, Remove Reaction Message
-
Channel Selection Method: Elige cómo deseas especificar el canal (por ID o por Nombre).
- Visible en: List Files Message, Delete Message, Get Permalink Message, Get Messages, Send Message, Schedule Message, Update Message, Add Reaction Message, Get Reaction Message, Remove Reaction Message
-
Hours: Define la hora del día (0-23) para cuando se debe enviar el mensaje programado.
- Visible en: Schedule Message
-
limit: Establece el número máximo de resultados a devolver (útil si buscas muchos mensajes y quieres paginarlos).
- Visible en: List Files Message, Get Messages
-
Mapping Mode: Interruptor para activar el modo de mapeo avanzado descrito arriba.
- Visible en: List Files Message, Delete Message, Get Permalink Message, Get Messages, Send Message, Schedule Message, Update Message, Add Reaction Message, Get Reaction Message, Remove Reaction Message
-
Message: El contenido del texto que quieres enviar. Este campo es el corazón de las operaciones de envío.
- Visible en: Send Message, Schedule Message
-
Minutes: Define los minutos (0-59) para programar el envío exacto del mensaje.
- Visible en: Schedule Message
-
Name Reaction: El nombre del emoji que deseas agregar o eliminar (ej:
thumbsup,heart).- Visible en: Add Reaction Message, Remove Reaction Message
-
New Message: El nuevo texto que reemplazará al mensaje original (solo para editar).
- Visible en: Schedule Message, Update Message
-
query: El texto o frase que deseas buscar dentro de los mensajes de Slack.
- Visible en: Get Messages
-
Return All: Si marcas esta opción, el componente devolverá todos los resultados encontrados; si no, devolverá solo el número limitado por el campo “limit”.
- Visible en: List Files Message, Get Messages
-
Message id: El identificador único del mensaje que deseas borrar, editar, obtener enlace o reaccionar. Es obligatorio para operaciones que afectan a un mensaje ya existente.
- Visible en: Delete Message, Get Permalink Message, Update Message, Add Reaction Message, Get Reaction Message, Remove Reaction Message
-
User Name or ID: Permite filtrar archivos o resultados buscando específicamente los de un usuario en particular.
- Visible en: List Files Message
-
Tool Name: El nombre que aparecerá para el agente de IA cuando este componente sea seleccionado como una herramienta.
- Visible en: List Files Message, Delete Message, Get Permalink Message, Get Messages, Send Message, Schedule Message, Update Message, Add Reaction Message, Get Reaction Message, Remove Reaction Message
-
Tool Description: Una descripción detallada que ayuda al agente de IA a entender cuándo y cómo usar esta herramienta.
- Visible en: List Files Message, Delete Message, Get Permalink Message, Get Messages, Send Message, Schedule Message, Update Message, Add Reaction Message, Get Reaction Message, Remove Reaction Message
-
Tools arguments metadata: Define los metadatos de los argumentos para la herramienta, ayudando a la estructura de datos.
- Visible en: List Files Message, Delete Message, Get Permalink Message, Get Messages, Send Message, Schedule Message, Update Message, Add Reaction Message, Get Reaction Message, Remove Reaction Message
-
New Channel Name: El nombre del nuevo canal a crear (sin espacios, todo en minúsculas).
- Visible en: List Files Message, Delete Message, Get Permalink Message, Get Messages, Send Message, Schedule Message, Update Message, Add Reaction Message, Get Reaction Message, Remove Reaction Message
-
Private Channel: Un interruptor que define si el canal que se está manejando será privado o público.
- Visible en: List Files Message, Delete Message, Get Permalink Message, Get Messages, Send Message, Schedule Message, Update Message, Add Reaction Message, Get Reaction Message, Remove Reaction Message
-
Number of Results: Especifica el máximo número de canales a devolver (generalmente usado en operaciones de gestión de canales).
- Visible en: List Files Message, Delete Message, Get Permalink Message, Get Messages, Send Message, Schedule Message, Update Message, Add Reaction Message, Get Reaction Message, Remove Reaction Message
-
User Name: El nombre o ID del usuario a invitar o gestionar.
- Visible en: List Files Message, Delete Message, Get Permalink Message, Get Messages, Send Message, Schedule Message, Update Message, Add Reaction Message, Get Reaction Message, Remove Reaction Message
Salidas
Cuando el componente se ejecuta, devuelve información que puedes usar en los siguientes pasos de tu flujo de automatización.
- Data: Contiene la información principal resultante de la operación (por ejemplo, el cuerpo del mensaje recuperado o el estado de envío).
- Tool: Empaqueta la funcionalidad del componente para que otros agentes o herramientas de Nappai puedan utilizarlo directamente.
Ejemplo de Respuesta JSON
Si utilizas la operación Send Message exitosamente, el componente devolverá un resultado similar al siguiente en el campo Data. Este ejemplo muestra cómo se estructura la respuesta que luego puedes mapear en otros componentes: json { “ok”: true, “channel”: “C012AB3CD”, “ts”: “1678897433.123456”, “message”: { “bot_id”: “B012AB3CD”, “type”: “message”, “text”: “¡Hola! Este es un mensaje automatizado desde Nappai.”, “user”: “U012AB3CD”, “ts”: “1678897433.123456”, “team”: “T012AB3CD” } }
Puedes usar el campo ts (timestamp) o el ID interno del mensaje para futuras operaciones, como Update Message o Get Permalink Message.
Conectividad
Este componente está diseñado para funcionar de manera secuencial dentro de flujos de automatización.
- Entrada: Recibe instrucciones (como “Enviar mensaje a…”) desde componentes previos (como un disparador de evento, un intervalo de tiempo o una decisión lógica).
- Salida: Sus salidas (
Data) suelen conectarse a nodos de notificación, bases de datos o a la lógica de error de Nappai. Por ejemplo, si la salida indica un error, puedes conectar esa rama a un componente de correo electrónico para avisarte. - Integración con Agentes IA: El componente está conectado lógicamente a LanggraphReactAgent. Esto significa que si estás utilizando un Agente de IA en tu flujo, este componente puede ser “visto” y “utilizado” por el propio agente. El agente puede decidir autónomamente usar esta operación para responder a una pregunta o realizar una tarea sin intervención humana directa.
Ejemplo de Uso
Escenario: Notificación de Alertas de Servidor
Imagina que tienes un servidor que vigila el estado de tu sitio web. Quieres que, si el servidor cae, te avise inmediatamente en Slack.
- Configuración: Añades un componente de tipo Interval que se ejecuta cada minuto.
- Lógica: Conectas ese intervalo a un script que verifica el estado del servidor.
- Acción: Si el servidor está caído, el flujo activa el SlackMessageComponent.
- Operación: Seleccionas la operación Send Message.
- Entrada:
- En Channel ID, mapeas el canal donde quieres la alerta (ej:
#alertas-sistema). - En Message, escribes: “⚠️ Alerta: El servidor principal ha caído. Tiempo de inactividad: [Tiempo actual]”.
- En Channel ID, mapeas el canal donde quieres la alerta (ej:
- Resultado: El componente envía el mensaje a tu canal de Slack. Si el envío tiene éxito, la salida puede activar una alerta visual en tu dashboard; si falla, puedes configurar una acción alternativa.
Otro ejemplo útil es el uso de Schedule Message para un bot de “Buenos Días” o para enviar resúmenes de reportes automáticos todos los lunes por la mañana a las 9:00 AM a un canal de equipo.
Componentes Relacionados
- LanggraphReactAgent - Este componente es una de las herramientas clave que el Agente de IA Langgraph puede utilizar. Cuando el agente detecta una intención relacionada con Slack (como “avisa al equipo”), puede invocar automáticamente esta operación para ejecutar la tarea sin que tú tengas que programar el flujo manualmente.
Notas Importantes
🔒 Security 🔴 Protect Your Slack Token Never expose your Slack Bot User OAuth token in shared files or logs. Store it securely in environment variables or a secrets manager.
⚠️ Limitation 🟡 Component in Development SlackMessageComponent is marked as a development component, meaning some features may be incomplete or subject to change. Users should test thoroughly before using in production workflows.
📋 Requirement 🟡 Set Environment Variables Configure the SLACK_BOT_TOKEN and optional SLACK_APP_TOKEN in your environment before running the component. Refer to the documentation for exact variable names.
📋 Requirement 🟢 Slack App Credentials Needed To use the component, you must have a Slack app with the necessary OAuth scopes (e.g., chat:write, chat:write.public, reactions:read, reactions:write, chat:write.customize).
💡 Best Practice 🟢 Use Channel IDs for Messaging When sending or updating messages, provide the channel ID rather than the channel name to avoid ambiguities and ensure the message goes to the intended channel.
ℹ️ Behavior 🟡 Scheduled Messages Cannot Be Edited Once a message is scheduled, Slack does not allow it to be updated or deleted via the API. The component will respect this limitation, so plan your message content in advance.
Consejos y Mejores Prácticas
- Usa IDs en lugar de Nombres: Siempre que sea posible, utiliza el Channel ID (que empieza por ‘C’) en lugar del nombre del canal (ej:
#general). Los nombres de los canales pueden cambiar o tener espacios que causen errores, mientras que los IDs son permanentes y exactos. - Revisa los Permisos (Scopes): Asegúrate de que tu aplicación de Slack en el panel de desarrollo tenga los permisos adecuados. Por ejemplo, para enviar mensajes necesitas
chat:write, y para reacciones necesitasreactions:readyreactions:write. - Planifica Mensajes Programados: Recuerda que una vez que Slack programa un mensaje, no se puede editar ni borrar fácilmente desde la API. Escribe y revisa el contenido cuidadosamente antes de programar.
- Maneja Errores de Límite: Si buscas muchos mensajes, usa el campo limit y Return All con cuidado para no sobrecargar la API de Slack.
Consideraciones de Seguridad
Este componente interactúa directamente con tu cuenta de Slack y datos de comunicación. Por seguridad:
- Nunca compartas tu Token: El token de acceso (Bot User OAuth Token) es como una llave maestra. No lo compartas por chat ni lo dejes en archivos públicos.
- Principio de Mínimo Privilegio: Configura tu aplicación de Slack en la web de Slack para pedir solo los permisos que realmente necesitas. Si solo vas a enviar mensajes, no concedas permisos de lectura de canales privados.
- Auditoría: Dado que el componente permite listar archivos y mensajes, úsalo responsablemente y verifica que los agentes de IA solo accedan a la información necesaria para su tarea.