> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getnexor.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Descripcion General

Los webhooks se configuran en el panel en Settings -> Integrations -> Webhooks.

Los webhooks te permiten recibir notificaciones en tiempo real cuando ocurren eventos en Nexor. En lugar de consultar la API constantemente, Nexor envia un HTTP POST a tu endpoint cada vez que un lead cambia de estado, una reunion es agendada, cancelada o completada.

## Como funciona

1. **Configura** un webhook en el [panel de Nexor](https://app.getnexor.ai/organization/webhooks) con la URL de tu endpoint y los eventos que deseas recibir.
2. **Nexor detecta** un evento (ej. el estado del lead cambia de `new` a `contacted`).
3. **Nexor envia** una solicitud POST firmada a tu URL con el payload del evento.
4. **Tu servidor** responde con `2xx` para confirmar la recepcion.

Si tu servidor no responde o retorna un error, Nexor reintenta hasta 3 veces con backoff exponencial (1 min, 5 min, 30 min).

## Eventos soportados

| Tipo de evento                | Se dispara cuando                                                                                                                               |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `workflow_run.status_changed` | El estado de un lead cambia dentro de un workflow (ej. `new` a `contacted`, `contacted` a `qualified`)                                          |
| `meeting.scheduled`           | Se agenda una reunion con un lead                                                                                                               |
| `meeting.confirmed`           | Un lead confirma asistencia a una reunion                                                                                                       |
| `meeting.cancelled`           | Una reunion es cancelada                                                                                                                        |
| `meeting.completed`           | Una reunion se marca como completada                                                                                                            |
| `meeting.no_show`             | Un lead es marcado como inasistente a una reunion                                                                                               |
| `outreach.failed`             | Un seguimiento o recontacto automatico no logra alcanzar a un lead (numero invalido, opt-out, sin datos de contacto, canal caido, inalcanzable) |

## Estructura del payload

Cada entrega de webhook sigue el mismo formato:

```json theme={null}
{
  "event_type": "workflow_run.status_changed",
  "event_id": "550e8400-e29b-41d4-a716-446655440000",
  "webhook_id": "your-webhook-uuid",
  "delivery_id": "unique-delivery-uuid",
  "timestamp": "2026-04-17T16:30:00.000Z",
  "client_id": "your-client-uuid",
  "test": false,
  "data": {
    // Payload especifico del evento (ver paginas de eventos)
  }
}
```

| Campo         | Tipo              | Descripcion                                                |
| ------------- | ----------------- | ---------------------------------------------------------- |
| `event_type`  | string            | El evento que disparo la entrega                           |
| `event_id`    | string (uuid)     | ID unico del evento                                        |
| `webhook_id`  | string (uuid)     | ID de tu configuracion de webhook                          |
| `delivery_id` | string (uuid)     | ID unico para este intento de entrega especifico           |
| `timestamp`   | string (ISO 8601) | Cuando ocurrio el evento                                   |
| `client_id`   | string (uuid)     | Tu ID de cliente de Nexor                                  |
| `test`        | boolean           | `true` si fue enviado mediante el boton "Test" en el panel |
| `data`        | object            | Payload especifico del evento                              |

## Headers

Cada entrega incluye estos headers:

| Header                | Descripcion                                        |
| --------------------- | -------------------------------------------------- |
| `Content-Type`        | `application/json`                                 |
| `X-Nexor-Event`       | Tipo de evento (ej. `workflow_run.status_changed`) |
| `X-Nexor-Delivery-ID` | ID unico de entrega                                |
| `X-Nexor-Timestamp`   | Timestamp Unix (segundos)                          |
| `X-Nexor-Webhook-ID`  | Tu ID de webhook                                   |
| `X-Nexor-Signature`   | Firma HMAC-SHA256 para verificacion                |
