• Abrir o painel

Navegação

  • Introdução
  • Primeiros passos
    • Gerar credencial
    • Autenticação
  • Referência da API
    • Criar lead
    • Parâmetros
    • Exemplos de código
    • Respostas
    • Status HTTP
  • Como o CRM processa
    • Telefone
    • Deduplicação
    • Canal, funil e origem
    • Metadata e observação
  • Limites e segurança
  • Ambiente de teste
  • Solução de problemas
  • Histórico
Referência da API

API de Leads

Envie leads de landing pages, formulários, quizzes e sistemas externos direto para o funil do Stalker Lemon CRM. Uma única requisição POST cria o contato, abre o card no funil e registra a atribuição da campanha.

Gerar credencial

Crie a chave de API no painel e vincule a um canal.

Criar um lead

Referência completa do endpoint POST /api/v1/leads.

Parâmetros

Campos aceitos, tipos, obrigatoriedade e apelidos.

Deduplicação

Como o CRM evita cards repetidos do mesmo contato.

Ambiente de teste

Dispare uma requisição real direto desta página.

Status HTTP

O que cada status HTTP significa e como corrigir.

Visão geral

A API de Leads é o ponto de entrada público do Stalker Lemon CRM. Ela recebe uma submissão de formulário e executa, dentro de uma única transação, todo o fluxo de captação:

  1. Valida a credencial da API e o limite de requisições.
  2. Normaliza o telefone e procura um contato existente na sua base.
  3. Cria ou atualiza o contato, marcando-o como lead.
  4. Decide se abre um card novo no funil ou atualiza o card em aberto.
  5. Grava campanha, conjunto, anúncio, URL de origem e as respostas do formulário.
  6. Associa os eventos do Pixel do CRM ao lead, quando houver rastreio na página.
  7. Registra a requisição no log de auditoria da credencial.
Sugestão
Resumo em uma linha

Envie POST em JSON para https://app.stalkerlemon.com.br/api/v1/leads com o cabeçalho X-API-Token e um corpo contendo, no mínimo, name e phone.

Primeiros passos

Do zero ao primeiro lead. São três etapas: gerar a credencial, montar a requisição e validar o resultado no funil.

  • Gere a credencial no painel

    Acesse Configurações → API de Leads e clique em Gerar Credencial. Copie o token no momento da criação, porque ele não é exibido novamente.

  • Envie a requisição

    Faça um POST em JSON para o endpoint, com o token no cabeçalho X-API-Token e os campos name e phone preenchidos.

  • Confira o card no funil

    Uma resposta 201 devolve contact_id e lead_id. O card aparece imediatamente no funil vinculado à credencial.

Gerar credencial

Toda requisição precisa de uma credencial ativa. Ela é criada no painel do CRM, em Configurações → API de Leads, e exige dois dados:

Campo Obrigatório Para que serve
Nome Sim Identifica a integração nos relatórios e no log. Use algo descritivo, como LP Consórcio Meta Ads.
Canal Sim Canal ao qual os contatos criados por essa credencial serão vinculados.
Funil Opcional Funil de destino dos cards. Se não for informado, o CRM usa o funil do canal e, na falta dele, o funil padrão da empresa.
Origem padrão Opcional Origem aplicada quando a requisição não envia o campo origin.

Ao concluir, o painel exibe o token da API no formato slk_....sls_.... Ele é a junção da chave pública (client_key) com o segredo (secret), separados por um ponto.

slk_9f2c41b7d8e0a3c5f1b2d4e6 . sls_a1b2c3d4e5f60718293a4b5c6d7e8f9012a3b4c5
└─────────── client_key ────────────┘   └───────────────── secret ─────────────────┘
Alerta

O segredo é exibido uma única vez. O CRM guarda apenas o hash dele. Se o token for perdido, revogue a credencial e gere outra. Não existe forma de recuperá-lo.

Aviso

Permissões: qualquer usuário com acesso de agente enxerga a tela. Criar credenciais exige permissão de edição no módulo; revogar credenciais e usar o teste interno são exclusivos de administradores.

Autenticação

A autenticação é feita por token, enviado em cabeçalho HTTP. O formato recomendado é o X-API-Token, mas a API aceita três variações para facilitar a integração com ferramentas que impõem um formato próprio.

  • X-API-Token
  • Bearer
  • Key + Secret

Formato recomendado. Envie o token completo em um único cabeçalho.

