Português

Conectando Seu Formulário de CMS ao Salesforce Sem Pagar por Conectores Premium

Se você está pagando R$250-1.000 por mês por um conector de terceiros para enviar submissões de formulários web ao Salesforce, há uma boa chance de que você não precise fazer isso. Este guia foca especificamente no Salesforce; para uma visão mais ampla dos padrões de formulário para CRM em qualquer CRM, veja Padrões de Automação Formulário para CRM que Realmente Escalam.

O Salesforce tem uma API gratuita e nativa de captura de leads chamada Web-to-Lead desde o início dos anos 2000. Ela aceita submissões de formulários via uma requisição POST padrão, cria registros de Lead automaticamente e suporta mapeamento de campos customizados. Nenhuma plataforma de integração necessária. Sem taxa mensal. A documentação oficial do Salesforce Web-to-Lead é a referência autoritativa para limites de campos, configurações de filtro de spam e opções de configuração específicas da org.

O motivo pelo qual a maioria dos times não usa é que a própria documentação do Salesforce para o Web-to-Lead é escrita para desenvolvedores. Ela mostra código HTML de formulário e espera que você o incorpore diretamente ao seu site. Times que operam WordPress, Webflow ou Framer olham para esse trecho de HTML e se perguntam como ele se encaixa nos formulários existentes.

Ele se encaixa facilmente. Você só precisa entender a mecânica, que este guia explica sem presumir nenhuma experiência prévia em desenvolvimento.

Este guia cobre três opções de implementação:

  • Opção A: Salesforce Web-to-Lead (nativo, gratuito, melhor para a maioria dos times)
  • Opção B: Plano gratuito do Zapier (sem código, funciona dentro dos limites de tarefas gratuitas do Zapier)
  • Opção C: n8n auto-hospedado (gratuito, volume ilimitado, requer um servidor)

Cada opção é independente. Leia a que se aplica à sua situação e pule as demais.

Antes de Escolher: Entenda o que Você Precisa

Responda a estas perguntas para escolher a opção correta:

Quantas submissões de formulário por mês?

  • Menos de 500: Qualquer opção funciona, comece com Web-to-Lead
  • 500-5.000: Web-to-Lead ou n8n (os custos do Zapier se acumulam)
  • Mais de 5.000: Web-to-Lead ou n8n

Você tem recursos técnicos?

  • Não: Opção A (Web-to-Lead) ou Opção B (Zapier)
  • Sim, ou disposto a seguir um guia técnico: Todas as três opções

Você precisa de mapeamento de campos customizados além dos campos padrão de Lead do Salesforce?

  • Apenas campos padrão: A Opção A funciona perfeitamente
  • Campos customizados: Opção A com alguma configuração, ou Opções B/C

Qual CMS você usa?

  • WordPress, Webflow, Framer, Squarespace: Todas as opções funcionam
  • Site desenvolvido sob medida: Todas as opções funcionam, a Opção A é a mais simples

Opção A: Salesforce Web-to-Lead (Nativo, Gratuito)

O Web-to-Lead é um recurso do Salesforce que gera uma URL de endpoint única para a sua org Salesforce. Qualquer formulário em qualquer site pode fazer um POST para essa URL e o Salesforce criará um registro de Lead.

Etapa 1: Gere Seu Formulário Web-to-Lead no Salesforce

No Salesforce, acesse: Configuração > Marketing > Gerenciamento de Leads > Web-to-Lead

Clique em "Criar formulário Web-to-Lead".

Você verá um seletor de campos à esquerda. Adicione os campos que deseja capturar. Campos padrão de Lead que você usará com frequência:

  • Primeiro Nome
  • Sobrenome
  • E-mail
  • Telefone
  • Empresa
  • Título (cargo)
  • Origem do Lead (você definirá como um valor fixo como "Website")
  • Descrição (para um campo de mensagem ou pergunta em texto livre)

Se você tiver campos de Lead customizados na sua org Salesforce, eles também aparecem nessa lista.

