O nó Webhook está disponível tanto em Tools quanto em Skills. Só é permitido um nó Webhook por canvas.
Modos de operação
O nó Webhook opera em dois modos, determinados automaticamente pela presença doexecutionId:
Iniciar nova execução
Quando o request não inclui umexecutionId, o webhook cria uma nova execução do workflow do zero.
Caso de uso: Um sistema externo (CRM, ERP, gateway de pagamento) precisa disparar um processo automatizado no Jelou.
Retomar execução existente
Quando o request inclui umexecutionId, o webhook retoma uma execução que estava pausada esperando uma resposta externa.
Caso de uso: Um gateway de pagamento notifica que o pagamento foi processado, e o fluxo deve continuar de onde parou.
Configuração
Nome da variável
Define o nome sob o qual os dados do webhook serão armazenados dentro da variável$webhook. Os dados recebidos pelo request ficarão disponíveis em $webhook.<nomeVariável>. Por exemplo, se definir meuWebhook, poderá acessar o body via {{$webhook.meuWebhook.body}}, os headers via {{$webhook.meuWebhook.headers}}, etc.
Método HTTP
Selecione os métodos HTTP que o webhook aceita. Suporta GET, POST, PUT, PATCH e DELETE.Para métodos sem body (como GET), o
executionId para retomar deve ser enviado como query param: ?executionId=abc-123.Retomar múltiplas vezes (oneTimeOnly)
Por padrão, uma execução pode ser retomada mais de uma vez pelo webhook. Se precisar restringir isso — por exemplo, em integrações de pagamento onde uma confirmação só deve ser processada uma vez — você pode ativar a opção “Retomar apenas uma vez” nas configurações avançadas.| Configuração | Comportamento |
|---|---|
| oneTimeOnly desativado (padrão) | O webhook pode retomar a mesma execução múltiplas vezes |
| oneTimeOnly ativado | O webhook só retoma a execução uma vez; tentativas posteriores são ignoradas |
Variável $webhook
Quando um request chega ao nó Webhook, todas as informações do request ficam disponíveis através da variável $webhook. Funciona de maneira similar a $memory e $context.
| Propriedade | Descrição | Exemplo |
|---|---|---|
$webhook.<nomeVariável>.body | Corpo do request HTTP | {"evento": "pagamento_sucesso", "valor": 50} |
$webhook.<nomeVariável>.headers | Headers enviados no request | {"content-type": "application/json"} |
$webhook.<nomeVariável>.query | Query params da URL | {"ref": "campanha-123"} |
$webhook.<nomeVariável>.method | Método HTTP utilizado | POST |
$webhook.<nomeVariável>.mode | Modo da execução | new ou resume |
$webhook.<nomeVariável>.executionId | ID da execução atual | exec-abc-123 |
$webhook.<nomeVariável>.isNewExecution | Indica se é uma execução nova | true ou false |
Exemplo de uso no fluxo
Assumindo que você definiumeuWebhook como nome da variável, pode usar as propriedades em qualquer nó posterior:
Webhook em Skills
O nó Webhook está disponível em Skills, permitindo que fluxos conversacionais sejam disparados ou retomados por eventos externos.Considerações para Skills
Novas execuções em Skills
Novas execuções em Skills
Para iniciar uma nova execução de uma Skill via webhook, o request deve incluir o identificador do usuário (por exemplo, o número de telefone no WhatsApp). Isso é necessário para que a Skill possa enviar mensagens ao usuário através do canal correspondente.
Retomar execuções em Skills
Retomar execuções em Skills
Para retomar uma execução existente, só é necessário o
executionId. O sistema já possui o contexto do usuário da execução original.Restrições de plataforma
Restrições de plataforma
Em plataformas como WhatsApp, se não houver uma sessão ativa (janela de 24 horas) entre o usuário e o bot, o webhook não poderá enviar mensagens diretamente. Nesses casos, você pode usar um nó HSM dentro do fluxo para enviar um template aprovado que reabre a janela conversacional.
Versionamento
Versionamento
O webhook sempre executa a última versão publicada da Skill. Se houver mais de um bot do mesmo canal conectado ao projeto, o mais recente é utilizado.
Herança em workflows filhos
Herança em workflows filhos
Quando uma Skill filha herda webhooks de sua Skill pai, se a Skill filha receber um request, isso sobrescreve os dados do webhook do fluxo pai. Os dados de
$webhook se propagam para execuções filhas (nós Skill internos).Testes (Draft)
Para testar o webhook durante o desenvolvimento (antes de publicar), o nó gera uma URL de testes com o sufixo/test:
/test executa o draft atual do workflow, permitindo iterar sem afetar a versão publicada.
Retrocompatibilidade
Os webhooks criados antes desta atualização continuam funcionando sem alterações. As melhorias se aplicam apenas daqui para frente:- Webhooks existentes mantêm sua configuração legacy, incluindo o campo “variável” que armazenava os dados em
$context. - Webhooks novos sempre armazenam as informações na nova entidade
$webhook, oferecendo uma estrutura mais rica e consistente.
Para webhooks legacy que tinham uma variável de contexto configurada, o componente de configuração de variável continuará sendo exibido por retrocompatibilidade. Em webhooks novos, este campo não aparece já que os dados são sempre armazenados em
$webhook.Casos de uso comuns
Notificações de pagamento
Receba confirmações de gateways como Stripe ou MercadoPago e retome o fluxo de compra.
Integrações CRM
Dispare fluxos automatizados quando um registro é criado ou atualizado no seu CRM.
Eventos de e-commerce
Processe eventos como abandono de carrinho, envio de pedido ou devolução.
Automações IoT
Receba dados de sensores ou dispositivos para disparar fluxos de alerta ou processamento.