Pular para o conteúdo
marketing digital

Como montar um workflow de vendas usando n8n e APIs externas

Admin5 min de leitura
Como montar um workflow de vendas usando n8n e APIs externas

Como montar um workflow de vendas usando n8n e APIs externas

Resumo:

Este artigo mostra, passo a passo, como construir um fluxo de vendas automatizado usando a plataforma low‑code n8n. Você vai conectar um CRM (HubSpot), uma ferramenta de e‑mail marketing (SendGrid) e um gateway de pagamento (Stripe) exclusivamente por meio de APIs REST e webhooks, garantindo que a equipe de marketing digital tenha dados em tempo real e menos tarefas manuais.

Tecnologia e Inovação

Introdução

A automação de processos empresariais deixou de ser um diferencial e se tornou uma necessidade. Quando o funil de vendas depende de várias ferramentas – captura de leads, nutrição por e‑mail, validação de pagamento e registro no CRM – a coordenação manual gera atrasos, erros e perda de oportunidades.

Por que usar n8n?

  • Open‑source: sem custos de licença e com possibilidade de hospedagem própria.
  • Flexibilidade: suporta centenas de conectores nativos e permite criar nós personalizados em JavaScript ou Python.
  • Visibilidade: a interface gráfica segue a notação BPMN (Business Process Model and Notation), facilitando a comunicação entre TI e áreas de negócio.