No lado direito, você verá:

  • URL de Retorno: Para onde o Salesforce redireciona o usuário após a submissão do formulário. Aponte para uma página de agradecimento no seu site.
  • E-mail de Resposta: Um e-mail que o Salesforce envia ao lead após a captura (opcional).

Clique em "Gerar". O Salesforce produz um trecho de HTML parecido com este:

<form action="https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="POST">
  <input type="hidden" name="oid" value="SEU_ID_DE_ORG">
  <input type="hidden" name="retURL" value="https://seusite.com/obrigado">
  
  Primeiro Nome: <input  id="first_name" maxlength="40" name="first_name" size="20" type="text" />
  Sobrenome: <input  id="last_name" maxlength="80" name="last_name" size="20" type="text" />
  E-mail: <input  id="email" maxlength="80" name="email" size="20" type="text" />
  Empresa: <input  id="company" maxlength="40" name="company" size="20" type="text" />
  <input type="submit" name="submit">
</form>

Os elementos críticos neste trecho:

  • action="https://webto.salesforce.com/...", este é o endpoint para o qual seu formulário envia
  • name="oid" com o ID da sua org, isso encaminha a submissão para a sua org Salesforce
  • name="retURL", para onde redirecionar após a submissão
  • Os atributos name dos campos, estes devem corresponder exatamente para que o Salesforce os mapeie corretamente

Etapa 2: Conecte Seu Formulário de CMS Existente ao Web-to-Lead

Você não precisa substituir seu formulário pelo trecho HTML do Salesforce. Você só precisa configurar o formulário existente para fazer um POST ao endpoint do Salesforce com os nomes de campo corretos.

Para WordPress (Gravity Forms):

  1. No Gravity Forms, edite seu formulário
  2. Vá em Configurações > Confirmações > Adicionar Nova
  3. Defina o Tipo de Confirmação como "Redirecionamento" com a URL da sua página de agradecimento
  4. Vá em Configurações > Add-Ons > Tipo de Post Customizado (se estiver usando um handler de submissão customizado)

A abordagem mais limpa para WordPress: use o add-on "Web API" do Gravity Forms ou o add-on "Zapier" para fazer a ponte ao Salesforce. Mas se quiser o Web-to-Lead puro, instale um plugin como "Web-to-Lead for Salesforce" que oferece a interface de mapeamento de campos.

Para Webflow:

Os formulários do Webflow podem redirecionar para uma URL customizada após a submissão e podem ser configurados com nomes de campo customizados. Para conectar ao Web-to-Lead:

  1. Nas configurações do formulário Webflow, mude a ação do formulário para a URL do Web-to-Lead: https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8
  2. Defina o método do formulário como POST
  3. Renomeie o atributo name de cada campo do formulário para corresponder aos nomes de campo do Salesforce (first_name, last_name, email, company)
  4. Adicione um campo oculto com nome oid e valor definido como o ID da sua org Salesforce
  5. Adicione um campo oculto com nome retURL e valor definido como a URL da sua página de agradecimento

No Designer do Webflow, edite cada elemento de input. Em "Configurações do Elemento", encontre o campo "Nome" e defina-o como o nome do campo Salesforce.

Para Framer:

O componente de formulário do Framer suporta URLs de ação customizadas. Mesma abordagem do Webflow: atualize a URL de ação para o endpoint do Web-to-Lead, renomeie os campos para corresponder aos nomes de campo do Salesforce, adicione campos ocultos de oid e retURL.

Etapa 3: Trate Campos Customizados do Salesforce

Se você precisar mapear para campos de Lead customizados do Salesforce (aqueles que você criou na sua org), o processo é similar, mas você precisa do nome da API do campo.

No Salesforce, vá em: Configuração > Gerenciador de Objetos > Lead > Campos e Relacionamentos

Encontre seu campo customizado e note a coluna "Nome do Campo". Ela terminará em __c (por exemplo, Website_Source__c).

