Synkron respons
Hold webhook-forespørselen åpen til Shopify Flow-arbeidsflyten svarer, og returner data til innringeren med Sync Webhook Trigger og Return Webhook Response.
Normalt svarer en webhook umiddelbart på forespørselen, og Shopify Flow-arbeidsflyten din kjører i bakgrunnen. Når Synkron respons er aktivert, holder appen HTTP-forespørselen åpen inntil arbeidsflyten din sender data tilbake, og returnerer disse i stedet.
Nyttig når den som ringer trenger et svar, ikke bare en bekreftelse - et skjema som viser et resultat, et system som krever en beregnet verdi, en oppslagssøk.
Slå den på
Avanserte innstillinger -> Synkron respons på webhooken.
Opprett arbeidsflyten
En synkroniserings-webhook utløser Sync Webhook Trigger, ikke den vanlige «Webhook Trigger». Denne utløseren inneholder et ekstra felt, invocationId, som identifiserer den enkelte forespørselen som venter på svar.
| Trinn | Hva |
|---|---|
| Utløser | Utløser for synkroniserings-webhook |
| Tilstand | Webhook ID tilsvarer ID-en til webhooken din |
| Siste handling | Svar fra retur-webhook |
Handlingen utspiller seg på tre områder:
| Felt | Hva skal man legge i |
|---|---|
| Anrop-ID | Bind {{invocationId}} fra utløseren. Uten denne opplysningen kan ikke svaret ditt kobles til den ventende innringeren, og det blir derfor forkastet. |
| Svartekst | Hva den som ringer mottar - se nedenfor. |
| Innholdstype | Valgfritt. Standardverdien er application/json; bruk text/plain for ren tekst. |
Skrive selve svaret
Du kan skrive selve teksten direkte i feltet ved å bruke utløserens variabler, og det er alt de fleste arbeidsflyter trenger:
{"ok": true, "orderId": "{{fieldOne}}", "email": "{{fieldTwo}}"}
Alle triggerfeltene er tilgjengelige: {{fieldOne}} til {{fieldFour}}, {{rawBody}} og {{webhookId}}.
For alt som krever logikk - å slå opp en kunde, beregne en sum, forme et større objekt - bør du bruke en Kjør kode-handling tidligere i arbeidsflyten og i stedet koble resultatet fra den til denne handlingen.
Når det ikke kommer noe svar
Hvis arbeidsflyten din ikke svarer innen 15 sekunder, får den som kaller inn det vanlige svaret i stedet - det samme 200 som en ikke-synkronisert webhook returnerer. Det er aldri en feil, og den som kaller inn blir aldri hengende. Kallingen vises fortsatt i historikken, og arbeidsflyten kan fortsatt fullføres; det er bare svaret som kommer for sent til å kunne brukes.
De vanligste årsakene:
- Arbeidsflyten er ikke aktivert.
- Den er basert på standard Webhook-utløseren, ikke synkroniseringsutløseren.
- En gren ble fullført uten at Return Webhook Response ble nådd.
- Invokasjons-ID-en var ikke bundet.
Det er verdt å vite
- Det første svaret vinner. Hvis to arbeidsflyter svarer på den samme forespørselen, får den som har sendt forespørselen først; den andre blir forkastet.
- Dobbelte leveranser kan ikke vente. En forespørsel som er blokkert av Beskyttelse mot dobbeltlevering returnerer umiddelbart - ingen arbeidsflyt kjører, så det er har ingenting å svare med.
- En typisk tur-retur-tid er 2-4 sekunder, men Shopify gir ingen tidsgaranti for Shopify Flow. Behandle synkrone svar som «best-effort»: raskt i praksis, med 15 sekunder reserveplan som sikkerhetsnett.
