Skip to main content
Um trigger de webhook é o ponto de entrada de um workflow que começa com uma chamada HTTP recebida. Você declara um path e um method no node trigger. Quando você ativa o workflow, o Flowker atende esse path e executa o workflow em cada chamada que aceita. O input_contract do trigger decide quais payloads o Flowker aceita e como os decodifica. Escolha-o antes de escrever o node: ele é obrigatório e fixa o formato do payload para toda a rota.

Antes de começar



Os triggers já vêm incluídos. Você os descobre no catálogo e nunca cria um.
1

Liste os triggers incluídos

Listar triggers do catálogo retorna cada trigger com seu id, name e version. O id do trigger de webhook é webhook.
2

Leia o schema do trigger de webhook

Obter um trigger do catálogo retorna os mesmos campos mais schema — o JSON Schema contra o qual o Flowker valida o seu node trigger. Leia-o quando quiser a lista de campos direto da instância em execução.

Passo 2: Escolha o contrato de entrada


O modo fixa o formato do payload da rota. Uma rota xsd é XML e uma rota openapi é JSON. Uma rota open usa o format que você declara, e o format pertence apenas a esse modo. Escolha open quando o payload de quem chama não tem contrato publicado, ou quando você prefere que o próprio workflow decida o que é aceitável. Escolha xsd quando um parceiro envia XML definido por um documento XSD. Escolha openapi quando um parceiro envia JSON e você tem o documento OpenAPI que o descreve.
Uma rota openapi nunca aceita um payload sem verificação: quando o Flowker não consegue chegar a um veredito, ele rejeita a chamada com FLK-0720, e o workflow nunca vê esse payload. Uma rota xsd chega ao seu veredito por meio do serviço de validação XML que a sua implantação configura — um documento que não está em conformidade é rejeitado com XML_VALIDATION_FAILED, e um veredito em que o Flowker não pode confiar, com FLK-0720. Configure esse serviço antes de colocar uma rota xsd na frente de quem chama.

Passo 3: Decida como o webhook responde


Em uma rota sync, o response_view define a forma do corpo: O response_view não tem efeito em uma rota async. Para as regras completas de passthrough e para o override responseStatusCode, veja Modo de resposta síncrona.
Escolha async quando quem chama só precisa saber que o evento chegou. Escolha sync quando precisa da resposta na mesma chamada — por exemplo, um parceiro que espera uma decisão na mesma conexão.

Passo 4: Escreva o node trigger


O trigger de webhook é um node com type: "trigger" e estes campos em seu data: A configuração do trigger é um contrato fechado. Salvar um workflow cujo trigger de webhook omite path, method ou input_contract, esquece um campo que o seu modo input_contract exige, nomeia o id de schema ou um campo de operação de outro modo, ou carrega uma chave ou um valor que o schema não aceita falha com FLK-0934.
O Flowker registra o path com uma barra inicial e sem barra final, então payments/received, /payments/received e payments/received/ registram a mesma rota.

Passo 5: Ative o workflow


1

Crie o workflow

Envie o node junto com o resto do seu workflow para Criar um workflow. O workflow fica em status draft e o Flowker valida aqui a configuração do trigger — um erro de contrato responde FLK-0934.
2

Ative-o

Chame Ativar um workflow. A ativação registra o path e o método. Ela também resolve o que o contrato referencia. Um schema XSD ausente responde FLK-0930 e um schema OpenAPI ausente responde FLK-0931. Uma operação que o documento não declara responde FLK-0932, e uma operação sem request body responde FLK-0933.
Um único workflow ativo é dono de um par path e método dentro do seu tenant. Ativar um segundo workflow sobre o mesmo par responde FLK-0360. Desativar um workflow libera as suas rotas, então você pode entregar um path a uma nova versão.

Passo 6: Chame a rota e confirme que funciona


Envie a chamada como quem chama vai enviar:
Uma rota async responde 202 com o comprovante:
Uma rota sync responde com o resultado da execução, na forma que o seu response_view seleciona. O status que ela carrega depende da visão e de como a execução terminou — Modo de resposta síncrona guarda essas regras. Três sinais indicam que a rota funcionou:
  • Uma resposta que iniciou uma execução carrega X-Webhook-Workflow-ID e X-Webhook-Execution-ID, então você liga uma chamada ao workflow que ela alcançou e à execução que iniciou.
  • Obter resultados da execução informa os resultados por step e a saída final daquele executionId.
  • A entrada da execução carrega um objeto _webhook com o método, o path e o endereço de quem chama. Use-o para confirmar que o workflow viu a chamada correta. Veja Metadados do webhook.
Uma entrega repetida que carrega o mesmo Idempotency-Key retorna a execução original em vez de iniciar uma segunda, e o seu corpo carrega idempotencyReplayed: true com o status original. Envie uma chave nova para executar o workflow de novo. Os cinco verbos têm a sua própria página de referência: POST, GET, PUT, PATCH e DELETE.

Quando uma chamada falha


Uma rota JSON retorna code, title e message. Uma rota XML retorna um documento <error>. Veja a lista de erros do Flowker para todos os códigos e as duas formas.

Próximos passos


Guia de integração

Conecte o workflow a serviços externos e leia as regras completas de resposta síncrona.

Guia de design de workflows

Construa o resto do grafo em que o trigger entra.