▸ // spis treści
Za CRM w chmurze freelancer płaci około 200 zł miesięcznie, a przy kilkunastu klientach używa z niego trzech funkcji. Te trzy funkcje zbudowałem w Obsidianie: karta klienta to plik, status to pole, a pulpit to widok Bases.
CRM leży w tym samym vaultcie co moje notatki. Stał się częścią second brain, a nie kolejną aplikacją do otwierania rano.
Z tego artykułu dowiesz się:
- jakie pola musi mieć karta klienta, żeby dało się ją filtrować,
- dlaczego statusy trzymam na zamkniętej liście,
- jak z notatek zrobić pulpit „co dziś wymaga mojego ruchu",
- gdzie leży granica, za którą pliki przegrywają z płatnym CRM-em.
Problem: klient ginie między aplikacjami
Zapytanie ofertowe przeleżało u mnie 15 dni bez odpowiedzi. Nie zginęło, miałem je w skrzynce. Nie było go tylko w żadnym miejscu, na które patrzę rano.
Typowy zestaw freelancera to kontakty w telefonie, ustalenia w mailach, notatki ze spotkań w jednej aplikacji, zadania w drugiej i CRM w trzeciej. Żadne z tych miejsc nie odpowiada na pytanie, u kogo leży piłka.
Płatny CRM dokłada do tej listy kolejne okno. Ja zrobiłem odwrotnie i przeniosłem klientów tam, gdzie leżała już cała reszta.
Rozwiązanie krok po kroku
Krok 1. Dwa katalogi: projekty i osoby
W vaultcie zakładasz katalog CRM z dwoma podkatalogami:
- projects - jeden plik na klienta, plik projektu jest kartą klienta,
- contacts - jeden plik na osobę po stronie klienta.
Zasada, która oszczędziła mi najwięcej sprzątania: jeden fakt mieszka w jednym miejscu. Telefon jest tylko w pliku osoby, status tylko w pliku projektu. Klient zmienia numer, a ty poprawiasz jedną linijkę zamiast trzech.
Krok 2. Pola we frontmatterze
Karta klienta to zwykła notatka. Dane, po których chcesz filtrować, wpisujesz we właściwości na górze pliku:
---
code: PRZK
type: client
company: "Firma Przykładowa"
contact: "[[osoba-kontaktowa|Kontakt]]"
website: "https://przyklad.pl"
status: waiting
last_contact: 2026-09-10
due_date: 2026-09-20
outstanding: 0
---| Pole | Po co |
|---|---|
| code | krótki kod do zadań i nazw plików |
| type | lead, client albo closed, czyli sprzedaż oddzielona od realizacji |
| status | kto ma teraz ruch |
| last_contact | ile dni klient milczy |
| due_date | termin najbliższej rzeczy do dowiezienia |
| outstanding | kwota, której jeszcze nie rozliczyłeś |
Pod frontmatterem piszesz normalną notatkę: zakres, zadania, ustalenia ze spotkań, dostępy. Tego arkusz nie udźwignie.
Krok 3. Zamknięta lista statusów
Tu wykłada się większość domowych systemów. Po miesiącu masz statusy „czeka", „czekam", „oczekuje na klienta" i „w toku?". Filtr łapie jeden z nich, reszta znika z pulpitu.
Dlatego trzymam osobny plik schematu z listą dozwolonych wartości. Wartość spoza listy nie wchodzi do karty. Mój zestaw:
- new - przyszło, jeszcze nie odpowiedziałem,
- action-needed - ruch po mojej stronie,
- waiting - ruch po stronie klienta,
- on-hold - wstrzymane,
- billing - do zafakturowania.
Krok 4. Pulpit w Bases
Bases to wtyczka wbudowana w Obsidiana. Robi z notatek tabelę albo karty na podstawie ich właściwości. Dane zostają w plikach markdown, widok tylko je czyta.
Tworzysz plik CRM.base z filtrem na katalog projektów i jednym widokiem na każde pytanie, które zadajesz rano:
filters:
and:
- file.inFolder("CRM/projects")
formulas:
silence: if(last_contact, (today() - date(last_contact)).days.round(0), "")
views:
- type: table
name: Mój ruch
filters:
or:
- status == "new"
- status == "action-needed"
order:
- file.name
- company
- due_date
- formula.silence
- type: table
name: Czekam na klienta
filters:
or:
- status == "waiting"
order:
- file.name
- formula.silenceFormuła silence liczy dni od ostatniego kontaktu. Sortujesz po niej widok „Czekam na klienta" i od razu widzisz, komu wysłać przypomnienie. Tak łapię zapytania, które kiedyś leżały dwa tygodnie.
U siebie mam cztery widoki na projektach: mój ruch, czekam na klienta, pipeline z leadami i tablicę kart. Na katalogu osób stoi jeszcze książka telefoniczna.
Krok 5. Szablon zamiast pustej kartki
Nowego klienta zakładam z szablonu w Templaterze. Szablon pyta o nazwę firmy i kod, sam nadaje nazwę pliku i przenosi go do właściwego katalogu. Każda karta ma te same pola, więc żadna nie wypada z widoków.
CRM jako część second brain
Tej przewagi nie kupisz w abonamencie. CRM nie stoi obok moich notatek, tylko jest w nich.
Notatka ze spotkania linkuje do karty klienta. Karta linkuje do katalogu projektu z ofertami, audytami i plikami od klienta. Otwierasz jeden plik i masz całą historię współpracy, bez skakania po kartach przeglądarki.

