---
id: agencias/funil-midia-crm
industria: Agências de marketing
uso: muito usado
esforco: alto
grao: Uma linha por negócio para atribuição; cliente x canal x campanha x mês para o funil
---

# Funil mídia, lead, MQL, SQL e venda

Quanto custou cada lead, MQL, SQL e venda de cada cliente, medido no CRM dele e não no gerenciador de anúncios.

## Resumo executivo

**Para quem:** Agências que precisam mostrar ao cliente oportunidade e venda, não só lead de plataforma.

**O que resolve**

- O custo por MQL, SQL e venda de cada cliente, com a régua de funil que o cliente usa.
- A origem de cada lead decidida por uma regra única, e não pela plataforma que credita mais.
- Um funil que não muda de tamanho sozinho quando o comercial move negócios entre funis.

**Por que importa:** O cliente não renova pelo CPL, renova pela venda. Quando o funil sai do CRM com custo por etapa, a agência defende a verba com o número que o comercial do cliente reconhece. Com a régua errada, o relatório mostra lead barato que nunca vira venda.

**Perguntas de negócio que responde**

- Quantos MQL e SQL vieram de mídia paga neste mês, e a que custo?
- Qual o CAC de mídia paga do cliente X no trimestre?
- Qual canal traz o lead mais barato que vira venda?
- Por que a taxa de qualificação caiu em agosto?
- Quais campanhas geram lead que o comercial descarta?
- A mídia de março já deu retorno em vendas?

**O que você precisa**

- O CRM do cliente e a mídia dele conectados na Nekt
- A régua de funil combinada com o cliente: quais funis entram e o que é MQL, SQL e venda
- O caso Mídia paga de toda a carteira, para o investimento por cliente e canal

**O que você recebe**

- Uma tabela por negócio com etapa máxima alcançada, canal e campanha de origem
- O funil mensal por cliente e canal com CPL, custo por MQL, custo por SQL e CAC
- Um mapa por cliente de etapa do CRM para etapa do funil, mantido como dado
- Um agente de IA que responde o funil com a régua de cada cliente

## Detalhado

### O problema

A plataforma de anúncio conta lead; o cliente conta venda. Entre os dois está o CRM do cliente, e cada cliente usa um CRM, um conjunto de funis e uma definição diferente de MQL, SQL e venda. Muitos CRMs guardam só a etapa atual, a origem do lead chega codificada ou vazia, e o mesmo ganho pode ser venda num funil e só qualificação em outro.

### Regras de negócio