No gerador de formulários Web-to-Lead, os campos customizados aparecem no seletor de campos. Ao selecioná-los, o HTML gerado inclui o formato correto do nome de input: 00N seguido do ID de campo específico da sua org.

Este formato se parece com: <input type="hidden" name="00N1a000003abc" value="seuvalor">. Não tão limpo quanto os nomes de campo padrão, mas funciona. Copie o valor exato do atributo name do HTML gerado e use-o no seu formulário de CMS.

Armadilhas Comuns do Web-to-Lead

O filtro de spam descarta submissões silenciosamente: O filtro de spam do Web-to-Lead do Salesforce pode rejeitar submissões sem nenhuma notificação para você ou para o lead. Você não verá um erro. O formulário será submetido normalmente, mas nenhum Lead será criado.

Sinais de filtragem de spam: leads relatando que submeteram um formulário, mas você não tem registro; a contagem de leads de submissões de formulário não corresponde à contagem de criação de Leads no Salesforce.

Solução: adicione um campo oculto ao seu formulário que o Salesforce usa para colocar submissões na lista de permissões. Na configuração do Web-to-Lead, há uma opção de "Captcha". Habilite-a e adicione o campo reCAPTCHA gerado ao seu formulário.

O proprietário padrão do lead vai para uma fila, não para uma pessoa: O Web-to-Lead atribui leads com base nas suas Regras de Atribuição de Lead do Salesforce. Se você não configurou regras de atribuição, os leads vão para a fila de leads padrão, não diretamente para um representante.

Solução: configure pelo menos uma regra de atribuição padrão que atribua submissões Web-to-Lead a um usuário específico ou execute seu roteamento round-robin padrão. Vá em Configuração > Marketing > Regras de Atribuição de Lead. Para lógica de roteamento mais complexa baseada em cargo ou porte de empresa, Roteamento de Leads para Representantes Baseado no Contexto da Conversa de Chat cobre o framework de decisão de roteamento, embora use chat como exemplo.

Campos obrigatórios ausentes causam falhas silenciosas: Se o Salesforce considera um campo obrigatório no objeto Lead, mas seu formulário não o coleta, a submissão falhará silenciosamente. Nenhum Lead é criado, nenhum erro é exibido.

Solução: verifique os campos obrigatórios no seu objeto Lead (Configuração > Gerenciador de Objetos > Lead > Campos e Relacionamentos, procure a coluna "Obrigatório"). O campo padrão obrigatório é Company, portanto certifique-se de que seu formulário o colete.

O redirecionamento para a URL de retorno acontece antes da criação do registro: O Web-to-Lead redireciona para a sua URL de retorno assim que recebe o POST, antes de ter processado e criado o Lead. Não há como passar um ID de registro do Salesforce para a sua página de agradecimento.

Esse é o comportamento esperado. Sua página de agradecimento não deve tentar confirmar que um registro do Salesforce foi criado, pois a criação é assíncrona. O artigo da Wikipedia sobre padrões de processamento assíncrono fornece contexto útil sobre por que arquiteturas fire-and-forget como o Web-to-Lead tratam o redirecionamento antes da conclusão da operação no backend, uma fonte comum de confusão para times de operações sem perfil técnico que configuram essas integrações.

Opção B: Plano Gratuito do Zapier

O plano gratuito do Zapier inclui 100 tarefas por mês, suficiente para times de baixo volume (menos de 100 leads por mês de formulários web).

Quando usar o Zapier em vez do Web-to-Lead:

  • Você quer adicionar lógica de transformação antes da escrita no Salesforce (por exemplo, combinar nome + sobrenome em nome completo, calcular um lead score)
  • Sua ferramenta de formulário tem uma integração Zapier, mas não uma opção direta de Web-to-Lead
  • Você quer ver a submissão no histórico do Zapier para depuração

