Nodo Webhook

Descripción técnica y capacidades

Webhook El nodo habilita el disparo en tiempo real de acciones específicas en sistemas externos. Envía solicitudes HTTP POST a endpoints especificados al recibir datos de nodos conectados. A continuación construye cargas útiles JSON personalizadas con atributos estáticos y dinámicos, y ejecuta llamadas API a servicios de terceros.

El nodo extiende las capacidades de IoT Logic más allá del procesamiento y la transmisión de datos, permitiendo la integración directa con plataformas de mensajería, sistemas ERP y CRM, y aplicaciones personalizadas para iniciar acciones automatizadas según la configuración de su flujo.

Los nodos webhook se configuran por separado para cada flujo en la interfaz de la plataforma Navixy. Los nodos webhook funcionan como puntos terminales en un flujo y requieren al menos una conexión entrante para funcionar. No pueden pasar datos a nodos posteriores.

Cómo funcionan los nodos Webhook

Cuando los datos llegan a un nodo Webhook a través de una conexión entrante, éste ejecuta inmediatamente una solicitud HTTP POST al endpoint configurado. El nodo:

  1. Recopila los valores actuales de todos los atributos de los nodos ascendentes conectados

  2. Reemplaza las referencias de atributos dinámicos (por ejemplo, $"speed") por los valores reales del mensaje entrante

  3. Construye la carga útil JSON completa preservando la estructura que usted definió

  4. Envía la solicitud HTTP POST con los encabezados especificados al endpoint de destino

  5. Continúa sin esperar una respuesta, permitiendo que el flujo prosiga de inmediato

El webhook se dispara una vez por cada mensaje que lo alcanza. Si múltiples ramas en paralelo envían datos al webhook, se disparará por separado para cada mensaje entrante. Esta ejecución ocurre de forma independiente sin bloquear otros nodos en el flujo, garantizando el procesamiento continuo de datos independientemente de los tiempos de respuesta del sistema externo.

Integración en la arquitectura del flujo

Los nodos Webhook funcionan como puntos de terminación que convierten los datos procesados del dispositivo en llamadas API externas. En lugar de transmitir continuamente todos los datos del dispositivo como los nodos Output Endpoint, los webhooks ejecutan solicitudes API dirigidas con cargas útiles configuradas con precisión. Esta arquitectura permite:

  • Automatizaciones basadas en eventos: Disparar flujos de trabajo externos basados en condiciones del dispositivo, métricas calculadas o patrones de datos específicos identificados anteriormente en el flujo

  • Transmisión selectiva de datos: Enviar solo los atributos relevantes a sistemas externos, reduciendo la transferencia de datos innecesaria y los costes de las API

  • Ejecución en paralelo: Operar junto con otros nodos de salida, permitiendo disparos simultáneos de webhooks y la transmisión continua de datos a distintos destinos

  • Integración de múltiples fuentes: Aceptar conexiones entrantes desde múltiples ramas en paralelo y acceder a atributos de todos los nodos conectados

Capacidades del nodo

El nodo Webhook ofrece:

  • Ejecución HTTP POST: Envía solicitudes HTTP POST personalizadas a cualquier endpoint accesible usando los protocolos HTTP o HTTPS (se recomienda HTTPS)

  • Construcción dinámica de la carga útil: Genera cuerpos de solicitud JSON combinando valores estáticos con atributos dinámicos desde cualquier parte del flujo usando $"attribute_name" sintaxis

  • Configuración personalizada de encabezados: Admite hasta 10 encabezados HTTP definidos por el usuario para autenticación y requisitos específicos de la API

  • Soporte de atributos anidados: Hace referencia a estructuras de atributos complejas incluyendo objetos anidados y arrays dentro de la carga útil JSON

  • Ejecución independiente: Se dispara sin esperar respuestas ni bloquear el flujo, permitiendo una operación fiable independientemente de la disponibilidad del sistema externo

Opciones de configuración

El nodo Webhook le permite definir cómo su flujo se comunicará con sistemas externos mediante llamadas HTTP API.