1. **Lead é negócio criado no escopo.** Um lead é um negócio (ou lead do CRM) criado num dos funis combinados com o cliente, contado pela data de criação. Funis de recrutamento, outbound, eventos, reativação de base, pedidos da empresa inteira e qualidade ficam fora. Leads de teste de integração (motivo de perda de teste, título ou contato com teste, asdf, qwerqwer) saem da contagem. (Evite: Contar todos os negócios de todos os funis do CRM.)
2. **A escada é declarada por cliente, como dado.** Cada cliente tem um mapa de etapa do CRM para etapa canônica: lead, MQL, SQL, oportunidade, venda, perdido. A ordem de decisão é: ajuste manual do mapa, depois termo no nome da etapa avaliado da mais avançada para a menos avançada, depois primeira etapa do funil vira lead. Etapa que não casa em nada vira lead e entra num alerta; nunca some. (Evite: Uma régua de MQL e SQL igual para todos os clientes, escrita no código.)
3. **Conte a etapa máxima alcançada.** Use o histórico de etapas quando existir (hs_v2_date_entered_<stageId> no HubSpot, eventos de mudança de etapa no Kommo). Sem histórico, o negócio chegou à etapa N se está ganho ou se a ordem da etapa atual é maior ou igual a N. Negócio perdido depois do SQL continua contando como SQL. (Evite: Contar só quem está parado na etapa SQL hoje.)
4. **Ganho só é venda no funil de vendas.** Venda = negócio ganho no funil de vendas, pela data de fechamento. Ganho no funil de pré-vendas é qualificação (SQL), não venda. No objeto Lead do HubSpot, qualificado é hs_pipeline_stage_category = QUALIFIED. No Kommo, os status 142 (ganho) e 143 (perdido) são globais e valem em qualquer funil. (Evite: Tratar todo status ganho como venda.)
5. **Situação da etapa se deriva, não se lê do isClosed.** No HubSpot, metadata.isClosed das etapas pode vir verdadeiro em todas, inclusive no topo do funil. Derive a situação (aberto, ganho, perdido) do id e da probabilidade da etapa: probabilidade 1 é ganho, a etapa de perda é perdido, o resto é aberto. No Pipedrive, ganho e perdido são status do negócio, que fica parado na última etapa em que estava. (Evite: Usar isClosed para separar aberto de fechado.)
6. **A origem sai de uma cascata única.** A primeira regra que casar define o canal: ajuste manual confirmado pelo time, UTM do negócio, UTM herdada do lead do pré-vendas, ids de clique (gclid, gbraid, wbraid ou gad_source para Google; fbclid para Meta; li_fat_id para LinkedIn), campo Fonte do CRM, orgânico, sem origem. No RD Station, traffic_source pode vir como encoded_ seguido de base64 com a primeira e a última sessão: decodifique antes de concluir que não há rastreamento. (Evite: Ler a origem só do campo Fonte ou da última UTM.)
7. **Lead Ads se liga pelo id, não pela UTM.** O formulário nativo do Meta não passa pelo site e o negócio chega sem UTM. Use o id do formulário ou do anúncio, ou os ids da URL de primeira visita (hsa_ad, hsa_grp, hsa_cam e similares). Teste cada id numérico contra ad_id, adset_id e campaign_id reais da conta do cliente, porque a posição do parâmetro muda de cliente para cliente. (Evite: Ler utm_content como anúncio em todos os clientes.)
8. **Custo por etapa só com lead pago.** CPL, custo por MQL, custo por SQL e CAC de mídia = investimento pago do período / quantidade da etapa vinda de canal pago. Por canal, o investimento do canal sobre a etapa do mesmo canal. Fonte desconhecida pode contar como digital se o cliente decidir, mas nunca como paga, porque não há custo atribuível. (Evite: Investimento pago dividido por todos os leads do CRM.)
9. **Safra e fechamento nunca se somam.** Safra conta pela data de criação do lead e responde se a mídia do mês deu retorno; é a leitura que se divide pelo investimento do mesmo mês. Fechamento conta pela data do ganho e responde quanto entrou no mês. A safra de meses recentes ainda sobe nas semanas seguintes. Ao mostrar fechamento, diga quanto veio de lead criado antes do período. (Evite: Custo por venda com vendas pela data de fechamento e verba do mês.)
10. **Pessoas se cruzam por chave normalizada.** Entre CRM, ferramenta de marketing e formulários, o cruzamento é por e-mail em minúsculas e sem espaços, ou telefone só com dígitos e DDI 55. Quando a política do cliente pede, use o hash do e-mail. Nome nunca é chave. (Evite: Cruzar por nome do contato ou e-mail sem normalizar.)

### Como cada CRM diz que o negócio avançou

O sinal de etapa, ganho e perda muda de CRM para CRM.

- **HubSpot · negócios** → Data de entrada em cada etapa (`hs_v2_date_entered_<stageId>`)
- **HubSpot · etapas do funil** → isClosed não serve, derive pela etapa (`metadata.probability, stageId`)
- **HubSpot · objeto Lead** → Qualificado no pré-vendas (`hs_pipeline_stage_category = QUALIFIED`)
- **Kommo** → Ganho e perdido globais; histórico no stream de eventos (`status_id 142 e 143`)
- **Pipedrive** → Ganho e perdido são status do negócio, não etapa (`status won / lost`)
- **RD Station CRM** → Safra pela criação, venda pelo fechamento (`created_at, closed_at, win`)
- **Bitrix24 · leads** → Convertido e descartado (`STATUS_SEMANTIC_ID S / F`)
- **RD Station Marketing** → Origem codificada do evento (`traffic_source encoded_<base64>`)

### Definições

| Métrica | Definição |
|---|---|
| Lead | negócio criado num funil do escopo do cliente, sem teste, pela data de criação, no mês |
| MQL | lead que alcançou a etapa mapeada como MQL (em geral, entrada no funil de pré-vendas), pela safra |
| SQL | lead que alcançou a etapa SQL ou foi ganho no funil de pré-vendas, pela safra |
| Venda | negócio ganho no funil de vendas; na safra pela criação, no fechamento pela data do ganho |
| CPL | investimento pago do mês / leads de origem paga criados no mês |
| Custo por MQL e por SQL | investimento pago do mês / MQL ou SQL de origem paga da safra do mês |
| CAC de mídia | investimento pago do período / vendas de origem paga da safra do período |
| Taxa de qualificação | SQL / lead da mesma safra, por cliente e canal |

