Resposta síncrona

Normalmente, um webhook responde ao solicitante imediatamente, e seu fluxo de trabalho do Shopify Flow é executado em segundo plano. Com a opção “Resposta síncrona” ativada, o aplicativo mantém a solicitação HTTP do solicitante aberta até que seu fluxo de trabalho envie os dados de volta e, então, retorna esses dados.

Útil quando quem está ligando precisa de uma resposta, e não apenas de um aviso de recebimento - um formulário que exiba um resultado, um sistema que exija um valor calculado, uma consulta.

Ligue-o

Configurações avançadas -> Resposta síncrona no webhook.

Crie o fluxo de trabalho

Um webhook de sincronização aciona o Gatilho de Webhook de Sincronização, e não o Gatilho de Webhook padrão. Esse gatilho contém um campo adicional, invocationId, que identifica a solicitação específica que aguarda uma resposta.

Etapa O que
Gatilho Gatilho de Webhook de Sincronização
Condição Webhook ID corresponde ao ID do seu webhook
Última ação Resposta do Webhook de Retorno

A ação ocorre em três campos:

Campo O que colocar
ID da invocação Defina o parâmetro {{invocationId}} a partir do gatilho. Sem ele, sua resposta não poderá ser associada ao chamador em espera e será descartada.
Corpo da resposta O que o interlocutor recebe - veja a seguir.
Tipo de conteúdo Opcional. O valor padrão é application/json; utilize text/plain para texto simples.

Como escrever o corpo da resposta

É possível escrever o corpo diretamente no campo utilizando as variáveis do gatilho, o que já é suficiente para a maioria dos fluxos de trabalho:

{"ok": true, "orderId": "{{fieldOne}}", "email": "{{fieldTwo}}"}

Todos os campos de gatilho estão disponíveis: {{fieldOne}} a {{fieldFour}}, {{rawBody}} e {{webhookId}}.

Para qualquer tarefa que exija lógica - consultar um cliente, calcular um total, moldar um objeto maior - , utilize uma ação “Executar Código” no início do fluxo de trabalho e vincule seu resultado aqui.

Quando não houver resposta

Caso seu fluxo de trabalho não responda em até 15 segundos, o chamador recebe a resposta padrão - o mesmo 200 que um webhook não síncrono retorna. Isso nunca constitui um erro, e o chamador nunca fica à espera. A invocação ainda aparece no Histórico, e o fluxo de trabalho ainda pode ser concluído; apenas a resposta chega tarde demais para ser utilizada.

As causas mais comuns:

  • O fluxo de trabalho não está ativado.
  • Ele é baseado no gatilho Webhook padrão, e não no gatilho de sincronização.
  • Um ramo foi concluído sem chegar à resposta do webhook de retorno.
  • O ID da invocação não foi vinculado.

Informações úteis

  • A primeira resposta vence. Se dois fluxos de trabalho responderem à mesma solicitação, o solicitante recebe o primeiro; o segundo é descartado.
  • Entregas duplicadas nunca podem esperar. Uma solicitação suprimida por Proteção contra entregas duplicadas retorna imediatamente - nenhum fluxo de trabalho é executado, portanto, há não tenho nada a responder.
  • O tempo típico de ida e volta é de 2 a 4 segundos, mas o site Shopify não oferece nenhuma garantia de tempo para Shopify Flow. Trate as respostas síncronas como “best-effort”: rápidas na prática, com o limite de 15 segundos plano alternativo como medida de segurança.