Integracje i automatyzacja
Jak połączyć dwa systemy bez API: pięć dróg od najlepszej do najgorszej
Część poradnika: Integracja systemów w firmie: co zrobić, gdy przestaje działać
Jak połączyć dwa systemy bez API — to pytanie pada zwykle w chwili, w której ktoś w firmie po raz czwarty przepisuje te same dane z jednego okna do drugiego. Poniżej pięć dróg połączenia ułożonych od najlepszej do najgorszej, przy każdej uczciwa informacja, kiedy jest akceptowalna, a kiedy staje się długiem technicznym. Zacznij jednak od sprawdzenia, czy interfejs faktycznie nie istnieje — bywa, że jest, tylko w wyższym pakiecie albo za dopłatą.
Czym jest API i dlaczego „nie ma API” bywa nieprawdą
API to opisany przez dostawcę zestaw poleceń, dzięki którym jeden program odczytuje i zapisuje dane w drugim bez człowieka klikającego w oknie. Spotkasz kilka jego odmian: REST (dziś najczęstsza, dane przesyłane zwykle w formacie JSON), SOAP (starszy standard oparty na XML, wciąż obecny w systemach księgowych) i GraphQL (pozwala odpytać dokładnie o te pola, których potrzebujesz). Dostęp zabezpiecza się kluczem API, tokenem albo standardem OAuth 2.0, czyli mechanizmem, w którym system nadaje aplikacji ograniczone uprawnienia bez przekazywania jej Twojego hasła.
Dane płyną na dwa sposoby: webhookiem, czyli powiadomieniem wysyłanym przez system natychmiast po zdarzeniu, albo przez odpytywanie cykliczne, czyli sprawdzanie co kilka minut, czy coś się zmieniło. Różnicę między nimi rozkłada osobny tekst o integracji systemów w firmie. Część starszych systemów księgowo-magazynowych obecnych na polskim rynku nie ma publicznego, wspieranego interfejsu — to realna sytuacja, nie wymówka wykonawcy. Zakres dostępnych interfejsów różni się też między wersjami tego samego produktu, co dotyczy między innymi Comarch ERP Optima i Comarch ERP XL, enova365, Symfonii, Subiekta GT i Subiekta nexo, Streamsoft Prestiż, Microsoft Dynamics 365 Business Central oraz SAP.
Pytania do dostawcy, zanim uznasz, że API nie ma
Zapytaj dostawcę na piśmie, zanim uznasz, że interfejsu nie ma — brak wzmianki na stronie produktu nie jest dowodem. API bywa dostępne dopiero w wyższym pakiecie, jako osobny moduł za dopłatą, w nowszej wersji systemu albo wyłącznie dla partnerów wdrożeniowych. Pytanie wysłane mailem ma dodatkową wartość: odpowiedź zostaje na piśmie i można ją pokazać wykonawcy zamiast opowiadać, co powiedziano przez telefon.
„Czy [nazwa systemu] w wersji, z której korzystamy, udostępnia wspierane API do odczytu i zapisu kartotek kontrahentów, produktów, stanów magazynowych oraz zamówień? Jeżeli tak, proszę o link do dokumentacji, informację, w którym pakiecie lub module jest dostępne i czy wiąże się z dopłatą, sposób uwierzytelniania (klucz API, token, OAuth 2.0), limity liczby zapytań, dostęp do środowiska testowego oraz zasady zapowiadania zmian i utrzymywania starszych wersji. Jeżeli nie, proszę o informację, czy dopuszczają Państwo cykliczny eksport plików na serwer SFTP oraz odczyt danych wprost z bazy i czy takie użycie jest objęte wsparciem."
Trzy fragmenty odpowiedzi decydują o koszcie na lata: czy zmiany w interfejsie są zapowiadane z wyprzedzeniem, jak długo utrzymywane są starsze wersje i czy istnieje środowisko testowe, na którym da się sprawdzić aktualizację przed wdrożeniem jej u siebie. Pytanie „jak połączyć dwa systemy bez API” ma sens dopiero wtedy, gdy masz pisemną odpowiedź, że interfejsu naprawdę nie ma.
Droga pierwsza: oficjalne, wspierane API dostawcy
Oficjalne API to jedyna droga, którą ktoś poza Twoją firmą ma obowiązek utrzymywać — i dlatego zawsze zaczyna się od sprawdzenia, czy jest dostępna. Dostawca opisuje interfejs, zapowiada zmiany i odpowiada, gdy coś przestaje działać zgodnie z dokumentacją. Po Twojej stronie zostaje utrzymanie własnego klienta: obsługa błędów, ponowienia i logi.
Długiem technicznym staje się tylko wtedy, gdy zbudujesz połączenie bez logów i bez kolejki nieudanych komunikatów, czyli miejsca, w którym lądują odrzucone zdarzenia. Wtedy pierwsza zmiana wersji interfejsu kończy się szukaniem po omacku. Osobno dopytaj o limity liczby zapytań — przy pierwszym imporcie kilkudziesięciu tysięcy rekordów potrafią one przesądzić o kształcie całego rozwiązania.
Droga druga: pliki wymieniane przez SFTP według harmonogramu
Wymiana plików jest najstarszym wciąż sensownym rozwiązaniem: jeden system odkłada o ustalonej porze plik z danymi, a drugi go pobiera i wczytuje. SFTP to szyfrowany sposób przesyłania plików na cudzy serwer i pobierania ich stamtąd; w środku pliku najczęściej jest CSV, XML albo JSON. Ta droga bywa rozwiązaniem docelowym, nie protezą, pod jednym warunkiem: proces może działać wsadowo, czyli nikt nie czeka na wynik przed ekranem.
Żeby wytrzymała lata, potrzebuje trzech rzeczy: spisanej umowy formatu (lista kolumn, kodowanie znaków, separator, format daty i kwoty), katalogu na rekordy odrzucone wraz z powodem odrzucenia oraz alertu, gdy plik nie pojawi się o umówionej godzinie. Przy aktualizacji dostawcy psuje się zwykle po cichu: dochodzi kolumna albo zmienia się kodowanie i import wczytuje śmieci, nie zgłaszając błędu. Awaria wygląda tu jak cisza, więc monitoruj brak plików tak samo uważnie jak błędy.
Droga trzecia: wejście wprost do bazy danych systemu
Integracja przez bazę danych to sięganie po dane z pominięciem samego programu — prosto do magazynu, w którym trzyma on swoje tabele. Działa i bywa jedyną opcją, ale jest długiem technicznym z odroczonym terminem płatności: dostawca nigdy nie obiecywał, że struktura tabel się nie zmieni, więc bywa łamana przy kolejnych aktualizacjach. Zapis do bazy jest znacznie ryzykowniejszy niż odczyt, bo omija reguły, które program wykonuje sam: numerację dokumentów, przeliczenia i wpisy w historii zmian.
Akceptowalny wariant jest wąski — odczyt do raportu, najlepiej z kopii bazy, po pisemnym potwierdzeniu, że dostawca się temu nie sprzeciwia. Utrzymuje to wyłącznie Twoja firma, bo takie użycie zwykle nie jest objęte wsparciem. Awaria bywa najbardziej kosztowna ze wszystkich pięciu dróg: dane rozjeżdżają się po cichu i wychodzi to przy inwentaryzacji albo zamknięciu miesiąca. Przed decyzją sprawdź umowę licencyjną systemu oraz to, jakie dane osobowe znajdą się w kopii bazy — ten materiał ma charakter informacyjny i nie jest poradą prawną.
Droga czwarta: ręczny import i eksport plików CSV
Ręczne przenoszenie plików nie jest integracją, tylko procedurą wykonywaną przez człowieka, i tak należy je planować. CSV to zwykły plik tekstowy z tabelą, w którym kolejne pola oddziela przecinek albo średnik. Rozwiązanie broni się przy jednym kierunku przepływu, małym wolumenie, jednej odpowiedzialnej osobie i spisanej procedurze — jako most na kilka tygodni, nie na kilka lat.
Długiem staje się w dniu, w którym eksport trzeba robić codziennie. Awaria nie ma tu komunikatu błędu: ktoś zachorował, pojechał na urlop albo wczytał ten sam plik dwa razy i w systemie pojawiły się duplikaty. Przy stanach magazynowych ta droga jest szczególnie zdradliwa, bo dane starzeją się w godzinach, co rozkłada tekst o synchronizacji stanów magazynowych. Jeżeli decydujesz się na CSV, ustal datę wygaszenia, zanim uruchomisz procedurę.
Droga piąta: odczyt z panelu, czyli scraping — i dlaczego prawie nigdy
Scraping to program, który loguje się do panelu jak człowiek i odczytuje dane z ekranu, bo żadne drzwi dla programów nie zostały udostępnione. Wchodzi w grę wyłącznie w wąskim przypadku: jednorazowe pobranie własnych danych przed migracją, tylko do odczytu, w ustalonym terminie i po pisemnym potwierdzeniu, że dostawca tego nie zabrania. Jako stałe połączenie dla procesu, na którym stoi sprzedaż, jest najgorszym możliwym wyborem.
Powody są trzy i żaden nie jest techniczną drobnostką. Po pierwsze, rozwiązanie psuje się przy dowolnej zmianie wyglądu panelu, a dostawca nie ma obowiązku jej zapowiadać. Po drugie, wymaga przechowywania danych logowania prawdziwego użytkownika, więc w historii systemu wszystkie operacje przypisane są tej osobie, a uwierzytelnianie dwuskładnikowe zwykle blokuje automat. Po trzecie, regulaminy części systemów wprost zakazują automatycznego dostępu — sprawdź to, zanim ktokolwiek zacznie pisać kod.
Jak połączyć dwa systemy bez API: pięć dróg obok siebie
Wybór sprowadza się do trzech pytań: kto ma obowiązek utrzymać połączenie, co się z nim stanie przy najbliższej aktualizacji dostawcy i po czym poznasz, że przestało działać. Tabela poniżej odpowiada na nie dla każdej z pięciu dróg.
| Droga | Kiedy jest akceptowalna | Co się psuje przy aktualizacji | Kto utrzymuje | Jak wygląda awaria |
|---|---|---|---|---|
| Wspierane API | Zawsze, gdy jest dostępne | Wersja interfejsu, ale ze zapowiedzią | Dostawca po swojej stronie, Ty po swojej | Czytelny błąd i komunikat w kolejce |
| Pliki przez SFTP | Procesy wsadowe, bez oczekiwania na wynik | Układ kolumn, kodowanie, format daty | Obie strony, według umowy formatu | Cisza: plik nie przyszedł albo wczytał się błędnie |
| Baza danych | Odczyt do raportu, za zgodą dostawcy | Struktura tabel, bez zapowiedzi | Wyłącznie Twoja firma | Ciche rozjechanie danych, widoczne po tygodniach |
| Ręczny CSV | Most na kilka tygodni, jeden kierunek | Nic technicznie, wszystko organizacyjnie | Konkretna osoba w firmie | Brak eksportu albo duplikaty po dwukrotnym wczytaniu |
| Odczyt z panelu | Jednorazowa migracja własnych danych | Dowolna zmiana wyglądu panelu | Wyłącznie Twoja firma | Niepełne dane pobrane bez zgłoszenia błędu |
Niezależnie od wybranej drogi zamów ten sam zestaw minimum: logi z treścią komunikatu, alert na ciszę, kolejkę nieudanych komunikatów, procedurę ponowienia i jednego właściciela po stronie firmy — to lista wspólna dla każdej integracji systemów w firmie. To, czy przepływ zbudujesz w gotowym narzędziu, czy własnym kodem, jest osobną decyzją, którą porządkuje porównanie Make, n8n i własnej integracji. Koszt rządzi się natomiast tą samą logiką co wycena aplikacji mobilnej: płacisz za przypadki brzegowe i uzgodnienia, nie za liczbę przepisywanych pól.
Jeżeli nie wiesz, którą drogą pójść, opisz oba systemy w kreatorze briefu — sześć kroków wystarczy, żeby rozmowa zaczęła się od tego, jakie dane mają przechodzić między systemami i jak często, a nie od nazwy narzędzia.
Checklista
Wyślij dostawcy pisemne pytanie o API i poproś o link do dokumentacji oraz informację, w którym pakiecie interfejs jest dostępny.
Sprawdź w umowie i regulaminie systemu, czy wolno sięgać wprost do bazy danych i logować się do panelu automatycznie.
Ustal, czy proces może działać wsadowo w nocy, czy ktoś czeka na wynik przed ekranem — to rozstrzyga połowę wyboru.
Wskaż jedną osobę po swojej stronie, która odpowiada za połączenie i ma kontakt do dostawców obu systemów.
Zamów alert na ciszę: powiadomienie, gdy plik nie pojawi się o umówionej godzinie albo gdy przez kilka godzin nie przyjdzie żadne zdarzenie.
Zapisz w umowie z wykonawcą, co się dzieje po aktualizacji systemu dostawcy i kto pokrywa koszt naprawy połączenia.
Ustal datę wygaszenia rozwiązania tymczasowego i wpisz ją do kalendarza, zanim je uruchomisz.
Najczęstsze pytania
- Jak połączyć sklep z programem magazynowym, jeśli program nie ma API?
- Najpierw potwierdź pisemnie u dostawcy, że interfejsu faktycznie nie ma w Twojej wersji i pakiecie. Jeżeli nie ma, najbezpieczniejszą drogą jest cykliczna wymiana plików: program eksportuje stany i kartoteki o ustalonej porze na serwer SFTP, a sklep je pobiera i wczytuje. Wymaga to spisanej umowy formatu pliku, katalogu na rekordy odrzucone i alertu, gdy plik nie pojawi się o czasie. Rozwiązanie działa tylko dla procesów wsadowych — jeżeli klient ma widzieć aktualny stan w czasie rzeczywistym, trzeba wrócić do rozmowy o interfejsie po stronie programu magazynowego.
- Czy integracja przez bazę danych systemu jest bezpieczna?
- Odczyt z bazy do raportu, najlepiej z kopii, bywa akceptowalny. Zapis wprost do bazy jest ryzykowny, bo omija reguły, które program wykonuje przy zapisie: numerację dokumentów, przeliczenia i wpisy w historii zmian. Taka integracja zwykle nie jest objęta wsparciem dostawcy, a struktura tabel może się zmienić przy każdej aktualizacji. Przed decyzją sprawdź, co na ten temat mówi umowa licencyjna systemu. Ten opis ma charakter informacyjny i nie jest poradą prawną.
- Co się stanie z integracją przy aktualizacji systemu dostawcy?
- To zależy od tego, przez co się połączyłeś. Wspierane API ma wersje i zapowiadane zmiany, więc masz czas na reakcję. Wymiana plików psuje się, gdy zmieni się układ kolumn, kodowanie znaków albo format daty — najczęściej po cichu, bez komunikatu błędu. Integracja przez bazę danych i odczyt z panelu mogą przestać działać z dnia na dzień, bo dostawca nie zobowiązywał się do utrzymania ani struktury tabel, ani wyglądu ekranów. Zapisz w umowie z wykonawcą, kto reaguje na taką awarię i na czyj koszt.
- Czy scraping panelu to dobre rozwiązanie?
- Prawie nigdy. Scraping, czyli automatyczny odczyt danych z ekranu panelu, psuje się przy każdej zmianie interfejsu, wymaga przechowywania danych logowania prawdziwego użytkownika i sprawia, że w historii systemu wszystkie operacje przypisane są tej osobie. Uwierzytelnianie dwuskładnikowe zwykle go blokuje, a regulaminy części systemów wprost zakazują automatycznego dostępu. Da się go obronić wyłącznie jako jednorazowe pobranie własnych danych przed migracją, w ustalonym terminie i po pisemnym potwierdzeniu, że dostawca tego nie zabrania.
- Jak sprawdzić, czy mój system naprawdę nie ma API?
- Zapytaj dostawcę mailem i poproś o odpowiedź na piśmie — brak wzmianki na stronie produktu nie jest dowodem. W pytaniu podaj wersję systemu i pakiet, z którego korzystasz, oraz wymień dane, które chcesz odczytywać i zapisywać: kontrahentów, produkty, stany magazynowe, zamówienia. Poproś o link do dokumentacji, informację o sposobie uwierzytelniania, limitach liczby zapytań i dostępie do środowiska testowego. Interfejs bywa dostępny dopiero w wyższym pakiecie, jako moduł za dopłatą albo w nowszej wersji systemu.
- Ile trwa integracja dwóch systemów bez API?
- Nie da się podać jednej liczby, bo termin wyznacza nie kod, tylko odpowiedzi drugiej strony. Największy wpływ mają: czas oczekiwania na stanowisko dostawcy, dostęp do środowiska testowego, liczba pól do uzgodnienia między systemami oraz to, czy dane po obu stronach da się jednoznacznie sparować. Uczciwy wykonawca poda widełki dopiero po przejrzeniu przykładowych danych i dokumentacji, a nie po samym opisie problemu.
Źródła i metodologia
Linki prowadzą do źródeł pierwotnych oraz zasad, według których przygotowujemy i aktualizujemy materiały.