Configuração (15-20 minutos)

  1. Conecte sua ferramenta de formulário como gatilho no Zapier

    • Mais comuns: Typeform, Gravity Forms, HubSpot Forms, Webflow, Jotform, Google Forms
    • Selecione "Nova Submissão" como evento de gatilho
    • Teste para confirmar que o Zapier recebe uma submissão de exemplo
  2. Adicione uma ação Salesforce

    • Selecione "Salesforce" como o aplicativo
    • Selecione "Criar Lead" como a ação (ou "Encontrar/Criar Lead" para comportamento de upsert)
    • Autentique sua conta Salesforce
  3. Mapeie campos do seu formulário para campos de Lead do Salesforce

    • Mapeie email para E-mail
    • Mapeie first_name para Primeiro Nome
    • Mapeie last_name para Sobrenome
    • Mapeie company para Empresa
    • Mapeie quaisquer campos customizados que você precisar
  4. Adicione um campo "Origem do Lead" definido como um valor fixo: "Website" (ou qualquer origem que este formulário representa)

  5. Teste com uma submissão real e confirme que o Lead aparece no Salesforce

A limitação de upsert: A ação básica "Criar Lead" do Zapier sempre cria um novo registro. Se o mesmo e-mail submeter seu formulário duas vezes, você obtém dois Leads. Para tratar a deduplicação, use a abordagem "Encontrar Registro" + caminho condicional:

Etapa 1: Zapier > Encontrar Lead (buscar por e-mail) Etapa 2: Se o Lead for encontrado > Atualizar Lead / Se não for encontrado > Criar Lead

Isso usa 2-3 tarefas por submissão em vez de 1. No limite de 100 tarefas/mês do plano gratuito, isso significa que você pode tratar cerca de 30-50 submissões de formulário únicas por mês antes de atingir o limite.

Opção C: n8n Auto-Hospedado (Gratuito, Volume Ilimitado)

O n8n é uma ferramenta de automação de workflow de código aberto que você pode hospedar por conta própria. Não há cobrança por tarefa. Uma vez em funcionamento, é essencialmente gratuito em qualquer volume.

Quando usar o n8n:

  • Você tem conhecimento técnico para configurar um servidor (ou já tem um)
  • O volume excede o plano gratuito do Zapier
  • Você quer controle total sobre a lógica sem custo por tarefa
  • Você já usa n8n para outros workflows

Visão Geral da Configuração

1. Implante o n8n:

A implantação mais fácil para quem não é desenvolvedor: n8n Cloud (tem um plano gratuito com 5 workflows ativos). Ou hospede por conta própria em um VPS de R$30/mês usando Docker:

docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -e N8N_BASIC_AUTH_ACTIVE=true \
  -e N8N_BASIC_AUTH_USER=admin \
  -e N8N_BASIC_AUTH_PASSWORD=suasenha \
  -v ~/.n8n:/home/node/.n8n \
  n8nio/n8n

Acesse o n8n em http://seu-servidor:5678.

2. Crie um nó de gatilho Webhook:

No n8n, crie um novo workflow. Adicione um nó "Webhook" como gatilho.

  • Método: POST
  • Autenticação: Nenhuma (ou Header Auth por segurança)
  • Copie a URL do webhook: https://sua-instancia-n8n/webhook/form-to-salesforce

3. Configure seu formulário para fazer POST para o webhook do n8n:

Mesma abordagem do Web-to-Lead, mas aponte a ação do formulário para a URL do seu webhook n8n.

Ou, se sua ferramenta de formulário tem uma opção de webhook (Gravity Forms, Typeform e Webflow, todos suportam isso), configure-a para enviar para a URL do n8n.

4. Adicione transformação de campo (opcional):

O nó "Set" do n8n permite transformar valores de campo antes de escrever no Salesforce. Transformações comuns:

  • Combinar nome + sobrenome em nome completo
  • Normalizar formato de número de telefone
  • Definir origem do lead com base no ID do formulário ou URL da página

5. Adicione um nó Salesforce:

