> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/user/es/guide/account/iot-logic/nodes/webhook-node.md).

# Webhook

Envíe solicitudes HTTP POST a APIs externas cuando IoT Logic reciba datos del dispositivo. Genere cargas JSON personalizadas con valores estáticos y atributos de telemetría dinámicos.

## Visión general técnica y capacidades

{% columns %}
{% column width="58.333333333333336%" %}
**Webhook** El nodo permite activar acciones específicas en tiempo real en sistemas externos. Envía solicitudes HTTP POST a los puntos de conexión especificados al recibir datos de nodos conectados. Luego, construye cargas útiles JSON personalizadas con atributos estáticos y dinámicos, y ejecuta llamadas a la API de servicios de terceros.
{% endcolumn %}

{% column width="41.666666666666664%" %}

<figure><img src="https://1900701122-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-0b4156bcc8f11f49a91ad380aa20bf05842c617b%2Fiot-logic-webhook-tile.png?alt=media" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

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

{% hint style="info" %}
Los nodos Webhook se configuran por separado para cada flujo en la interfaz de usuario 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 transmitir datos a nodos posteriores.
{% endhint %}

<figure><img src="https://1900701122-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-21ecc9198943832f7ef089cac12b989f3aa37aec%2Fiot-logic-webhook-in-flow.png?alt=media" alt=""><figcaption></figcaption></figure>

### Cómo funcionan los nodos Webhook

Cuando los datos llegan a un nodo Webhook mediante una conexión entrante, este ejecuta inmediatamente una solicitud HTTP POST al punto de conexión configurado. El nodo:

1. Recopila los valores actuales de todos los atributos de los nodos ascendentes conectados
2. Reemplaza las referencias a atributos dinámicos (p. ej., `{{speed}}`) con valores reales del mensaje entrante
3. Construye la carga útil JSON completa conservando la estructura definida
4. Envía la solicitud HTTP POST con los encabezados especificados al punto de conexión de destino
5. Continúa sin esperar una respuesta, lo que permite que el flujo prosiga de inmediato

El Webhook se activa una vez por cada mensaje que lo alcanza. Si varias ramas paralelas envían datos al Webhook, se activa por separado para cada mensaje entrante. Esta ejecución se realiza de forma independiente sin bloquear otros nodos del flujo, lo que garantiza el procesamiento continuo de datos independientemente de los tiempos de respuesta del sistema externo.

Cada **Webhook** resultado de activación del nodo aparece en [Analizador de datos](/docs/user/es/guide/account/iot-logic/data-stream-analyzer.md) como un atributo llamado según el **ID del nodo** (que se muestra en el cuadro de diálogo de configuración del nodo, por ejemplo `webhook_1a2b3c4d`). El valor es `0` cuando el nodo no se ha activado y `1` cuando lo ha hecho, lo que le permite confirmar la entrega y distinguir entre varios nodos Webhook en el mismo flujo.

### Integración de la arquitectura de flujo

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

* **Automatizaciones basadas en eventos**: Active flujos de trabajo externos según las condiciones del dispositivo, las métricas calculadas o los patrones de datos específicos identificados previamente en el flujo
* **Transmisión selectiva de datos**: Envíe solo los atributos relevantes a sistemas externos, lo que reduce la transferencia de datos innecesaria y los costos de API
* **Ejecución paralela**: Opere junto con otros nodos de salida, lo que permite activaciones simultáneas de Webhook y transmisión continua de datos a distintos destinos
* **Integración de múltiples fuentes**: Acepte conexiones entrantes de varias ramas paralelas y acceda a los atributos de todos los nodos conectados

### Capacidades del nodo

El **Nodo Webhook** ofrece:

* **Ejecución de HTTP POST**: Envía solicitudes HTTP POST personalizadas a cualquier punto de conexión accesible mediante los protocolos HTTP o HTTPS (se recomienda HTTPS)
* **Construcción dinámica de cargas útiles**: Crea cuerpos de solicitud JSON que combinan valores estáticos con atributos dinámicos de cualquier parte del flujo mediante `{{attribute_name}}` sintaxis
* **Configuración de encabezados personalizados**: Admite hasta 10 encabezados HTTP definidos por el usuario para la autenticación y requisitos específicos de la API
* **Compatibilidad con atributos anidados**: Hace referencia a estructuras de atributos complejas, incluidos objetos y matrices anidados dentro de la carga útil JSON
* **Ejecución independiente**: Se activa sin esperar respuestas ni bloquear el flujo, lo que permite un funcionamiento confiable independientemente de la disponibilidad del sistema externo

