Format pliku importu
Jak przygotować plik, który Firmbit wczyta, i jak wyjąć z programu swoje dane. Adres do wysłania informatykowi albo wklejenia asystentowi AI — kolumny, kodowanie i przykładowy plik są tu wypisane wprost.
Najkrócej, jak się da
- Do środka z pliku wchodzą dziś dwie rzeczy: baza klientów z pliku CSV oraz własna kopia zapasowa Firmbita (backup.json). Nic poza tym.
- Na zewnątrz wychodzi całość: pełna kopia ZIP (JSON + Excel + CSV + PDF-y faktur) oraz eksport pojedynczych tabel do CSV, XLSX i JSON.
- Nie ma publicznego API ani webhooków. Wymiana danych odbywa się przez pliki.
- Kodowanie zawsze UTF-8, separator CSV: średnik. Kwoty są netto, w złotych, z kropką dziesiętną. Daty w plikach eksportu — pełny format ISO 8601.
Import bazy klientów z pliku CSV
W aplikacji: Klienci → Importuj. Plik możesz wgrać albo wkleić jego treść wprost do okna — przed dodaniem zobaczysz podgląd tego, co program z niego wyczytał. To jedyne miejsce w całym Firmbicie, które przyjmuje CSV.
- Format: CSV (zwykły plik tekstowy). Excel zapisuje go przez „Zapisz jako → CSV”.
- Kodowanie: UTF-8. To jedyne, które czytamy — plik zapisany domyślnym kodowaniem polskiego Excela pokaże krzaki zamiast ogonków.
- Separator: średnik (rozpoznajemy też tabulator i przecinek — patrz niżej).
- Pierwszy wiersz to nagłówek z nazwami kolumn. Bez nagłówka też zadziała, ale wtedy kolejność kolumn musi być dokładnie taka jak w tabeli poniżej.
- Maksymalnie 1000 wierszy w jednym pliku. Większą bazę podziel na kilka plików i wczytaj po kolei.
| Nagłówek kolumny | Wymagana | Format | Przykład | Gdy wartość nie pasuje |
|---|---|---|---|---|
| Nazwalub: Name, Imię, Imie, Klient | tak | Tekst, co najmniej 2 znaki | BUD-MAX Kowalski | Wiersz jest pomijany — bez nazwy nie ma czego dodać do bazy. |
| NIP | nie | 10 cyfr; myślniki i spacje usuwamy sami | 123-456-78-90 | Klient trafia do bazy BEZ numeru NIP (reszta danych zostaje). Nie sprawdzamy sumy kontrolnej. |
| Emaillub: E-mail, Mail | nie | Adres z małpą i kropką w domenie | biuro@bud-max.pl | Pole zostaje puste, klient i tak jest dodawany. |
| Telefonlub: Phone, Tel, Komórka, Komorka | nie | Dowolny tekst — zapisujemy dokładnie tak, jak w pliku | 600 100 200 | Nie ma czego zepsuć — nie sprawdzamy numeru. |
| Miastolub: City | nie | Tekst | Kraków | Puste pole. |
| Adreslub: Address, Ulica | nie | Tekst — ulica z numerem, w JEDNEJ kolumnie | Kwiatowa 5/2 | Puste pole. Działa tylko w pliku z nagłówkiem. |
| Kodlub: Kod pocztowy, PostalCode, Zip | nie | Tekst | 31-000 | Puste pole. Działa tylko w pliku z nagłówkiem. |
Przykładowy plik
Zapisz to jako klienci.csv w kodowaniu UTF-8 — albo wklej wprost do okna importu w aplikacji.
Nazwa;NIP;Email;Telefon;Miasto;Adres;Kod BUD-MAX Kowalski;1234567890;biuro@bud-max.pl;600 100 200;Kraków;Kwiatowa 5/2;31-000 Wspólnota Mieszkaniowa Lipowa 8;9876543210;zarzad@lipowa8.pl;12 345 67 89;Kraków;Lipowa 8;30-100 Anna Nowak;;anna.nowak@example.com;501 234 567;Wieliczka;Solna 1;32-020
Jak rozpoznajemy nagłówek i separator
- Separator ustalamy na podstawie PIERWSZEGO wiersza: jeśli jest w nim średnik — separatorem jest średnik, w przeciwnym razie tabulator, a na końcu przecinek. Dlatego nie wstawiaj średników w nazwach kolumn ani w danych.
- Nagłówek rozpoznajemy, gdy w pierwszym wierszu stoi choć jedna znana nazwa kolumny. Porównanie jest dokładne (wielkość liter nie ma znaczenia), więc „Nazwa” zadziała, a „Nazwa klienta” już nie — ta kolumna zostanie zignorowana.
- Bez nagłówka czytamy kolumny po kolei: Nazwa, NIP, Email, Telefon, Miasto. Adres i kod pocztowy w takim pliku nie zostaną wczytane.
- Puste wiersze pomijamy, spacje na brzegach wartości obcinamy, a cudzysłów na początku i końcu wartości zdejmujemy. To ostatnie NIE jest pełną obsługą cytowania z CSV: wartość, w której siedzi separator albo przejście do nowej linii, rozjedzie wiersz mimo cudzysłowów.
- Kolumn, których nie znamy, nie ruszamy — nadmiarowe kolumny w pliku nie przeszkadzają.
Co się dzieje z błędnym wierszem
- Brak nazwy (albo krótsza niż 2 znaki) — wiersz jest pomijany. Import się nie przerywa: reszta pliku wchodzi normalnie, a po wszystkim dostajesz podsumowanie „dodano / pominięto / błędne”.
- Powtórzony NIP — wiersz jest pomijany. Sprawdzamy zarówno klientów, których już masz w bazie, jak i duplikaty wewnątrz samego pliku. To znaczy, że ten sam plik możesz bezpiecznie wczytać drugi raz — klienci z NIP-em nie zdublują się.
- Klient bez NIP-u (osoba prywatna) zostanie dodany zawsze, także wtedy, gdy taki sam wpis już istnieje — po samej nazwie nie łączymy rekordów, bo dwie różne osoby mogą nazywać się tak samo.
- Zły NIP lub e-mail nie wywala wiersza — klient wchodzi do bazy, a niepoprawne pole zostaje puste do ręcznego uzupełnienia.
- W pakiecie darmowym baza klientów ma limit 10 pozycji. Import nie obchodzi limitu: dodaje tyle, ile się mieści, a resztę pomija i pisze o tym wprost.
Gotowe polecenie dla asystenta AI
Nie chcesz nic przepisywać ręcznie? Skopiuj poniższy tekst, wklej go do dowolnego asystenta AI razem ze swoim plikiem i odbierz gotowy plik CSV, który wgrywasz w Klienci → Importuj. Wszystkie reguły formatu są w środku, więc asystent nie musi otwierać tej strony.
Przerób mój plik z bazą klientów na format importu programu Firmbit. Wynik ma być plikiem CSV o takich zasadach: 1. Kodowanie UTF-8 (bez BOM), separator: średnik, koniec wiersza: zwykły enter. 2. Pierwszy wiersz to nagłówek DOKŁADNIE taki: Nazwa;NIP;Email;Telefon;Miasto;Adres;Kod 3. Jeden klient = jeden wiersz. Kolumna Nazwa jest obowiązkowa i musi mieć co najmniej 2 znaki. Jeśli w moim pliku imię i nazwisko są w osobnych kolumnach, połącz je w jedną Nazwę. 4. NIP: same cyfry albo z myślnikami (10 cyfr). Jeśli numer ma inną długość albo go nie ma, zostaw puste miejsce zamiast wpisywać zero, myślnik czy słowo brak. 5. Email: pojedynczy adres. Jeśli w źródle jest kilka adresów, zostaw pierwszy. Jeśli nie ma adresu, zostaw puste. 6. Telefon: przepisz jak jest. Jeśli jest kilka numerów, zostaw pierwszy. 7. Adres: ulica i numer w jednej kolumnie, kod pocztowy osobno w kolumnie Kod. 8. WAŻNE: w żadnej wartości nie może być średnika ani przejścia do nowej linii — zamień je na przecinek albo spację. Cudzysłowy nie chronią wartości w tym imporcie. 9. Usuń duplikaty po numerze NIP (Firmbit i tak pominie drugi taki sam NIP). 10. Nie dopisuj żadnych dodatkowych kolumn, komentarzy ani wierszy podsumowania. Maksymalnie 1000 wierszy w jednym pliku. Oddaj mi gotowy plik CSV do pobrania. Specyfikacja formatu: https://firmbit.pl/import
Wysyłasz to informatykowi? Wystarczy adres tej strony: firmbit.pl/import.
Kopia zapasowa (backup.json)
Drugim — i ostatnim — plikiem, który Firmbit czyta, jest jego własna kopia zapasowa: backup.json z eksportu albo z cotygodniowej paczki wysyłanej mailem. Wczytasz go w Ustawieniach → Kopia zapasowa: program najpierw pokazuje, co dokładnie doda i co nadpisze, i dopiero potem wykonuje import.
- Tego pliku nie buduje się ręcznie. Ma własną wersję formatu i wewnętrzne powiązania, które przy wczytaniu są przeliczane. Do przeniesienia danych z innego programu służy CSV z klientami opisany wyżej.
- Przywraca: klientów, zlecenia razem z kosztami, faktury, magazyn oraz listy firmowe (statusy zleceń, kategorie, profile cen). Przy wczytaniu wybierasz, które z tych rzeczy odtworzyć.
- Nie przywraca: wycen, zadań ekipy, kosztów stałych, wydarzeń kalendarza, list zakupowych, danych pracowników, godzin pracy ani zdjęć. Protokoły pomiarowe są zapisane w pliku, ale przywracanie ich nie odtwarza — dla nich kopia jest archiwum do odczytu. Mówimy o tym wprost, żeby nikt nie odkrył tego dopiero przy przenosinach.
- Zaznaczenie zleceń wymusza listę statusów — każde zlecenie musi mieć status, więc bez niej nie miałoby dokąd wrócić.
Eksport — jak wyjąć dane z Firmbita
Wszystko, co program trzyma, da się z niego wyjąć. Eksport uruchamiasz w Ustawieniach → Kopia zapasowa i eksport. Ponieważ to wyniesienie całej bazy firmy, przed pobraniem program prosi o potwierdzenie drugim składnikiem logowania (2FA) — jedno potwierdzenie obejmuje wszystkie pobrania przez kolejne 10 minut. Każde pobranie zapisuje się w dzienniku konta.
Pełna kopia (jeden plik ZIP)
Archiwum robocznik-backup-RRRR-MM-DD.zip zawiera te same dane w czterech postaciach naraz:
| W archiwum | Co to jest |
|---|---|
| backup.json | Plik główny. JEDYNY, który da się wczytać z powrotem do Firmbita — patrz sekcja wyżej. |
| dane.xlsx | Skoroszyt Excela z arkuszami: Info, Klienci, Zlecenia, Faktury, Koszty, Protokoły, Obwody, Statusy, Kategorie. Do czytania, nie do importu. |
| csv/ | Osobne pliki: klienci.csv, zlecenia.csv, faktury.csv, koszty.csv, magazyn.csv, magazyn-ruchy.csv oraz protokoly.csv i protokoly-obwody.csv. Separator średnik, kodowanie UTF-8 ze znacznikiem BOM (żeby Excel od razu pokazał ogonki). Wartości zaczynające się od znaku równości, plusa lub małpy poprzedzamy apostrofem — to ochrona przed traktowaniem komórki jak formuły. |
| faktury-pdf/ | PDF-y wszystkich faktur wystawionych w Firmbicie, nazwane numerem faktury. |
| protokoly-pdf/ | Gotowe PDF-y protokołów wgrane z innych programów. |
| README.txt | Opis zawartości archiwum, dołączony do paczki — żeby był pod ręką także bez internetu. |
Eksport pojedynczej tabeli
Gdy potrzebujesz jednej rzeczy — na przykład samych faktur do księgowej — pobierz pojedynczą tabelę. Adres ma postać /api/export/<tabela>?format=<format> i działa tylko dla zalogowanej osoby (to nie jest publiczne API).
- Tabele: clients (klienci), jobs (zlecenia), invoices (faktury), costs (koszty), materials (magazyn), protocols (protokoły).
- Formaty: csv (domyślny), xlsx oraz json. Wariant JSON to wycinek pliku kopii zapasowej — nie jest pełną kopią i nie da się go wczytać z powrotem.
- Zakres dat: parametry from i to w formacie RRRR-MM-DD. Działają tak samo dla pełnego archiwum.
- Pliki eksportu są bogatsze niż plik importu klientów: mają rozwiązane nazwy powiązań (klient, status, kategoria) i policzone sumy. To celowe — eksport ma być czytelny dla człowieka i dla innego programu, a nie wracać do nas.
Co wchodzi z pliku, a co nie
Żeby nikt nie tracił czasu na przygotowywanie pliku, którego program nie przyjmie — pełna lista. Nie zapowiadamy tu importów, których nie ma.
| Dane | Wczytanie z pliku | Uwagi |
|---|---|---|
| Klienci | Wczytasz z pliku CSV | Plik CSV wgrywasz w Klienci → Importuj. Format opisany niżej — to jedyny import z pliku w całym programie. |
| Zlecenia, koszty, faktury, magazyn | Tylko z kopii zapasowej | Z pliku CSV ani z Excela nie wczytamy. Wchodzą wyłącznie z własnej kopii zapasowej Firmbita. |
| Wyceny, zadania ekipy, koszty stałe | Brak wczytywania z pliku | Nie wczytamy ich z żadnego pliku — nie przenosi ich nawet kopia zapasowa. Wpisuje się je w aplikacji. |
| Protokoły pomiarowe | Brak wczytywania z pliku | Nie wczytamy z pliku; kopia zapasowa je zapisuje, ale przy przywracaniu nie odtwarza. Gotowy PDF z innego programu można dołączyć do protokołu jako załącznik — to przechowanie pliku, nie odczyt danych. |
| Faktury zakupowe | Brak wczytywania z pliku | Nie z plików XML ani PDF. Zaciągamy je prosto z KSeF, z podglądem i wyborem pozycji (od pakietu Premium) — to nie jest import pliku. |
- Nie mamy publicznego API ani webhooków, więc nie da się dziś podpiąć Firmbita do innego programu na żywo. Jeśli potrzebujesz integracji, której tu nie ma, napisz — takie zgłoszenia realnie ustawiają kolejność prac.
- Zdjęć i skanów nie trzymamy poza dwoma wyjątkami: zdjęcia dowodowe przy zadaniach oraz podpisy i PDF-y przy protokołach. Do reszty w zleceniu podpina się linki do albumów.
Krzaki zamiast polskich liter?
To zawsze jest kodowanie. Excel zapisuje CSV domyślnie w kodowaniu windowsowym, a my czytamy UTF-8. W Excelu wybierz „Zapisz jako → CSV UTF-8 (rozdzielany przecinkami)”, w Arkuszach Google „Pobierz → Wartości rozdzielane przecinkami”, a w Notatniku przy zapisie ustaw kodowanie UTF-8. Nazwy firm z ogonkami przestaną się sypać.
Coś dalej nie wchodzi? Napisz na kontakt@firmbit.pl i dołącz kilka pierwszych wierszy pliku — odpowiemy, co poprawić. Więcej instrukcji krok po kroku znajdziesz w bazie wiedzy.
Masz już gotowy plik z klientami? Wróć do aplikacji i wejdź w Klienci → Importuj. Kopię zapasową wczytasz w Ustawieniach → Kopia zapasowa.
Firmbit