X-API-Token: slk_9f2c41b7d8e0a3c5f1b2d4e6.sls_a1b2c3d4e5f60718293a4b5c6d7e8f90

Compatível com clientes HTTP que só oferecem autenticação Bearer.

Authorization: Bearer slk_9f2c41b7d8e0a3c5f1b2d4e6.sls_a1b2c3d4e5f60718293a4b5c6d7e8f90

Chave e segredo em cabeçalhos separados, sem o ponto de junção.

X-API-Key: slk_9f2c41b7d8e0a3c5f1b2d4e6
X-API-Secret: sls_a1b2c3d4e5f60718293a4b5c6d7e8f90

Autenticação pelo corpo da requisição

Quando a plataforma de origem não permite cabeçalhos personalizados, como alguns construtores de formulário e webhooks de terceiros, o token pode ir no próprio JSON:

{
  "api_token": "slk_9f2c41b7d8e0a3c5f1b2d4e6.sls_a1b2c3d4e5f60718293a4b5c6d7e8f90",
  "name": "Maria da Silva",
  "phone": "11999999999"
}

Também são aceitos os apelidos token, e o par api_key (ou client_key) com api_secret (ou secret). Esses campos são removidos antes de gravar o lead e nunca aparecem no metadata.

Aviso

Nunca exponha o token no navegador. Chamar a API a partir do JavaScript de uma landing page deixa o segredo visível no código-fonte. Faça a chamada pelo backend da sua página ou por um serviço intermediário.

Referência da API

Endpoint único. A versão v1 expõe uma operação: a criação de lead.

Criar lead

POST https://app.stalkerlemon.com.br/api/v1/leads
Método POST. Qualquer outro método responde 405.
Content-Type application/json (recomendado). Também aceita application/x-www-form-urlencoded e multipart/form-data.
Codificação UTF-8. Acentos são preservados na resposta.
Resposta application/json; charset=utf-8
Idempotência Por external_id, no escopo da credencial.

Uma requisição GET ao endpoint devolve um descritor do contrato, útil para conferir rapidamente os campos exigidos sem consultar a documentação:

{
  "success": false,
  "message": "Use POST para enviar leads.",
  "version": "v1",
  "required_headers": ["X-API-Token: {api_token}"],
  "compatible_headers": ["Authorization: Bearer {api_token}", "X-API-Key + X-API-Secret"],
  "required_fields": ["name", "phone"],
  "optional_fields": ["email", "external_id", "origin", "campaign_name", "adset_name", "ad_name", "source_url", "metadata"]
}

Parâmetros do corpo

Todos os campos vão no corpo da requisição. A coluna Apelidos lista nomes alternativos aceitos para o mesmo campo, útil quando o formulário de origem já usa outra nomenclatura.

Campo Tipo Apelidos Descrição
name
obrigatório
string nome Nome do lead. Não pode ser vazio. Se o contato já existir com o nome em branco ou como Desconhecido, este valor substitui o antigo.
phone
obrigatório
string telefone Telefone do lead. Aceita qualquer formatação, porque o CRM extrai os dígitos e normaliza. Precisa resultar em 10 dígitos ou mais. Veja normalização de telefone.
email
opcional
string n/a E-mail do lead. Quando enviado, precisa ser um endereço válido. Só é gravado se o contato ainda não tiver e-mail.
external_id
opcional
string externalId Identificador da submissão no seu sistema. Garante idempotência: reenvios com o mesmo valor, na mesma credencial, retornam 200 sem duplicar o lead. Fortemente recomendado.
origin
opcional
enum n/a Origem do lead. Valores aceitos: meta, google, organic, link, other. Um valor fora da lista cai silenciosamente na origem padrão da credencial.
campaign_name
opcional
string campaign Nome da campanha de origem. Alimenta os relatórios de atribuição.
adset_name
opcional
string adset Nome do conjunto de anúncios.
ad_name
opcional
string ad Nome do anúncio ou criativo.
source_url
opcional
string landing_page URL da página que gerou o lead. Além de ficar registrada no card, é usada para associar os eventos do Pixel do CRM.
observation
opcional
string n/a Observação em texto livre exibida no card do funil e no detalhe do contato. Se ausente, o CRM monta uma automaticamente a partir das respostas do formulário. Veja metadata e observação.
metadata
opcional
object custom_fields Objeto livre para UTMs, respostas de quiz, produto de interesse, identificadores de clique e qualquer dado complementar.
Sugestão
Campos extras são preservados

