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

# Eventos dos Webhooks

> Receba no seu servidor quando uma automação mudar de status ou quando uma execução (run) começar, terminar ou falhar.

<Tip>
  Na API você **pergunta**; no webhook a Notifique **avisa**. Ideal para pausar campanhas externas, abrir tickets de suporte ou auditar execuções sem polling.
</Tip>

## Em poucas palavras

* Toda entrega é um **POST** `application/json` para a URL cadastrada.
* Eventos `automation.*` cobrem **definição** (ativar/pausar) e **runs** (execuções).
* `instanceId` vem **vazio** (automação é do workspace, não de um canal).
* Ative **só** os eventos que sua integração usa.
* Responda **2xx rápido**; processamento pesado vai para fila no seu lado.

Configuração geral: [Webhooks](/guides/webhooks/index).

<Note>
  Isto é webhook **outbound** (Notifique → seu servidor). Para **disparar** uma automação com POST do seu sistema, configure o gatilho HTTP no editor da automação ou use [Eventos](/automations-api/como-funciona/eventos).
</Note>

***

## Como vem o POST

```json theme={null}
{
  "event": "automation.run.completed",
  "workspaceId": "clxx123...",
  "instanceId": "",
  "timestamp": "2026-07-25T16:05:00.000Z",
  "data": {
    "automationId": "clxx...",
    "runId": "clxx...",
    "contactId": "clxx...",
    "status": "COMPLETED",
    "previousStatus": "RUNNING",
    "eventName": "whatsapp.inbound",
    "isSandbox": false,
    "errorMessage": null,
    "startedAt": "2026-07-25T16:04:50.000Z",
    "completedAt": "2026-07-25T16:05:00.000Z"
  }
}
```

| Campo         | Descrição                                        |
| ------------- | ------------------------------------------------ |
| `event`       | Nome do evento (ex.: `automation.run.completed`) |
| `workspaceId` | ID do workspace                                  |
| `instanceId`  | Sempre vazio em automações                       |
| `timestamp`   | ISO 8601, use para anti-replay                   |
| `data`        | Campos da definição ou da run                    |

Headers: `X-Notifique-Signature`, `X-Notifique-Timestamp`, `X-Workspace-Id`, `X-Webhook-Event`.

***

## O que seu servidor deve responder

| Resposta                | Efeito                                      |
| ----------------------- | ------------------------------------------- |
| **2xx** em até \~10s    | Evento entregue; sai da fila                |
| **4xx / 5xx / timeout** | Retentativa automática (5 min, 30 min, 2 h) |

<Note>
  Processamento demorado? Responda **200** logo e processe em background.
</Note>

***

## Referência por evento

### Definição da automação

| Evento                      | Quando dispara                        | O que fazer com isso           |
| --------------------------- | ------------------------------------- | ------------------------------ |
| `automation.enabled`        | Definição passa para `ENABLED`        | Liberar o fluxo no seu sistema |
| `automation.disabled`       | Definição passa para `DISABLED`       | Pausar dependências externas   |
| `automation.status_changed` | Qualquer troca `ENABLED` ↔ `DISABLED` | Atualizar status no CRM/ERP    |

### Execução (run)

| Evento                     | Quando dispara             | O que fazer com isso                |
| -------------------------- | -------------------------- | ----------------------------------- |
| `automation.run.started`   | Uma run é criada e começa  | Abrir ticket / log de execução      |
| `automation.run.completed` | Run termina com sucesso    | Fechar fluxo / marcar sucesso       |
| `automation.run.failed`    | Run falha em passo crítico | Alertar e investigar `errorMessage` |
| `automation.run.cancelled` | Run cancelada (stop)       | Limpar estado pendente              |

***

## Payload de cada evento

<AccordionGroup>
  <Accordion title="automation.disabled">
    ```json theme={null}
    {
      "event": "automation.disabled",
      "workspaceId": "clxx...",
      "instanceId": "",
      "timestamp": "2026-07-25T16:00:00.000Z",
      "data": {
        "automationId": "clxx...",
        "name": "Boas-vindas WhatsApp",
        "status": "DISABLED",
        "previousStatus": "ENABLED",
        "triggerKind": "CHANNEL_INBOUND",
        "triggerChannel": "WHATSAPP",
        "triggerEventName": null,
        "graphVersion": 3
      }
    }
    ```
  </Accordion>

  <Accordion title="automation.run.completed">
    ```json theme={null}
    {
      "event": "automation.run.completed",
      "workspaceId": "clxx...",
      "instanceId": "",
      "timestamp": "2026-07-25T16:05:00.000Z",
      "data": {
        "automationId": "clxx...",
        "runId": "clxx...",
        "contactId": "clxx...",
        "status": "COMPLETED",
        "previousStatus": "RUNNING",
        "eventName": "whatsapp.inbound",
        "isSandbox": false,
        "errorMessage": null,
        "startedAt": "2026-07-25T16:04:50.000Z",
        "completedAt": "2026-07-25T16:05:00.000Z"
      }
    }
    ```
  </Accordion>
</AccordionGroup>

***

## Próximos passos

* [Introdução](/automations-api/como-funciona/introducao)
* [Eventos (disparo pela API)](/automations-api/como-funciona/eventos)
* [Webhooks](/guides/webhooks/index)
