tva
← Artigos

Auto-hospedagem de um CRM: por que abandonamos o SaaS

O mercado de CRM SaaS não sofre com falta de opções. Salesforce, HubSpot, Pipedrive, Zoho — cada um com sua própria faixa de preços, matriz de recursos e gerente de contas pronto para explicar por que o plano seguinte é exatamente o que seu negócio precisa. Usamos várias dessas ferramentas ao longo dos anos e descobrimos que, além de certo ponto, a proposta de valor se inverte.

Os custos são o sintoma mais visível. O Pipedrive começa com preços razoáveis, mas o custo aumenta por usuário. O plano gratuito do HubSpot atende às necessidades até deixar de atendê-las; nesse ponto, o salto para um plano pago é substancial. O Salesforce opera em uma categoria totalmente diferente: é software empresarial com preços correspondentes, exigindo administradores dedicados para configurar e manter. Para uma empresa de consultoria gerenciando algumas centenas de contatos e alguns negócios ativos, nenhuma dessas estruturas de preços é particularmente eficiente.

Mas o cálculo de custo não é puramente sobre taxas de assinatura. Há também a questão do que você está realmente comprando.

O problema da dependência do fornecedor

Os fornecedores de CRM SaaS vendem conveniência. Em troca, retêm a custódia de seus dados, o controle sobre a interface e a capacidade de alterar preços a seu critério. Esta não é uma observação controversa — é o modelo. O Salesforce aumentou os preços várias vezes. O HubSpot reestruturou o acesso a recursos em seus níveis. O Pipedrive reformulou e renomeou sua linha de planos. Cada um desses movimentos está totalmente dentro dos direitos do fornecedor, e cada um cria atrito para clientes que construíram fluxos de trabalho em torno dos termos anteriores.

A questão da portabilidade dos dados é mais relevante do que a maioria das discussões reconhece. Todo grande CRM oferece funcionalidade de exportação, normalmente para CSV. Mas uma exportação CSV de seus dados de contato não é o mesmo que seus dados de CRM. Relacionamentos entre contatos e empresas, histórico de atividades, linhas do tempo das negociações, campos personalizados — esses dados raramente são preservados de forma adequada em uma exportação. Na prática, migrar de um CRM SaaS significa reconstruir partes significativas do seu histórico operacional do zero. Os dados são tecnicamente seus, mas recuperá-los de forma útil requer esforço substancial.

Twenty CRM e a opção de auto-hospedagem

O Twenty (twenty.com) é um CRM de código aberto que se consolidou como uma alternativa séria às ofertas comerciais. O código-fonte é desenvolvido ativamente, o modelo de dados é bem estruturado e a interface é genuinamente utilizável. Ele utiliza PostgreSQL, o que significa que ferramentas padrão de banco de dados se aplicam diretamente. O projeto não é um repositório mantido por hobby — tem uma equipe financiada por trás e um plano de desenvolvimento claro.

Implantamos em nossa infraestrutura Hetzner existente, a mesma instância CX53 que executa nosso site e outros serviços atrás do Traefik. A configuração do Docker Compose que o Twenty fornece é simples. Os serviços principais são o servidor da API, o frontend, o banco de dados PostgreSQL e o Redis para cache e gerenciamento de filas. O consumo adicional total de recursos para uma equipe pequena é modesto: a stack consome menos de 2 GB de RAM em repouso.

O processo de configuração levou cerca de duas horas, incluindo configuração de DNS e terminação SSL pelo nosso proxy reverso Traefik existente. A documentação do Twenty explica claramente o processo de implantação com Docker. As variáveis de ambiente estão bem documentadas, as verificações de saúde funcionam como esperado e a migração inicial de dados é executada automaticamente na primeira inicialização. Não houve obstáculos significativos.

O que a análise de custos realmente mostra

Executar o Twenty auto-hospedado na infraestrutura que já operamos não custa praticamente nada em termos incrementais. Em infraestrutura dedicada, o custo é a fatura mensal do servidor. Nosso Hetzner CX53 custa aproximadamente €30 por mês e hospeda múltiplos serviços — o CRM é um dos serviços em um ambiente compartilhado, não a razão pela qual o servidor existe.

