Przejdź do treści
Intum

Automatyczna synchronizacja danych klientów pomiędzy własną aplikacją a Intum CRM

Aktualizacja: Wyświetleń: 201 7 min czytania

Jeśli dane o klientach żyją w Twoim systemie (ERP, sklepie, własnej aplikacji), nie musisz ich przepisywać do Intum ręcznie ani wgrywać plików. Aplikacja “CRM - import i synchronizacja klientów” daje stały kanał: Twój system wysyła dane, a Intum na bieżąco tworzy i aktualizuje klientów w CRM. Dzięki temu np. dział marketingu może wysyłać kampanie do grup klientów wybranych po aktualnych danych - planie, saldzie, statusie - bez czekania na ręczne importy.

Krok 1. Zainstaluj aplikację

Wejdź w Ustawienia konta - Aplikacje i dodatki, znajdź “CRM - import i synchronizacja klientów” i kliknij Zainstaluj. Po instalacji panel aplikacji znajdziesz pod adresem /a/crm-data-ingest (link pojawi się też w ustawieniach CRM).

Tak wygląda panel aplikacji:

Panel aplikacji CRM - import i synchronizacja klientów

Krok 2. Załóż pola własne

Zastanów się, jakie informacje o kliencie chcesz widzieć w CRM poza standardowymi (nazwa, NIP, adres, email). Może to być np. plan abonamentowy, saldo, data ostatniej płatności, status współpracy. Każdą taką informację załóż jako pole własne klienta w module Automatyzacja - Pola własne (panel aplikacji ma bezpośredni link).

To ważne: przy imporcie zapisywane są tylko wartości pól, które wcześniej zdefiniujesz. Nieznane pola są pomijane, a ich liczba widoczna w statystykach - łatwo więc wyłapiesz literówkę w nazwie pola.

Krok 3. Utwórz token dla swojego systemu

W panelu aplikacji kliknij “Utwórz token tylko do importu”. Powstanie klucz dostępu ograniczony wyłącznie do wysyłania danych - Twój system nie będzie mógł nim zrobić niczego innego w Intum, więc można go bezpiecznie przekazać np. zewnętrznej firmie utrzymującej Twój ERP. Token jest pokazywany tylko raz - skopiuj go od razu.

Krok 4. Skopiuj gotowy przykład i podłącz swój system

Panel aplikacji generuje gotowy do użycia przykład zapytania (curl) na podstawie Twoich pól własnych - z adresem, tokenem i przykładowymi wartościami. Przekaż go osobie technicznej odpowiedzialnej za Twój system. W przykładzie jest jedno miejsce do świadomej decyzji: nazwa źródła (source_code), np. “moj_erp” albo “sklep”. Ta nazwa wiąże identyfikatory klientów z Twojego systemu z klientami w CRM, więc raz wybranej nie zmieniaj.

Dane można wysyłać pojedynczo (przy każdej zmianie klienta) albo paczkami do 5000 rekordów - przy pierwszym zasileniu całej bazy używaj paczek.

Przykład: co wysyła Twój system

Poniżej przykładowe zapytanie dla konta “twojafirma” z dwoma polami własnymi: “plan” i “saldo” (najpierw załóż je w polach własnych klienta). Adres i token znajdziesz w panelu aplikacji.

POST https://twojafirma.intum.com/automation/import_batches.json
Authorization: Bearer TWOJ_TOKEN
Content-Type: application/json
{
  "kind": "crm_clients",
  "source_code": "moj_erp",
  "batch_id": "2026-08-21-0001",
  "clients": [
    {
      "external_id": "123",
      "name": "Firma Przykładowa Sp. z o.o.",
      "email": "kontakt@firma.pl",
      "tax_no": "5551112233",
      "fields": {
        "plan": "premium",
        "saldo": 199.99
      }
    },
    {
      "external_id": "124",
      "name": "Jan Kowalski",
      "email": "jan@kowalski.pl",
      "fields": {
        "plan": "podstawowy",
        "saldo": 0
      }
    }
  ]
}

