Logotipo Hedhog

Receba novidades do Hedhog no seu e-mail

Novos lançamentos, receitas e breaking changes — sem spam.

Voltar para os módulos CoreIntegrado no CoreModule
Captura de tela do módulo webhook-integration

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

FieldTypeRequiredNotes
userIdnumberyes
namestringyes

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

FieldTypeRequiredNotes
namestringyes
urlstringno
secretstringno
headersRecord<string, string>no

Atualiza uma integração de webhook.

Params
id (int)

Body

FieldTypeRequiredNotes
namestringno
urlstringno
secretstringno
headersRecord<string, string>no

Exclui uma ou mais integrações de webhook.

Body

FieldTypeRequiredNotes
idsnumber[]yesIDs 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

FieldTypeRequiredNotes
type"email" | "whatsapp_evolution" | "http_request" | "internal_api" | "app_command"yes
namestringno
ordernumberno
status"active" | "inactive"no
integration_profile_idnumberno
mail_idnumbernoRequired when type is "email"
email_tostringno
email_ccstringno
email_bccstringno
http_urlstringnoRequired when type is "http_request"
http_methodstringno
http_headersRecord<string, string>no
http_bodystringno
http_timeout_msnumberno
http_retry_countnumberno
internal_api_pathstringnoRequired when type is "internal_api"
internal_api_methodstringno
internal_api_bodyobjectno
app_command_slugstringnoRequired when type is "app_command"
app_command_paramsobjectno
whatsapp_target_type"phone" | "group"no
whatsapp_targetstringno
whatsapp_templatestringno

Atualiza uma ação de webhook.

Params
id (int), actionId (int)

Body

FieldTypeRequiredNotes
(same fields as POST action)partialnoAll fields from create action are optional

Exclui ações de uma integração de webhook.

Params
id (int)

Body

FieldTypeRequiredNotes
idsnumber[]yesIDs 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

FieldTypeRequiredNotes
(payload)anynoArbitrary 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

FieldTypeRequiredNotes
eventCatalogIdnumberyes
urlstringyes
secretstringno
headersRecord<string, string>no

Atualiza um webhook baseado em eventos.

Params
id (int)

Body

FieldTypeRequiredNotes
eventCatalogIdnumberno
urlstringno
secretstringno
headersRecord<string, string>no

Exclui um ou mais event webhooks.

Body

FieldTypeRequiredNotes
idsnumber[]yesIDs 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

FieldTypeRequiredNotes
namestringyes
slugstringyes
descriptionstringno
schemaobjectnoJSON Schema of the event payload

Atualiza uma entrada do catálogo de eventos.

Params
id (int)

Body

FieldTypeRequiredNotes
namestringno
slugstringno
descriptionstringno
schemaobjectno

Exclui uma ou mais entradas do catálogo de eventos.

Body

FieldTypeRequiredNotes
idsnumber[]yesIDs 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