Compare isso com alternativas SaaS comuns (preços de tabela em outubro de 2026). O Pipedrive custa de $14 a $79 por usuário por mês com cobrança anual, dependendo do plano. Para uma equipe de três pessoas, são de $42 a $237 por mês, ou de $504 a $2.844 por ano. O Sales Hub Professional do HubSpot, que desbloqueia automação e relatórios personalizados, custa $90 por usuário por mês com cobrança anual, mais uma taxa única de integração inicial de $1.500. O Starter Suite do Salesforce — o ponto de entrada — custa $25 por usuário por mês, mas os recursos que a maioria das equipes de vendas realmente requer estão no Pro Suite a $100 por usuário por mês.

Nenhum desses valores é descabido para grandes organizações de vendas onde a adoção de CRM impulsiona diretamente o valor mensurável do pipeline. Mas para uma empresa de consultoria técnica onde o CRM é principalmente um banco de dados de contatos e histórico de interações, o cálculo é diferente. O trabalho operacional adicional de uma implantação auto-hospedada é medido em horas por ano, não por semana. O ponto de equilíbrio é alcançado rapidamente.

Propriedade de dados na prática

Quando seus dados de CRM estão em um banco de dados PostgreSQL que você controla, as implicações operacionais são concretas. Os backups são dumps de banco de dados padrão — executamos exportações diárias de pg_dump para o Hetzner Object Storage, retidas por 30 dias com snapshots mensais mantidos por um ano. As consultas não têm restrições. Você pode combinar tabelas do CRM com seus próprios dados, criar relatórios personalizados diretamente sobre o esquema ou enviar dados de contato para outros sistemas internos sem limites de exportação ou cotas de chamadas de API.

Isso importa mais do que parece inicialmente. CRMs SaaS impõem limites de requisições da API que se tornam restrições arquiteturais em escala. Nos planos Free e Starter do HubSpot, os apps privados compartilham um limite de 250.000 requisições por dia e 100 requisições a cada 10 segundos (em outubro de 2026). Os limites do Pipedrive variam por plano. Quando você precisa sincronizar dados de CRM com sistemas externos — ferramentas de faturamento, gerenciamento de projetos, painéis personalizados — esses limites moldam quais integrações são arquiteturalmente viáveis. Com um banco de dados PostgreSQL em auto-hospedagem, não há cota imposta pelo fornecedor; as restrições práticas passam a ser a capacidade do servidor, seus próprios controles de acesso e a manutenção da compatibilidade das integrações com o esquema do Twenty à medida que ele evolui.

Há também a questão do que acontece com seus dados se o fornecedor for adquirido, alterar seus termos ou cessar as operações. Esses são eventos de baixa probabilidade para os principais fornecedores, mas não são eventos de probabilidade zero. Ter controle sobre seus dados significa assumir o modelo de risco, não delegá-lo.

Personalização sem um parceiro de desenvolvimento

O Twenty é construído em uma API GraphQL com um modelo de dados orientado por metadados. Adicionar campos personalizados a qualquer entidade leva segundos na interface — você define o tipo de campo, ele aparece imediatamente na interface e no esquema da API. Sem exportações de configuração, sem implantações em sandbox, sem chamados de suporte, sem necessidade de mudar para um plano superior.

Isso é qualitativamente diferente do que os CRMs SaaS oferecem. O Salesforce permite personalização extensiva, mas o modelo de personalização é complexo o suficiente para sustentar toda uma indústria de serviços profissionais ao seu redor. O Pipedrive permite campos personalizados na maioria dos objetos, mas a personalização da interface é limitada. As capacidades de personalização do HubSpot dependem muito de qual plano você está pagando.

A abordagem do Twenty — esquema aberto, controle local — significa que quando um projeto exige acompanhar informações que o modelo de dados padrão não cobre, você o estende diretamente. Para uma empresa de consultoria que às vezes precisa acompanhar estruturas de negociação incomuns ou metadados específicos do cliente, essa flexibilidade se mostrou útil.

Estratégia de backup

Nossa configuração de backup é intencionalmente simples. Um pg_dump automatizado diário do banco de dados PostgreSQL do Twenty, comprimido e enviado para o Hetzner Object Storage. Os dados da aplicação — imagens de perfil, anexos — ficam em um volume Docker com backup via restic no mesmo horário. A retenção é de 30 dias para snapshots diários, 12 meses para snapshots mensais.

Os testes de recuperação são executados trimestralmente: restaurar o backup em um banco de dados de staging, verificar as contagens de linhas, verificar a integridade dos dados por amostragem. Uma restauração completa do backup para uma instância Twenty operacional leva aproximadamente 15 minutos — aceitável para uma ferramenta que não está no caminho crítico para operações em tempo real. O Hetzner Object Storage custa €6,49 por mês (sem IVA, em outubro de 2026), incluindo 1 TB de armazenamento; nossos backups de CRM consomem uma pequena fração dessa alocação.

