O problema
Freelancers, agências web e consultores de TI trabalham com ferramentas dispersas: uma para clientes, outra para orçamentos, uma planilha para renovações de domínios, um caderno para os logins dos servidores. Na Itália há um obstáculo a mais. Toda nota fiscal precisa ser emitida em XML FatturaPA e enviada pelo sistema nacional de intercâmbio (SDI), e a maioria dos CRMs não faz isso. O BalanceAI nasceu como o CRM da minha própria consultoria. Depois eu o reconstruí para que outras empresas também pudessem usá-lo.
O que eu construí
Construí uma plataforma de gestão multi-tenant que reúne em um só lugar clientes, orçamentos, notas fiscais e a parte técnica do trabalho.
- Núcleo multi-tenant — cada empresa trabalha com dados isolados, porque toda query é filtrada por tenant. Um painel de superadmin gerencia os tenants, então a mesma instalação pode atender uma única empresa ou ser oferecida como SaaS.
- Faturamento eletrônico italiano — o app gera XML FatturaPA 1.2.1 e o envia pela API de faturamento eletrônico da Aruba, com o token de login em cache por tenant. Pagamentos e vencimentos são acompanhados em cada nota.
- De orçamento a nota fiscal — orçamentos com várias linhas e descontos viram nota fiscal em um passo, sem digitar nada duas vezes.
- Domínios e servidores — datas de renovação, consultas WHOIS automáticas e conexão com a API do cPanel/WHM, para que domínios e contas de hospedagem prestes a vencer apareçam antes de virarem um problema para o cliente.
- Cofre criptografado — credenciais de servidores, senhas de clientes e notas privadas são armazenadas com AES-256-CBC e um IV aleatório novo para cada valor.
- Busca de clientes com IA — digite o nome de uma empresa ou um número de IVA e um modelo da OpenAI (GPT-4o mini por padrão) retorna endereço, e-mail certificado e código SDI em JSON estrito para preencher a ficha do cliente. Campos desconhecidos voltam vazios, em vez de inventados.
- Importação em massa — os dados existentes entram a partir de arquivos Excel, CSV, Word e PDF.
Com o que foi feito
Node.js e Express, com páginas EJS renderizadas no servidor e Bootstrap 5 no front-end. Os dados ficam em MySQL ou MariaDB. O código é dividido em 26 routers, um por módulo, e 16 modelos de dados. Os logins usam sessões com senhas com hash bcrypt. Integrações: faturamento eletrônico da Aruba, WHOIS, cPanel/WHM e a API da OpenAI, cuja chave é armazenada criptografada para cada tenant. Instala-se em uma VPS atrás do Nginx ou em hospedagem cPanel.
Por que foi feito assim
O BalanceAI foi primeiro um CRM de uma única empresa. A versão 2.0.0 o tornou multi-tenant com um script de migração. O script adiciona uma coluna de tenant a cada tabela e move todos os registros existentes para o tenant 1. Os dados reais de anos de uso ficaram intactos, e a mesma base de código virou um produto que outras agências podem usar. A regra que veio junto é simples: nenhuma query roda sem o filtro de tenant.


