Endpoints HTTP autenticados via JWT (frontend) ou API_SECRET (server-to-server). O ai-flow-generator pode usar estes via requestNode (chamadas HTTP) ou codeToolNode (sandbox JS com fetch).
## Token Ledger (controle de quota IA)
GET /api/tokens/balance — saldo atualGET /api/tokens/health — status operacional + top featuresGET /api/tokens/usage/timeseries?period=30 — agregação diária## CRM AI Qualifier (BANT/SPIN automático)
POST /api/crm/qualifier/:dealId — qualifica deal. Body: { force?: boolean }. Throttle 24h por deal.GET /api/crm/qualifier/:dealId/runs — histórico de runs## Smart Campaigns
POST /api/crm/smart-campaigns/estimate — preview de custo. Body: { intensity, target_filter, custom_config? }POST /api/crm/smart-campaigns — cria draft (status=awaiting_user_approval)POST /api/crm/smart-campaigns/:id/start — inicia (cria executions + enfileira jobs)POST /api/crm/smart-campaigns/:id/pause|resume|cancel## Follow-up Sequences
GET|POST|PUT|DELETE /api/crm/followup-sequences — CRUDPOST /api/crm/followup-sequences/:id/start — inicia para deal específico. Body: { deal_id }GET /api/crm/followup-sequences/deal/:dealId/active — followups ativosPOST /api/crm/followup-sequences/followups/:fId/pause|resume|cancel## Template Lifecycle
POST /api/cloud-api/templates-lifecycle/drafts/generate — gera template via IAPOST /api/cloud-api/templates-lifecycle/drafts/:id/submit — submete pra Meta## CRM Dashboard
GET /api/crm/dashboard/metrics?period=30&pipeline_id=... — KPIs agregadosGET /api/crm/dashboard/pipeline-summary — funil por stage## CRM Holidays
GET /api/crm/holidays?year=2026 — feriados do tenantPOST /api/crm/holidays/seed — auto-popula. Body: { country: 'BR'|'US'|'ES'|'PT' }## CRM Automations CRUD (v2 — multi-step)
POST /api/crm/automations — cria automation v2. Body: { pipeline_id, name, trigger_type, trigger_config, conditions[], actions[], is_active?, priority? }PUT /api/crm/automations/:id — atualizaDELETE /api/crm/automations/:id — removePOST /api/crm/automations/:id/toggle — ativa/desativa## CRM Automation Runs
GET /api/crm/automation-runs?automation_id=...&deal_id=... — históricoGET /api/crm/automation-runs/stats?automation_id=... — agregado 30d## Padrão de uso em fluxos
Em codeToolNode, o ledger debita tokens automaticamente quando você inclui tenant_id no metadata. Exemplo:
// Dentro de codeToolNode (sandbox JS)
const res = await fetch('http://localhost:3001/api/crm/qualifier/' + variables.deal_id, {
method: 'POST',
headers: {
'x-api-secret': process.env.API_SECRET,
'x-tenant-id': variables.__tenant_id,
'Content-Type': 'application/json',
},
body: JSON.stringify({ force: false }),
});
const json = await res.json();
output.qualified_score = json.score;
output.summary = json.qualification_data?.summary;
## Bloqueios sob impersonation
Acesso de suporte (impersonation) BLOQUEIA endpoints sensíveis:
Endpoints de leitura permanecem permitidos.