A disciplina operacional necessária aqui é modesta. Os jobs de backup são executados como tarefas cron no host, registram seus resultados em um sistema de monitoramento e alertam em caso de falha. Esta é uma prática de infraestrutura padrão que qualquer equipe que executa cargas de trabalho de servidor já deveria ter implementado.

Quando a auto-hospedagem faz sentido

A auto-hospedagem de um CRM é mais vantajosa quando várias condições se alinham. Sua equipe tem capacidade operacional genuína para executar contêineres Docker e gerenciar um banco de dados PostgreSQL — este é um pré-requisito real, não uma formalidade. Você já opera infraestrutura de servidor com capacidade disponível. Seu caso de uso de CRM é relativamente estável, o que significa que você não depende do plano de desenvolvimento do fornecedor para recursos que precisará no próximo trimestre.

Os argumentos de custo e propriedade de dados são reais, mas são secundários à questão da capacidade operacional. A auto-hospedagem troca dinheiro por tempo e conhecimento especializado. Se o tempo operacional da sua equipe for mais caro do que uma assinatura SaaS, a economia pode não favorecer a troca. O ponto de equilíbrio não é puramente financeiro — também depende das habilidades e da disponibilidade real da sua equipe.

Quando não faz sentido

Se sua organização precisa de integrações empresariais complexas — um CRM conectado a uma plataforma de automação de marketing, um CDP e um data warehouse, todos mantidos por uma área de RevOps dedicada — a auto-hospedagem é a direção errada. O ecossistema de integrações dos CRMs comerciais é amplo porque os fornecedores investiram anos na sua construção. Uma instância do Twenty auto-hospedada se conecta por meio de sua API GraphQL ou acesso direto ao banco de dados. Ela não tem uma biblioteca de 500 conectores pré-construídos.

Da mesma forma, se ninguém em sua equipe consegue diagnosticar um contêiner Docker com falha, ler logs do PostgreSQL ou restaurar a partir de um backup de banco de dados, a carga operacional superará rapidamente as economias de custo. O caminho da auto-hospedagem requer um nível básico de competência em infraestrutura que nem toda equipe tem — e adquirir essa competência tem seu próprio custo.

Os requisitos de conformidade também podem alterar a equação. Se sua empresa opera sob regulamentações que exigem tratamento certificado de dados de fornecedores de tecnologia — atestados SOC 2, auditorias ISO 27001 — uma implantação auto-hospedada significa que você não pode se apoiar no atestado de um fornecedor de CRM; o CRM passa a fazer parte do escopo dos seus próprios controles e auditorias. Se isso é uma vantagem ou um fardo depende da sua postura de conformidade existente.

O que realmente executamos

Nossa implantação de produção do Twenty está em execução há vários meses sem um incidente significativo. Gerenciamento de contatos, registros de empresas, acompanhamento de negociações e registro de atividades funcionam conforme o esperado. A interface é clara o suficiente para que a integração dos usuários não tenha exigido treinamento formal. A API GraphQL tem sido útil para extrair contexto de CRM para outras ferramentas internas — especificamente para relatórios de clientes e acompanhamento de projetos que construímos nós mesmos em vez de comprar como um complemento SaaS.

A manutenção exige menos trabalho do que esperávamos. O Twenty lança atualizações em um ritmo constante; implantá-las é uma questão de baixar a nova imagem Docker e reiniciar o serviço, normalmente em menos de cinco minutos. O banco de dados PostgreSQL não exigiu intervenção manual além da verificação rotineira de backup.

A decisão não foi ideológica. Não nos afastamos do CRM SaaS porque SaaS é inerentemente errado ou porque a auto-hospedagem é inerentemente virtuosa. A decisão foi operacional: para o nosso caso de uso específico, a opção de auto-hospedagem é mais simples, mais barata e nos dá melhor controle sobre dados que nos pertencem. Para uma organização com restrições diferentes — uma equipe de vendas maior, requisitos de integração mais profundos ou capacidade de infraestrutura limitada — a conclusão pode ser diferente. O ponto é fazer o cálculo explicitamente em vez de recorrer ao modelo de assinatura porque é o caminho de menor resistência.


Artigos relacionados

Leitura complementar