Veamos qué elementos utiliza este nodo y qué puede configurar al trabajar con él.

Pasos de configuración

1

Especifique el título del nodo

Introduzca un nombre descriptivo que identifique el propósito del webhook.

  1. Use nombres que indiquen el servicio o la acción de destino (por ejemplo, "Slack Speed Alerts" o "CRM Ticket Creation")

  2. Este nombre aparece en el diagrama del flujo para una fácil identificación

2

Configure la URL del endpoint

Introduzca la URL completa a la que se enviarán las solicitudes POST.

  1. Incluya el protocolo: http:// o https:// (Se recomienda encarecidamente HTTPS)

  2. Asegúrese de que la URL apunte a un endpoint API válido que acepte solicitudes POST

  3. Ejemplo: https://api.example.com/v1/webhooks/device-alerts

3

Defina los encabezados HTTP

Agregue los encabezados requeridos por su API de destino.

  1. Haga clic en Agregar nuevo para crear pares clave-valor de encabezado

  2. Todos los encabezados son configurados por el usuario, incluido Content-Type

  3. Encabezados comunes incluyen:

    1. Content-Type: application/json (requerido para cargas JSON)

    2. Authorization: Bearer <token> (para la autenticación de la API)

    3. Claves API personalizadas o encabezados de autenticación según los requerimientos del servicio

  4. Haga clic en el icono de eliminar para quitar encabezados individuales

Se admite un máximo de 10 encabezados

4

Construya el cuerpo de la solicitud

Defina la estructura JSON que se publicará en el endpoint.

  1. Introduzca sintaxis JSON válida en el campo Body

  2. Use $"attribute_name" para hacer referencia a cualquier atributo de nodos conectados

  3. Admite estructuras JSON anidadas y arrays

  4. Las referencias de atributos funcionan con rutas anidadas (por ejemplo, $"location.latitude")

  5. Si un atributo referenciado es nulo o no existe, se enviará el valor null en el JSON

Ejemplo de cuerpo de webhook con atributos dinámicos:

{
  "alert_type": "speed_violation",
  "device_id": $"device_id",
  "current_speed": $"speed_mph",
  "threshold_exceeded": 80,
  "location": {
    "lat": $"latitude",
    "lng": $"longitude"
  },
  "timestamp": $"message_time",
  "driver": $"hardware_key"
}
5

Guarde su configuración

Haga clic en Aplicar para almacenar la configuración del nodo webhook.

Comportamiento de ejecución del webhook

El webhook se ejecuta sin esperar respuestas del endpoint externo. El éxito o el fallo de la solicitud del webhook no afectan a la operación continua del flujo ni bloquean a otros nodos para procesar datos.

Webhook vs transmisión continua de datos

nodo Webhook difiere fundamentalmente de Nodo Output Endpoint en propósito y patrón de ejecución:

nodo Webhook
Nodo Output Endpoint

Ejecuta llamadas API discretas en cada mensaje, enviando cargas útiles personalizadas que usted define. Ideal para desencadenar acciones externas, enviar notificaciones o transmitir datos selectivos a APIs REST.

Mantiene flujos de datos continuos vía MQTT, transmitiendo datos completos del dispositivo en formato Navixy Generic Protocol. Diseñado para la recopilación continua de telemetría y el monitoreo en tiempo real.

Elija los webhooks cuando necesite desencadenar automatizaciones externas o enviar solo atributos específicos a endpoints API. Utilice los output endpoints para alimentaciones continuas de datos a plataformas de análisis o sistemas de monitoreo. Ambos pueden coexistir en el mismo flujo.

Integración con sistemas externos

