Przejdź do treści

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ę