>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
TypeScript

DeskcommCRM: Jak wdrożyć otwarte CRM z agentami AI dla WhatsApp na własnym serwerze

Sprzedaż przez WhatsApp wymaga ciągłego zaangażowania menedżera lub połączenia z usługami zewnętrznymi, takimi jak Kommo czy Intercom. Wraz ze wzrostem bazy klientów, opłaty subskrypcyjne i opłaty za stanowisko stają się znaczącym wydatkiem. Developer Rafael Melgara z Brazylii opublikował DeskcommCRM na GitHubie. To samodzielnie hostowany system zarządzania sprzedażą, zaprojektowany dla agentów AI i integracji z komunikatorami.

Projekt jest pozycjonowany jako system zarządzania sprzedażą dla małych i średnich przedsiębiorstw. Początkowo został zbudowany dla sklepu internetowego z integracją Nuvemshop, ale później architektura została przebudowana. Efektem jest elastyczne rozwiązanie dla klinik, agencji nieruchomości, firm informacyjnych i wszelkich usług przyjmujących zapytania z czatów.

Stos technologiczny i architektura

Architektonicznie DeskcommCRM jest zbudowany na znajomym stosie dla nowoczesnych aplikacji webowych:

  • Frontend i backend: Next.js 16 (App Router) z React 19 i TypeScript w trybie ścisłym.
  • Baza danych i uwierzytelnianie: Supabase (PostgreSQL), aktywnie wykorzystujące mechanizm Row Level Security (RLS) oraz rozszerzenie pgvector do wyszukiwania wektorowego.
  • Integracja z WhatsApp: WAHA (WhatsApp HTTP API) na silniku NOWEB, działający w kontenerze Docker.
  • Warstwa AI: Vercel AI SDK v7 z integracją modeli Anthropic Claude, OpenAI i Google Gemini.

System zawiera wbudowany serwer MCP (Model Context Protocol). Oznacza to, że zewnętrzne agenty AI mogą łączyć się z CRM poprzez wspólny protokół i wykonywać operacje na lejku sprzedażowym.

Inteligentne agenty zamiast zwykłych autoresponderów

W DeskcommCRM agenty AI działają inaczej niż tradycyjne chatboty ze sztywnymi drzewami scenariuszy. Bot przyjmuje rolę odpowiedzialnego menedżera: prowadzi dialog, kwalifikuje leady, przesuwa je przez karty lejka i przekazuje rozmowę człowiekowi, gdy nie jest w stanie samodzielnie odpowiedzieć.

Dla każdego klienta tworzona jest izolowana baza wiedzy. Pomyślnie zakończone dialogi są ponownie wprowadzane do magazynu wektorowego. W ten sposób agent stopniowo gromadzi kontekst i staje się dokładniejszy w odpowiadaniu na typowe pytania. Jednocześnie przekazywanie kontroli ludziom jest kontrolowane przez reguły, które zapobiegają wysyłaniu przez bota niepotrzebnych wiadomości.

Webhooki i kolejki przetwarzania

Do odbierania zapytań z zewnętrznych landing page'y i formularzy system udostępnia punkty wejściowe webhook. Każde żądanie POST z parametrami w formacie JSON lub urlencoded natychmiast tworzy lead na wymaganym etapie lejka.

Wewnętrzne przetwarzanie zdarzeń jest ciekawie skonfigurowane. Aby uniknąć przeciążenia wyzwalaczy PostgreSQL żądaniami HTTP, developer zastosował wzorzec tabeli zdarzeń. Wszystkie akcje (zmiana statusu leadu, pojawienie się tagu, wiadomość przychodząca) są zapisywane w tabeli. Proces działający w tle pobiera zdarzenia z kolejki raz na minutę i wykonuje automatyzacje typu „kiedy/jeśli/to”.

W praktyce schemat wygląda następująco:

W chmurze Vercel ta trasa wyzwala regularny Cron Job, a przy wdrożeniu na własnym serwerze uruchomienie jest przejmowane przez system .

Bezpieczeństwo i weryfikacja izolacji danych

Ponieważ CRM obsługuje wielodostępność (multi-tenancy), kluczowe jest zapewnienie, że jedna firma nie widzi kontaktów ani rozmów innych firm. W DeskcommCRM izolacja jest zbudowana na zasadach RLS w PostgreSQL.

W repozytorium skonfigurowany jest pipeline CI, który uruchamia 364 testy niezmienników na czystej instancji bazy danych przy każdym pull request. Jednym z kluczowych testów jest generowanie dwóch różnych organizacji, symulacja tokenów JWT użytkowników i sprawdzenie, czy baza danych zwraca co najmniej jeden wiersz z innej firmy. Jeśli polityka bezpieczeństwa przecieka obce dane, build kończy się niepowodzeniem.

Szybki start w środowisku lokalnym

Aby zapoznać się z kodem, projekt można uruchomić lokalnie w ciągu kilku minut. Będziesz potrzebować Node.js w wersji 22, pnpm i działającego Dockera.

Pełne wdrożenie na VPS wymaga przygotowanego przez autora zestawu skryptów . Sam skrypt prosi o domenę, klucze Supabase, klucze API sieci neuronowych, generuje tokeny i uruchamia gotowy stos z certyfikatami HTTPS.

Ograniczenia i specyfika projektu

Przeglądając repozytorium, należy pamiętać o kilku niuansach:

  • Część komentarzy w kodzie i dokumentacji jest napisana po portugalsku, ponieważ projekt był początkowo tworzony na rynek brazylijski.
  • Repozytorium jest wciąż stosunkowo młode, z nieco ponad 300 gwiazdkami na GitHubie.
  • Integracja z WhatsApp opiera się na WAHA, dlatego przy dużej aktywności wiadomości ważne jest skonfigurowanie opóźnień i interwałów wysyłania, aby chronić przed blokadą numeru.

Dla kogo będzie przydatny DeskcommCRM

Projekt będzie przydatny dla studiów internetowych i freelancerów, którzy budują systemy CRM pod klucz dla małych firm i nie chcą płacić za miesięczne subskrypcje usług zewnętrznych. Kod będzie również cenny dla developerów jako wysokiej jakości referencja: można w nim znaleźć przykłady czystego użycia Next.js 16, konfiguracji RAG z pgvector, implementacji serwera MCP oraz testowania zasad RLS w PostgreSQL.

Powiązane projekty