Leads e agendamentos
Endpoints somente leitura para consultar os registros de captação da loja: /api2/leads para leads e /api2/schedules (com alias /api2/agendamentos) para agendamentos. Foram desenhados para integrações externas — fluxos n8n, CRMs e BI — que precisam ler captações com filtros, UTMs e paginação determinística sem acessar o administrativo.
Visão geral
Os recursos de captação expõem dois contratos GET independentes. Leads retorna contatos capturados em formulários e landing pages; Agendamentos retorna solicitações de agenda por unidade. Ambos são read-only — não há criação, atualização ou exclusão por esta API — e compartilham as mesmas regras de paginação, ordenação e datas.
limit.limit é omitido.utm_source, utm_medium e utm_campaign.Authorization: Bearer {token} e a integração precisa ter permissão de leitura para captação concedida no administrativo. Os parâmetros podem ser enviados via query string ou body JSON no GET, conforme a conveniência do integrador.Regras gerais
Convenções comuns aos dois recursos de captação. Base URL nos exemplos: /api2. Toda consulta exige Authorization: Bearer {{token}}.
- Filtros aceitam query string ou JSON body no
GET. Quando o mesmo campo existir nos dois lugares, o valor da query string prevalece. - Filtros de texto (
email,phone,name) são por igualdade exata, sem diferenciar maiúsculas/minúsculas. Não há busca parcial. - Paginação padrão:
page=1,limit=20. Limite máximo:200. Useinclude_pagination=1para recebertotal,last_pageehas_nextno corpo. - Datas usam
YYYY-MM-DDouYYYY-MM-DD HH:MM:SS. Formatos inválidos retornam400. - Ordenação: use
sortedirection(ascoudesc). Padrão:sort=created_at,direction=desc. - Consulta por
idretorna um único registro; quando não houver correspondência, a resposta é404.
Leads
Consulta dos contatos capturados em formulários, landing pages e campanhas, com dados de atribuição (UTMs), origem e cupom vinculado.
Lista leads com filtros e paginação determinística.
404.created_at_from e created_at_to. Aceita data ou data/hora.page=1, limit=20 (máximo 200). Com include_pagination=1, retorna total, last_page e has_next.id, created_at, name, email, store_id. Padrão created_at desc.Exemplo — query string
GET /api2/leads?page=1&limit=50&include_pagination=1&created_from=2026-06-01&created_to=2026-06-30&sort=created_at&direction=desc
Authorization: Bearer {{token}}
Resposta — exemplo
{
"success": true,
"page": 1,
"limit": 50,
"total": 1,
"last_page": 1,
"has_next": false,
"leads": [
{
"id": 123,
"store_id": 10,
"name": "Maria Silva",
"email": "[email protected]",
"phone": "11999999999",
"created_at": "2026-06-20 14:30:00",
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "avaliacao",
"utm_term": null,
"utm_content": null,
"origin": "landing_page",
"coupon_id": 5,
"coupon_used": "CAMPANHA_123",
"promoters_name": "Promotor A"
}
]
}
total, last_page e has_next só aparecem quando include_pagination=1 é enviado.Busca um lead específico pelo ID. A resposta traz o registro completo dentro de leads.
GET /api2/leads?id=123
Authorization: Bearer {{token}}
Agendamentos
Consulta das solicitações de agenda por unidade, com data e horário, tratamento solicitado, atribuição (UTMs) e status de sincronização com sistemas externos. Disponível em /api2/schedules e no alias em português /api2/agendamentos — ambos com o mesmo contrato.
Lista agendamentos com filtros e paginação determinística.
404.date).14:30.1 Pendente, 2 Sincronizado, 3 Erro. Aceita lista separada por vírgula, ex.: 1,3.page=1, limit=20 (máximo 200). Com include_pagination=1, retorna total, last_page e has_next.id, created_at, date, time, name, email, unity_id, status_gester. Padrão created_at desc.Exemplo — query string
GET /api2/schedules?page=1&limit=50&include_pagination=1&date_from=2026-06-01&date_to=2026-06-30&status_gester=1,3
Authorization: Bearer {{token}}
Resposta — exemplo
{
"success": true,
"page": 1,
"limit": 50,
"total": 1,
"last_page": 1,
"has_next": false,
"schedules": [
{
"id": 456,
"name": "Ana Costa",
"email": "[email protected]",
"phone": "11988888888",
"date": "2026-06-25",
"time": "15:00",
"unity_id": 10,
"treatment": "Avaliação gratuita",
"created_at": "2026-06-20 16:10:00",
"utm_source": "instagram",
"utm_medium": "social",
"utm_campaign": "agenda",
"utm_term": null,
"utm_content": null,
"origin": "C",
"campanha_interna": "https://example.com/lp",
"campanha_interna_id": null,
"codigo_gester": "ABC123",
"status_gester": 2,
"status_gester_label": "Sincronizado",
"mensagem_erro_gester": null
}
]
}
Busca um agendamento específico pelo ID. Também disponível via alias /api2/agendamentos?id=456.
GET /api2/schedules?id=456
Authorization: Bearer {{token}}
Status de sincronização do agendamento
O campo status_gester reflete a etapa de sincronização do agendamento com o sistema externo. O campo status_gester_label traz a descrição legível e mensagem_erro_gester detalha a falha quando houver.
| Valor | Label | Significado |
|---|---|---|
1 | Pendente | Aguardando sincronização com o sistema externo. |
2 | Sincronizado | Enviado com sucesso ao sistema externo. |
3 | Erro | Falha na sincronização — verifique mensagem_erro_gester. |
Reprocessamento
Para monitorar pendências e falhas, filtre por status_gester=1,3 e ordene por created_at. Assim o fluxo identifica registros que ainda precisam ser sincronizados ou reprocessados.
Formas de uso suportadas
Combinações testadas e homologadas para leads e agendamentos.
GET /api2/leads?include_pagination=1&sort=created_at&direction=descGET /api2/leads?created_from=2026-06-01&created_to=2026-06-30GET /api2/leads?utm_source=google&utm_campaign=avaliacaoGET /api2/leads?id=123GET /api2/schedules?unity_id=10&date_from=2026-06-01&date_to=2026-06-30GET /api2/schedules?status_gester=1,3&include_pagination=1GET /api2/agendamentos?id=456Recomendações para integração
Boas práticas consolidadas para fluxos n8n, CRM e BI que sincronizam captações com a Plataforma Yep.
Recomendado
- Use
include_pagination=1quando o fluxo precisar iterar páginas atéhas_next=false. - Para cargas incrementais, prefira janelas por
created_from/created_toe guarde o último horário processado no próprio fluxo para evitar duplicidade. - Combine
limit=100+include_pagination=1+sort=created_at&direction=ascpara paginar com critério de parada e ordem previsíveis. - Use
store_id(leads) ouunity_id(agendamentos) para resultados determinísticos em operações multiunidade.
Evitar
- Esperar busca parcial por nome, e-mail ou telefone — os filtros de texto são por igualdade exata.
- Tentar criar, atualizar ou excluir captações por esta API — os endpoints são somente leitura.
- Depender de ordenação implícita entre páginas — sempre informe
sortedirection.
Dica para fluxos n8n
Para cargas incrementais, dispare a consulta com a janela created_from igual ao último checkpoint processado, pagine até has_next=false e persista o maior created_at retornado como novo checkpoint. Como os endpoints são GET e não passam pela fila de auditoria de escrita, são seguros para polling frequente.
Erros comuns
| Status | Exemplo de body | Quando ocorre |
|---|---|---|
400 | {"error":"Campo de ordenação inválido."} | Parâmetro inválido, JSON inválido ou campo de ordenação não suportado. |
401 | {"error":"Token ausente ou malformado."} | Token ausente, malformado, inválido, revogado ou expirado. |
403 | {"error":"Acesso negado para este recurso da API."} | Token válido, mas sem permissão de leitura para captação. |
404 | {"error":"Lead não encontrado."} | Consulta por id sem registro correspondente. |