
API de Leads
Documentação completa da API de integração
Endpoint
Exemplo de Payload
{
"name": "Maria Silva",
"email": "maria@example.com",
"phone": "+55 11 99999-0000",
"message": "Quero um orçamento",
"source": "formulário de contato",
"createdAt": "2025-11-05T10:00:00Z"
}Captura Automática de Origem
O campo source pode ser preenchido automaticamente capturando:
- UTM Parameters: utm_source, utm_medium, utm_campaign
- Referrer: Site de origem (Google, Facebook, Instagram, etc.)
- Acesso Direto: Quando não há referrer ou UTM
Exemplo: Se o lead vier de um link com ?utm_source=google&utm_medium=cpc, a origem será automaticamente "Google (cpc)".
{
"name": "João Silva",
"email": "joao@example.com",
"phone": "+55 11 99999-9999",
"message": "Quero um orçamento",
"source": "Google (cpc) - campanha_verao" // Detectado automaticamente
}Campos Personalizados
Você pode enviar campos adicionais além dos campos padrão. Eles serão armazenados como campos personalizados.
{
"name": "João Silva",
"email": "joao@example.com",
"phone": "+55 11 99999-9999",
"message": "Quero um orçamento",
"source": "Facebook | Referrer: facebook.com",
"empresa": "Empresa XYZ",
"cargo": "Diretor",
"orcamento": "R$ 10.000",
"prioridade": "alta"
}Campos como "empresa", "cargo", "orcamento" e "prioridade" serão armazenados como campos personalizados.
Resposta de Sucesso
{
"status": "success",
"id": "clx1234567890"
}Exemplos de Integração
Exemplos práticos de como enviar leads usando JavaScript e PHP.
// Função para capturar origem automática (UTM, referrer, etc.)
function capturarOrigem() {
const origem = {
utm_source: null,
utm_medium: null,
utm_campaign: null,
referrer: null,
origem_detectada: null,
};
// Capturar UTM parameters da URL
const urlParams = new URLSearchParams(window.location.search);
origem.utm_source = urlParams.get('utm_source');
origem.utm_medium = urlParams.get('utm_medium');
origem.utm_campaign = urlParams.get('utm_campaign');
// Capturar referrer e detectar origem
if (document.referrer) {
origem.referrer = document.referrer;
const referrerHost = new URL(document.referrer).hostname.toLowerCase();
if (referrerHost.includes('google')) origem.origem_detectada = 'Google';
else if (referrerHost.includes('facebook')) origem.origem_detectada = 'Facebook';
else if (referrerHost.includes('instagram')) origem.origem_detectada = 'Instagram';
else if (referrerHost.includes('linkedin')) origem.origem_detectada = 'LinkedIn';
else origem.origem_detectada = referrerHost;
} else {
origem.origem_detectada = 'Acesso Direto';
}
// Se houver utm_source, usar como origem principal
if (origem.utm_source) {
origem.origem_detectada = origem.utm_medium
? `${origem.utm_source} (${origem.utm_medium})`
: origem.utm_source;
}
return origem.origem_detectada || 'Formulário de contato';
}
// JavaScript (Fetch API)
async function enviarLead(dados) {
const response = await fetch('https://seu-dominio.com/api/leads?token=SEU_TOKEN_AQUI', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(dados)
});
const result = await response.json();
console.log(result);
return result;
}
// Usar em formulário
document.getElementById('form-contato').addEventListener('submit', async (e) => {
e.preventDefault();
const formData = new FormData(e.target);
const origemInfo = capturarOrigem();
const dados = {
name: formData.get('name'),
email: formData.get('email'),
phone: formData.get('phone'),
message: formData.get('message'),
source: origemInfo, // Origem detectada automaticamente
// Campos personalizados (opcional)
empresa: formData.get('empresa'),
cargo: formData.get('cargo')
};
await enviarLead(dados);
});💡 Dica: A URL base é https://seu-dominio.com. Ajuste se necessário.
💡 Origem automática: A função capturarOrigem() detecta automaticamente UTM parameters e referrer.
💡 Campos personalizados: Você pode adicionar qualquer campo adicional além dos campos padrão (name, email, phone, message, source).