Qualquer campo enviado no topo do JSON que não faça parte do contrato acima é automaticamente movido para dentro do metadata. Isso significa que respostas soltas de quiz e formulários (faixa_etaria, produto, melhor_horario) chegam ao CRM sem exigir nenhuma adaptação na sua página.

Exemplos de código

O mesmo lead enviado em quatro linguagens. Substitua SEU_TOKEN_API pelo token gerado no painel.

  • cURL
  • Node.js
  • PHP
  • Python
curl -X POST 'https://app.stalkerlemon.com.br/api/v1/leads' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Token: SEU_TOKEN_API' \
  -d '{
    "name": "Maria da Silva",
    "phone": "11999999999",
    "email": "maria@email.com",
    "external_id": "lp-consorcio-8421",
    "origin": "meta",
    "campaign_name": "Consórcio | Conversão",
    "adset_name": "Interesse - Imóveis",
    "ad_name": "Criativo Vídeo 01",
    "source_url": "https://minhalp.com.br/consorcio",
    "metadata": {
      "utm_source": "meta",
      "utm_medium": "cpc",
      "produto": "Consórcio Imobiliário",
      "melhor_horario": "Manhã"
    }
  }'
const resposta = await fetch('https://app.stalkerlemon.com.br/api/v1/leads', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Token': process.env.STALKER_LEMON_TOKEN
  },
  body: JSON.stringify({
    name: 'Maria da Silva',
    phone: '11999999999',
    email: 'maria@email.com',
    external_id: 'lp-consorcio-8421',
    origin: 'meta',
    campaign_name: 'Consórcio | Conversão',
    source_url: 'https://minhalp.com.br/consorcio',
    metadata: {
      utm_source: 'meta',
      produto: 'Consórcio Imobiliário'
    }
  })
});

const dados = await resposta.json();

if (!resposta.ok) {
  throw new Error(dados.message || 'Falha ao enviar o lead');
}

console.log('Lead criado:', dados.lead_id, 'Contato:', dados.contact_id);
<?php

$payload = [
    'name'          => 'Maria da Silva',
    'phone'         => '11999999999',
    'email'         => 'maria@email.com',
    'external_id'   => 'lp-consorcio-8421',
    'origin'        => 'meta',
    'campaign_name' => 'Consórcio | Conversão',
    'source_url'    => 'https://minhalp.com.br/consorcio',
    'metadata'      => [
        'utm_source' => 'meta',
        'produto'    => 'Consórcio Imobiliário',
    ],
];

$ch = curl_init('https://app.stalkerlemon.com.br/api/v1/leads');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 20,
    CURLOPT_POSTFIELDS     => json_encode($payload, JSON_UNESCAPED_UNICODE),
    CURLOPT_HTTPHEADER     => [
        'Content-Type: application/json',
        'X-API-Token: ' . getenv('STALKER_LEMON_TOKEN'),
    ],
]);

$body   = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

$resposta = json_decode($body, true);

if ($status >= 200 && $status < 300) {
    echo 'Lead criado: ' . $resposta['lead_id'];
} else {
    error_log('Falha na API de Leads: ' . ($resposta['message'] ?? $body));
}
import os
import requests

payload = {
    "name": "Maria da Silva",
    "phone": "11999999999",
    "email": "maria@email.com",
    "external_id": "lp-consorcio-8421",
    "origin": "meta",
    "campaign_name": "Consórcio | Conversão",
    "source_url": "https://minhalp.com.br/consorcio",
    "metadata": {
        "utm_source": "meta",
        "produto": "Consórcio Imobiliário",
    },
}

resposta = requests.post(
    "https://app.stalkerlemon.com.br/api/v1/leads",
    json=payload,
    headers={"X-API-Token": os.environ["STALKER_LEMON_TOKEN"]},
    timeout=20,
)

dados = resposta.json()

if resposta.ok:
    print("Lead criado:", dados["lead_id"])
else:
    raise RuntimeError(dados.get("message", resposta.text))

Respostas

A resposta é sempre um objeto JSON. O campo result_status descreve o desfecho com mais precisão do que o status HTTP e é o valor que você deve usar na sua lógica de integração.

Lead criado 201

