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.