Odpowiedź synchroniczna

Odpowiedź synchroniczna

Skopiuj stronę

Włącz odpowiedź synchroniczną webhooka, aby żądanie HTTP czekało na dane z procesu Shopify Flow. Użyj Sync Webhook Trigger i akcji Return Webhook Response.

Zazwyczaj webhook natychmiast odpowiada na żądanie, a proces w Shopify Flow działa w tle. Gdy opcja Odpowiedź synchroniczna jest włączona, aplikacja utrzymuje otwarte żądanie HTTP, dopóki proces nie wyśle danych z powrotem, a następnie zwraca właśnie te dane.

Rozwiązanie to jest przydatne, gdy strona wywołująca potrzebuje odpowiedzi, a nie tylko potwierdzenia - na przykład w przypadku formularza wyświetlającego wynik, systemu wymagającego obliczonej wartości lub wyszukiwania.

Proszę to włączyć

Ustawienia zaawansowane -> Odpowiedź synchroniczna w webhooku.

Stworzyć schemat pracy

Webhook synchronizacji uruchamia wyzwalacz Sync Webhook Trigger, a nie standardowy wyzwalacz „Webhook Trigger”. Wyzwalacz ten zawiera dodatkowe pole invocationId, które identyfikuje konkretne żądanie oczekujące na odpowiedź.

Krok Co
Wyzwalacz Wyzwalacz webhooka synchronizacji
Stan Webhook ID odpowiada identyfikatorowi Państwa webhooka
Ostatnia czynność Odpowiedź webhooka zwrotnego

Akcja obejmuje trzy obszary:

Dziedzina Co należy włożyć
Identyfikator wywołania Proszę podać identyfikator {{invocationId}} z wyzwalacza. Bez niego Państwa odpowiedź nie będzie mogła zostać przypisana do oczekującego rozmówcy i zostanie odrzucona.
Treść odpowiedzi Co otrzymuje osoba dzwoniąca - patrz poniżej.
Typ treści Opcjonalne. Domyślną wartością jest application/json; w przypadku zwykłego tekstu należy użyć text/plain.

Tworzenie treści odpowiedzi

Treść można wpisać bezpośrednio w polu, korzystając ze zmiennych wyzwalacza, co w większości przypadków wystarcza w przepływach pracy:

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

Dostępne są wszystkie pola wyzwalające: od {{fieldOne}} do {{fieldFour}}, {{rawBody}} oraz {{webhookId}}.

W przypadku wszelkich czynności wymagających zastosowania logiki - wyszukiwania klienta, obliczania sumy, kształtowania większego obiektu - proszę skorzystać z akcji Uruchom kod na wcześniejszym etapie przepływu pracy i zamiast tego powiązać jej wynik w tym miejscu.

Gdy nie otrzymuje się odpowiedzi

Jeśli Państwa przepływ pracy nie udzieli odpowiedzi w ciągu 15 sekund, strona wywołująca otrzymuje zamiast tego standardową odpowiedź - ten sam kod 200, jaki zwraca webhook niesynchroniczny. Nigdy nie jest to błąd, a strona wywołująca nigdy nie pozostaje w stanie oczekiwania. Wywołanie nadal pojawia się w historii, a przepływ pracy może się jeszcze zakończyć; jedynie odpowiedź jest zbyt opóźniona, by można było z niej skorzystać.

Najczęstsze przyczyny:

  • Przepływ pracy nie jest włączony.
  • Zostało ono oparte na standardowym wyzwalaczu typu Webhook, a nie na wyzwalaczu typu „Sync”.
  • Gałąź została zakończona bez dotarcia do etapu Odpowiedź webhooka zwrotnego.
  • Identyfikator wywołania nie został przypisany.

Warto wiedzieć

  • Wygrywa pierwsza odpowiedź. Jeśli dwa przepływy pracy odpowiedzą na to samo żądanie, wnioskodawca otrzymuje pierwszy; drugi jest odrzucany.
  • Powtórne dostawy nigdy nie mogą czekać. Żądanie zablokowane przez Ochrona przed podwójną dostawą zwraca wynik natychmiast - żaden przepływ pracy nie jest uruchamiany, więc nie ma nie mam nic do powiedzenia.
  • Typowy czas trwania wymiany danych w obie strony wynosi 2-4 sekundy, jednak firma Shopify nie podaje żadnych gwarancji dotyczących czasu trwania dla Shopify Flow. Proszę traktować odpowiedzi synchroniczne jako realizowane w miarę możliwości: w praktyce są one szybkie, przy limicie 15 sekund rozwiązanie awaryjne jako środek zabezpieczający.