{
  "success": true,
  "http_status": 201,
  "result_status": "created",
  "message": "Lead recebido com sucesso.",
  "request_id": "req_4f8a1c2b9e7d3506",
  "contact_id": 18342,
  "lead_id": 27615,
  "external_id": "lp-consorcio-8421",
  "origin": "meta"
}

Lead duplicado 200

O lead foi reconhecido, mas nenhum card novo foi aberto. O campo duplicate_reason explica o motivo.

{
  "success": true,
  "http_status": 200,
  "result_status": "duplicate",
  "message": "Contato ja possui oportunidade aberta; dados atualizados.",
  "request_id": "req_7c2e5a9b1d4f8036",
  "contact_id": 18342,
  "lead_id": 27615,
  "duplicate_reason": "open_lead",
  "external_id": "lp-consorcio-8421"
}

Campos da resposta

Campo Tipo Descrição
success boolean true quando a requisição foi aceita, inclusive nos casos de duplicidade.
http_status integer Repete o status HTTP no corpo, para clientes que não expõem o código da resposta.
result_status string created, duplicate, validation_error, auth_error, rate_limited ou server_error.
message string Descrição legível do resultado. Não use para lógica de programa. Prefira result_status.
request_id string Identificador único da requisição no log do CRM. Informe esse valor ao abrir um chamado de suporte.
contact_id integer ID do contato criado ou reaproveitado.
lead_id integer ID do card no funil.
duplicate_reason string Presente apenas em result_status: "duplicate". Veja deduplicação.
origin string Origem efetivamente aplicada ao lead, após a normalização.

Status HTTP

Use o result_status para automatizar a integração. O status HTTP continua útil para leitura rápida, logs e alertas operacionais.

Quando acontece

Um lead novo foi criado no funil vinculado à credencial.

Como resolver

Nenhuma ação necessária. Armazene request_id, contact_id e lead_id.

Quando acontece

A submissão foi reconhecida como repetida ou o contato já possui oportunidade aberta.

Como resolver

Trate como sucesso. Não reenvie automaticamente; use duplicate_reason para decidir o próximo passo.

Quando acontece

Token ausente, malformado, revogado ou com segredo incorreto.

Como resolver

Confira o cabeçalho X-API-Token e confirme se a credencial continua ativa no painel.

Quando acontece

A URL chamada não corresponde ao endpoint publicado da API.

Como resolver

Use exatamente https://app.stalkerlemon.com.br/api/v1/leads e mantenha o método POST.

Quando acontece

A requisição chegou com um método diferente de POST.

Como resolver

Troque o método HTTP para POST e envie o corpo como JSON.

Quando acontece

name vazio, telefone com menos de 10 dígitos ou e-mail inválido.

Como resolver

Valide os campos antes de enviar. A mensagem da resposta indica exatamente qual campo falhou.

Quando acontece

Mais de 120 requisições em 60 segundos na mesma credencial.

Como resolver

Implemente reenvio com espera progressiva. Veja limites.

Quando acontece

Falha interna ao gravar o lead. A transação é revertida por completo.

Como resolver

Reenvie a requisição. Se persistir, acione o suporte com o request_id.

{
  "success": false,
  "http_status": 422,
  "result_status": "validation_error",
  "message": "Telefone invalido. Informe ao menos 10 digitos."
}
Aviso

Erros de autenticação por segredo inválido também são registrados no log da credencial. Se você vir um volume alto de 401 em uma credencial ativa, é sinal de token vazado ou desatualizado em alguma integração. Revogue e gere outro.

Como o CRM processa o lead

Entender estas regras evita surpresas. Elas explicam por que um envio às vezes atualiza um card em vez de criar outro.

Normalização de telefone

O telefone é a chave de identidade do contato. Antes de qualquer busca, o CRM remove tudo que não for dígito e aplica as regras abaixo, nesta ordem:

Entrada Regra aplicada Resultado
(11) 99999-9999 11 dígitos, celular nacional. Recebe o código do país. 5511999999999
1133334444 10 dígitos, fixo nacional. Recebe o código do país. 551133334444
+55 11 99999-9999 13 dígitos já com o 55, mantido como está. 5511999999999
005511999999999 Prefixo internacional 00 removido. 5511999999999
99999999 Menos de 10 dígitos. Recusado. 422
Sugestão
Busca tolerante a variações

Na hora de localizar o contato, o CRM não faz comparação literal: ele reconhece o mesmo número gravado com ou sem o nono dígito e com ou sem o código do país. Isso impede que um cliente antigo vire um contato paralelo e seja tratado como lead inédito.

