Histórico e resolução de problemas
Todas as solicitações que chegam a um webhook são registadas - quer sejam aceites, quer sejam rejeitadas. O histórico é o primeiro local onde se deve procurar quando algo não ocorreu.
Leitura de uma invocação
Abra o «Histórico» e clique numa entrada. Obterá a data e hora, o estado, o remetente, a duração, o payload, os cabeçalhos da solicitação (mascarados), a cadeia de consulta e, em caso de falhas, o erro e todas as tentativas de repetição.
| Estado | Significado |
|---|---|
| Em espera | Aceite e colocado em fila, ainda não entregue a Shopify Flow |
| Sucesso | Shopify Flow aceitou o gatilho |
| Falha | A entrega falhou definitivamente - a página de detalhes indica o motivo |
A coluna «Invoked by» indica-lhe de onde provém uma chamada: User (um sistema externo), Flow (uma ação do Shopify Flow que chama o webhook), Test (o botão «Testar») ou CURL.


Recusas e o que cada uma delas significa
Um pedido rejeitado nunca chega ao Shopify Flow. O corpo da resposta contém um código de estado code, legível por máquina:
| Código | HTTP | O que correu mal | Corrigir |
|---|---|---|---|
webhook_not_found |
404 | Código abreviado desconhecido | Verifique o URL; o webhook poderá ter sido eliminado |
webhook_disabled |
400 | O Webhook está desativado | Ative-o na página do webhook |
unauthorized |
401 | O token está em falta ou está incorreto | Verifique o token e o nome do cabeçalho |
missing_signature |
401 | Modo HMAC, sem cabeçalho de assinatura | Envie o cabeçalho de assinatura que a sua predefinição espera |
invalid_signature |
401 | A assinatura não correspondeu | Confirme o segredo de assinatura e verifique se o corpo da mensagem não foi alterado durante a transmissão |
auth_not_configured |
401 | O modo de autenticação está definido, mas não foi guardado nenhum token | Guarde um token no webhook |
invalid_json |
400 | O corpo da mensagem não é um JSON válido | Envie JSON válido ou defina o tipo de conteúdo (Content-Type) que o corpo da mensagem efetivamente possui (os dados de formulário e o XML também são lidos) |
invalid_body |
400 | Não foi possível ler um formulário ou o corpo XML, ou o corpo corresponde ao valor literal null |
Envie um objeto JSON ou um corpo que corresponda ao seu Content-Type |
mapping_field_missing |
400 | Falta um campo mapeado na payload | Envie o campo ou anule a sua atribuição |
unexpected_fields |
400 | O corpo contém campos que não estão mapeados | Mapeie-os, elimine-os ou ative a opção «Permitir corpo de pedido personalizado» |
ip_not_allowed |
403 | O endereço do autor da chamada não consta da lista de endereços IP autorizados do webhook | Consulte Listas de endereços IP autorizados |
invalid_proxy_signature |
401 | O endereço do proxy da aplicação foi acedido diretamente, em vez de ser acedido através do domínio da sua loja | Utilize o URL do webhook exatamente tal como é apresentado na aplicação - consulte CORS, o URL do proxy da aplicação e as chamadas do navegador |
payload_too_large |
413 | Shopify Flow payload superior a 50 KB | Envie menos dados ou desative os botões de ativação/desativação dos dados de pedido |
quota_exceeded |
400 | Limite do plano atingido | Consulte Planos e utilização |
Inspecionador de Pedidos em Tempo Real
Enquanto tiver um webhook aberto no editor, o inspetor mostra os pedidos que chegam em tempo real - incluindo os rejeitados, com a respetiva justificação. Esta é, de longe, a forma mais rápida de depurar um remetente: envie um pedido e observe o seu destino.
As duplicatas suprimidas também aparecem aqui, identificadas como tal - consulte Proteção contra entregas duplicadas.
Repetição
Qualquer invocação anterior pode ser reproduzida a partir da respetiva página de detalhes. A reprodução reenvia a mesma payload através do mesmo webhook.
Há duas coisas para as quais é muito bom:
- Criar um fluxo de trabalho no Flow. Registe eventos no «Webhook Trigger» e, em seguida, reproduza um evento real Efetue essa chamada para que o Shopify Flow aprenda os nomes reais dos seus campos.
- Recuperação após uma falha no fluxo de trabalho. Corrija o fluxo de trabalho e, em seguida, repita os eventos que foram executados embora estivesse errado.
As repetições são identificadas como tal no histórico e não são contabilizadas no seu plano.
Situações comuns
Recebem-se chamadas, mas o fluxo de trabalho não é executado. Quase sempre, a condição relativa ao ID do Webhook. Um fluxo de trabalho com o gatilho «Webhook» recebe eventos de todos os Webhooks de que é titular, pelo que necessita de uma condição que corresponda ao ID específico do Webhook - consulte Crie o seu primeiro webhook.
O fluxo de trabalho é executado duas vezes. Ou dois fluxos de trabalho utilizam o «Webhook Trigger» sem condições distintas, ou o seu remetente está a tentar novamente. O histórico indica-lhe qual das situações se verifica: duas entradas significam que chegaram dois pedidos. Ative a opção Proteção contra entregas duplicadas.
Não consta absolutamente nada no Histórico. O pedido nunca nos chegou. Verifique o URL e o código curto, e certifique-se de que o remetente não está a falhar no TLS ou no DNS da sua parte.
O estado permanece em «Pendente». A entrega é repetida com um período de espera; uma falha permanente altera o estado para «Falha», indicando o motivo. Se permanecer pendente durante um período invulgarmente longo, consulte status.codecreationlabs.cloud.

