Respuesta síncrona

Normalmente, un webhook responde al solicitante de forma inmediata y su flujo de trabajo de Shopify Flow se ejecuta en segundo plano. Con la opción «Respuesta sincrónica» activada, la aplicación mantiene abierta la solicitud HTTP del solicitante hasta que su flujo de trabajo devuelva los datos, y devuelve estos en su lugar.

Resulta útil cuando quien realiza la llamada necesita una respuesta, y no solo un acuse de recibo: un formulario que muestre un resultado, un sistema que requiera un valor calculado o una consulta.

Enciéndalo

Configuración avanzada -> Respuesta sincrónica en el webhook.

Configure el flujo de trabajo

Un webhook de sincronización activa el «Sync Webhook Trigger», y no el «Standard Webhook Trigger». Dicho activador incluye un campo adicional, invocationId, que identifica la solicitud concreta que está a la espera de una respuesta.

Paso ¿Qué?
Activador Activador de webhook de sincronización
Condición Webhook ID equivale al ID de su webhook
Última acción Respuesta del webhook de retorno

La acción se desarrolla en tres escenarios:

Campo Qué debe incluirse
ID de invocación Asigne el valor {{invocationId}} desde el activador. Sin él, su respuesta no podrá asociarse con la persona que espera y se descartará.
Cuerpo de la respuesta Lo que recibe la persona que llama: véase más abajo.
Tipo de contenido Opcional. El valor por defecto es application/json; utilice text/plain para texto sin formato.

Redacción del cuerpo de la respuesta

Puede escribir el cuerpo directamente en el campo utilizando las variables del activador, que es todo lo que necesitan la mayoría de los flujos de trabajo:

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

Están disponibles todos los campos de activación: {{fieldOne}} a {{fieldFour}}, {{rawBody}} y {{webhookId}}.

Para cualquier tarea que requiera lógica - buscar un cliente, calcular un total, dar forma a un objeto de mayor tamaño - , utilice una acción «Ejecutar código» en una fase anterior del flujo de trabajo y vincule su resultado aquí.

Cuando no se recibe respuesta

Si su flujo de trabajo no responde en un plazo de 15 segundos, el solicitante recibe en su lugar la respuesta habitual: la misma 200 que devuelve un webhook no sincrónico. Nunca se trata de un error y el solicitante nunca queda en espera. La invocación sigue apareciendo en el historial y es posible que el flujo de trabajo aún se complete; simplemente, la respuesta llega demasiado tarde para poder utilizarla.

Las causas habituales:

  • El flujo de trabajo no está activado.
  • Se basa en el activador Webhook estándar, en lugar del de sincronización.
  • Una rama ha finalizado sin llegar a la respuesta del webhook de retorno.
  • El ID de invocación no estaba vinculado.

Aspectos que conviene conocer

  • Gana la primera respuesta. Si dos flujos de trabajo responden a la misma solicitud, el solicitante recibe el el primero; el segundo se descarta.
  • Las entregas duplicadas nunca esperan. Una solicitud suprimida por Protección contra entregas duplicadas devuelve el resultado de inmediato; no se ejecuta ningún flujo de trabajo, por lo que no hay No tengo nada que responder.
  • Un tiempo de ida y vuelta típico es de entre 2 y 4 segundos, pero Shopify no ofrece ninguna garantía de tiempo para Shopify Flow. Considere las respuestas síncronas como de «mejor esfuerzo»: rápidas en la práctica, con un límite de 15 segundos una solución alternativa como medida de seguridad.