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 POSTear una carga útil JSON a una URL de webhook entrante de Slack. Este patrón se utiliza 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 asume familiaridad con la configuración de conexiones y actividades HTTP v2. Para una introducción general, consulta Llamar a una API REST utilizando 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 que contiene un mensaje JSON. No se requiere autenticación adicional más allá de la URL del webhook en sí.
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 a la base de datos, un registro de Salesforce o la salida de un script). La transformación construye la carga útil del mensaje de Slack. La actividad HTTP v2 POST envía la carga útil a la URL del webhook entrante de Slack.
Limitaciones del webhook y casos de uso avanzados
Los webhooks entrantes de Slack son solo para publicación y 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 enlazar mensajes, subir archivos, o leer y buscar mensajes, y Slack los limita a aproximadamente un mensaje por segundo. Para esos casos de uso avanzados, utiliza el conector nativo de Slack 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), subir 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 Apps y busca Incoming WebHooks, o crea una aplicación de Slack en api.slack.com/apps y añade la función de Incoming Webhooks.
-
Activa los webhooks entrantes y haz clic en Add New Webhook to Workspace.
-
Selecciona el canal al que deseas 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 de conexión y actividad directamente y facilita su cambio sin editar el proyecto.
Parte 2: Configurar la conexión 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.
-
Nombre de la conexión: Ingresa un nombre como
Slack. -
URL base: Ingresa
https://hooks.slack.com. Las actividades POST individuales añadirán la ruta del webhook. -
Autorización: Selecciona No Auth. La autenticación para los webhooks entrantes de Slack se maneja mediante la URL única del webhook, no mediante un encabezado de autorización.
-
Haz clic en Test, luego haz clic en Save Changes.
Parte 3: Configurar la actividad POST
-
En la paleta de componentes de diseño, expande el endpoint 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 configuraciones
-
Nombre: Ingresa un nombre como
Post Slack Message. -
Ruta: Ingresa la porción de ruta de tu URL de webhook (todo lo que está después de
hooks.slack.com), por ejemplo/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX.
Si almacenaste la URL del webhook como una variable del proyecto, ingresa la URL completa aquí en su lugar (por ejemplo, [slack_webhook_url]). Una URL completa anula la Base URL de la conexión.
-
Encabezados de Solicitud: Haz clic en el ícono de agregar y añade el encabezado
Content-Typecon el valorapplication/json. -
Haz clic en Siguiente.
Paso 2: Proporcionar el esquema de solicitud
-
Selecciona Sí, Proporcionar Nuevo Esquema.
-
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 ricos con secciones, botones o bloques formateados, reemplaza este esquema con una estructura de Slack Block Kit. El campo
textsirve como un respaldo para notificaciones y accesibilidad. -
Haz clic en Siguiente.
Paso 3: Proporcionar el esquema de respuesta
El webhook entrante de Slack devuelve una respuesta en texto plano (ok en caso de éxito). No se requiere un esquema de respuesta personalizado. Haz clic en Siguiente, luego haz clic en Finalizado.
Parte 4: Mapear el mensaje en una transformación
En la transformación que precede a la actividad de POST, mapea el campo text del esquema de solicitud a un script que construya la cadena del mensaje.
Por ejemplo, para enviar un mensaje sobre un nuevo pedido, el script de transformación para el campo text podría ser:
<trans>
"Nuevo pedido #" + $order_id + " recibido de " + $customer_name + " por $" + $order_total
</trans>
Donde order_id, customer_name y order_total son variables globales pobladas 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 renderiza los saltos de línea en los mensajes del canal.
Verificar la integración
Despliega y ejecuta la operación para probar la notificación. Revisa los registros de operación para confirmar que la actividad de POST devolvió un estado HTTP 200. Si los registros de operación muestran un estado distinto de 200, verifica la ruta de la URL del webhook y confirma que la aplicación de Slack sigue instalada en el espacio de trabajo.