Referência da API de Integração
URL base: https://api.external.leaper.com.br. Toda requisição precisa do cabeçalho X-API-Key. Autenticação, formatos, erros e casos de uso estão no guia.
Mensagens
Registre as mensagens de WhatsApp trocadas fora da Leaper.
Registrar mensagem
Registra uma mensagem de WhatsApp na conversa do lead. A Leaper procura o lead pelo phone ou pelo lid: se ele existir, a mensagem entra na conversa dele; se não existir, o lead é criado no primeiro status do funil.
- O telefone é comparado só pelos dígitos: +55 (11) 98765-4321 e 5511987654321 são o mesmo contato. Envie sempre com DDI.
- Com phone e lid, vale o lead que tiver qualquer um dos dois. Se o lead foi encontrado pelo telefone e ainda não tinha LID, o lid enviado é salvo.
- Sem message, nada é gravado na conversa, mas o lead continua sendo encontrado ou criado.
- Reenviar a mesma mensagem com o mesmo message_id não a duplica na conversa.
- Um lead que veio de formulário passa a aparecer como contatado pelo WhatsApp.
Mensagens da empresa (from_me: true): para um contato que ainda não é lead, o lead só é criado se a opção Criar lead ao iniciar conversa estiver ligada nas configurações da empresa. Com ela desligada, a resposta é 200 com { "lead": null } e nada é gravado. Leads criados por mensagem da empresa ficam com origem NO_TRACKING.
Origem do lead: quando a mensagem de um contato cria o lead, os parâmetros de rastreamento definem o source:
| Parâmetro enviado | source |
|---|---|
| ctwa_clid | METAADS_MSG |
| fbclid | METAADS_SITE |
| gclid, wbraid ou gbraid | GOOGLE_SITE |
| utm.source com google | GOOGLE_ORGANIC |
| utm.source com facebook ou meta | FACEBOOK_ORGANIC |
| utm.source com instagram | INSTAGRAM_ORGANIC |
| utm.source com tiktok | TIKTOK_ORGANIC |
| utm.source com youtube | YOUTUBE_ORGANIC |
| Outro utm.source | OTHER_ORGANIC |
| Nenhum | NO_TRACKING |
Se o lead já existe, a origem dele não muda.
Corpo da requisição (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| phone | texto ou inteiro | Sim, sem lid | Telefone do contato com DDI. Só os dígitos contam, e precisam ser de 8 a 15. |
| lid | texto | Sim, sem phone | Identificador do contato no WhatsApp (LID), no formato 123456789@lid. |
| name | texto | Não | Nome do contato. Usado ao criar o lead. |
| message | texto | Não | Texto da mensagem. |
| from_me | booleano | Não | true quando a mensagem foi enviada pela empresa. Padrão: false. |
| message_id | texto | Não | Identificador da mensagem no seu sistema ou provedor de WhatsApp. Evita duplicar a mensagem quando a chamada é repetida. Até 255 caracteres. |
| timestamp | texto (data e hora) | Não | Data e hora da mensagem em ISO 8601, com fuso (2026-09-11T10:30:00-03:00 ou 2026-09-11T13:30:00Z). Sem ele, vale o horário do recebimento. |
| ctwa_clid | texto | Não | Identificador do clique em anúncio de clique para o WhatsApp (Meta Ads). |
| fbclid | texto | Não | Identificador do clique em anúncio do Meta Ads que levou a um site. |
| gclid | texto | Não | Identificador do clique no Google Ads. |
| wbraid | texto | Não | Identificador de clique do Google Ads em navegação web (iOS). |
| gbraid | texto | Não | Identificador de clique do Google Ads em aplicativos (iOS). |
| utm | objeto | Não | Parâmetros UTM do acesso. Também aceitos soltos no corpo, como utm_source e utm_medium. |
| utm.source | texto | Não | |
| utm.medium | texto | Não | |
| utm.campaign | texto | Não | |
| utm.term | texto | Não | |
| utm.content | texto | Não |
Respostas
| Código | Descrição |
|---|---|
| 201 | O lead foi criado e a mensagem, registrada. Corpo: Resultado de mensagem. |
| 200 | O lead já existia e a mensagem foi registrada. Também é a resposta, com lead: null, quando a mensagem da empresa é ignorada. Corpo: Resultado de mensagem. |
| 400 | Corpo ou parâmetro inválido. A mensagem em error diz o que corrigir. Corpo: Erro. |
| 401 | Cabeçalho X-API-Key ausente ou chave inválida. Corpo: Erro. |
| 403 | A empresa está desativada. Corpo: Erro. |
| 422 | A empresa não tem status no funil para receber o lead. Corpo: Erro. |
| 429 | Limite de requisições atingido. O cabeçalho Retry-After diz em quantos segundos tentar de novo. Corpo: Erro. |
Exemplo
Resposta 201
Resposta 200 — Lead existente
Resposta 200 — Mensagem ignorada
Leads
Crie, atualize, liste e consulte leads.
Listar leads
Lista os leads da empresa, dos mais recentes para os mais antigos, com paginação por limit e offset. Os filtros podem ser combinados. Cada item traz os blocos lead e status; tracking e form_submissions vêm só com include.
Parâmetros de consulta
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| search | texto | Não | Busca por parte do nome, do e-mail ou do telefone. |
| status_id | texto (uuid) | Não | id do status, de Listar status do funil. Não pode ser usado junto com status. |
| status | texto | Não | code do status, como NEGOCIACAO. Prefira status_id: o code muda quando o status é renomeado. |
| source | texto | Não | Origem do lead (veja Origem do lead). Aceita também META_ADS e GOOGLE_ADS, que reúnem as origens pagas de cada plataforma. |
| tag | texto | Não | Leads com uma tag que contenha o texto informado. |
| start_date | texto | Não | Início do período, em YYYY-MM-DD ou YYYY-MM-DD HH:MM:SS, no horário de Brasília. Só a data vale a partir de 00:00:00. |
| end_date | texto | Não | Fim do período, no mesmo formato. Só a data vale até 23:59:59. |
| date_field | texto | Não | Data usada por start_date e end_date: created_at (entrada do lead) ou status_changed_at (última mudança de status). Valores: created_at, status_changed_at. Padrão: created_at. |
| include | texto | Não | Blocos opcionais, separados por vírgula: tracking e form_submissions. São os mesmos blocos de Consultar lead. Com include, limit vale no máximo 50. Valores: tracking, form_submissions, tracking,form_submissions. |
| limit | inteiro | Não | Itens por página. No máximo 50 quando include é usado. Padrão: 50. De 1 a 200. |
| offset | inteiro | Não | Quantos itens pular. Padrão: 0. Mínimo: 0. |
Respostas
| Código | Descrição |
|---|---|
| 200 | Página de leads. Corpo: Lista de leads. |
| 400 | Corpo ou parâmetro inválido. A mensagem em error diz o que corrigir. Corpo: Erro. |
| 401 | Cabeçalho X-API-Key ausente ou chave inválida. Corpo: Erro. |
| 403 | A empresa está desativada. Corpo: Erro. |
| 429 | Limite de requisições atingido. O cabeçalho Retry-After diz em quantos segundos tentar de novo. Corpo: Erro. |
Exemplo
Resposta 200
Criar lead
Cria um lead no primeiro status do funil. Se a empresa tiver webhooks do evento Novo Lead, eles são disparados.
Corpo da requisição (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| source | texto | Sim | Origem do lead. TRACKING_LOST não é aceito. |
| client | objeto | Sim | Dados do contato. |
| client.name | texto | Não | Nome. |
| client.phone | texto | Não | Telefone. Envie só dígitos, com DDI, como 5511987654321. |
| client.lid | texto | Não | Identificador do contato no WhatsApp (LID), no formato 123456789@lid. |
| client.email | texto | Não | E-mail. |
| client.address | texto | Não | Endereço. |
| client.custom_fields | lista de objetos | Não | Campos personalizados. |
| client.custom_fields[].key | texto | Sim | Nome do campo. |
| client.custom_fields[].value | texto ou número | Sim | Valor do campo. Números são gravados como texto. |
| lead_value | texto ou número | Não | Valor do lead, com ponto como separador decimal e sem separador de milhar, como 1500.50. 1.500,00 é recusado e 1.500 é lido como 1,5. O prefixo R$ é aceito. |
| created_from | texto | Não | Canal de entrada do lead. É o canal mostrado no painel e o que os gatilhos de conversão configurados por canal consideram. Valores: external_api, whatsapp, forms. Padrão: external_api. |
| tags | texto | Não | Tags do lead. |
Respostas
| Código | Descrição |
|---|---|
| 201 | Lead criado. Corpo: Recurso lead. |
| 400 | Corpo ou parâmetro inválido. A mensagem em error diz o que corrigir. Corpo: Erro. |
| 401 | Cabeçalho X-API-Key ausente ou chave inválida. Corpo: Erro. |
| 403 | A empresa está desativada. Corpo: Erro. |
| 422 | A empresa não tem status no funil para receber o lead. Corpo: Erro. |
| 429 | Limite de requisições atingido. O cabeçalho Retry-After diz em quantos segundos tentar de novo. Corpo: Erro. |
Exemplo
Resposta 201 — Lead
Consultar lead
Retorna o lead com os blocos lead, status, tracking e form_submissions.
Parâmetros de rota
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| lead_id | texto (uuid) | Sim | id do lead. |
Respostas
| Código | Descrição |
|---|---|
| 200 | Lead encontrado. Corpo: Recurso lead. |
| 401 | Cabeçalho X-API-Key ausente ou chave inválida. Corpo: Erro. |
| 403 | A empresa está desativada. Corpo: Erro. |
| 404 | O lead não existe ou é de outra empresa. Corpo: Erro. |
| 429 | Limite de requisições atingido. O cabeçalho Retry-After diz em quantos segundos tentar de novo. Corpo: Erro. |
Exemplo
Resposta 200 — Lead
Atualizar lead
Atualiza os dados de um lead. Só os campos enviados mudam: campos ausentes ou vazios não apagam o que já existe.
- custom_fields é mesclado pela key: chaves novas são adicionadas e chaves existentes, substituídas.
- O lid e o created_from não podem ser alterados.
- Para mudar o status, use Mover lead de status.
Parâmetros de rota
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| lead_id | texto (uuid) | Sim | id do lead. |
Corpo da requisição (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| source | texto | Não | Origem do lead. TRACKING_LOST não é aceito. |
| client | objeto | Não | Dados do contato. |
| client.name | texto | Não | Nome. |
| client.phone | texto | Não | Telefone. Envie só dígitos, com DDI. |
| client.email | texto | Não | E-mail. |
| client.address | texto | Não | Endereço. |
| client.custom_fields | lista de objetos | Não | Campos personalizados, mesclados pela key. |
| client.custom_fields[].key | texto | Sim | Nome do campo. |
| client.custom_fields[].value | texto ou número | Sim | Valor do campo. |
| lead_value | texto ou número | Não | Valor do lead, no mesmo formato de Criar lead. |
| tags | texto | Não | Tags do lead. Substituem as atuais. |
Respostas
| Código | Descrição |
|---|---|
| 200 | Lead atualizado. Corpo: Recurso lead. |
| 400 | Corpo ou parâmetro inválido. A mensagem em error diz o que corrigir. Corpo: Erro. |
| 401 | Cabeçalho X-API-Key ausente ou chave inválida. Corpo: Erro. |
| 403 | A empresa está desativada. Corpo: Erro. |
| 404 | O lead não existe ou é de outra empresa. Corpo: Erro. |
| 429 | Limite de requisições atingido. O cabeçalho Retry-After diz em quantos segundos tentar de novo. Corpo: Erro. |
Exemplo
Resposta 200 — Lead
Consultar conversa
Retorna todas as mensagens registradas na conversa do lead, em ordem cronológica. Sem mensagens, messages vem vazio.
Parâmetros de rota
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| lead_id | texto (uuid) | Sim | id do lead. |
Respostas
| Código | Descrição |
|---|---|
| 200 | Conversa do lead. Corpo: Conversa. |
| 401 | Cabeçalho X-API-Key ausente ou chave inválida. Corpo: Erro. |
| 403 | A empresa está desativada. Corpo: Erro. |
| 404 | O lead não existe ou é de outra empresa. Corpo: Erro. |
| 429 | Limite de requisições atingido. O cabeçalho Retry-After diz em quantos segundos tentar de novo. Corpo: Erro. |
Exemplo
Resposta 200
Status do lead
Consulte e altere o status de um lead no funil.
Consultar status do lead
Retorna o status atual, o anterior e o histórico completo do lead no funil, do mais antigo para o mais recente.
Parâmetros de rota
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| lead_id | texto (uuid) | Sim | id do lead. |
Respostas
| Código | Descrição |
|---|---|
| 200 | Status do lead. Corpo: Resposta de status do lead. |
| 401 | Cabeçalho X-API-Key ausente ou chave inválida. Corpo: Erro. |
| 403 | A empresa está desativada. Corpo: Erro. |
| 404 | O lead não existe ou é de outra empresa. Corpo: Erro. |
| 429 | Limite de requisições atingido. O cabeçalho Retry-After diz em quantos segundos tentar de novo. Corpo: Erro. |
Exemplo
Resposta 200 — Status do lead
Mover lead de status
Move o lead para outro status do funil. A mudança dispara os eventos de conversão configurados para o status (Meta Ads e Google Ads) e os webhooks de mudança de status da empresa.
Enviar o status em que o lead já está não conta como mudança: nada entra no histórico e nenhum evento é disparado. A resposta é a mesma de uma mudança.
Parâmetros de rota
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| lead_id | texto (uuid) | Sim | id do lead. |
Corpo da requisição (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| status_id | texto (uuid) | Sim | id do status de destino, de Listar status do funil. |
Respostas
| Código | Descrição |
|---|---|
| 200 | Status atualizado. Corpo: Resposta de status do lead. |
| 400 | Corpo ou parâmetro inválido. A mensagem em error diz o que corrigir. Corpo: Erro. |
| 401 | Cabeçalho X-API-Key ausente ou chave inválida. Corpo: Erro. |
| 403 | A empresa está desativada. Corpo: Erro. |
| 404 | O lead não existe ou é de outra empresa. Corpo: Erro. |
| 422 | O status_id não é de um status ativo da empresa. Corpo: Erro. |
| 429 | Limite de requisições atingido. O cabeçalho Retry-After diz em quantos segundos tentar de novo. Corpo: Erro. |
Exemplo
Resposta 200 — Status do lead
Funil
Status do funil configurados na empresa.
Listar status do funil
Lista os status ativos do funil da empresa, na ordem em que aparecem no painel.
Respostas
| Código | Descrição |
|---|---|
| 200 | Status do funil. Corpo: Lista de status do funil. |
| 401 | Cabeçalho X-API-Key ausente ou chave inválida. Corpo: Erro. |
| 403 | A empresa está desativada. Corpo: Erro. |
| 429 | Limite de requisições atingido. O cabeçalho Retry-After diz em quantos segundos tentar de novo. Corpo: Erro. |
Exemplo
Resposta 200
Consultar status do funil
Retorna um status do funil da empresa.
Parâmetros de rota
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| id | texto (uuid) | Sim | id do status. |
Respostas
| Código | Descrição |
|---|---|
| 200 | Status encontrado. Corpo: Status do funil. |
| 401 | Cabeçalho X-API-Key ausente ou chave inválida. Corpo: Erro. |
| 403 | A empresa está desativada. Corpo: Erro. |
| 404 | O status não existe, foi excluído ou é de outra empresa. Corpo: Erro. |
| 429 | Limite de requisições atingido. O cabeçalho Retry-After diz em quantos segundos tentar de novo. Corpo: Erro. |
Exemplo
Resposta 200
Empresa
Dados da empresa dona da chave.
Consultar empresa
Retorna os dados da empresa dona da chave. É uma boa chamada para testar a autenticação.
Respostas
| Código | Descrição |
|---|---|
| 200 | Dados da empresa. Corpo: Empresa. |
| 401 | Cabeçalho X-API-Key ausente ou chave inválida. Corpo: Erro. |
| 403 | A empresa está desativada. Corpo: Erro. |
| 429 | Limite de requisições atingido. O cabeçalho Retry-After diz em quantos segundos tentar de novo. Corpo: Erro. |
Exemplo
Resposta 200
Relatórios
Números do funil já somados, para painéis e acompanhamento.
Resumo do período
Totais do período: quantos leads entraram, quantos foram convertidos, quantos foram perdidos e a soma dos valores. Convertido é o lead que está no status END_WON; perdido, o que está em END_LOST. O valor somado é o lead_value de cada lead.
Parâmetros de consulta
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| start_date | texto | Não | Início do período, em YYYY-MM-DD ou YYYY-MM-DD HH:MM:SS, no horário de Brasília. Só a data vale a partir de 00:00:00. Sem este parâmetro, o período começa 30 dias antes do fim. |
| end_date | texto | Não | Fim do período, no mesmo formato. Só a data vale até 23:59:59. Sem este parâmetro, o período termina hoje. O período pode ter no máximo 92 dias. |
| date_field | texto | Não | Data usada por start_date e end_date: created_at (entrada do lead) ou status_changed_at (última mudança de status). Valores: created_at, status_changed_at. Padrão: created_at. |
Respostas
| Código | Descrição |
|---|---|
| 200 | Totais do período. Corpo: Resumo do período. |
| 400 | Corpo ou parâmetro inválido. A mensagem em error diz o que corrigir. Corpo: Erro. |
| 401 | Cabeçalho X-API-Key ausente ou chave inválida. Corpo: Erro. |
| 403 | A empresa está desativada. Corpo: Erro. |
| 429 | Limite de requisições atingido. O cabeçalho Retry-After diz em quantos segundos tentar de novo. Corpo: Erro. |
Exemplo
Resposta 200
Leads por status
Quantos leads estão em cada status do funil e a soma dos valores, na ordem do funil. Cada lead aparece uma vez, no status em que está agora.
Parâmetros de consulta
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| start_date | texto | Não | Início do período, em YYYY-MM-DD ou YYYY-MM-DD HH:MM:SS, no horário de Brasília. Só a data vale a partir de 00:00:00. Sem este parâmetro, o período começa 30 dias antes do fim. |
| end_date | texto | Não | Fim do período, no mesmo formato. Só a data vale até 23:59:59. Sem este parâmetro, o período termina hoje. O período pode ter no máximo 92 dias. |
| date_field | texto | Não | Data usada por start_date e end_date: created_at (entrada do lead) ou status_changed_at (última mudança de status). Valores: created_at, status_changed_at. Padrão: created_at. |
Respostas
| Código | Descrição |
|---|---|
| 200 | Leads por status. Corpo: Leads por status. |
| 400 | Corpo ou parâmetro inválido. A mensagem em error diz o que corrigir. Corpo: Erro. |
| 401 | Cabeçalho X-API-Key ausente ou chave inválida. Corpo: Erro. |
| 403 | A empresa está desativada. Corpo: Erro. |
| 429 | Limite de requisições atingido. O cabeçalho Retry-After diz em quantos segundos tentar de novo. Corpo: Erro. |
Exemplo
Resposta 200
Leads por origem
Quantos leads vieram de cada origem no período, quantos foram convertidos e quanto isso somou, da origem com mais leads para a com menos.
Parâmetros de consulta
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| start_date | texto | Não | Início do período, em YYYY-MM-DD ou YYYY-MM-DD HH:MM:SS, no horário de Brasília. Só a data vale a partir de 00:00:00. Sem este parâmetro, o período começa 30 dias antes do fim. |
| end_date | texto | Não | Fim do período, no mesmo formato. Só a data vale até 23:59:59. Sem este parâmetro, o período termina hoje. O período pode ter no máximo 92 dias. |
| date_field | texto | Não | Data usada por start_date e end_date: created_at (entrada do lead) ou status_changed_at (última mudança de status). Valores: created_at, status_changed_at. Padrão: created_at. |
Respostas
| Código | Descrição |
|---|---|
| 200 | Leads por origem. Corpo: Leads por origem. |
| 400 | Corpo ou parâmetro inválido. A mensagem em error diz o que corrigir. Corpo: Erro. |
| 401 | Cabeçalho X-API-Key ausente ou chave inválida. Corpo: Erro. |
| 403 | A empresa está desativada. Corpo: Erro. |
| 429 | Limite de requisições atingido. O cabeçalho Retry-After diz em quantos segundos tentar de novo. Corpo: Erro. |
Exemplo
Resposta 200
Objetos
Recurso lead
O lead completo, devolvido por Consultar lead, Criar lead e Atualizar lead. Os blocos são os mesmos dos webhooks, com os nomes em snake_case.
| Campo | Tipo | Descrição |
|---|---|---|
| lead | objeto (Lead) | Dados do contato e do cadastro. |
| status | objeto (Status do lead) | Status atual do lead e o anterior. Nulos quando não existem. |
| tracking | objeto (Tracking) | Atribuição do lead, com a mesma informação do bloco tracking dos webhooks. URLs vêm sem query string. |
| form_submissions | lista de objetos (Envio de formulário) | Formulários enviados pelo lead, do mais recente para o mais antigo. |
Lead
Dados do contato e do cadastro.
| Campo | Tipo | Descrição |
|---|---|---|
| id | texto (uuid) | Identificador do lead. Não muda; use como referência no seu sistema. |
| name | texto ou null | Nome do contato. |
| phone | texto ou null | Telefone do contato, como foi cadastrado. |
| texto ou null | E-mail do contato. | |
| address | texto ou null | Endereço do contato. |
| custom_fields | lista de objetos | Campos personalizados. |
| custom_fields[].key | texto | Nome do campo. |
| custom_fields[].value | texto ou número ou booleano ou null | Valor do campo. |
| source | texto (Origem do lead) | Valores possíveis de source. Leads antigos podem ter valores fora desta lista. |
| tags | texto ou null | Tags do lead, em texto. |
| created_at | texto (data e hora) ou null | Quando o lead entrou na Leaper. |
| updated_at | texto (data e hora) ou null | Última alteração nos dados do lead. |
| created_from | texto ou null | Canal de entrada, como whatsapp, forms, external_api ou manual. |
| lead_value | texto ou número ou null | Valor do lead, como foi informado. |
Origem do lead
Valores possíveis de source. Leads antigos podem ter valores fora desta lista.
| Valor | Descrição |
|---|---|
| PHONE | Telefone |
| WEBSITE | Site |
| WHATSAPPBOT | Robô de WhatsApp |
| METAADS_MSG | Meta Ads, campanha de mensagem |
| METAADS_SITE | Meta Ads, campanha de site |
| GOOGLE_SITE | Google Ads |
| TIKTOK_ADS | TikTok Ads |
| GOOGLE_ORGANIC | Google orgânico |
| INSTAGRAM_ORGANIC | Instagram orgânico |
| TIKTOK_ORGANIC | TikTok orgânico |
| FACEBOOK_ORGANIC | Facebook orgânico |
| YOUTUBE_ORGANIC | YouTube orgânico |
| OTHER_ORGANIC | Outras origens orgânicas |
| OTHER | Outros |
| REFERRAL | Indicação |
| IN_PERSON | Visita presencial |
| EVENT | Evento |
| NO_TRACKING | Sem rastreio |
| TRACKING_LOST | Rastreio perdido. Definido só pela Leaper; não é aceito na entrada. |
Status do lead
Status atual do lead e o anterior. Nulos quando não existem.
| Campo | Tipo | Descrição |
|---|---|---|
| current | objeto (Passagem por status) ou null | Status atual. |
| previous | objeto (Passagem por status) ou null | Status anterior no histórico. |
Status do lead com histórico
O status atual, o anterior e todas as passagens do lead pelo funil.
| Campo | Tipo | Descrição |
|---|---|---|
| current | objeto (Passagem por status) ou null | Status atual. |
| previous | objeto (Passagem por status) ou null | Status anterior no histórico. |
| history | lista de objetos (Passagem por status) | Passagens pelo funil, da mais antiga para a mais recente. |
Resposta de status do lead
| Campo | Tipo | Descrição |
|---|---|---|
| status | objeto (Status do lead com histórico) | O status atual, o anterior e todas as passagens do lead pelo funil. |
Passagem por status
Um status do funil e quando o lead entrou nele.
| Campo | Tipo | Descrição |
|---|---|---|
| id | texto (uuid) | id do status. Não muda quando o status é renomeado. |
| code | texto ou null | Código do status. Muda quando o status é renomeado, exceto END_WON (convertido) e END_LOST (perdido). |
| name | texto ou null | Nome do status no painel. |
| changed_at | texto (data e hora) ou null | Quando o lead entrou no status. |
Tracking
Atribuição do lead, com a mesma informação do bloco tracking dos webhooks. URLs vêm sem query string.
| Campo | Tipo | Descrição |
|---|---|---|
| source | texto ou null | Origem do lead, igual a lead.source. |
| source_app | texto ou null | Aplicativo de origem, quando o lead veio de anúncio, como instagram ou facebook. |
| source_url | texto ou null | Endereço de onde partiu o clique. |
| source_type | texto ou null | Tipo da origem, quando identificado. |
| utm_source | texto ou null | |
| utm_medium | texto ou null | |
| utm_campaign | texto ou null | |
| utm_content | texto ou null | |
| utm_term | texto ou null | |
| referer | texto ou null | Página que encaminhou o visitante. |
| page_url | texto ou null | Página em que o clique ou o envio aconteceu. |
| device | texto ou null | Tipo de dispositivo, como mobile. |
| browser | texto ou null | Navegador. |
| os | texto ou null | Sistema operacional. |
| click_id | texto ou null | Identificador do clique na plataforma de anúncio. |
| click_id_type | texto ou null | Tipo do identificador, como ctwa_clid, fbclid, gclid, gbraid ou wbraid. |
| click_date | texto (data e hora) ou null | Quando o clique aconteceu. |
| campaign_data | objeto ou null | Anúncio, conjunto e campanha de origem, quando identificados. |
| campaign_data.ad | objeto ou null | |
| campaign_data.ad.id | texto ou null | |
| campaign_data.ad.name | texto ou null | |
| campaign_data.ad.adset_id | texto ou null | |
| campaign_data.ad.campaign_id | texto ou null | |
| campaign_data.ad_set | objeto ou null | |
| campaign_data.ad_set.id | texto ou null | |
| campaign_data.ad_set.name | texto ou null | |
| campaign_data.ad_set.campaign_id | texto ou null | |
| campaign_data.campaign | objeto ou null | |
| campaign_data.campaign.id | texto ou null | |
| campaign_data.campaign.name | texto ou null | |
| campaign_data.campaign.status | texto ou null | Situação da campanha na plataforma, como ACTIVE. |
| form_data | objeto ou null | Formulário que originou o lead. |
| form_data.form_name | texto ou null | Nome do formulário. |
| form_data.submitted_at | texto (data e hora) ou null | Quando o formulário foi enviado. |
| journey | lista de objetos (Passo da jornada) ou null | Páginas visitadas antes da conversão, quando o rastreamento do site está ativo. |
Passo da jornada
Uma página visitada. Os parâmetros de atribuição (utm_*, gclid, wbraid, gbraid, fbclid, ttclid, msclkid) só aparecem quando existiam no acesso.
| Campo | Tipo | Descrição |
|---|---|---|
| ts | texto (data e hora) ou null | Quando a página foi acessada. |
| duration | inteiro ou null | Tempo na página, em milissegundos. |
| url | texto ou null | Endereço da página. |
| ref | texto ou null | Página anterior. |
Envio de formulário
| Campo | Tipo | Descrição |
|---|---|---|
| form_name | texto ou null | Nome do formulário. |
| answers | lista de objetos | Respostas dos campos definidos no formulário. |
| answers[].field | texto | Nome técnico do campo. |
| answers[].label | texto ou null | Rótulo exibido no formulário. |
| answers[].value | texto ou número ou booleano ou lista ou null | Valor respondido. Campos de múltipla escolha trazem uma lista. |
| tracking | objeto (Tracking do formulário) ou null | Parâmetros capturados na página no momento do envio. |
| submitted_at | texto (data e hora) ou null | Quando o formulário foi enviado. |
Tracking do formulário
Parâmetros capturados na página do formulário. Os que não existiam vêm null.
| Campo | Tipo | Descrição |
|---|---|---|
| utm_source | texto ou null | |
| utm_medium | texto ou null | |
| utm_campaign | texto ou null | |
| utm_content | texto ou null | |
| utm_term | texto ou null | |
| utm_id | texto ou null | |
| fbclid | texto ou null | |
| gclid | texto ou null | |
| wbraid | texto ou null | |
| gbraid | texto ou null | |
| msclkid | texto ou null | |
| ttclid | texto ou null | |
| leaper_adid | texto ou null | Anúncio informado no link rastreável. |
| leaper_adsetid | texto ou null | Conjunto de anúncios informado no link rastreável. |
| leaper_campaignid | texto ou null | Campanha informada no link rastreável. |
| referer | texto ou null | Página que encaminhou o visitante. |
| page_url | texto ou null | Página do formulário. |
| device | texto ou null | |
| browser | texto ou null | |
| os | texto ou null | |
| click_id | texto ou null | |
| click_id_type | texto ou null | |
| journey | lista de objetos (Passo da jornada) ou null |
Lista de leads
| Campo | Tipo | Descrição |
|---|---|---|
| data | lista de objetos | Leads da página. |
| data[].lead | objeto (Lead) | Dados do contato e do cadastro. |
| data[].status | objeto (Status do lead) | Status atual do lead e o anterior. Nulos quando não existem. |
| data[].tracking | objeto (Tracking) | Só com include=tracking. |
| data[].form_submissions | lista de objetos (Envio de formulário) | Só com include=form_submissions. Do envio mais recente para o mais antigo. |
| count | inteiro | Total de leads que atendem aos filtros, em todas as páginas. |
| limit | inteiro | limit usado na consulta. |
| offset | inteiro | offset usado na consulta. |
Status do funil
| Campo | Tipo | Descrição |
|---|---|---|
| id | texto (uuid) | Identificador do status. Não muda. |
| code | texto ou null | Código do status. Muda quando o status é renomeado, exceto END_WON e END_LOST. |
| name | texto ou null | Nome do status no painel. |
| position | inteiro ou null | Posição no funil. |
| is_funnel | booleano ou null | Se o status aparece nas colunas do funil. |
Lista de status do funil
| Campo | Tipo | Descrição |
|---|---|---|
| data | lista de objetos (Status do funil) |
Empresa
| Campo | Tipo | Descrição |
|---|---|---|
| id | texto (uuid) | |
| name | texto ou null | |
| document | texto ou null | CNPJ ou CPF. |
| address | texto ou null | |
| phone_number | texto ou null |
Conversa
| Campo | Tipo | Descrição |
|---|---|---|
| messages | lista de objetos | Mensagens em ordem cronológica. |
| messages[].from_me | booleano | true quando a mensagem foi enviada pela empresa. |
| messages[].message | texto | Texto da mensagem. |
| messages[].received_at | texto (data e hora) ou null | Data e hora da mensagem. |
Resultado de mensagem
| Campo | Tipo | Descrição |
|---|---|---|
| lead | objeto ou null | Lead da conversa. null quando a mensagem da empresa foi ignorada. |
| lead.id | texto (uuid) |
Período do relatório
Período somado no relatório, do jeito que a API entendeu os parâmetros.
| Campo | Tipo | Descrição |
|---|---|---|
| start_date | texto | Início do período, no horário de Brasília. |
| end_date | texto | Fim do período, no horário de Brasília. |
| date_field | texto | Data usada para montar o período. Valores: created_at, status_changed_at. |
Resumo do período
Totais do período.
| Campo | Tipo | Descrição |
|---|---|---|
| period | objeto (Período do relatório) | Período somado no relatório, do jeito que a API entendeu os parâmetros. |
| leads | inteiro | Leads no período. |
| converted | inteiro | Leads no status END_WON. |
| lost | inteiro | Leads no status END_LOST. |
| converted_value | número | Soma do lead_value dos leads convertidos. |
| open_value | número | Soma do lead_value dos leads que não foram convertidos nem perdidos. |
Leads por status
Leads e valores de cada status do funil, na ordem do funil.
| Campo | Tipo | Descrição |
|---|---|---|
| period | objeto (Período do relatório) | Período somado no relatório, do jeito que a API entendeu os parâmetros. |
| data | lista de objetos | |
| data[].status | objeto | Status do funil. |
| data[].status.id | texto (uuid) ou null | Identificador do status. Não muda. |
| data[].status.code | texto ou null | Código do status. |
| data[].status.name | texto ou null | Nome do status no painel. |
| data[].status.position | inteiro ou null | Posição no funil. |
| data[].leads | inteiro | Leads que estão neste status. |
| data[].value | número | Soma do lead_value desses leads. |
Leads por origem
Leads e conversões de cada origem, da origem com mais leads para a com menos.
| Campo | Tipo | Descrição |
|---|---|---|
| period | objeto (Período do relatório) | Período somado no relatório, do jeito que a API entendeu os parâmetros. |
| data | lista de objetos | |
| data[].source | texto ou null | Origem do lead (veja Origem do lead). |
| data[].leads | inteiro | Leads desta origem no período. |
| data[].converted | inteiro | Leads desta origem no status END_WON. |
| data[].converted_value | número | Soma do lead_value dos leads convertidos desta origem. |
Erro
Formato de todos os erros. A mensagem é em inglês e diz o que corrigir.
| Campo | Tipo | Descrição |
|---|---|---|
| error | texto | Descrição do problema. |
