> ## 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.

# Evento: Outreach fallido

> Recibe fallos terminales de outreach y deriva a revisión manual los leads que lo necesiten.

Se dispara cuando un seguimiento o recontacto saliente automático no logra alcanzar a un lead. Algunos ejemplos son la falta de datos de contacto, un opt-out, un número inválido, un canal no disponible o un resultado de entrega desconocido. Usa este evento para enviar el lead a revisión manual.

Este evento también informa cuando no se puede enviar un recontacto por Instagram porque la ventana de respuesta está cerrada.

## Payload

```json theme={null}
{
  "event_type": "outreach.failed",
  "event_id": "...",
  "webhook_id": "...",
  "delivery_id": "...",
  "timestamp": "2026-04-17T16:30:00.000Z",
  "client_id": "...",
  "test": false,
  "data": {
    "outreach": {
      "channel": "whatsapp",
      "reason": "invalid_number",
      "detail": "INVALID_PHONE:too_short",
      "source": "futurology_tasks",
      "failed_at": "2026-04-17T16:30:00.000Z"
    },
    "lead": {
      "id": "uuid",
      "first_name": "Tony",
      "last_name": "Stark",
      "email": null,
      "phone": null,
      "company": "Stark Industries",
      "source": "api",
      "external_id": null,
      "metadata": {}
    },
    "workflow": {
      "id": "uuid",
      "name": "Lead a intención de compra"
    }
  }
}
```

## Campos

### `data.outreach`

| Campo       | Tipo              | Descripción                                                                                  |
| ----------- | ----------------- | -------------------------------------------------------------------------------------------- |
| `channel`   | string \| null    | Canal registrado para el intento, como `whatsapp`, `instagram`, `email`, `call` o `sms`      |
| `reason`    | string            | Motivo del fallo. Consulta [Razones](#razones).                                              |
| `detail`    | string \| null    | Detalle de diagnóstico cuando existe. Es `null` para el fallback genérico `delivery_failed`. |
| `source`    | string            | Dónde se detectó el fallo: `futurology_tasks` o `recontact_log`                              |
| `failed_at` | string (ISO 8601) | Momento en que falló el intento                                                              |

### Razones

| `reason`               | Significado                                                                                                                |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `missing_contact_data` | El lead no tenía un dato de contacto para el canal seleccionado                                                            |
| `opt_out`              | El lead se dio de baja o está marcado como no contactable                                                                  |
| `invalid_number`       | El número de teléfono fue rechazado como inválido o no entregable                                                          |
| `channel_down`         | El canal no pudo enviar, por ejemplo, por un problema con la cuenta o porque se cerró la ventana de respuesta de Instagram |
| `unreachable`          | Nexor marcó al lead como inalcanzable en ese canal                                                                         |
| `ambiguous_delivery`   | La solicitud al proveedor pudo haberse completado, pero Nexor no pudo confirmar el resultado y evitó un reenvío automático |
| `delivery_failed`      | Fallback genérico para un fallo sin categorizar. `detail` es `null`.                                                       |

### `data.lead`

| Campo         | Tipo           | Descripción                  |
| ------------- | -------------- | ---------------------------- |
| `id`          | string (uuid)  | ID del lead                  |
| `first_name`  | string \| null | Nombre del lead              |
| `last_name`   | string \| null | Apellido del lead            |
| `email`       | string \| null | Email del lead               |
| `phone`       | string \| null | Teléfono del lead            |
| `company`     | string \| null | Empresa del lead             |
| `source`      | string         | Origen guardado para el lead |
| `external_id` | string \| null | ID de un sistema externo     |
| `metadata`    | object         | Metadata del lead            |

### `data.workflow`

El valor `workflow` puede ser `null` si la tarea fallida no tiene un workflow asociado.

| Campo  | Tipo          | Descripción         |
| ------ | ------------- | ------------------- |
| `id`   | string (uuid) | ID del workflow     |
| `name` | string        | Nombre del workflow |

## Filtros

Usa el selector **Agente** del dashboard para recibir este evento de todos los agentes o de uno solo.
