Réponse synchrone
En règle générale, un webhook répond immédiatement à l'appelant et votre workflow Shopify Flow s'exécute en arrière-plan. Lorsque la réponse synchrone est activée, l'application maintient la requête HTTP de l'appelant ouverte jusqu'à ce que votre workflow renvoie des données, puis renvoie celles-ci à la place.
Utile lorsque l'appelant a besoin d'une réponse, et pas seulement d'un accusé de réception : un formulaire affichant un résultat, un système nécessitant une valeur calculée, une recherche.
Allumez-le
Paramètres avancés -> Réponse synchrone sur le webhook.
Mettre en place le workflow
Un webhook de synchronisation déclenche le déclencheur « Sync Webhook Trigger », et non le déclencheur « Webhook Trigger » standard. Ce déclencheur comporte un champ supplémentaire, invocationId, qui identifie la requête spécifique en attente d'une réponse.
| Étape | Quoi ? |
|---|---|
| Déclencheur | Déclencheur de webhook de synchronisation |
| Condition | Webhook ID correspond à l'identifiant de votre webhook |
| Dernière action | Réponse du webhook de retour |
L'action se déroule sur trois terrains :
| Domaine | Que faut-il mettre dedans ? |
|---|---|
| Identifiant de l'invocation | Associez l'{{invocationId}} au déclencheur. Sans cela, votre réponse ne pourra pas être mise en correspondance avec l'appelant en attente et sera ignorée. |
| Corps de la réponse | Ce que reçoit la personne qui appelle - voir ci-dessous. |
| Type de contenu | Facultatif. La valeur par défaut est application/json ; utilisez text/plain pour le texte brut. |
Rédaction du corps de la réponse
Vous pouvez rédiger le corps du message directement dans le champ en utilisant les variables du déclencheur, ce qui suffit pour la plupart des workflows :
{"ok": true, "orderId": "{{fieldOne}}", "email": "{{fieldTwo}}"}
Tous les champs de déclencheur sont disponibles : {{fieldOne}} à {{fieldFour}}, {{rawBody}} et {{webhookId}}.
Pour toute opération nécessitant un traitement logique (recherche d'un client, calcul d'un montant total, mise en forme d'un objet volumineux, etc.), utilisez plutôt une action « Exécuter du code » plus tôt dans le workflow et liez son résultat ici.
Lorsqu'aucune réponse ne vous parvient
Si votre workflow ne répond pas dans les 15 secondes, l'appelant reçoit alors la réponse standard, à savoir la même 200 que renvoie un webhook non synchrone. Il ne s'agit en aucun cas d'une erreur et l'appelant n'est jamais laissé en attente. L'appel apparaît toujours dans l'historique et le workflow peut encore se terminer ; seule la réponse arrive trop tard pour être utile.
Les causes habituelles :
- Le workflow n'est pas activé.
- Il repose sur le déclencheur Webhook standard plutôt que sur celui de la synchronisation.
- Une branche s'est terminée sans atteindre la réponse du webhook de retour.
- L'identifiant d'invocation n'a pas été associé.
Ce qu'il faut savoir
- La première réponse l'emporte. Si deux workflows répondent à la même requête, l'appelant reçoit le le premier ; le deuxième est écarté.
- Les livraisons en double ne peuvent pas attendre. Une demande supprimée par Protection contre les livraisons en double renvoie immédiatement un résultat - aucun workflow n'est exécuté, il n'y a donc je n'ai rien à répondre.
- Un aller-retour typique dure entre 2 et 4 secondes, mais Shopify ne publie aucune garantie concernant les délais pour Shopify Flow. Considérez les réponses synchrones comme des réponses « au mieux » : rapides dans la pratique, avec un délai de 15 secondes une solution de repli en dernier recours.

