JSON to format, w którym systemy zewnętrzne wymieniają dane: tak odpowiadają API firm kurierskich, serwisów płatniczych i systemów księgowych. Proces biznesowy Bitrix24 widzi JSON jako zwykły ciąg znaków: gotowych akcji, które wyciągnęłyby z niego wartość lub złożyły strukturę do wysyłki, nie ma. Omawiamy połączenie trzech robotów: pierwszy wysyła zapytanie HTTP i otrzymuje odpowiedź, drugi wyciąga z JSON potrzebną wartość po ścieżce, trzeci składa JSON z pól deala do wysłania na zewnątrz.

Gdzie proces biznesowy styka się z JSON?

Trzy typowe punkty. Pierwszy — odpowiedzi zewnętrznych API: proces pyta o status dostawy, stan magazynowy lub kurs waluty i otrzymuje JSON. Drugi — webhooki: system zewnętrzny przysyła dane, a one trafiają do pola lub zmiennej jednym ciągiem postaci {"order":{"id":518,"status":"paid"}} — dalej trzeba z tym coś zrobić. Trzeci — wysyłka danych na zewnątrz: system zewnętrzny oczekuje JSON o określonej strukturze i trzeba go złożyć z pól deala. We wszystkich trzech przypadkach wbudowany kreator procesów biznesowych proponuje pracę z całym ciągiem, i zwykle w tym miejscu woła się programistę. Trzy roboty poniżej zamykają cykl bez kodu.

Jak wysłać zapytanie do systemu zewnętrznego?

Robot „Zapytanie HTTP GET/POST" zwraca się do dowolnego zewnętrznego API. Wejście: URL, metoda — GET, POST, PUT, PATCH, DELETE lub HEAD, domyślnie GET — treść zapytania dla POST i PUT, nagłówki jako obiekt JSON postaci {"Authorization":"Bearer …"} oraz limit czasu w sekundach, domyślnie 10. Wyjście: treść odpowiedzi, kod statusu HTTP i znacznik „Sukces" (Y/N — kod 2xx). Treść odpowiedzi zapisuje się do zmiennej i przekazuje do rozłożenia kolejnemu robotowi. Tak proces sam poznaje status zamówienia w systemie księgowym według harmonogramu etapów, nie czekając, aż menedżer sprawdzi ręcznie. Robot dostępny jest na płatnych pakietach Bitrix24.

Jak wyciągnąć wartość z odpowiedzi JSON?

Robot „Wyciągnij wartość z JSON po ścieżce" rozkłada ciąg JSON i zwraca wartość po ścieżce przez kropkę: klucze obiektów i indeksy liczbowe tablic. Dla odpowiedzi {"data":{"user":{"email":"a@b.ru"}}} ścieżka data.user.email zwróci a@b.ru; pierwszy element listy pobiera się ścieżką postaci items.0.name. Wyjście: wartość jako ciąg i znacznik „Ścieżkę znaleziono" (Y/N); jeśli pod ścieżką leży obiekt lub tablica, zwracana jest jako osobna wartość w postaci JSON — rozkłada się ją tym samym robotem jeszcze raz, już po ścieżce wewnętrznej. Niepoprawny JSON lub brak ścieżki dają znacznik N, a nie zatrzymanie procesu. Znalezioną wartość kolejna akcja zapisuje do pola deala lub kontaktu.

Jak złożyć JSON z pól deala?

Zadanie odwrotne: system zewnętrzny oczekuje JSON, a dane leżą w polach i zmiennych. Robot „Złóż JSON z pól" przyjmuje dwie listy wielokrotne — klucze i wartości; kolejność musi się zgadzać: pierwszy klucz otrzymuje pierwszą wartość. W wartości podstawia się pola deala i zmienne procesu. Liczby oraz wartości true/false rozpoznawane są automatycznie i trafiają do JSON bez cudzysłowów, reszta — jako ciągi; jest opcja formatowania z wcięciami dla czytelności. Wyjście to gotowy obiekt JSON: podstawia się go do treści zapytania POST robota „Zapytanie HTTP GET/POST" lub przekazuje systemowi zewnętrznemu w dowolny inny sposób.

Jak obsłużyć błędy integracji?

Systemy zewnętrzne odpowiadają błędami, a proces musi to przetrwać. Oba roboty zwracają znaczniki zamiast zatrzymania. „Sukces = N" w zapytaniu HTTP oznacza odpowiedź spoza kodów 2xx: kod statusu podpowie przyczynę — 401 o problemie z autoryzacją, 404 o błędnym adresie, 5xx o awarii po tamtej stronie. „Ścieżkę znaleziono = N" przy rozkładaniu JSON — odpowiedź przyszła o innej strukturze albo JSON jest niepoprawny. Według tych znaczników w kreatorze procesów biznesowych buduje się osobną gałąź: zadanie dla osoby odpowiedzialnej z treścią odpowiedzi w środku, a deal zostaje na bieżącym etapie do wyjaśnienia. Bez takiej gałęzi proces po cichu zapisze pustą wartość, a błąd wypłynie później — już u klienta.

Podsumowanie

Połączenie „zapytanie → rozłożenie → złożenie" zamyka typową integrację bez kodu: „Zapytanie HTTP GET/POST" wymienia dane z systemem zewnętrznym, „Wyciągnij wartość z JSON po ścieżce" rozkłada odpowiedź, „Złóż JSON z pól" przygotowuje dane do wysyłki. Wszystkie trzy są w katalogu Roboteki, instalują się z Bitrix24.Market. Nie ma robota pod Twoją integrację — opisz zadanie, zrobimy bezpłatnie i dodamy do wspólnej biblioteki.