Pole “batch_id” to identyfikator paczki nadawany przez Twój system (np. numer kolejny albo data z licznikiem). Chroni przed podwójnym przetworzeniem: gdy po błędzie połączenia wyślesz tę samą paczkę ponownie, Intum rozpozna ją po batch_id i pominie duplikat - przy błędach zawsze bezpiecznie jest ponowić wysyłkę.

W odpowiedzi dostaniesz potwierdzenie przyjęcia (202) - dane pojawią się w CRM po chwili, gdy bufor zostanie przetworzony.

Skąd Intum wie, że to ten sam klient

Przy każdej kolejnej wysyłce trzeba jakoś rozpoznać, że przysłana firma to ta sama, która już jest w CRM. Służą do tego dwa pola i warto wiedzieć, czym się różnią:

  • “external_id” to numer klienta, który chcesz widzieć w Intum. Trafia do kolumny “Identyfikator zewnętrzny” na karcie klienta, można po nim filtrować i szukać, a w obrębie konta jest niepowtarzalny. To numer, którym posługują się ludzie w firmie, gdy mówią “klient 4471”
  • “id” to identyfikator z Twojego systemu, używany wyłącznie do rozpoznawania rekordów. Nie pokazuje się na karcie klienta

Wystarczy podać jedno z nich. Jeśli masz jeden system i jeden numer klienta, użyj samego “external_id” - wtedy pełni obie role naraz, tak jak w przykładzie powyżej.

Rozdzielenie przydaje się w dwóch sytuacjach. Pierwsza: gdy dane płyną do Intum z kilku systemów (np. ERP i sklep) i każdy ma własne oznaczenia tej samej firmy. Wtedy każdy system wysyła swoje “id”, a “external_id” zostaje na ten jeden numer obowiązujący w całej firmie. Druga: gdy identyfikator w Twoim systemie jest techniczny i nie chcesz go pokazywać handlowcom.

{
  "kind": "crm_clients",
  "source_code": "moj_erp",
  "clients": [
    {
      "id": "500",
      "external_id": "4471",
      "name": "Firma Przykładowa Sp. z o.o."
    }
  ]
}

W osobach kontaktowych oba pola działają tak samo: “id” rozpoznaje osobę, a “external_id” jest jej numerem widocznym na karcie kontaktu. Jedna różnica: numer firmy jest niepowtarzalny w obrębie konta, a numer osoby nie musi być, więc przy osobach nic nie zablokuje powtórzenia tej samej wartości.

To najprostszy wariant: same firmy, bez osób kontaktowych.

Osoby kontaktowe przy kliencie

Do każdej firmy możesz dołączyć listę osób. Wtedy w CRM powstaną kontakty powiązane z tą firmą, a każde powiązanie może mieć rolę osoby w tej konkretnej firmie: właściciel, księgowość, administrator, użytkownik albo podgląd.

{
  "kind": "crm_clients",
  "source_code": "moj_erp",
  "batch_id": "2026-08-27-0002",
  "clients": [
    {
      "external_id": "123",
      "name": "Firma Przykładowa Sp. z o.o.",
      "email": "kontakt@firma.pl",
      "contacts_complete": true,
      "contacts": [
        {
          "external_id": "u-9",
          "email": "jan@firma.pl",
          "first_name": "Jan",
          "last_name": "Kowalski",
          "role": "owner"
        },
        {
          "external_id": "u-12",
          "email": "anna@biuro-ksiegowe.pl",
          "first_name": "Anna",
          "last_name": "Nowak",
          "role": "accountant"
        }
      ]
    }
  ]
}

Osoby rozpoznajemy tak samo jak firmy: przez “id” (identyfikator z Twojego systemu, niewidoczny w CRM) albo “external_id” (numer osoby zapisywany na jej karcie kontaktu). Wystarczy jedno z nich, a jeśli podasz tylko “external_id”, pełni obie role - jak w przykładzie powyżej. Różnica wobec firm jest jedna: numer firmy musi być niepowtarzalny w obrębie konta, numer osoby nie musi.

