Escolha a conexão
MCP para clientes compatíveis com ferramentas de IA. REST para integrações HTTP. Não precisa configurar os dois.
BILLION CONNECT / DEVELOPER DOCS
Uma conexão com permissões que você escolhe. Consulte seus leads, organize o pipeline e registre acompanhamentos sem compartilhar a senha do CRM.
MCP para clientes compatíveis com ferramentas de IA. REST para integrações HTTP. Não precisa configurar os dois.
Uma chave por usuário e integração, no campo de credenciais do cliente. Nunca na conversa com o modelo.
Confira a identidade e os escopos. Libere alterações apenas quando souber exatamente o que o agente fará.
PRIMEIRA CONEXÃO
Abra Configurações → Integrações → API e agentes externos. Escolha Agente pessoal, dê um nome à integração e selecione as permissões. O compartilhamento exige aceite; alterações exigem um segundo aceite.
https://billionleadspro.com/api/connect/v1Authorization: Bearer <API_KEY>O campo secreto do cofre deve guardar somente a chave. A integração acrescenta Bearer ao cabeçalho Authorization. Domínio autorizado: billionleadspro.com. A conexão é de servidor a servidor, não um formulário com a chave no JavaScript do navegador.
Não há OAuth nesta versão. Cookies, tokens de sessão do CRM, chaves Supabase e segredos em query strings não são credenciais aceitas.
curl 'https://billionleadspro.com/api/connect/v1/me' \
-H 'Authorization: Bearer <API_KEY>'<API_KEY> é um marcador, não uma chave funcional. Em uma integração real, injete a credencial pelo cofre e evite histórico de terminal ou logs. Uma chave válida retorna JSON com data e meta.request_id; sem chave válida, a API responde 401 unauthorized.
Configure uma integração chamada Billion Leads Pro.
Base URL: https://billionleadspro.com/api/connect/v1
Allowed host: billionleadspro.com
Authentication: Authorization: Bearer <API_KEY>
OpenAPI: https://billionleadspro.com/docs/connect-openapi.json
Guide: https://billionleadspro.com/docs/connect.md
Gere um formulário do cofre para eu cadastrar a chave.
Não peça a chave no chat, não a coloque na URL e não a registre.
Depois teste GET /me e mostre somente identidade e permissões.
Não altere dados durante este primeiro teste.FERRAMENTAS PARA IA
No cliente de IA, adicione um servidor MCP remoto com estes dados. Guarde a chave em um campo secreto de cabeçalho, não no prompt.
Nome: Billion Leads Pro
URL: https://billionleadspro.com/api/connect/mcp
Transporte: Streamable HTTP (POST, respostas JSON)
Cabeçalho: Authorization
Valor: Bearer <API_KEY>
Autenticação OAuth: não disponívelAs ferramentas disponíveis dependem dos escopos da chave. O cliente precisa aceitar Authorization configurado manualmente e negociar o protocolo MCP. Apenas colar uma URL no chat não conecta o sistema. Se seu cliente não oferecer isso, use a API REST por uma integração HTTP do servidor.
Claude, Muse, Dot e Grok são exemplos de clientes que você pode avaliar, não uma lista de integrações homologadas. A compatibilidade precisa ser testada em cada aplicativo. Conectar não cria uma rotina autônoma agendada; esse agendamento pertence ao seu agente.
Use Billion Connect. Execute billion_me.
Se estiverem disponíveis, execute billion_list_leads com limit=3
e billion_pipeline_catalog. Mostre os IDs e as permissões reais.
Não mova cartões, não atualize cadastros e não adicione notas.
Se alguma ferramenta estiver indisponível, explique a limitação.VOCÊ DEFINE O ACESSO
Toda chave pessoal inclui profile:read. As demais permissões são opcionais. Mesmo para donos e gerentes, a chave pessoal acessa apenas os leads atualmente atribuídos ao titular, nunca toda a equipe.
| Escopo | O que permite | Ferramenta MCP |
|---|---|---|
profile:read | Identidade técnica e capacidades da conexão | billion_me |
leads:read | Consultar metadados da própria carteira | billion_list_leadsbillion_get_lead |
pipeline:read | Catálogo técnico, posições e contagens pessoais | billion_pipeline_catalog |
notes:create | Acrescentar uma nota manual, sem editar ou apagar notas | billion_append_note |
pipeline:move | Organizar cartões, sem registrar venda | billion_move_pipeline |
leads:profile:update | Alterar somente nome, sobrenome, estado, idioma e fuso | billion_update_profile |
Permissão de pipeline também depende do direito atual ao CRM: assinatura ativa, teste não expirado ou regra de acesso interno aplicável. A chave não contorna bloqueio de plano, privacidade ou perda de acesso.
CONTRATO HTTP
Todos os caminhos abaixo são relativos ao endereço-base. Consulte o OpenAPI JSON para os campos, tipos e respostas. Os exemplos usam apenas marcadores e dados fictícios.
| Método | Caminho | Escopo |
|---|---|---|
| GET | /me | profile:read |
| GET | /leads?limit=3 | leads:read |
| GET | /leads/{lead_id} | leads:read |
| GET | /pipeline/catalog | pipeline:read |
| POST | /leads/{lead_id}/notes | notes:create |
| POST | /leads/{lead_id}/placement | pipeline:move |
| PATCH | /leads/{lead_id}/profile | leads:profile:update |
| POST | /intake | leads:ingest, somente chave de agência |
GET /leads aceita somente limit (1 a 100, padrão 25) e after (cursor UUID). Retorna data.items e data.next_cursor. Use o cursor em after até ele ser null. A ordenação é UUID ascendente; alterações concorrentes podem mudar a carteira entre páginas.
{
"data": {
"id": "20000001-0000-4000-8000-000000000001",
"label": "Lead 20000001", "state": "FL", "language": "pt",
"status": "novo", "received_at": "2026-09-01T00:00:00Z",
"updated_at": "2026-09-05T00:00:00Z", "revision": 4,
"placement": { "pipeline_id": null, "stage_id": null, "version": 0 }
},
"meta": { "request_id": "70000001-0000-4000-8000-000000000001" }
}SEM SOBRESCREVER O TRABALHO DO TIME
revision e placement.version. Para mover um cartão, leia também catalog_version do catálogo.expected_revision. O movimento exige também expected_version e expected_catalog_version.idempotency_key para a intenção. Reutilize exatamente o mesmo corpo e UUID em um retry após timeout.409 conflict, releia o estado e revise a decisão. Não tente contornar o conflito com retries cegos.{
"content": "Nota manual fictícia de revisão, sem contato realizado.",
"expected_revision": 4,
"idempotency_key": "70000002-0000-4000-8000-000000000001"
}O recibo pessoal dura 24 horas e não substitui a autorização atual. Campos extras são recusados. Não altere telefone, email, consentimento, destinatário, status ou valores pelo patch. Organizar o cartão não prova contato nem venda.
FORMULÁRIO → CENTRAL PRIVADA
Este fluxo usa uma chave separada do tipo Entrada da agência, emitida pelo dono ou administrador autorizado. Ela tem somente leads:ingest: não lê o CRM nem altera clientes existentes. Guarde-a exclusivamente no backend da agência.
https://billionleadspro.com/api/connect/v1/intakeConfigure os destinatários em Administração → Equipe → Central de leads da agência. O padrão é hold: o lead fica com o emissor. O rodízio aceita somente os membros selecionados nominalmente, sem escolher toda a equipe quando a seleção está vazia.
Envie event_id opaco e estável, fila product ou recruitment, nome, sobrenome, telefone E.164, estado dos EUA, idioma, data de captura, referência da origem e objeto consent. Os campos e exemplos completos estão no OpenAPI e no guia para integrações.
Mesmo evento e corpo retorna duplicate. Evento repetido com corpo diferente ou telefone já existente gera conflito, sem sobrescrever o cliente. O lead entra na central privada, não no marketplace.
OPERAÇÃO RESPONSÁVEL
As quotas são compartilhadas entre REST e MCP, com janelas fixas. No MCP, negociação, descoberta e revalidação também consomem quota; uma chamada de ferramenta pode consumir duas admissões. Não são limites de conversas. O corpo HTTP aceita até 32 KiB.
| HTTP | Código | O que fazer |
|---|---|---|
| 400 / 413 | invalid_request | Corrija campos, formato ou tamanho. |
| 401 | unauthorized | Confira chave, expiração, revogação e identidade. |
| 403 | insufficient_scope / operation_unavailable | Confira os escopos e o direito atual ao CRM. |
| 404 | not_found | Recurso indisponível ou fora da carteira autorizada. |
| 409 | conflict | Releia o estado e revise a intenção. |
| 429 | rate_limited | Respeite Retry-After: 60 e reduza o ritmo. |
| 503 | temporarily_unavailable | Não interprete a falha como lista vazia ou sucesso. |
Erros REST retornam error.code, error.message sanitizados e meta.request_id. Ferramentas MCP também podem retornar isError: true. Use o request ID para diagnóstico, sem registrar Authorization, segredos ou dados de clientes.