<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Pedro Henrique Gomes Mello</title>
    <description>The latest articles on Forem by Pedro Henrique Gomes Mello (@pedrohgmello).</description>
    <link>https://forem.com/pedrohgmello</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3365442%2Fd5d6b6ee-cb79-418e-9050-1c9899a055ed.png</url>
      <title>Forem: Pedro Henrique Gomes Mello</title>
      <link>https://forem.com/pedrohgmello</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/pedrohgmello"/>
    <language>en</language>
    <item>
      <title>Case Study: Como substituí o Zapier, Kommo e Calendly por um stack N8N auto-hospedado e economizei +R$ 600/mês de um cliente</title>
      <dc:creator>Pedro Henrique Gomes Mello</dc:creator>
      <pubDate>Mon, 17 Nov 2025 17:58:46 +0000</pubDate>
      <link>https://forem.com/pedrohgmello/case-study-como-substitui-o-zapier-kommo-e-calendly-por-um-stack-n8n-auto-hospedado-e-economizei-hpj</link>
      <guid>https://forem.com/pedrohgmello/case-study-como-substitui-o-zapier-kommo-e-calendly-por-um-stack-n8n-auto-hospedado-e-economizei-hpj</guid>
      <description>&lt;h2&gt;
  
  
  O Problema do Cliente
&lt;/h2&gt;

&lt;p&gt;Recentemente, fui procurado por um mentor de negócios (vamos chamá-lo de Marcio). Ele tinha um desafio clássico: precisava de um funil de vendas 100% automatizado para capturar, qualificar, agendar, nutrir e vender suas mentorias, mas com o menor custo mensal possível.&lt;br&gt;
A "solução" óbvia que ele encontrou no mercado era um pesadelo de custos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CRM: Kommo (cerca de R$ 400/mês)&lt;/li&gt;
&lt;li&gt;Agendamento: Calendly Pro (para ter webhooks) (cerca de R$ 80/mês)&lt;/li&gt;
&lt;li&gt;Cola (O "Glue"): Zapier (em um plano pago para os fluxos complexos) (cerca de R$ 150/mês)
Isso dava mais de R$ 600/mês em custos fixos antes mesmo dele fazer a primeira venda.
Ele também tinha uma "dor" principal: o WhatsApp. As soluções "gratuitas" (como a Evolution API) eram um risco gigantesco de banimento que ele, como mentor, não podia correr.
Ele me contratou para encontrar uma solução melhor. E nós a construímos.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A Solução: A Arquitetura "Best-of-Breed" de Baixo Custo
&lt;/h2&gt;

&lt;p&gt;O herói da nossa história é o N8N (auto-hospedado). Em vez de pagar centenas de reais por mês para ferramentas "prontas", nós montamos um stack "melhor de cada categoria", onde o N8N seria o cérebro central orquestrando tudo.&lt;br&gt;
Este foi o nosso "Tech Stack" final:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automação (O Cérebro): n8n (Self-Hosted), rodando em um container Docker.&lt;/li&gt;
&lt;li&gt;Servidor (O "Backend"): Hostinger VPS (KVM 1), com Ubuntu.&lt;/li&gt;
&lt;li&gt;Acesso/Segurança (O "Porteiro"): Nginx como Proxy Reverso + Let's Encrypt (Certbot) para HTTPS.&lt;/li&gt;
&lt;li&gt;Frontend (As LPs): Vite/React, hospedado em um plano simples de Hostinger Shared Hosting.&lt;/li&gt;
&lt;li&gt;CRM (O "Quadro de Status"): HubSpot CRM Gratuito (Substituindo o Kommo).&lt;/li&gt;
&lt;li&gt;Agendamento (O Gatilho): Cal.com (Gratuito) (Substituindo o Calendly Pro).&lt;/li&gt;
&lt;li&gt;Vendas (O Gatilho): Eduzz (via Webhook).&lt;/li&gt;
&lt;li&gt;Notificações (E-mail): SMTP da Hostinger (para Alertas de Erro, Boas-Vindas e Nutrição).
A Implementação: A Lógica dos 3 Fluxos
Com as ferramentas definidas, estruturei toda a lógica de negócios em 3 fluxos principais no N8N.
Fluxo 1: Captação (Formulário ➔ HubSpot)
Este fluxo é o "recepcionista". Ele captura o lead da landing page em React e o qualifica.&lt;/li&gt;
&lt;li&gt;Gatilho: Webhook (recebe o POST do formulário da LP).&lt;/li&gt;
&lt;li&gt;Ação 1 (Qualificação): Um nó IF simples checa o faturamento do lead (ex: "Até R$ 3.999").&lt;/li&gt;
&lt;li&gt;Ação 2 (CRM): HubSpot (Create Contact) e depois HubSpot (Create Deal).
Pulo do Gato (O que eu aprendi): A API do HubSpot é poderosa, mas específica. Para o "Deal" (Negócio) aparecer no funil correto, não basta enviar o nome. Você precisa enviar o Deal Owner (ID do Proprietário), o Pipeline (ID do funil) e o Deal Stage (ID da etapa), além de associá-lo ao Contact ID (o vid) que acabamos de criar.
Fluxo 2: O Maestro (Agendamento ➔ Nutrição ➔ Recuperação)
Este é o fluxo mais complexo, responsável por todo o relacionamento com o lead agendado.&lt;/li&gt;
&lt;li&gt;Gatilho: Cal.com Trigger (o nó nativo do N8N que dispara no evento invitee.created).&lt;/li&gt;
&lt;li&gt;Ação 1 (CRM): Uma sequência de HubSpot (Search Contact) ➔ HubSpot (Search Deal) ➔ HubSpot (Update Deal) para mover o lead para a etapa "Agendado".&lt;/li&gt;
&lt;li&gt;Ação 2 (Nutrição "Início-Meio-Fim"): Um fluxo de múltiplos Wait e IF para garantir a nutrição:

&lt;ul&gt;
&lt;li&gt;Wait Until (T-3 dias) ➔ IF (Checar se ainda agendado) ➔ Send Email (Nutrição 2).&lt;/li&gt;
&lt;li&gt;Wait Until (T-24h) ➔ IF (Checar se ainda agendado) ➔ Send Email (Lembrete 24h).&lt;/li&gt;
&lt;li&gt;Wait Until (T-1h) ➔ IF (Checar se ainda agendado) ➔ Send Email (Lembrete 1h).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Ação 3 (Recuperação):

&lt;ul&gt;
&lt;li&gt;Wait Until (T+3 dias) ➔ IF (Checar se o Deal NÃO é "Won") ➔ HubSpot (Update Deal) para "Perdido - Recuperação" ➔ Send Email (Recuperação 1).
Pulo do Gato (O "Bug do Ramo"): Encontrei um bug clássico do N8N. Quando você tem ramos de um IF (ex: um ramo "TRUE" com um nó Wait e um "FALSE" sem) e eles se juntam, os dados do nó Wait (como startTime e invitee_name) podem se perder (dão undefined). Resolvi isso de forma simples: adicionei um nó Set no final do ramo "TRUE" para "restaurar" os dados do gatilho (ex: body = {{ $('Cal.com Trigger').item.json.body }}) antes que ele se juntasse ao ramo principal.
Fluxo 3: Venda (Eduzz ➔ HubSpot)
Este fluxo confirma a vitória.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Gatilho: Webhook (recebe o POST da Eduzz quando o pagamento é aprovado).&lt;/li&gt;

&lt;li&gt;Ação (CRM): A sequência exata para fechar o negócio no HubSpot é: HubSpot (Search Contact) ➔ HubSpot (Get Contact) (com a Opção Associations: Deal) ➔ HubSpot (Update Deal) (para o Deal Stage: Won).&lt;/li&gt;

&lt;li&gt;Ação (Cliente): Send Email (Boas-vindas, com o link para a área de membros).&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Os Desafios (A "Sessão da Terapia")
&lt;/h2&gt;

&lt;p&gt;É aqui que o projeto fica divertido. Nada saiu perfeito de primeira.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O "Penhasco" do WhatsApp: O cliente queria WhatsApp. Mas a Evolution API era um risco de banimento inaceitável. A API Oficial da Meta, por sua vez, bloqueou a conta dele (...cannot be assigned...). Após muita luta, tomamos a decisão de negócio correta: migrar o funil para 100% E-mail, que é mais barato, seguro e profissional.&lt;/li&gt;
&lt;li&gt;O "Pulo do Gato" do Custo Zero: O Calendly exigia um plano pago (Standard) só para liberar o acesso aos webhooks. O Cal.com (no plano gratuito) oferece webhooks de graça. Foi uma troca óbvia.&lt;/li&gt;
&lt;li&gt;O "Inferno" do Deploy da VPS: Esta foi a parte mais épica.

&lt;ul&gt;
&lt;li&gt;Tentei usar um template "fácil" (oriondesign) que usava Docker Swarm. Ele quebrou o docker-compose (KeyError: 'ContainerConfig').&lt;/li&gt;
&lt;li&gt;Solução: Reinstalei a VPS com Docker limpo.&lt;/li&gt;
&lt;li&gt;Tentei rodar o N8N, mas o Nginx (instalado pelo painel da Hostinger) já estava usando as portas 80/443 (Address already in use).&lt;/li&gt;
&lt;li&gt;Solução: Tive que caçar os "processos zumbis" com sudo lsof -i :80 e "matá-los" (sudo killall -9 nginx).&lt;/li&gt;
&lt;li&gt;Descobri que o painel havia criado um nginx.conf que conflitava com a estrutura sites-available.&lt;/li&gt;
&lt;li&gt;Solução Final: Desinstalei o Nginx do painel, instalei via apt, removi o default de sites-enabled e criei o symlink (sudo ln -s /etc/nginx/sites-available/n8n.conf ...) com a linha mágica no proxy reverso: proxy_pass &lt;a href="http://127.0.0.1:5678" rel="noopener noreferrer"&gt;http://127.0.0.1:5678&lt;/a&gt;;.
Conclusão
No final, entregamos um sistema de automação robusto, de nível empresarial, que orquestra React, HubSpot, Cal.com e Eduzz.
O resultado? O cliente agora roda seu funil de vendas 100% automático com custos de infraestrutura mínimos (cerca de R$ 45/mês da VPS). Ele economizou mais de R$ 600 por mês que gastaria em ferramentas SaaS prontas, e ganhou um sistema infinitamente mais flexível.
Para mim, foi um aprendizado profundo sobre os bugs do N8N e, principalmente, sobre o poder de um proxy reverso Nginx bem configurado.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>n8n</category>
      <category>casestudy</category>
      <category>automation</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