Mój vault jest poukładany według Osobistego Systemu Operacyjnego, opartego na metodzie PARA. CRM wszedł do niego jako jeden numerowany katalog obok projektów i wiki. Nie musiałem niczego przebudowywać.
Drugi zysk to agent AI. Claude Code czyta ten sam vault, więc polecenie „co mi leży u klientów" daje briefing z kart, terminów i dni milczenia. W chmurowym CRM-ie agent widzi tylko to, co wystawi mu API.
Typowe pułapki
- wolny słownik statusów, lekarstwo masz w kroku 3,
- ten sam telefon w trzech plikach, po miesiącu nie wiesz, który jest aktualny,
- oczekiwanie, że pliki same przypomną o kliencie, bo tego nie zrobią, przypomina widok posortowany po dniach milczenia albo zadanie w kalendarzu,
- budowanie całego systemu przed pierwszym klientem, zacznij od trzech pól i jednego widoku, resztę dołożysz, gdy zaboli.
Dla kogo to ma sens, a dla kogo nie
| Sytuacja | Pliki w Obsidianie | Płatny CRM |
|---|---|---|
| freelancer, kilkunastu aktywnych klientów | wystarczą | przerost formy |
| kilka osób pracuje na tych samych klientach | kłopot z uprawnieniami | lepszy wybór |
| setki leadów i kampanie mailowe | przegrywają | lepszy wybór |
| historia maili przy karcie klienta | ręcznie albo przez agenta | wbudowana |
Poradniki CRM dla freelancerów stawiają próg na 10-20 aktywnych klientach. Poniżej wystarcza arkusz, powyżej zaczynają uciekać follow-upy. Obsidian z Bases przesuwa ten próg, bo do tabeli dokłada notatki, linki i szablony. Zespołu handlowców nie obsłuży.
Podsumowanie
- karta klienta to notatka z polami we frontmatterze,
- statusy trzymasz na zamkniętej liście, inaczej widoki się rozjadą,
- Bases robi z kart pulpit bez żadnej zewnętrznej wtyczki,
- CRM w tym samym vaultcie co notatki trzyma całą historię klienta w jednym miejscu,
- przy zespole i setkach leadów wybierz płatny CRM.
P.S. Katalogi, frontmatter, szablony i Bases, czyli wszystko, z czego składa się ten CRM, rozkładam na lekcje w kursie Obsidiana.
Częste pytania o Obsidiana: Jak tworzyć szablony, Co to jest Obsidian Bases, Jak używać Dataview.
Damian Ślimak. Twój Nawigator w chaosie AI.