Adicione um nó "Salesforce" no n8n. Conecte sua conta Salesforce. Ação: "Criar ou Atualizar Lead" (upsert).

Mapeie campos do seu payload de webhook para campos de Lead do Salesforce.

Template de Workflow JSON do n8n (Formulário para Salesforce)

Abaixo está uma estrutura de workflow simplificada que você pode adaptar:

{
  "nodes": [
    {
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "parameters": {
        "path": "form-to-salesforce",
        "responseMode": "onReceived",
        "responseCode": 200
      }
    },
    {
      "name": "Map Fields",
      "type": "n8n-nodes-base.set",
      "parameters": {
        "values": {
          "string": [
            { "name": "email", "value": "={{ $json.body.email }}" },
            { "name": "firstName", "value": "={{ $json.body.first_name }}" },
            { "name": "lastName", "value": "={{ $json.body.last_name }}" },
            { "name": "company", "value": "={{ $json.body.company }}" },
            { "name": "leadSource", "value": "Website" }
          ]
        }
      }
    },
    {
      "name": "Salesforce",
      "type": "n8n-nodes-base.salesforce",
      "parameters": {
        "resource": "lead",
        "operation": "upsert",
        "externalId": "Email",
        "email": "={{ $json.email }}",
        "additionalFields": {
          "firstName": "={{ $json.firstName }}",
          "lastName": "={{ $json.lastName }}",
          "company": "={{ $json.company }}",
          "leadSource": "={{ $json.leadSource }}"
        }
      }
    }
  ]
}

A operação upsert com externalId: "Email" trata a lógica de deduplicação de contatos: se um Lead com esse e-mail já existir, atualize-o. Se não, crie-o.

Checklist de Submissão de Teste

Antes de ir ao ar com qualquer uma das três opções:

  • Submeta um formulário de teste com seus próprios dados de contato
  • Confirme que um registro de Lead do Salesforce é criado dentro de 2 minutos
  • Verifique se todos os campos mapeados estão preenchidos corretamente (sem campos obrigatórios vazios)
  • Submeta o mesmo formulário duas vezes (mesmo e-mail), confirme que a lógica de deduplicação cria apenas um Lead (ou atualiza)
  • Verifique a atribuição de Proprietário do Lead: está indo para a pessoa/fila certa?
  • Confirme que o redirecionamento para a URL de retorno funciona (Web-to-Lead) ou que a página de agradecimento aparece (Zapier/n8n)
  • Confirme que uma submissão sem e-mail é rejeitada (validação)
  • Verifique o Lead no Salesforce para campos mostrando "valor de picklist inválido" ou outros erros de mapeamento

Medindo o que Importa

Zero falhas silenciosas: Cada submissão de formulário deve produzir um Lead do Salesforce (ou atualizar um existente). Compare contagens semanais: contagem de submissões de formulário (da análise do seu CMS ou ferramenta de formulário) vs. contagem de criação de novos Leads no Salesforce. Qualquer diferença indica falhas silenciosas. Para times que querem captura baseada em webhook customizada com registro completo de erros, Captura de Leads Baseada em Webhook para Integrações Customizadas cobre essa implementação.

Atraso de lead para Salesforce: Tempo da submissão do formulário à criação do Lead. O Web-to-Lead normalmente cria o registro em segundos. O Zapier pode levar 1-5 minutos dependendo da fila de tarefas. O n8n deve ser próximo de tempo real.

R$0 gasto em conectores: Se você implementou corretamente qualquer uma dessas três opções, seu custo recorrente de conector deve ser zero. Acompanhe isso no orçamento de ferramentas e redirecione as economias para conteúdo ou gasto em anúncios. Análise da Gartner sobre gastos com tecnologia de marketing identifica consistentemente custos de integração e conector como uma das fontes mais comuns de inchaço em martech stacks, eliminar licenciamento de middleware desnecessário é um ganho rápido para times que buscam racionalizar gastos sem perder capacidade.

Saiba Mais