Endpoints REST CRM IA (uso em fluxos)

Endpoints disponíveis para chamada via requestNode ou codeToolNode

Lista de endpoints REST

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 atual
  • GET /api/tokens/health — status operacional + top features
  • GET /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 — CRUD
  • POST /api/crm/followup-sequences/:id/start — inicia para deal específico. Body: { deal_id }
  • GET /api/crm/followup-sequences/deal/:dealId/active — followups ativos
  • POST /api/crm/followup-sequences/followups/:fId/pause|resume|cancel

## Template Lifecycle

  • POST /api/cloud-api/templates-lifecycle/drafts/generate — gera template via IA
  • POST /api/cloud-api/templates-lifecycle/drafts/:id/submit — submete pra Meta

## CRM Dashboard

  • GET /api/crm/dashboard/metrics?period=30&pipeline_id=... — KPIs agregados
  • GET /api/crm/dashboard/pipeline-summary — funil por stage

## CRM Holidays

  • GET /api/crm/holidays?year=2026 — feriados do tenant
  • POST /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 — atualiza
  • DELETE /api/crm/automations/:id — remove
  • POST /api/crm/automations/:id/toggle — ativa/desativa
  • Todos com auditDataWrite/Delete + Zod validation rigorosa (não usar supabase direto)

## CRM Automation Runs

  • GET /api/crm/automation-runs?automation_id=...&deal_id=... — histórico
  • GET /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:

  • crm.smart_campaigns.create/start/resume
  • crm.templates.generate/approve/submit_to_meta
  • tokens.quota.change
  • security.emergency_stop.disable

Endpoints de leitura permanecem permitidos.