Odpowiedź synchroniczna
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.
