Enviar una notificación de Slack desde una operación de Studio en Jitterbit Studio
Introducción
Este patrón de diseño de integración envía un mensaje formateado a un canal de Slack desde una operación de Studio. La operación utiliza el conector HTTP v2 para enviar una carga JSON a una URL de webhook entrante de Slack. Este patrón se usa comúnmente para notificar a un equipo cuando ocurre un evento significativo, como la recepción de un nuevo pedido, la creación de un registro o la finalización de una operación con errores.
Esta guía presupone familiaridad con la configuración de conexiones y actividades de HTTP v2. Para una introducción general, consulta Llamar a una API REST usando el conector HTTP v2.
Patrón de diseño
Un webhook entrante de Slack es una URL única generada por Slack que acepta una solicitud HTTP POST con un mensaje JSON. No se requiere autenticación adicional más allá de la propia URL del webhook.
La operación de Studio sigue el patrón de transformación:
La actividad de origen proporciona los datos utilizados para construir el mensaje (por ejemplo, el resultado de una consulta de base de datos, un registro de Salesforce o una salida de script). La transformación construye la carga del mensaje de Slack. La actividad POST de HTTP v2 envía la carga a la URL del webhook entrante de Slack.
Limitaciones de webhooks y casos de uso avanzados
Los webhooks entrantes de Slack son solo de publicación y se envían al único canal para el cual se creó el webhook. No pueden dirigirse a un canal o usuario diferente en tiempo de ejecución, actualizar o enhebrar mensajes, cargar archivos, ni leer y buscar mensajes, y Slack los limita a aproximadamente un mensaje por segundo. Para esos casos de uso avanzados, utiliza el conector de Slack nativo en su lugar. Se autentica con un token de aplicación de Slack y proporciona actividades para publicar en cualquier canal o usuario (Enviar mensaje), buscar y recuperar mensajes (Buscar y Obtener), cargar archivos (Archivos) y buscar usuarios y conversaciones (Usuarios y Conversaciones).
Parte 1: Crear un webhook entrante de Slack
-
En tu espacio de trabajo de Slack, ve a Aplicaciones y busca Incoming WebHooks, o crea una aplicación de Slack en api.slack.com/apps y añade la función Incoming Webhooks.
-
Activa los webhooks entrantes y haz clic en Add New Webhook to Workspace.
-
Selecciona el canal donde publicar y haz clic en Allow.
-
Copia la URL del webhook. Tiene el formato
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX.Tip
Almacena la URL del webhook como una variable de proyecto con su valor oculto. Esto mantiene la URL fuera de la configuración directa de la conexión y la actividad, y facilita su cambio sin editar el proyecto.
Parte 2: Configurar la conexión de HTTP v2
-
En Studio, abre tu proyecto y haz clic en la pestaña Project endpoints and connectors en la paleta de componentes de diseño.
-
Haz clic en el conector HTTP v2 para abrir la configuración de la conexión.
-
Connection Name: Introduce un nombre como
Slack. -
Base URL: Introduce
https://hooks.slack.com. Las actividades POST individuales añadirán la ruta del webhook. -
Authorization: Selecciona No Auth. La autenticación de webhooks entrantes de Slack se maneja mediante la URL del webhook única, no por un encabezado de autorización.
-
Haz clic en Test, después haz clic en Save Changes.
Parte 3: Configurar la actividad de POST
-
En la paleta de componentes de diseño, expande el punto de conexión de HTTP v2 de Slack y arrastra el tipo de actividad POST al lienzo de diseño.
-
Haz doble clic en la actividad para abrir su configuración.
Paso 1: Ingresa un nombre y especifica la configuración
-
Nombre: Ingresa un nombre como
Post Slack Message. -
Ruta: Ingresa la porción de ruta de tu URL de webhook (todo después de
hooks.slack.com), por ejemplo/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX.Si guardaste la URL de webhook como una variable de proyecto, ingresa la URL completa aquí en su lugar (por ejemplo,
[slack_webhook_url]). Una URL completa anula la URL base de la conexión. -
Encabezados de solicitud: Haz clic en el icono de agregar y añade el encabezado
Content-Typecon el valorapplication/json. -
Haz clic en Siguiente.
Paso 2: Proporciona el esquema de la solicitud
-
Selecciona Sí, proporcionar esquema nuevo.
-
Ingresa el siguiente esquema JSON, que define los campos de una carga útil de mensaje de Slack:
{ "type": "object", "properties": { "text": { "type": "string" } } }Para mensajes más enriquecidos con secciones, botones o bloques formateados, reemplaza este esquema con una estructura de Slack Block Kit. El campo
textsirve como respaldo para notificaciones y accesibilidad. -
Haz clic en Siguiente.
Paso 3: Proporciona el esquema de la respuesta
El webhook entrante de Slack devuelve una respuesta de texto sin formato (ok en caso de éxito). No se requiere un esquema de respuesta personalizado. Haz clic en Siguiente y luego en Finalizado.
Parte 4: Mapea el mensaje en una transformación
En la transformación que precede a la actividad POST, mapea el campo text del esquema de solicitud a un script que construya la cadena de mensaje.
Por ejemplo, para enviar un mensaje sobre un nuevo pedido, el script de transformación para el campo text podría ser:
<trans>
"New order #" + $order_id + " received from " + $customer_name + " for $" + $order_total
</trans>
Donde order_id, customer_name y order_total son variables globales completadas por un script anterior o mapeadas desde la actividad de origen.
Consejo
Para incluir un salto de línea en el texto del mensaje, usa "\n" en la cadena del script. Slack representa los saltos de línea en los mensajes de canal.
Verifica la integración
Implementa y ejecuta la operación para probar la notificación. Verifica los registros de operación para confirmar que la actividad POST devolvió un estado HTTP 200. Si los registros de operación muestran un estado diferente de 200, verifica la ruta de la URL de webhook y confirma que la aplicación de Slack sigue instalada en el espacio de trabajo.