### Armadilhas

- **Funil que encolhe para trás.** Com lead definido como negócio no funil de pré-vendas, cada negócio qualificado que saía daquele funil sumia da contagem, e meses fechados perdiam leads. Como evitar: Conte a criação e a etapa máxima, não o funil onde o negócio está hoje.
- **Todas as etapas fechadas.** Nos portais HubSpot de vários clientes, isClosed vinha verdadeiro em todas as etapas, inclusive nas de topo, e milhares de negócios abertos apareciam como fechados. Como evitar: Derive aberto, ganho e perdido pela etapa.
- **Ganho que não era venda.** Num cliente com funil de pré-vendas, o ganho do SDR, que significa lead qualificado, foi lido como venda e inflou as vendas do mês. Como evitar: Venda exige funil de vendas e ganho.
- **Base importada como lead.** Eventos de importação em lote e de integração eram a maior parte dos eventos do RD Station em alguns clientes, e um funil de reativação montado por importação derrubava o CPL. Como evitar: Separe importação, integração e reativação antes de contar lead.
- **Lead sem origem que tinha origem.** O traffic_source do RD Station parecia vazio ou ilegível, mas estava em base64. Mais de uma agência redescobriu isso sozinha, depois de tratar esses leads como sem origem. Como evitar: Decodifique encoded_ antes de classificar como sem origem.
- **CRM contra plataforma.** A plataforma credita a conversão na data do clique e não desconta a outra plataforma, então a soma das plataformas passa do total do CRM. Como evitar: Lead, MQL e venda por canal saem do CRM; custo e clique, da plataforma.

Validado em dados reais: No HubSpot da própria Nekt, todas as etapas de negócio vêm com metadata.isClosed verdadeiro, inclusive as que têm probabilidade entre 0 e 1, que são abertas. Quem separar aberto de fechado por esse campo fecha o funil inteiro.

### Teste de aceitação

- [ ] Para um cliente e um mês fechado, a contagem de leads, MQL, SQL e vendas bate com o relatório de funil do CRM com os mesmos filtros de funil e data.
- [ ] Em cada etapa, a quantidade nunca é maior que a da etapa anterior da mesma safra.
- [ ] A soma dos leads por canal é igual ao total de leads do mês, com a linha sem origem explícita.
- [ ] O investimento usado no custo por etapa é igual ao investimento pago do cliente na tabela de mídia da carteira no mesmo mês.
- [ ] Reprocessar um mês fechado depois de mover negócios entre funis não muda a contagem de leads daquele mês.

### Context document

```text
Funil mídia até venda
- Lead = negócio criado num funil do escopo do cliente, pela data de criação. Funis fora do escopo e leads de teste não contam.
- MQL, SQL e venda seguem o mapa de etapas de cada cliente. Conte a etapa máxima alcançada, não a etapa atual.
- Venda = ganho no funil de vendas. Ganho no funil de pré-vendas é SQL.
- Não use metadata.isClosed do HubSpot. A situação da etapa é derivada.
- Canal do lead: ajuste manual, UTM do negócio, UTM herdada do pré-vendas, id de clique, campo Fonte, orgânico, sem origem. Nesta ordem.
- Custo por etapa = investimento pago / etapa de origem paga. Nunca divida pelo total de leads do CRM.
- Safra (criação) e fechamento (ganho) nunca se somam. Custo por etapa usa safra.
- Lead, MQL e venda por canal vêm do CRM; investimento e cliques vêm da plataforma.
- Se a régua de um cliente não estiver validada, diga "régua não validada com o cliente".
Exceções por cliente:
- <cliente>: funis do escopo são <funil 1> e <funil 2>; <funil 3> é reativação e fica fora.
- <cliente>: MQL = entrada no funil <nome>; SQL = ganho no funil de pré-vendas.
- <cliente>: fonte "Desconhecido" conta como digital, mas não como paga.
```

### Variações

- **Melhor criativo por etapa:** Com o anúncio de origem em cada negócio, ranqueie criativos por SQL e venda, não por lead.
- **Funil por unidade:** A mesma escada aberta por linha de produto, unidade ou clínica do cliente.
- **Funil no WhatsApp:** Conversa iniciada no topo, com a qualificação vinda da ferramenta de atendimento.