Los nodos Webhook sobresalen al desencadenar acciones basadas en eventos en sistemas que proporcionan APIs REST. Los patrones de integración comunes incluyen:

  • Plataformas de mensajería: Enviar notificaciones a Slack, Microsoft Teams, WhatsApp o Telegram cuando las condiciones del dispositivo cumplan criterios específicos

  • Sistemas ERP: Sincronizar datos del dispositivo con plataformas de planificación de recursos empresariales para actualizar niveles de inventario, disparar flujos de aprovisionamiento o registrar el uso de equipos para la programación de mantenimiento

  • Sistemas de tickets: Crear automáticamente tickets de soporte o solicitudes de servicio en plataformas CRM cuando se detecten problemas en el dispositivo

  • Servicios de alertas: Disparar SMS, correos electrónicos o notificaciones push a través de servicios como Twilio, SendGrid o Firebase cuando se excedan umbrales

  • Automatización empresarial: Iniciar flujos de trabajo en herramientas como Zapier, Make (Integromat) o n8n basados en la telemetría del dispositivo

  • Sistemas de telemática: Disparar acciones o automatizaciones específicas en soluciones de telemática de terceros basadas en datos procesados, permitiendo flujos de trabajo basados en eventos como recálculos de rutas, notificaciones al conductor o actualizaciones de estado en sistemas externos de gestión de flotas

  • Aplicaciones personalizadas: Activar lógica empresarial propietaria publicando eventos de dispositivos a APIs internas

Preguntas frecuentes

¿Cómo disparo webhooks solo bajo condiciones específicas?

Use el nodo Logic para implementar lógica condicional antes del webhook. El nodo Logic puede evaluar atributos del dispositivo y enrutar datos al webhook solo cuando se cumplan las condiciones. Para más detalles, consulte documentación del nodo Logic.

¿Puedo usar múltiples nodos Webhook en el mismo flujo?

Sí. Incluya múltiples nodos Webhook con diferentes configuraciones para activar varios sistemas externos basados en los mismos datos del dispositivo. Cada webhook se dispara de forma independiente cuando recibe datos.

¿Qué sucede si la solicitud del webhook falla?

El webhook se dispara sin esperar una respuesta y no vuelve a intentarlo automáticamente. Si el endpoint externo no está disponible o devuelve un error, el flujo continúa procesando normalmente. El webhook intentará dispararse de nuevo cuando llegue el siguiente mensaje entrante. Actualmente no hay registro de intentos fallidos del webhook.

¿Cómo me autentico con APIs externas?

Configure la autenticación completamente mediante encabezados personalizados. Enfoques comunes:

  • Tokens Bearer: Agregue el encabezado Authorization con el valor Bearer your_token_here

  • Claves API: Agregue encabezados personalizados según lo especificado por su proveedor de API

  • Autenticación básica: Agregue el encabezado Authorization con el valor Basic base64_encoded_credentials

Incluya siempre Content-Type: application/json como encabezado al enviar cargas JSON.

¿Puedo hacer referencia a atributos de múltiples nodos conectados?

Sí. El nodo webhook puede acceder a atributos de cualquier nodo conectado a él, incluidas ramas en paralelo. Si múltiples nodos envían datos al webhook, se dispara una vez por cada mensaje entrante y puede hacer referencia a atributos de la ruta de origen de ese mensaje.

¿Qué datos puedo incluir en el cuerpo del webhook?

Puede incluir cualquier combinación de:

  • Valores estáticos definidos directamente en su configuración JSON

  • Atributos dinámicos del flujo usando $"attribute_name" sintaxis

  • Atributos anidados de estructuras de datos complejas

  • Atributos calculados en Nodos Initiate Attribute o procesados a través de Nodos Logic

El cuerpo debe ser JSON válido. Si un atributo referenciado no existe o contiene un valor nulo, null se enviará en el JSON.

¿Cómo puedo probar la configuración de mi webhook?

Actualmente, las pruebas requieren desplegar el flujo y verificar los resultados en el endpoint de destino. Configure su webhook, guarde el flujo y envíe datos de prueba para verificar que el sistema externo recibe la carga esperada. Considere usar servicios de prueba de webhooks como webhook.site o RequestBin durante el desarrollo para inspeccionar las solicitudes exactas que se envían.

Última actualización

¿Te fue útil?