01
Odporność na chwilową niedostępność systemu
Systemy zewnętrzne czasem nie odpowiadają - dobra integracja czeka i ponawia próbę, zamiast tracić dane albo przerywać cały proces.
Blog / Podstawy
Najczęstszy problem w firmie korzystającej z kilku narzędzi nie polega na braku systemów, tylko na tym, że nie potrafią ze sobą rozmawiać - te same dane ktoś wpisuje ręcznie do sklepu, potem do magazynu, potem do programu księgowego. Integracja API rozwiązuje dokładnie to, łącząc systemy tak, żeby dane płynęły między nimi automatycznie. Poniżej: czym jest API i integracja, trzy sposoby, w jakie systemy wymieniają dane, oraz sześć kroków, żeby połączyć narzędzia, z których już korzystacie.
01Krótka odpowiedź
API, czyli interfejs programistyczny aplikacji, to zestaw reguł, według których jeden system może poprosić drugi o dane albo przekazać mu polecenie - bez udziału człowieka klikającego cokolwiek w interfejsie. Integracja API to wykorzystanie tych reguł do połączenia dwóch systemów firmowych, na przykład sklepu z magazynem albo formularza na stronie z CRM-em, tak żeby dane wymieniały się automatycznie zamiast wędrować między nimi w postaci ręcznie przepisywanych liczb i nazwisk. Zakres tego, co da się połączyć, zależy od tego, co udostępnia dokumentacja każdego z narzędzi - przy systemach bez otwartego API stosuje się synchronizację plikową albo warstwę pośrednią.
Dla firm korzystających z kilku narzędzi jednocześnie, w których te same dane wpisywane są do każdego z nich osobno.
02Diagnoza
Im więcej z nich pasuje do Waszej sytuacji, tym szybciej zwróci się czas poświęcony na połączenie systemów zamiast dalsze przepisywanie danych między nimi.
03Wybór metody
Integracja API jest zwykle najlepszym rozwiązaniem, ale nie zawsze dostępnym - część starszych albo zamkniętych systemów nie udostępnia interfejsu, do którego można się podłączyć.
| Kryterium | Integracja API | Synchronizacja plikowa |
|---|---|---|
| Aktualność danych | Niemal natychmiastowa, zwłaszcza przy webhookach | Zależna od częstotliwości eksportu, zwykle raz na godzinę lub dzień |
| Ryzyko błędu ludzkiego | Minimalne - dane nie przechodzą przez ręczne kroki | Wyższe - ktoś generuje i wgrywa plik po obu stronach |
| Wymagania techniczne | System musi udostępniać udokumentowany interfejs | Wystarczy możliwość eksportu i importu pliku |
| Nakład pracy po wdrożeniu | Minimalny - proces działa bez udziału człowieka | Ktoś musi pilnować, że eksport i import faktycznie się odbywają |
| Koszt wdrożenia | Zależy od jakości dokumentacji API po obu stronach | Zwykle niższy, ale rosnący wraz ze złożonością formatu pliku |
| Kiedy stosować | Gdy oba systemy udostępniają otwarte, udokumentowane API | Gdy jeden z systemów jest zamknięty i nie ma innej drogi |
04Standard
Integracja, która działa w dniu wdrożenia, to dopiero połowa pracy. Te osiem elementów decyduje o tym, czy będzie działać dalej, gdy coś pójdzie nie tak.
01
Systemy zewnętrzne czasem nie odpowiadają - dobra integracja czeka i ponawia próbę, zamiast tracić dane albo przerywać cały proces.
02
Jeśli integracja ponawia próbę po błędzie, musi rozpoznać, że dana operacja już się wykonała - inaczej to samo zamówienie trafi do systemu dwukrotnie.
03
Zapis tego, co zostało wysłane, kiedy i z jakim rezultatem - żeby dało się prześledzić, co poszło nie tak, i ponowić konkretną operację ręcznie, jeśli automat nie dał rady.
04
Klucze łączące oba systemy nie powinny leżeć w kodzie ani w publicznym repozytorium - to najczęstsza droga, którą wycieka dostęp do cudzych danych.
05
Pole nazwane inaczej w każdym z systemów - kod pocztowy, kod pocztowy, adres_kod - musi zostać jednoznacznie dopasowane, zanim integracja zacznie działać.
06
Powiadomienie, gdy integracja nie działa, zamiast cichego milczenia - bez tego problem wychodzi na jaw dopiero wtedy, gdy zauważy go klient.
07
Integracja sprawdzona na prawdziwych, ale niekrytycznych danych, zanim zacznie przetwarzać rzeczywiste zamówienia i płatności.
08
Integracja, która działała dobrze w dniu uruchomienia, może przestać działać po aktualizacji po drugiej stronie - monitoring wyłapuje to, zanim zauważy to ktokolwiek inny.
05Mechanizm
Za każdą integracją stoi jeden z tych trzech mechanizmów - warto je znać, żeby rozumieć, czego można oczekiwać od konkretnego połączenia systemów.
System źródłowy wysyła powiadomienie do drugiego systemu w momencie, gdy coś się wydarzy - nowe zamówienie, zmiana statusu płatności, aktualizacja stanu magazynowego. To najszybszy mechanizm, bo dane przechodzą niemal natychmiast, bez czekania na kolejne sprawdzenie. Wymaga jednak, żeby oba systemy udostępniały tę funkcję i żeby odbiorca był gotowy przyjąć powiadomienie w dowolnym momencie.
Zamiast czekać na powiadomienie, system sam pyta drugi system co jakiś czas, czy coś się zmieniło - co minutę, co godzinę, raz dziennie, zależnie od tego, jak pilna jest aktualność danych. Prostsze we wdrożeniu niż webhooki, ale z natury opóźnione o długość interwału sprawdzania.
Część systemów, zwłaszcza starszych albo mocno zamkniętych, nie udostępnia żadnego interfejsu do automatycznej wymiany danych. W takiej sytuacji integracja opiera się na eksporcie i imporcie plików w ustalonym formacie i rytmie - mniej eleganckie niż webhooki, ale wciąż eliminujące ręczne przepisywanie tych samych danych po raz drugi.
06Plan
Pierwsze dwa kroki rozstrzygają, czy integracja w ogóle jest możliwa - warto zrobić je, zanim zapadnie jakakolwiek decyzja o budżecie czy terminie.
01
Między którymi systemami, jak często i przez kogo. To lista kandydatów do integracji, uporządkowana według tego, ile realnie kosztuje.
Lista par systemów z częstotliwością i czasem ręcznego przepisywania danych
02
W kilka dni widać, co da się połączyć automatycznie, co wymaga obejścia, a czego zrobić się nie da. Ten krok kończy się konkretną odpowiedzią, nie deklaracją, że pewnie się da.
Ocena możliwości integracji na podstawie dokumentacji obu systemów
03
Dane płyną w jedną stronę czy w obie? Webhooki, synchronizacja cykliczna, czy warstwa pośrednia - wybór zależy od tego, co udostępniają oba systemy i jak pilna jest aktualność danych.
Ustalony kierunek przepływu danych i wybrany mechanizm synchronizacji
04
Co się dzieje, gdy system nie odpowiada, gdy dane przyjdą dwa razy, gdy pole nie zmieści się w oczekiwanym formacie. Zaprojektowane od początku, nie łatane po pierwszym incydencie.
Opisany sposób obsługi błędów, duplikatów i powiadomień o awarii
05
Sprawdźcie integrację na danych zbliżonych do rzeczywistych, ale niekrytycznych, zanim zacznie przetwarzać prawdziwe zamówienia, płatności czy dane klientów.
Wyniki testów integracji na środowisku testowym, z poprawkami
06
Uruchomienie integracji nie jest końcem projektu - ktoś musi dostać powiadomienie, gdy przestanie działać, i wiedzieć, co wtedy zrobić.
Działająca integracja z monitoringiem i wskazaną osobą reagującą na błędy
07Ostrzeżenia
Cztery wzorce powtarzające się przy integracjach niezależnie od tego, jakie systemy się łączy. Każdy z nich działa poprawnie do pierwszej awarii - a wtedy kosztuje więcej niż ostrożniejsze podejście od początku.
System nie odpowiedział przez pięć minut, więc dane po prostu przepadły albo zostały wysłane drugi raz, tworząc duplikat. Bez zaprojektowanej z góry logiki ponawiania i wykrywania duplikatów, chwilowa awaria zewnętrznego systemu zamienia się w błąd w Waszych danych.
Klucz API zapisany bezpośrednio w plikach źródłowych, zwłaszcza w publicznym lub współdzielonym repozytorium, to jeden z najczęstszych sposobów, w jaki dostęp do systemów firmowych trafia w niepowołane ręce.
Integracja przetestowana na trzech prostych zamówieniach działa - dopóki nie trafi na zamówienie z rabatem, z produktem bez przypisanej kategorii albo z adresem zawierającym znak, którego nikt nie przewidział. Testy warto robić na danych, które faktycznie odzwierciedlają bałagan realnego systemu, nie tylko podręcznikowy przypadek.
Obietnica połączenia dwóch systemów złożona przed sprawdzeniem, co faktycznie udostępnia ich dokumentacja, kończy się później rozczarowaniem albo droższym obejściem. Przegląd dokumentacji zajmuje kilka dni i powinien poprzedzać jakąkolwiek decyzję o budżecie.
08Jeśli chcecie to zlecić
09Pytania
Połączenie dwóch systemów tak, żeby wymieniały dane automatycznie - na przykład sklepu z magazynem albo formularza na stronie z CRM-em - zamiast wymagać, żeby ktoś przepisywał te same informacje ręcznie z jednego miejsca do drugiego.
Pojedyncza integracja trwa zwykle jeden do trzech tygodni. Cenę w tym przedziale przesuwa jakość dokumentacji API po obu stronach, liczba obiektów danych do zsynchronizowania i to, czy dane muszą płynąć w jedną stronę, czy w obie naraz.
Zostaje synchronizacja plikowa - eksport i import danych w ustalonym formacie i rytmie. Mniej eleganckie i wolniejsze niż integracja przez API, ale wciąż eliminuje ręczne przepisywanie tych samych informacji po raz drugi.
Dobrze zaprojektowana integracja umieszcza zadanie w kolejce i ponawia próbę, a zespół dostaje powiadomienie o problemie. Kluczowe jest, żeby chwilowa awaria nie powodowała cichej utraty danych - to projektuje się od początku, nie po pierwszym incydencie.
Odpowiada na to przegląd dokumentacji obu systemów - zwykle zajmuje kilka dni i kończy się konkretną odpowiedzią: co da się połączyć automatycznie, co wymaga obejścia, a czego zrobić się nie da przy obecnych narzędziach.
Może być, jeśli klucze dostępu są przechowywane bezpiecznie, komunikacja jest szyfrowana, a integracja ma zaprojektowaną obsługę błędów i duplikatów. Ryzyko pojawia się wtedy, gdy te elementy są pomijane dla szybszego wdrożenia - a to właśnie one decydują o bezpieczeństwie, nie sam fakt połączenia dwóch systemów.
10Czytaj dalej
Opiszcie, jakich systemów używacie i gdzie dziś przepisujecie dane ręcznie. Sprawdzimy dokumentację obu narzędzi i powiemy konkretnie, co da się połączyć automatycznie.