Twój system nie rozmawia z innymi - ile kosztuje ręczne przepisywanie danych
Poniedziałek rano. Kasia z działu zamówień otwiera skrzynkę mailową. 47 zamówień z weekendu. Każde musi ręcznie przepisać do systemu ERP. Nazwa klienta, adres, produkty, ilości, ceny. Po wpisaniu zamówienia do ERP otwiera system magazynowy i tworzy zlecenie wydania. Potem system kurierski - generuje list przewozowy. Potem Excel z zestawieniem dla księgowej.
Kasia robi to od 3 lat. Każdy poniedziałek. 47 zamówień × 4 systemy × 5 minut = ponad 15 godzin samego przepisywania. Dwa pełne dni robocze na pracę, którą maszyna wykonałaby w 3 sekundy.
Archipelag systemów
Typowa polska firma średniej wielkości ma 4-8 osobnych systemów, które nie komunikują się ze sobą:
- ERP / system zamówień - tu żyją zamówienia, faktury, cennik
- Magazyn (WMS) - stany magazynowe, lokalizacje, wydania
- E-commerce - sklep internetowy (WooCommerce, PrestaShop, Allegro)
- Księgowość - Comarch Optima, Symfonia, wFirma
- Kurier - panel InPost, DPD, DHL, UPS
- CRM - dane klientów, historia kontaktów
- Bank - przelewy, wyciągi, rozliczenia
- Excel - raporty, analizy, zestawienia, "baza danych Krysi"
Każdy system jest osobną wyspą. Między wyspami pływają ludzie - przepisując dane z jednej do drugiej. To jest ludzkie API: wolne, zawodne, kosztowne.
Prawdziwy koszt braku integracji
Czas
Policzmy konkretnie dla firmy e-commerce z 200 zamówieniami dziennie:
| Operacja | Minut/zamówienie | Zamówień/dzień | Godzin/dzień |
|---|---|---|---|
| Zamówienie e-commerce → ERP | 3 | 200 | 10.0 |
| ERP → magazyn (zlecenie wydania) | 2 | 200 | 6.7 |
| Magazyn → kurier (list przewozowy) | 2 | 200 | 6.7 |
| ERP → księgowość (faktura) | 2 | 200 | 6.7 |
| Status kuriera → e-commerce (tracking) | 1 | 200 | 3.3 |
| Razem | 33.4 |
33 godziny dziennie na przepisywanie danych. To ponad 4 etaty poświęcone na kopiuj-wklej. Przy 5 000 PLN brutto na etat = 240 000 PLN rocznie na pracę, która nie powinna istnieć.
Błędy
Przy ręcznym przepisywaniu 200 zamówień dziennie, z błędem na poziomie 1%:
- 2 zamówienia dziennie z błędnym adresem, produktem lub ilością
- 440 błędnych zamówień rocznie
- Koszt obsługi jednego błędu (zwrot, korekta, telefon do klienta): ~100 PLN
- 44 000 PLN rocznie na naprawianie ręcznych błędów
Opóźnienia
Zamówienie złożone w piątek o 22:00 czeka na Kasię do poniedziałku rana. Klient widzi status "Nowe" przez 60 godzin. W tym czasie:
- Dzwoni do biura obsługi: "Kiedy moje zamówienie?"
- Pisze maila z reklamacją
- Wystawia negatywną opinię
- Zamawia u konkurencji, która wysyła tego samego dnia
W zintegrowanym systemie zamówienie z piątkowego wieczoru jest automatycznie w ERP o 22:01, w magazynie o 22:02, u kuriera w sobotę rano. Klient dostaje tracking w sobotę po południu.
Niespójność danych
Klient zmienił adres w sklepie internetowym. Ale w ERP jest stary adres. W systemie kurierskim - jeszcze inny (bo Kasia przepisała z literówką). W CRM - adres sprzed dwóch lat.
Który adres jest prawidłowy? Nikt nie wie. Paczka jedzie pod stary adres. Zwrot. Klient jest wściekły.
W zintegrowanym systemie adres jest w jednym miejscu. Zmiana propaguje się wszędzie automatycznie. Jedno źródło prawdy.
Jak wygląda zintegrowany system
Przepływ automatyczny
Zamówienie przechodzi przez cały łańcuch bez udziału człowieka:
graph TD
ORDER["Klient składa zamówienie
(e-commerce / email / telefon)"]
LV["Phoenix LiveView
Zamówienie w systemie"]
OBAN["Oban - zadanie w tle"]
MAG["Magazyn
(WMS API)"]
FAK["Faktura
(KSeF)"]
KUR["Kurier
(InPost API)"]
POW["Powiadomienie
(email do klienta)"]
STATUS["Status zamówienia
aktualizowany na żywo"]
TRACK["Klient widzi tracking
w swoim panelu"]
ORDER --> LV --> OBAN
OBAN --> MAG & FAK & KUR & POW
MAG & FAK & KUR --> STATUS --> TRACK
Zero ręcznej pracy. Zero opóźnień. Zero błędów przepisywania. System robi w 3 sekundy to, na co Kasia potrzebowała 10 minut.
Webhook - system reaguje na zdarzenia
Integracja to nie "odpytywanie co 5 minut, czy coś się zmieniło". To reaktywność - system reaguje natychmiast na zdarzenia:
Kurier odebrał paczkę → webhook → status zamówienia zmienia się na "W drodze" → klient dostaje email z trackiem → dashboard zarządu aktualizuje się na żywo.
Klient zapłacił przelewem → webhook z banku → system automatycznie potwierdza płatność → zamówienie idzie do realizacji → magazyn dostaje zlecenie.
Stan magazynowy spadł poniżej minimum → alert → automatyczne zamówienie u dostawcy → email do managera magazynu → produkt oznaczony jako "ostatnie sztuki" w sklepie.
Każde zdarzenie wywołuje kaskadę automatycznych akcji. Ludzie są powiadamiani, nie pytani o pozwolenie na oczywiste operacje.
API jako lingua franca
Nowoczesny system wystawia API - standardowy interfejs, przez który inne systemy mogą się z nim komunikować:
Allegro/Amazon/eBay → API naszego systemu → zamówienie automatycznie w ERP. Jeden system obsługuje wszystkie kanały sprzedaży.
InPost/DPD/DHL/UPS → API kurierskie → etykiety generowane automatycznie. Dodanie nowego kuriera to konfiguracja, nie programowanie.
Comarch/Symfonia/wFirma → API księgowe → faktury synchronizowane automatycznie. Księgowa nie przepisuje - weryfikuje.
Bank (PSD2/Open Banking) → API bankowe → wyciągi pobierane automatycznie → rozliczenia parowane z fakturami.
Realne przykłady integracji
E-commerce + ERP + Kurier
Firma sprzedaje na Allegro, własnym sklepie i przez handlowców telefonicznych. Trzy kanały, jedno źródło prawdy:
# Zamówienie z dowolnego kanału trafia do tego samego pipeline'a
def handle_new_order(order_data, source) do
Ecto.Multi.new()
|> Ecto.Multi.insert(:order, create_order(order_data, source))
|> Oban.insert(:reserve_stock, ReserveStock.new(%{...}))
|> Oban.insert(:create_shipment, CreateShipment.new(%{...}))
|> Oban.insert(:send_confirmation, SendConfirmation.new(%{...}))
|> Oban.insert(:sync_marketplace, SyncMarketplace.new(%{source: source, ...}))
|> Repo.transaction()
endNiezależnie od kanału: jedno zamówienie, jedna ścieżka realizacji, jeden status. Klient zamówił na Allegro? Ten sam proces co zamówienie przez telefon. Zero ręcznej interwencji.
Magazyn + Dostawcy
System monitoruje stany magazynowe w czasie rzeczywistym. Gdy stan spada poniżej minimum:
- Automatyczne zamówienie do dostawcy (EDI lub email ze strukturyzowanym załącznikiem)
- Powiadomienie managera magazynu (LiveView - popup na dashboardzie)
- Produkt oznaczony w e-commerce ("Ostatnie sztuki" lub "Dostępny za X dni")
- Gdy dostawa przyjedzie - automatyczna aktualizacja stanów po skanowaniu
Magazynier nie sprawdza stanów ręcznie. System mówi mu, co trzeba zamówić i kiedy dostawa dotrze.
Księgowość + Bank
Koniec miesiąca w firmie bez integracji: księgowa ściąga wyciąg bankowy, drukuje, porównuje z fakturami, zaznacza co zapłacone, wpisuje do systemu księgowego. Przy 500 fakturach miesięcznie - 3 dni pracy.
Koniec miesiąca z integracją: system pobrał wyciągi automatycznie (Open Banking API), sparował z fakturami po kwotach i tytułach przelewów (algorytm fuzzy matching), oznaczył 95% jako "sparowane automatycznie". Księgowa weryfikuje 5% wątpliwych przypadków. 2 godziny zamiast 3 dni.
Jak budujemy integracje
Krok 1: Inwentaryzacja systemów
Spisujemy wszystkie systemy w firmie i pytania:
- Jakie dane wchodzą?
- Jakie dane wychodzą?
- Kto przepisuje dane między systemami?
- Czy system ma API? Jakie? (REST, SOAP, pliki CSV, nic?)
Krok 2: Priorytetyzacja
Które integracje dadzą największy zysk? Zwykle:
- E-commerce → ERP (zamówienia) - eliminuje ręczne wpisywanie
- ERP → Kurier (wysyłki) - eliminuje ręczne generowanie etykiet
- Bank → Księgowość (płatności) - eliminuje ręczne parowanie
- ERP → E-commerce (stany) - eliminuje sprzedaż produktów, których nie ma
Krok 3: Implementacja w Elixirze
Elixir na BEAM jest idealnym narzędziem do integracji:
Współbieżność - 50 API do odpytania? 50 procesów BEAM, każdy obsługuje jedno API równolegle. Timeout jednego nie blokuje reszty.
Odporność na awarie - API kuriera nie odpowiada? Supervisor restartuje proces, Oban ponowi za 5 minut. System nie staje.
Real-time - LiveView pokazuje status integracji na żywo. Dashboard: "Allegro: OK, InPost: timeout, Bank: synchronizacja..." Bez odświeżania strony.
Krok 4: Monitoring
Każda integracja jest monitorowana:
- Czas odpowiedzi API partnerów
- Liczba udanych/nieudanych synchronizacji
- Kolejka nieprzetworonych zdarzeń
- Alerty przy anomaliach ("API Allegro odpowiada 10x wolniej niż zwykle")
Ile kosztuje integracja vs ile kosztuje jej brak
Brak integracji (status quo)
Przy 200 zamówieniach dziennie:
- 4 etaty na przepisywanie: 240 000 PLN/rok
- Błędy: 44 000 PLN/rok
- Utracona sprzedaż (opóźnienia): 50 000-200 000 PLN/rok
- Razem: 334 000-484 000 PLN/rok
Koszt integracji
Typowy projekt integracji 4 systemów (e-commerce + ERP + kurier + księgowość):
- Implementacja: 80 000-150 000 PLN (jednorazowo)
- Utrzymanie: 2 000-5 000 PLN/miesiąc
Zwrot z inwestycji: 3-6 miesięcy.
Po 3-6 miesiącach integracja się spłaca. Potem każdy miesiąc to czysty zysk: mniej ludzi na przepisywaniu, mniej błędów, szybsza realizacja, lepsze doświadczenie klienta.
Integracja jako krok do pełnej migracji
Integracja nie wymaga pełnej migracji systemu. Możesz zostawić stary ERP, stary magazyn, starą księgowość - i zbudować warstwę integracyjną, która je łączy.
Phoenix jako middleware:
Allegro ←→ Phoenix (warstwa integracji) ←→ Stary ERP
Sklep ←→ ←→ Stary WMS
Bank ←→ ←→ Stara księgowośćStare systemy dalej działają. Ale ludzie nie przepisują między nimi. Phoenix robi to automatycznie, z walidacją, z logowaniem, z monitoringiem.
To jest często pierwszy etap współpracy z nami - zanim migrujemy cały system, budujemy integracje, które natychmiast eliminują ręczną pracę. Klient widzi efekt w tygodniach, nie miesiącach.
Twoje systemy nie rozmawiają ze sobą? Porozmawiajmy - zmapujemy Twoje przepływy danych i pokażemy, które integracje dadzą najszybszy zwrot.