Resposta síncrona
Normalmente, um webhook responde imediatamente ao solicitante e o seu fluxo de trabalho do Shopify Flow é executado em segundo plano. Com a resposta síncrona ativada, a aplicação mantém a solicitação HTTP do solicitante aberta até que o seu fluxo de trabalho envie os dados de volta, devolvendo-os em seguida.
Útil quando quem contacta necessita de uma resposta, e não apenas de um aviso de receção - um formulário que apresente um resultado, um sistema que exija um valor calculado, uma consulta.
Ligue-o
Definições avançadas -> Resposta síncrona no webhook.
Criar o fluxo de trabalho
Um webhook de sincronização aciona o «Sync Webhook Trigger», e não o «Standard Webhook Trigger». Esse gatilho inclui um campo adicional, invocationId, que identifica o pedido específico que aguarda uma resposta.
| Passo | O quê |
|---|---|
| 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 decorre em três campos:
| Campo | O que colocar |
|---|---|
| ID da invocação | Defina {{invocationId}} a partir do gatilho. Sem este valor, a sua resposta não poderá ser associada ao interlocutor em espera e será descartada. |
| Corpo da resposta | O que o interlocutor recebe - ver abaixo. |
| Tipo de conteúdo | Opcional. O valor predefinido é application/json; utilize text/plain para texto simples. |
Escrever o corpo da resposta
Pode escrever o corpo diretamente no campo utilizando as variáveis do gatilho, o que é tudo o que a maioria dos fluxos de trabalho necessita:
{"ok": true, "orderId": "{{fieldOne}}", "email": "{{fieldTwo}}"}
Estão disponíveis todos os campos de gatilho: {{fieldOne}} a {{fieldFour}}, {{rawBody}} e {{webhookId}}.
Para tudo o que exija lógica - pesquisar um cliente, calcular um total, moldar um objeto de maiores dimensões - utilize uma ação «Executar Código» numa fase anterior do fluxo de trabalho e associe o respetivo resultado aqui.
Quando não se recebe resposta
Se o seu fluxo de trabalho não responder no prazo de 15 segundos, o chamador recebe, em vez disso, a resposta normal - a mesma 200 que um webhook não síncrono devolve. Não se trata nunca de um erro e o chamador nunca fica à espera. A invocação continua a aparecer no Histórico e o fluxo de trabalho pode ainda ser concluído; apenas a resposta chega demasiado tarde para ser utilizada.
As causas habituais:
- O fluxo de trabalho não está ativado.
- Está baseado no gatilho de Webhook padrão, em vez do gatilho de sincronização.
- Um ramo foi concluído sem chegar à resposta do webhook de retorno.
- O ID da invocação não foi associado.
Aspetos que convém conhecer
- A primeira resposta prevalece. Se dois fluxos de trabalho responderem ao mesmo pedido, o autor da chamada recebe o o primeiro; o segundo é descartado.
- As entregas duplicadas nunca podem esperar. Um pedido suprimido por Proteção contra entregas duplicadas retorna imediatamente - não é executado nenhum fluxo de trabalho, pelo que não há não tenho nada com que responder.
- Um tempo de resposta típico de ida e volta é de 2 a 4 segundos, mas a Shopify não publica qualquer garantia de tempo de resposta para Shopify Flow. Trate as respostas síncronas como «best-effort»: rápidas na prática, com o limite de 15 segundos uma solução alternativa como medida de segurança.

