Synkron respons

Synkron respons

Kopier side

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.