Receba novidades do Hedhog no seu e-mail
Novos lançamentos, receitas e breaking changes — sem spam.

Submódulo Core
webhook-integration
Gerencia webhooks de entrada, o catálogo de eventos e os pipelines de ações/logs.
Caminho de origem: libraries/core/src/webhook-integration
Arquivo do módulo: webhook-integration.module.ts
Introdução
O submódulo Webhook Integration é a espinha dorsal de automação do HedHog, viabilizando fluxos orientados a eventos em ambas as direções: receber payloads arbitrários de sistemas externos e despachar ações ou notificações quando eventos de domínio internos ocorrem.
A cada integração de webhook de entrada é atribuído um UUID único que forma sua URL de recebimento: POST /webhook/:uuid. Sistemas externos — provedores de pagamento, serviços de formulários, pipelines de CI/CD, dispositivos IoT — podem enviar (POST) qualquer payload JSON para essa URL. O servidor valida uma assinatura HMAC opcional (usando o secret da integração contra o corpo bruto da requisição) e passa o payload pelo pipeline ordenado de ações da integração.
Um pipeline de ações é uma sequência de ações que executam em ordem quando o webhook é disparado. Cinco tipos de ação estão disponíveis. Email envia uma mensagem transacional usando um template do submódulo Mail, com os campos do payload substituídos nas variáveis do template. HTTP Request realiza uma chamada de saída para qualquer URL com método, headers, corpo, timeout e número de tentativas configuráveis. Internal API chama um endpoint do HedHog por caminho, permitindo operações disparadas por webhook, como criar registros ou gerar relatórios. App Command despacha um comando de aplicação registrado por slug com parâmetros tipados, desacoplando o handler do webhook de detalhes específicos de implementação. WhatsApp via Evolution API envia uma mensagem para um número de telefone ou grupo por meio de um integration profile do Evolution configurado.
Os webhooks de saída baseados em eventos (event-webhook) se inscrevem em eventos de domínio do catálogo de eventos de integração e entregam o payload do evento a uma URL externa configurada sempre que o evento é disparado. É assim que o HedHog envia dados para sistemas externos: quando um usuário é criado, uma compra é concluída ou um status muda, os event webhooks inscritos são notificados em tempo quase real por meio do processador de outbox.
Cada integração de webhook carrega um UUID (usado na URL de recebimento) e um secret (usado para validação HMAC). Ambos podem ser regenerados de forma independente por endpoints dedicados, sem recriar a integração nem perder suas definições de ações, dando suporte à rotação de credenciais sem downtime. POST /webhook-integration/:id/duplicate clona uma integração, incluindo todas as suas ações, simplificando a criação de pipelines de automação semelhantes.
Cada invocação é registrada em log. GET /webhook-integration/:id/log retorna os logs históricos paginados. GET /webhook-integration/:id/log/stream abre um stream de Server-Sent Events para depuração em tempo real, tornando possível rastrear falhas e verificar as transformações de payload sem recorrer a uma ferramenta externa de observabilidade.
Endpoints HTTP
32 endpoints
Lista todas as integrações de webhook.
- Query
- page, pageSize, search
Lista os tokens de API pertencentes a um usuário.
- Query
- userId (int)
Cria um novo token de API para um usuário.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| userId | number | yes | — |
| name | string | yes | — |
Lista as rotas internas da aplicação disponíveis como alvos de webhook.
Lista os comandos de aplicação disponíveis para o despacho de ações de webhook.
Obtém os detalhes de uma integração de webhook pelo ID.
- Params
- id (int)
Cria uma nova integração de webhook.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| url | string | no | — |
| secret | string | no | — |
| headers | Record<string, string> | no | — |
Atualiza uma integração de webhook.
- Params
- id (int)
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| name | string | no | — |
| url | string | no | — |
| secret | string | no | — |
| headers | Record<string, string> | no | — |
Exclui uma ou mais integrações de webhook.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| ids | number[] | yes | IDs to delete |
Regenera o UUID usado na URL de recebimento do webhook.
- Params
- id (int)
Regenera o secret token de uma integração de webhook.
- Params
- id (int)
Duplica uma integração de webhook, incluindo suas ações.
- Params
- id (int)
Lista as ações definidas para uma integração de webhook.
- Params
- id (int)
Cria uma ação para uma integração de webhook.
- Params
- id (int)
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| type | "email" | "whatsapp_evolution" | "http_request" | "internal_api" | "app_command" | yes | — |
| name | string | no | — |
| order | number | no | — |
| status | "active" | "inactive" | no | — |
| integration_profile_id | number | no | — |
| mail_id | number | no | Required when type is "email" |
| email_to | string | no | — |
| email_cc | string | no | — |
| email_bcc | string | no | — |
| http_url | string | no | Required when type is "http_request" |
| http_method | string | no | — |
| http_headers | Record<string, string> | no | — |
| http_body | string | no | — |
| http_timeout_ms | number | no | — |
| http_retry_count | number | no | — |
| internal_api_path | string | no | Required when type is "internal_api" |
| internal_api_method | string | no | — |
| internal_api_body | object | no | — |
| app_command_slug | string | no | Required when type is "app_command" |
| app_command_params | object | no | — |
| whatsapp_target_type | "phone" | "group" | no | — |
| whatsapp_target | string | no | — |
| whatsapp_template | string | no | — |
Atualiza uma ação de webhook.
- Params
- id (int), actionId (int)
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| (same fields as POST action) | partial | no | All fields from create action are optional |
Exclui ações de uma integração de webhook.
- Params
- id (int)
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| ids | number[] | yes | IDs to delete |
Lista os logs de execução de uma integração de webhook.
- Params
- id (int)
- Query
- page, pageSize, sort?
Transmite os logs de execução ao vivo de uma integração de webhook via SSE.
- Params
- id (int)
Recebe uma requisição de webhook de entrada e dispara as ações configuradas.
- Params
- uuid (string)
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| (payload) | any | no | Arbitrary JSON or form body forwarded to actions |
Lista todas as configurações de webhook baseadas em eventos.
- Query
- page, pageSize, search
Obtém um event webhook pelo ID.
- Params
- id (int)
Cria um novo webhook baseado em eventos.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| eventCatalogId | number | yes | — |
| url | string | yes | — |
| secret | string | no | — |
| headers | Record<string, string> | no | — |
Atualiza um webhook baseado em eventos.
- Params
- id (int)
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| eventCatalogId | number | no | — |
| url | string | no | — |
| secret | string | no | — |
| headers | Record<string, string> | no | — |
Exclui um ou mais event webhooks.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| ids | number[] | yes | IDs to delete |
Duplica a configuração de um event webhook.
- Params
- id (int)
Lista os logs de entrega de um event webhook.
- Params
- id (int)
- Query
- page, pageSize
Lista todos os eventos do catálogo de eventos de integração.
- Query
- page, pageSize, search
Retorna as entradas do catálogo de eventos formatadas como opções de select.
Obtém um evento do catálogo pelo ID.
- Params
- id (int)
Cria uma nova entrada no catálogo de eventos.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| slug | string | yes | — |
| description | string | no | — |
| schema | object | no | JSON Schema of the event payload |
Atualiza uma entrada do catálogo de eventos.
- Params
- id (int)
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| name | string | no | — |
| slug | string | no | — |
| description | string | no | — |
| schema | object | no | — |
Exclui uma ou mais entradas do catálogo de eventos.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| ids | number[] | yes | IDs to delete |
Ferramentas MCP
Ferramentas nomeadas que podem ser chamadas por modelos de IA através do Model Context Protocol (MCP).
core.webhooks.*Operações completas de CRUD e de gerenciamento para integrações de webhook
core.event-webhooks.*Operações completas de CRUD para vínculos de evento-para-webhook
core.integration-events.*Operações completas de CRUD e de catálogo para eventos de integração