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
- Um workflow em status
draft. Um workflow ativo fica bloqueado, portanto adicione o trigger antes de ativá-lo. Veja Primeiros passos com o Flowker para o caminho de criação e ativação. - A permissão
executesobre o recursowebhookspara cada sistema que você autoriza a chamar o path. Veja Protegendo um webhook. - Para o contrato
xsd: um documento XSD no registro. Faça o upload com Enviar um schema XSD e guarde o id retornado. A sua implantação também precisa do serviço de validação XML contra o qual o contrato valida — vejaXSD_VALIDATOR_URL. - Para o contrato
openapi: um documento OpenAPI no registro (Enviar um schema OpenAPI, coberto de ponta a ponta em Conectando a sua própria API). Você também precisa do path e do método da operação cujo request body descreve o seu payload. Derivar o schema de uma operação mostra esse request body.
Passo 1: Leia o contrato do trigger no catálogo
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.
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.
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.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:
async responde 202 com o comprovante:
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-IDeX-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
_webhookcom 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.
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.