Deduplicação

A API aplica três camadas de proteção contra cards repetidos, avaliadas nesta ordem:

duplicate_reason Condição O que acontece
external_id Já existe uma requisição processada com o mesmo external_id nesta credencial. Retorna 200 com o contact_id e o lead_id originais. Nada é gravado.
open_lead O contato já tem um card aberto no funil. O card existente recebe a atribuição da nova submissão e ganha o selo Retorno no kanban, com atividade registrada. Nenhum card novo é criado.
flood_window Todos os cards estão fechados, mas o mais recente nasceu há menos de 24 horas. O card recente é atualizado. Protege contra reenvio de formulário e cliques repetidos no anúncio.
(cria card) Todos os cards estão fechados e o último não é recente. Cria um card novo numerado como Retorno · Nº, apontando para a oportunidade anterior.
Aviso

Use sempre external_id. É a única camada que impede duplicidade de forma determinística. As demais dependem do estado do funil. Um bom valor combina a origem e o identificador da submissão, por exemplo lp-consorcio-8421.

Canal, funil e origem

Canal

Definido na credencial e aplicado a todo contato criado ou atualizado por ela. Não pode ser alterado pela requisição. Para direcionar leads a canais diferentes, crie uma credencial por canal.

Funil

O card é aberto no primeiro funil disponível nesta ordem de precedência:

  1. Funil configurado diretamente na credencial;
  2. Funil vinculado ao canal da credencial;
  3. Funil padrão ativo da empresa.

Origem

O campo origin aceita apenas meta, google, organic, link e other. Um valor fora dessa lista não gera erro; ele é substituído pela origem padrão da credencial. Para o contato, a origem só é gravada se ele ainda não tiver uma primeira origem registrada (ou se a atual for organic), preservando a atribuição do primeiro contato.

Metadata e observação

Tudo o que não faz parte do contrato de campos é preservado dentro do metadata do lead. Na prática, os três formatos abaixo produzem exatamente o mesmo resultado no CRM:

// Formato 1: metadata explícito
{
  "name": "Maria",
  "phone": "11999999999",
  "metadata": { "produto": "Consórcio", "faixa_etaria": "35-44" }
}

// Formato 2: campos soltos no topo (típico de quizzes)
{
  "name": "Maria",
  "phone": "11999999999",
  "produto": "Consórcio",
  "faixa_etaria": "35-44"
}

// Formato 3: apelido custom_fields
{
  "name": "Maria",
  "phone": "11999999999",
  "custom_fields": { "produto": "Consórcio", "faixa_etaria": "35-44" }
}

Observação no card

O funil e o detalhe do contato exibem a observação do lead. Ela é preenchida assim:

  1. Se a requisição enviar observation (no topo ou dentro do metadata), esse texto é usado.
  2. Caso contrário, o CRM monta a observação a partir das respostas do formulário guardadas no metadata, uma por linha, no formato Campo: valor.

Dados de rastreio e atribuição (UTMs, fbc, fbp, gclid, user_agent, referrer e afins) ficam gravados no metadata, mas são excluídos desse resumo para não poluir o card.

Com o payload do formato 2 acima, a SDR vê no card:

Produto: Consórcio
Faixa etaria: 35-44

Limites e segurança

Opere com previsibilidade. Conheça os limites da API e as práticas que mantêm suas credenciais seguras.

Limite de requisições

Limite 120 requisições por minuto, contadas por credencial.
Janela Deslizante, referente aos últimos 60 segundos.
Ao exceder Resposta 429 com result_status: "rate_limited". A requisição não é processada.
Escopo Independente por credencial. Uma integração saturada não afeta as demais.

Para cargas maiores, distribua o envio entre credenciais distintas ou implemente reenvio com espera progressiva:

async function enviarLead(payload, tentativa = 1) {
  const resposta = await fetch(ENDPOINT, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json', 'X-API-Token': TOKEN },
    body: JSON.stringify(payload)
  });

  if (resposta.status === 429 && tentativa <= 4) {
    const espera = 2 ** tentativa * 1000; // 2s, 4s, 8s, 16s
    await new Promise((r) => setTimeout(r, espera));
    return enviarLead(payload, tentativa + 1);
  }

  return resposta.json();
}

Auditoria

