Synkron respons

Synkron respons

Kopiera sidan

Håll kvar den som ringer tills ditt Shopify Flow-arbetsflöde svarar, med hjälp av utlösaren ”Sync Webhook” och åtgärden ”Return Webhook Response”.

Normalt svarar en webhook omedelbart på anropet och ditt Shopify Flow-arbetsflöde körs i bakgrunden. När ”Synkron respons” är aktiverat håller appen anroparens HTTP-förfrågan öppen tills ditt arbetsflöde skickar tillbaka data, och returnerar den istället.

Användbart när den som ringer behöver ett svar, inte bara en bekräftelse - ett formulär som visar ett resultat, ett system som kräver ett beräknat värde eller en uppslagning.

Sätt på den

Avancerade inställningar -> Synkron respons på webhooken.

Skapa arbetsflödet

En synkroniseringswebhook utlöser utlösaren ”Sync Webhook Trigger”, inte den vanliga utlösaren ”Webhook Trigger”. Den utlösaren innehåller ett extra fält, invocationId, som identifierar den enskilda begäran som väntar på svar.

Steg Vad
Utlösare Utlösare för synkroniseringswebhook
Skick Webhook ID motsvarar ditt webhooks ID
Senaste åtgärd Svar från returwebhook

Handlingen utspelar sig på tre platser:

Fält Vad man ska lägga i
Anrop-ID Bind {{invocationId}} från utlösaren. Utan detta kan ditt svar inte kopplas till den väntande anroparen och kasseras därför.
Svarets innehåll Vad den som ringer får - se nedan.
Innehållstyp Valfritt. Standardvärdet är application/json; använd text/plain för ren text.

Skriva svarstexten

Du kan skriva själva texten direkt i fältet med hjälp av utlösarens variabler, vilket är allt som behövs i de flesta arbetsflöden:

{"ok": true, "orderId": "{{fieldOne}}", "email": "{{fieldTwo}}"}

Alla triggerfält är tillgängliga: {{fieldOne}} till {{fieldFour}}, {{rawBody}} och {{webhookId}}.

För allt som kräver logik - att söka fram en kund, beräkna ett totalbelopp, forma ett större objekt - använd istället åtgärden ”Kör kod” tidigare i arbetsflödet och koppla dess resultat hit.

När inget svar kommer

Om ditt arbetsflöde inte svarar inom 15 sekunder får den som anropar istället det vanliga svaret - samma 200 som en icke-synkroniserad webhook returnerar. Det är aldrig ett fel och den som anropar lämnas aldrig i ovisshet. Anropet visas fortfarande i historiken och arbetsflödet kan fortfarande slutföras; det är bara så att svaret kommer för sent för att kunna användas.

De vanligaste orsakerna:

  • Arbetsflödet är inte aktiverat.
  • Den bygger på den vanliga Webhook-utlösaren istället för synkroniseringsutlösaren.
  • En gren avslutades utan att nå ”Return Webhook Response”.
  • Invokations-ID:t var inte bundet.

Bra att veta

  • Det första svaret vinner. Om två arbetsflöden svarar på samma förfrågan får den som ringde först; den andra kasseras.
  • Dubbla leveranser väntar aldrig. En begäran som undertrycks av Skydd mot dubbla leveranser returnerar omedelbart - inget arbetsflöde körs, så det finns inget att svara på.
  • En typisk tur-och-retur-tid är 2-4 sekunder, men Shopify lämnar inga tidsgarantier för Shopify Flow. Behandla synkrona svar som ”best-effort”: snabba i praktiken, med 15 sekunder en reservlösning som sista utväg.