## Opciones de configuración

{% columns %}
{% column valign="middle" %}
El nodo Webhook le permite definir cómo se comunicará su flujo con sistemas externos mediante llamadas a API HTTP.
{% endcolumn %}

{% column %}

<figure><img src="https://1900701122-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-11bf6de89a59cf76114222886657ad0d1edcd308%2FWebhook_node_edit.png?alt=media" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

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

### Pasos de configuración

{% stepper %}
{% step %}

#### Especifique el nombre del nodo

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

* Use nombres que indiquen el servicio o la acción de destino (p. ej., "Alertas de velocidad de Slack" o "Creación de tickets de CRM")
* Este nombre aparece en el diagrama del flujo para facilitar su identificación
  {% endstep %}

{% step %}

#### ID del nodo (generado automáticamente)

Debajo del campo Nombre, el cuadro de diálogo muestra un **ID del nodo** (por ejemplo, `webhook_1a2b3c4d`). Este campo es de solo lectura — no puede editarlo ni establecer su valor.

* El ID se genera automáticamente cuando se crea el nodo y permanece igual durante toda la vida útil del nodo
* Úselo para distinguir los resultados de este nodo de los de otros nodos Webhook en [Analizador de datos](/docs/user/es/guide/account/iot-logic/data-stream-analyzer.md), donde aparece como un atributo que muestra `0` (no activado) o `1` (activado)
  {% endstep %}

{% step %}

#### Configurar la URL del punto de conexión

Introduzca la URL completa a la que se envían las solicitudes POST.

* Incluya el protocolo: `http://` o `https://` (se recomienda encarecidamente HTTPS)
* Asegúrese de que la URL apunte a un punto de conexión de API válido que acepte solicitudes POST
* Ejemplo: `https://api.example.com/v1/webhooks/device-Alertas`
  {% endstep %}

{% step %}

#### Definir encabezados HTTP

Agregue cualquier encabezado requerido por su API de destino.

1. Haga clic en **Añadir encabezado** para crear pares clave-valor de encabezado\
   Todos los encabezados son configurados por el usuario, incluido Content-Type. Los encabezados comunes incluyen:
   * `Content-Type: application/json` (requerido para cargas útiles JSON)
   * `Authorization: Bearer <token>` (para la autenticación de la API)
   * Llaves API personalizadas o encabezados de autenticación según los requisitos del servicio
2. Haga clic en el icono de eliminar para quitar encabezados individuales

{% hint style="info" %}
Se admiten como máximo 10 encabezados
{% endhint %}
{% endstep %}

{% step %}

#### Construya el cuerpo de la solicitud

Cambie a la **Cuerpo** pestaña y defina la estructura JSON que se envía al endpoint:

* Introduzca una sintaxis JSON válida en el campo Cuerpo
* Use `{{attribute_name}}` para hacer referencia a cualquier atributo de los nodos conectados
* Admite estructuras JSON anidadas y matrices
* Las referencias de atributos funcionan con rutas anidadas (por ejemplo, `{{location.latitude}}`)
* Si un atributo al que se hace referencia es null o no existe, el valor `null` se envía en el JSON

**Ejemplo del cuerpo del Webhook con atributos dinámicos:**

```json
{
  "alert_type": "speed_violation",
  "device_id": "{{device_id}}",
  "current_speed": "{{speed_mph}}",
  "threshold_exceeded": 80,
  "location": {
    "lat": "{{latitude}}",
    "lng": "{{longitude}}"
  },
  "timestamp": "{{message_time}}", 
  "conductor": "{{hardware_key}}"
}
```

{% endstep %}

{% step %}

#### Guarde su configuración

Haga clic en **Aplique los cambios** para almacenar la configuración del nodo Webhook.
{% endstep %}
{% endstepper %}

## Comportamiento de ejecución de Webhook

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

{% hint style="danger" %}
Actualmente, la ejecución de Webhook no incluye reintentos automáticos, registro de intentos fallidos ni manejo de respuestas. Si un endpoint devuelve un error o agota el tiempo de espera, el Webhook se activará de nuevo en el siguiente mensaje entrante. Las futuras actualizaciones pueden incluir límites de frecuencia definidos por el destino y encolado de solicitudes.
{% endhint %}