Toda requisição é registrada no log da credencial, com sucesso ou falha. O log guarda o request_id, o corpo enviado, a resposta devolvida, o status HTTP, o IP e o user agent de origem. É a partir desse registro que o suporte investiga qualquer divergência, por isso guarde o request_id no seu lado da integração.

Boas práticas

Sugestão
Recomendado

Chamar a API pelo backend da sua landing page, guardar o token em variável de ambiente, enviar sempre external_id, uma credencial por integração e registrar o request_id nos seus próprios logs.

Alerta

Evitar: expor o token no JavaScript da página, versionar o token no repositório, reutilizar a mesma credencial em várias integrações (impede rastrear a origem de um problema) e tratar 200 duplicate como falha e reenviar.

Ambiente de teste

Valide a integração sem escrever código. Preencha os campos, confira o cURL gerado e dispare uma requisição real para a sua conta.

Alerta

Este console envia uma requisição de verdade. O lead criado aparece no seu funil e conta para o limite da credencial. Use um external_id reconhecível (o campo já vem preenchido com o prefixo docs-teste-) e marque o lead como teste no metadata para localizá-lo depois.

Endpoint
POST
Payload
Campos editáveis
Requisição gerada

                                                

                                            
Resposta da API

Informe o token e clique em Enviar teste.


                                            

Solução de problemas

Os casos mais comuns. Se nada aqui resolver, acione o suporte com o request_id da requisição.

Três causas cobrem quase todos os casos:

  • O token foi copiado sem o ponto que separa client_key e secret, ou com espaço no início/fim.
  • A credencial foi revogada no painel. Credenciais revogadas deixam de existir para a API imediatamente.
  • O cliente HTTP está removendo cabeçalhos personalizados. Nesse caso, use Authorization: Bearer ou envie o token no corpo, em api_token.

Se a resposta veio com result_status: "duplicate", nenhum card novo foi aberto. O card indicado em lead_id foi atualizado. Procure por ele no funil; se estiver marcado como Retorno, é exatamente esse o comportamento esperado.

Se a resposta foi 201, confira em qual funil a credencial está publicando: sem funil na credencial, o card vai para o funil do canal e, na falta dele, para o funil padrão da empresa.

Verifique se os campos não estão colidindo com nomes reservados. Campos como page, host, source, referrer, status e qualquer chave iniciada por utm ou sl_ são tratados como rastreio e ficam fora do resumo exibido no card, embora continuem gravados no metadata.

Para ter controle total sobre o texto do card, envie o campo observation já formatado.

Quase sempre é telefone com formatação divergente entre as origens: um com o nono dígito, outro sem; um com código do país, outro sem. A busca do CRM já reconhece essas variações, mas números incompletos ou com dígitos a mais escapam da regra.

Envie o telefone no formato completo 55 + DDD + número sempre que a origem tiver esse dado.

Tecnicamente sim, mas não é recomendado por dois motivos: o token ficaria visível no código-fonte da página, ao alcance de qualquer visitante; e o endpoint não envia cabeçalhos CORS, então o navegador bloquearia a chamada a partir de outro domínio.

Faça a chamada pelo backend da sua página. É por isso que o console de teste desta documentação usa uma ponte no servidor.

Histórico de versões

Mudanças no contrato da API. Alterações que quebram compatibilidade dão origem a uma nova versão do endpoint.

v1 09 de setembro de 2025 Versão atual
  • NovoSelo de Retorno e atividade automática quando um contato com card aberto envia o formulário de novo.
  • NovoObservação do card montada automaticamente a partir das respostas do formulário.
  • MelhoriaBusca de contato por telefone tolerante ao nono dígito e ao código do país.
  • MelhoriaCampos livres enviados no topo do payload passam a ser preservados no metadata.
  • MudançaJanela anti-flood de 24 horas substitui a deduplicação por telefone em 5 minutos.
v1 Abril de 2025 Lançamento
  • NovoEndpoint público POST /api/v1/leads.
  • NovoCredenciais por canal, com token no formato client_key.secret.
  • NovoIdempotência por external_id e limite de 120 requisições por minuto.
  • NovoLog de auditoria por credencial, com request_id em cada resposta.
Ainda com dúvida? Fale com o suporte

Esta página foi útil? SimNão

Atalhos

  • Gerenciar credenciais
  • Testar a API
  • Falar com o suporte

Exibição

© 2026 Stalker Lemon CRM. Todos os direitos reservados

Painel · Suporte