Neste post, vamos montar um fluxo de vendas que:

  • Recebe o lead via formulário Web (Webhook).
  • Cria/atualiza o contato no HubSpot.
  • Envia um e‑mail de boas‑vindas via SendGrid.
  • Gera uma sessão de checkout no Stripe.
  • Atualiza o status do lead quando o pagamento for concluído.
  • Ao final, você terá um workflow pronto para ser reproduzido em outros projetos de marketing digital.


    Desenvolvimento

    1. Conceitos básicos de orquestração de processos

    ConceitoDescriçãoExemplo no fluxo
    WebhookEndpoint HTTP que recebe eventos externos.Formulário de captura de lead envia JSON para n8n.
    API RESTInterface de comunicação baseada em recursos HTTP.HubSpot, SendGrid e Stripe são consumidos via chamadas GET/POST.
    BPMNNotação visual para modelar processos de negócio.Cada nó do n8n representa uma atividade BPMN (Task, Event, Gateway).
    Retry/Back‑offEstratégia de re‑tentativa automática em caso de falha.n8n permite definir número máximo de tentativas e intervalo exponencial.
    Logging centralizadoRegistro estruturado de eventos para auditoria.Utilizamos o nó “Write Binary File” para salvar logs em S3.

    Esses pilares garantem que o fluxo seja resiliente, auditável e escável sem exigir código complexo.

    2. Por que escolher n8n como engine low‑code

    Recurson8nAlternativas populares
    Código abertoSim – hospedagem própria ou cloud n8n.ioZapier (SaaS proprietária)
    CustomizaçãoNodes em JavaScript, Python, ou DockerIntegromat (limitado a scripts)
    EscalabilidadeDeploy em Kubernetes, Docker Swarm ou serverlessPower Automate (dependente de licenças)
    PreçoGratuito até 2M de execuções/mês (auto‑hosted)Planos pagos a partir de US$ 20/mês
    Comunidade3k+ contribuições no GitHub, plugins criados por usuáriosMarketplace fechado

    Além disso, o n8n oferece credenciais seguras (OAuth2, API Key) que podem ser reutilizadas em vários fluxos, reduzindo a exposição de segredos.

    3. Construindo o fluxo de vendas end‑to‑end

    3.1. Preparação do ambiente

  • Instalação rápida (Docker)
  • docker run -d --name n8n \
         -p 5678:5678 \
         -v ~/.n8n:/root/.n8n \
         n8nio/n8n

    A interface ficará disponível em http://localhost:5678.

  • Credenciais – Crie as credenciais nas Configurações → API Credentials:
  • - HubSpot OAuth2 (clientId, clientSecret, refreshToken) - SendGrid API Key - Stripe Secret Key

    3.2. Modelando o workflow

    A seguir, a estrutura lógica (em BPMN) do fluxo:

    Start Event (Webhook) → Task (HubSpot) → Task (SendGrid) → Parallel Gateway
    

    ↘︎ ↙︎ Task (Stripe Checkout) Task (Log to S3) ↘︎ ↙︎ End Event (Payment webhook) → Task (HubSpot Update)

    3.3. Passo a passo no n8n

    3.3.1. Webhook de captura de lead
    • Node: Webhook
    • Método: POST
    • Path: /lead-capture

    {
    

    "email": "joao.silva@example.com", "nome": "João Silva", "empresa": "Acme Corp", "produto_interesse": "SaaS Analytics" }

    3.3.2. Criação/atualização no HubSpot
    • Node: HubSpot → “Create or Update Contact”
    • Mapeamento:
    - emailemail - nomefirstname - empresacompany - produto_interessecustom_property_product_interest

    // Exemplo de expressão n8n (JavaScript) para garantir que o contato exista
    

    {{ $json.email ? $json.email : '' }}

    3.3.3. Envio de e‑mail de boas‑vindas via SendGrid
    • Node: SendGrid → “Send Email”
    • From: marketing@empresa.com
    • To: {{$json.email}}
    • Subject: “Obrigado pelo seu interesse, {{ $json.nome }}!”
    • HTML Content:

    <p>Olá {{ $json.nome }},</p>
    

    <p>Obrigado por se interessar pelo nosso {{ $json.produto_interesse }}. Clique no link abaixo para concluir a compra:</p> <p><a href="{{ $node["Stripe Checkout"].json.url }}">Finalizar pagamento</a></p> <p>Qualquer dúvida, responda este e‑mail.</p>

    3.3.4. Criação da sessão de checkout no Stripe
    • Node: HTTP Request (POST)
    • URL: https://api.stripe.com/v1/checkout/sessions
    • Auth: Bearer Token (Stripe Secret Key)
    • Body (JSON):

    {
    

    "payment_method_types": ["card"], "line_items": [ { "price_data": { "currency": "brl", "product_data": { "name": "{{ $json.produto_interesse }}" }, "unit_amount": 19900 }, "quantity": 1 } ], "mode": "payment", "success_url": "https://empresa.com/sucesso?session_id={CHECKOUT_SESSION_ID}", "cancel_url": "https://empresa.com/cancelado" }

    • Output: O campo url retornado será usado no e‑mail enviado anteriormente.

    3.3.5. Webhook de confirmação de pagamento (Stripe)

    Crie um novo Webhook no n8n com path /stripe-webhook. No painel Stripe, adicione esse endpoint e selecione o evento checkout.session.completed.

    • Node: Webhook → “Stripe Checkout Completed”
    • Payload: Contém session_id, customer_email, amount_total.

    3.3.6. Atualização do status no HubSpot
    • Node: HubSpot → “Update Contact”
    • Search by: email = {{$json.customer_email}}
    • Set property: lead_status = "Cliente"

    3.3.7. Log centralizado (opcional)
    • Node: Write Binary File → Salva o JSON completo da transação em um bucket S3 (ou bucket MinIO).
    • Configuração: Bucket → sales-logs, Key → {{ $now.format("YYYY/MM/DD") }}/{{ $json.session_id }}.json.

    3.4. Testando o fluxo

  • Simulação de lead – Use curl:
  • curl -X POST http://localhost:5678/webhook/lead-capture \
         -H "Content-Type: application/json" \
         -d '{"email":"test@example.com","nome":"Teste Usuário","empresa":"Demo Ltda","produto_interesse":"Plataforma X"}'

  • Verificar o e‑mail – Acesse a caixa de envio do SendGrid (sandbox) ou use a API de teste.
  • Completar pagamento – Abra a URL retornada, use o cartão de teste 4242 4242 4242 4242.
  • Confirmar atualização – No HubSpot, procure o contato e
  • Artigos relacionados