### Webhook frente a la transmisión continua de datos

**Nodo Webhook** se diferencia fundamentalmente de **Nodo de Salida** en cuanto a su propósito y patrón de ejecución:

| Nodo Webhook                                                                                                                                                                                                         | Nodo de Salida                                                                                                                                                                                                                     |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ejecuta llamadas API independientes en cada mensaje y envía cargas útiles personalizadas que usted defina. Es ideal para activar acciones externas, enviar notificaciones o transmitir datos específicos a API REST. | Mantiene flujos continuos de datos mediante MQTT, transmitiendo los datos completos del dispositivo en formato Navixy Generic Protocol. Está diseñado para la recopilación continua de telemetría y la supervisión en tiempo real. |

Elija Webhook cuando necesite activar automatizaciones externas o enviar solo atributos específicos a endpoints de API. Use los endpoints de salida para flujos continuos de datos hacia plataformas de análisis o sistemas de monitoreo. Ambos pueden coexistir en el mismo flujo.

### Integración con sistemas externos

Los nodos Webhook destacan para activar acciones basadas en eventos en sistemas que proporcionan API REST. Los patrones de integración comunes incluyen:

* **Plataformas de mensajería**: Envíe notificaciones a Slack, Microsoft Teams, WhatsApp o Telegram cuando las condiciones del dispositivo cumplan criterios específicos
* **Sistemas ERP**: Sincronice los datos del dispositivo con plataformas de planificación de recursos empresariales para actualizar los niveles de inventario, activar flujos de trabajo de aprovisionamiento o registrar el uso del equipo 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 alerta**: Active notificaciones por SMS, correo electrónico o push mediante servicios como Twilio, SendGrid o Firebase cuando se superen los umbrales
* **Automatización empresarial**: Inicie flujos de trabajo en herramientas como Zapier, Make (Integromat) o n8n según la telemetría del dispositivo
* **Sistemas telemáticos**: Active acciones o automatizaciones específicas en soluciones telemáticas de terceros con base en datos procesados, lo que permite flujos de trabajo basados en eventos, como recálculos de ruta, notificaciones al conductor o actualizaciones de estado en sistemas externos de gestión de flotas
* **Aplicaciones personalizadas**: Active la lógica de negocio propia enviando eventos del dispositivo a las API internas

## Preguntas frecuentes

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

Use el **IF/THEN Lógica** nodo para implementar lógica condicional antes del webhook. El **IF/THEN Lógica** nodo puede evaluar atributos del dispositivo y enviar datos a webhook solo cuando se cumplan las condiciones. Para más detalles, consulte [IF/THEN Lógica](/docs/user/es/guide/account/iot-logic/nodes/logic-node.md).

#### ¿Puedo usar varios nodos Webhook en el mismo flujo?

Sí. Incluya varios **nodos Webhook** con distintas configuraciones para activar varios sistemas externos según los mismos datos del dispositivo. Cada webhook se activa de forma independiente cuando recibe datos.

#### ¿Qué sucede si falla la solicitud del webhook?

El webhook se activa sin esperar una respuesta y no reintenta automáticamente. Si el endpoint externo no está disponible o devuelve un error, el flujo continúa procesándose con normalidad. El webhook vuelve a intentar activarse cuando llega el siguiente mensaje. Actualmente, no hay registro de los intentos fallidos del webhook.

#### ¿Cómo me autentico con API externas?

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

* **Tokens Bearer**: Agregue el encabezado `Authorization` con el valor `Bearer your_token_here`
* **Llaves API**: Agregue encabezados personalizados según lo especificado por el proveedor de su 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 varios nodos conectados?

Sí. El nodo Webhook puede acceder a atributos de cualquier nodo conectado a él, incluidas las ramas paralelas. Si varios nodos envían datos al webhook, este se activa 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 Iniciar atributo** o procesados mediante **IF/THEN Lógica** nodos

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

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

Abra [Analizador de datos](/docs/user/es/guide/account/iot-logic/data-stream-analyzer.md) para el flujo y seleccione el dispositivo desencadenante. Busque el atributo que coincida con el ID del nodo de este nodo: su valor cambia a `1` cada vez que se activa el webhook, `0` de lo contrario. Esto confirma que el webhook se activó sin necesidad de acceder al endpoint de destino.

Para verificar que el destino realmente recibió la carga útil 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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://navixy.com/docs/user/es/guide/account/iot-logic/nodes/webhook-node.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
