Synkron respons
Normalt svarer en webhook straks på anmodningen, og din Shopify Flow-arbejdsgang kører i baggrunden. Når »Synkron respons« er aktiveret, holder appen anmoderens HTTP-anmodning åben, indtil din arbejdsgang sender data tilbage, og returnerer i stedet disse data.
Nyttigt, når den, der ringer, har brug for et svar og ikke blot en bekræftelse - en formular, der viser et resultat, et system, der kræver en beregnet værdi, eller en opslag.
Tænd for den
Avancerede indstillinger -> Synkron respons på webhooken.
Opbyg arbejdsgangen
En synkroniserings-webhook udløser »Sync Webhook Trigger« og ikke den almindelige »Webhook Trigger«. Denne trigger indeholder et ekstra felt, »invocationId«, som identificerer den enkelte anmodning, der venter på et svar.
| Trin | Hvad |
|---|---|
| Udløser | Synkroniserings-webhook-udløser |
| Betingelse | Webhook ID svarer til dit webhook-id |
| Sidste handling | Webhook-svar |
Handlingen udspiller sig på tre områder:
| Felt | Hvad skal der lægges i |
|---|---|
| Anmodnings-ID | Bind {{invocationId}} fra udløseren. Uden dette kan dit svar ikke knyttes til den ventende opkaldende, og det bliver derfor kasseret. |
| Svartekst | Hvad den, der ringer, modtager - se nedenfor. |
| Indholdstype | Valgfrit. Standardindstillingen er application/json; brug text/plain til almindelig tekst. |
Skrivning af svarteksten
Du kan skrive selve teksten direkte i feltet ved hjælp af udløserenes variabler, hvilket er alt, hvad de fleste arbejdsgange har brug for:
{"ok": true, "orderId": "{{fieldOne}}", "email": "{{fieldTwo}}"}
Alle udløsere er tilgængelige: {{fieldOne}} til {{fieldFour}}, {{rawBody}} og {{webhookId}}.
Hvis der er behov for logik - f.eks. at slå en kunde op, beregne et samlet beløb eller omforme et større objekt - skal du i stedet bruge handlingen »Kør kode« tidligere i arbejdsgangen og indsætte resultatet her.
Når der ikke kommer noget svar
Hvis din arbejdsgang ikke svarer inden for 15 sekunder, modtager den, der kalder den, i stedet det almindelige svar - det samme 200, som en ikke-synkroniseret webhook returnerer. Der opstår aldrig en fejl, og den, der kalder den, bliver aldrig efterladt i uvished. Opkaldet vises stadig i historikken, og arbejdsgangen kan stadig afsluttes; det er blot sådan, at svaret kommer for sent til at kunne bruges.
De sædvanlige årsager:
- Arbejdsgangen er ikke aktiveret.
- Den er baseret på standard**-webhook-udløseren** i stedet for synkroniseringsudløseren.
- En gren blev afsluttet uden at nå til »Return Webhook Response«.
- Invocation-ID’et var ikke bundet.
Noget, der er værd at vide
- Det første svar vinder. Hvis to arbejdsgange besvarer den samme anmodning, får den, der har fremsat anmodningen, den først; den anden kasseres.
- Dobbeltleverancer kan ikke vente. En anmodning, der er blevet undertrykt af Beskyttelse mod dobbeltlevering returnerer straks - der køres ingen arbejdsgang, så der er intet at svare med.
- En typisk tur-retur-tid er 2-4 sekunder, men Shopify giver ingen tidsgaranti for Shopify Flow. Betragt synkrone svar som »best-effort«: hurtige i praksis, med de 15 sekunder en reserveplan som sidste udvej.

