DeskcommCRM: Como Implantar um CRM de Código Aberto com Agentes de IA para WhatsApp em Seu Próprio Servidor
As vendas via WhatsApp exigem envolvimento constante do gerente ou conexão com serviços de terceiros como Kommo ou Intercom. À medida que o banco de dados de clientes cresce, as taxas de assinatura e cobranças por assento se tornam uma despesa significativa. O desenvolvedor Rafael Melgara, do Brasil, lançou o DeskcommCRM no GitHub. É um sistema de gerenciamento de vendas auto-hospedado projetado para agentes de IA e integração com mensageiros.
O projeto é posicionado como um sistema de gerenciamento de vendas para pequenas e médias empresas. Inicialmente, foi construído para uma loja online com integração Nuvemshop, mas depois a arquitetura foi reformulada. O resultado é uma solução flexível para clínicas, imobiliárias, negócios de informação e qualquer serviço que receba solicitações via chats.
Stack Tecnológico e Arquitetura
Arquiteturalmente, o DeskcommCRM é construído sobre uma stack familiar para aplicações web modernas:
- Frontend e backend: Next.js 16 (App Router) com React 19 e TypeScript em modo estrito.
- Banco de dados e autenticação: Supabase (PostgreSQL), usando ativamente o mecanismo Row Level Security (RLS) e a extensão pgvector para busca vetorial.
- Integração com WhatsApp: WAHA (WhatsApp HTTP API) no motor NOWEB, rodando em um container Docker.
- Camada de IA: Vercel AI SDK v7 com integração dos modelos Anthropic Claude, OpenAI e Google Gemini.
O sistema contém um servidor MCP (Model Context Protocol) embutido. Isso significa que agentes de IA externos podem se conectar ao CRM via um protocolo comum e realizar operações com o funil de vendas.
Agentes Inteligentes em Vez de Autoresponders Comuns
No DeskcommCRM, os agentes de IA funcionam de forma diferente dos chatbots tradicionais com árvores de cenários rígidas. O bot assume o papel de um gerente responsável: conduz o diálogo, qualifica leads, move-os pelos cartões do funil e transfere a conversa para um humano quando não consegue responder de forma independente.
Para cada cliente, é criada uma base de conhecimento isolada. Diálogos concluídos com sucesso são alimentados de volta no armazenamento vetorial. Dessa forma, o agente acumula contexto gradualmente e se torna mais preciso ao responder perguntas típicas. Ao mesmo tempo, a transferência de controle para humanos é controlada por regras para evitar que o bot envie mensagens desnecessárias.
Webhooks e Filas de Processamento
Para receber solicitações de landing pages e formulários externos, o sistema fornece pontos de entrada via webhook. Qualquer requisição POST com parâmetros em formato JSON ou urlencoded cria imediatamente um lead no estágio necessário do funil.
O processamento interno de eventos é configurado de forma interessante. Para evitar sobrecarregar gatilhos PostgreSQL com requisições HTTP, o desenvolvedor aplicou um padrão de tabela de eventos. Todas as ações (mudança de status do lead, aparecimento de tag, mensagem recebida) são registradas na tabela. Um processo em segundo plano recupera eventos da fila uma vez por minuto e executa automações do tipo "quando/se/então".
Na prática, o esquema funciona assim:
Na nuvem Vercel, essa rota aciona um Cron Job regular, e ao fazer deploy em seu próprio servidor, a inicialização é capturada pelo sistema {#3#}.
Segurança e Verificação de Isolamento de Dados
Como o CRM suporta multi-inquilinização, é crítico garantir que uma empresa não veja contatos ou conversas de outras empresas. No DeskcommCRM, o isolamento é construído sobre políticas RLS no PostgreSQL.
O repositório tem um pipeline CI configurado que executa 364 testes invariantes em uma instância de banco de dados limpa a cada pull. Um dos testes principais gera duas organizações diferentes, simula tokens JWT de usuários e verifica se o banco de dados retorna pelo menos uma linha de outra empresa. Se a política de segurança vazar dados externos, o build falha.
Início Rápido em Ambiente Local
Para explorar o código, o projeto pode ser executado localmente em poucos minutos. Você vai precisar do Node.js versão 22, pnpm e Docker rodando.
Para um deploy completo em um VPS, o autor preparou um conjunto de scripts {#1#}. O próprio script solicita o domínio, chaves do Supabase, chaves de API de redes neurais, gera tokens e sobe uma stack pronta com certificados HTTPS.
Limitações e Particularidades do Projeto
Ao explorar o repositório, tenha em mente várias nuances:
- Parte dos comentários de código e documentação está escrita em português, já que o projeto foi inicialmente criado para o mercado brasileiro.
- O repositório ainda é relativamente jovem, com pouco mais de 300 estrelas no GitHub.
- A integração com WhatsApp depende do WAHA, então com alta atividade de mensagens, é importante configurar atrasos e intervalos de envio para proteção contra bloqueio de número.
Para Quem o DeskcommCRM Será Útil
O projeto será útil para estúdios web e freelancers que constroem sistemas CRM completos para pequenas empresas e não querem pagar por assinaturas mensais de serviços de terceiros. O código também será valioso para desenvolvedores como uma referência de qualidade: você pode encontrar exemplos de uso limpo do Next.js 16, configuração de RAG com pgvector, implementação de servidor MCP e testes de políticas RLS no PostgreSQL.
Projetos relacionados