Akademia Bachmana
operacyjny CRM
Cała logika operacyjna mieszka w ClickUp. Reszta - integracje, harmonogramy, komunikacja z muzykami i placówkami - chodzi w tle, na własnym serwerze Linux.
› problem
Akademia Bachmana prowadzi audycje muzyczne dla dzieci w wielu placówkach jednocześnie - przedszkolach i szkołach. Co miesiąc trzeba ułożyć grafik (kto, gdzie, kiedy gra), podstawić dane placówki do dokumentów, wysłać powiadomienia muzykom oraz placówkom, a potem zebrać akceptacje terminów.
Robione ręcznie - Excel, telefon, papierowe zlecenia - zżerało kilkadziesiąt godzin miesięcznie i nie skalowało się dalej.
› co zbudowałem
CRM bez własnego CRM-a. Cała operacyjność - taski, statusy, komentarze - siedzi w ClickUp. Wokół tego, jako warstwa procesowa, chodzi kilkanaście modułów Pythona spiętych cronami i kilka dedykowanych web-apek. Klient widzi to jako jeden ClickUp, w którym samo się dzieje.
Harmonogramowanie i komunikacja
- miesięczny harmonogram audycji generowany automatycznie z dostępności muzyków, placówek i kontraktów
- dane placówki podstawiane do tasków przez ClickUp API z relacjami między listami
- e-maile i SMS-y do muzyków oraz placówek z cooldown-ami i ochroną przed duplikatami
- koordynator zaznacza checkbox w ClickUp - system w ciągu minuty wysyła i sam odznacza
Akceptacje przez web-apki
- muzyk klika link z maila i akceptuje całość, akceptuje częściowo (z odznaczeniem konkretnych dat) albo odmawia - bez logowania, bez konta
- placówka potwierdza lub odwołuje audycję jednym kliknięciem
- linki podpisane HMAC - nikt nie zmieni statusu cudzej audycji
- statusy wracają do ClickUp, system propaguje konsekwencje: dopina lub odpina muzyka od audycji, wysyła PDF umowy, alarmuje koordynatora przy odrzuceniu bez zastępstwa
Custom formularz zapisu (zastępstwo Google Forms)
- publiczny wielokrokowy wizard (placówka → wybór usług → kontakt) w brandingu Akademii, bez przeładowania strony
- wiele usług w jednym zgłoszeniu z osobnymi koordynatorami - czego Google Forms nie pozwala
- zgłoszenie idzie wprost do ClickUp jako gotowy task Lead/Konto z wypełnionymi polami - zero ręcznego przepisywania
- honeypot + walidacja po stronie serwera, backup do Google Sheets jako bezpiecznik
Automatyzacja faktur (Fakturownia + KSeF)
- Per spotkanie: audycja zmienia status na „zakończona" → faktura wystawia się sama z ceną z kontraktu, danymi klienta z konta i opisem z usługi; numer FV wraca komentarzem na zadaniu
- Całość z góry: checkbox „Wystaw fakturę" na kontrakcie → jedna FV na całą wartość, kontrakt oznaczony jako rozliczony
- KSeF obsługiwany przez Fakturownię - zero dodatkowej pracy
- liczniki w ClickUp (rozliczono / pozostało) aktualizowane po każdej fakturze
Niezawodność i utrzymanie
- trzy poziomy cronów: co minutę (checkbox-triggery), co 15 minut (synchronizacje), godzinny (backupy, raporty)
- plikowe locki chronią przed wyścigiem skryptów; pełen audit log każdego uruchomienia
- backup godzinny i nocna kopia na drugi serwer; alerty mailowe przy braku zastępstwa lub błędzie API
Pod spodem jest kilka tysięcy linii Pythona i PHP, które nikomu nie wchodzą w drogę.
› stack
- Python 3.12
- ClickUp API v2
- Fakturownia API
- KSeF
- SMSAPI
- SMTP SSL
- PHP 8
- Cron
- własny serwer Linux
Masz coś podobnego do automatyzacji?
Pogadajmy. 15 minut, bez zobowiązań - powiesz, gdzie obecnie tracisz czas.
Umów rozmowę