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:

OperacjaMinut/zamówienieZamówień/dzieńGodzin/dzień
Zamówienie e-commerce → ERP320010.0
ERP → magazyn (zlecenie wydania)22006.7
Magazyn → kurier (list przewozowy)22006.7
ERP → księgowość (faktura)22006.7
Status kuriera → e-commerce (tracking)12003.3
Razem33.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()
end

Niezależ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:

  1. Automatyczne zamówienie do dostawcy (EDI lub email ze strukturyzowanym załącznikiem)
  2. Powiadomienie managera magazynu (LiveView - popup na dashboardzie)
  3. Produkt oznaczony w e-commerce ("Ostatnie sztuki" lub "Dostępny za X dni")
  4. 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:

  1. E-commerce → ERP (zamówienia) - eliminuje ręczne wpisywanie
  2. ERP → Kurier (wysyłki) - eliminuje ręczne generowanie etykiet
  3. Bank → Księgowość (płatności) - eliminuje ręczne parowanie
  4. 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.