Gdy nie podasz “id” ani “external_id” dla którejś osoby, zostanie ona pominięta i pokazana w statystykach jako odrzucona, a pozostałe osoby tej firmy zapiszą się normalnie.

Osoba to zawsze jeden kontakt w CRM, niezależnie od tego, dla ilu firm pracuje. Jeśli Anna prowadzi księgowość czterem Twoim klientom, przyśle ją każdy z nich, a w CRM powstanie jeden kontakt z czterema powiązaniami i czterema rolami. Dzięki temu cała historia rozmów z Anną jest w jednym miejscu, a kampania marketingowa wyśle do niej jedną wiadomość, nie cztery.

Pierwsza firma, przy której osoba się pojawi, staje się jej firmą główną. Kolejne wysyłki tego nie zmieniają, bo o tym, która firma jest główna, decyduje osoba pracująca w CRM.

Opcja “to wszystkie osoby tej firmy”

Ustawienie "contacts_complete": true mówi, że przysłana lista to pełny skład osobowy firmy. Jeśli ktoś z niej zniknie przy następnej wysyłce, jego powiązanie z tą firmą zostanie zakończone. Sam kontakt nie zniknie z CRM i zachowa powiązania z pozostałymi firmami oraz całą historię.

To wygodne, gdy Twój system i tak wie, kto ma dostęp do konta: nie musisz wysyłać osobnych informacji o odebraniu dostępu, wystarczy że osoba przestanie występować na liście.

Jeśli tej opcji nie podasz (albo ustawisz ją na false), lista jest traktowana jako uzupełnienie. Nic nie zostanie odłączone, więc możesz bezpiecznie wysłać jedną zmienioną osobę:

{
  "kind": "crm_clients",
  "source_code": "moj_erp",
  "batch_id": "2026-08-27-0003",
  "clients": [
    {
      "external_id": "123",
      "contacts": [
        { "external_id": "u-9", "email": "jan@firma.pl", "phone": "+48 600 100 200" }
      ]
    }
  ]
}

Zwróć uwagę, że firma ma tu tylko swój identyfikator, bez nazwy i pozostałych danych. Pole nieobecne w wysyłce nigdy nie nadpisuje tego, co jest w CRM, więc poprawienie numeru telefonu jednej osoby nie wymaga wysyłania całej reszty.

Powiązań osób dodanych ręcznie w CRM import nie usuwa nigdy, także przy pełnej liście. Praca zrobiona ręcznie jest bezpieczna.

Co się dzieje po wysłaniu

Dane trafiają najpierw do bufora (dostajesz natychmiastowe potwierdzenie), a Intum przetwarza je w tle:

  • klient, którego jeszcze nie ma w CRM, zostanie utworzony automatycznie
  • jeśli klient już istnieje, ale nie był jeszcze powiązany z Twoim systemem, Intum spróbuje go dopasować - domyślnie po NIP-ie lub numerze rejestrowym (w ustawieniach można włączyć też dopasowanie po emailu i telefonie albo je wyłączyć)
  • ponowne wysłanie tej samej paczki jest bezpieczne - duplikat zostanie rozpoznany i pominięty

W panelu aplikacji ustawisz też, czy import ma nadpisywać wypełnione pola, czy tylko uzupełniać puste.

Monitorowanie

Panel pokazuje listę źródeł z datą ostatniej wrzutki i liczbą paczek czekających w buforze, ostatnie paczki oraz statystyki przetwarzania: ilu klientów utworzono, zaktualizowano, powiązano, ile było błędów i jakie nieznane pola się pojawiły. Gdy wysyłasz też osoby kontaktowe, w statystykach widać ile kontaktów utworzono i zaktualizowano, ile powiązań z firmami powstało i ile zostało zakończonych.

Co dalej: kampanie do grup klientów

Gdy dane płyną, pola własne klientów są dostępne w zaawansowanym filtrze CRM i w listach odbiorców Marketing Automation typu “filtr”. Możesz np. utworzyć listę “klienci z planem premium i saldem powyżej zera” - lista odświeża się automatycznie przed każdą wysyłką kampanii.

Czy ten wpis był pomocny?

Udostępnij

Komentarze