Este guia resume quando usar FormFlow ou Doc Analyzer e aponta o endpoint certo para cada cenário de integração.

Autenticação

Authorization: Bearer {{TOKEN}}
Content-Type: application/json

Em produção, o gateway injeta contexto de host quando aplicável. Em desenvolvimento, o backend pode aceitar hostId no body para testes.

Bases URL

RecursoBase
FormFlow (público){{BASE_URL}}/api/externalAPIs/public/formFlow
Doc Analyzer (público){{BASE_URL}}/api/externalAPIs/public/docAnalyzer
FormFlow v4 (lote síncrono + custo){{BASE_URL}}/api/v4/formFlow

O que cada recurso resolve

ÁreaO que éQuando usar
FormFlowCamada de formulários e captura estruturada ligada a leads, conversas e avataresQuando precisa definir campos, montar catálogos e ler ou gravar valores capturados
Doc AnalyzerAnálise de diálogo com saída estruturada baseada em schema ou catálogoQuando precisa extrair JSON rapidamente sem montar todo o pipeline de captura

Como escolher

NecessidadeCaminho sugerido
Persistir valores no modelo oficial de formulários e leadsCapturar a partir de Conversas
Processar lote com resposta síncrona e custo detalhadoFormFlow v4 - batchAnalyzeDialogue
Extrair JSON estruturado para integrar em outro sistemaDoc Analyzer - analyzeDialogue
Processar muitas conversas sem segurar a requisiçãoDoc Analyzer - batchAnalyzeDialogue
Gerar schema e instruções a partir de texto livreDoc Analyzer - buildInstructionFromNatural

Endpoints recomendados

FormFlow

Doc Analyzer

Exemplo rápido

curl -X POST "{{BASE_URL}}/api/externalAPIs/public/docAnalyzer/analyzeDialogue" \
  -H "Authorization: Bearer {{TOKEN}}" \
  -H "Content-Type: application/json" \
  -d '{
    "instructions": "Extraia nome e intencao do cliente.",
    "schema": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "nome": { "type": "string" },
        "intencao": { "type": "string" }
      },
      "required": ["nome"]
    },
    "dialogue": [
      { "role": "user", "content": "Sou a Ana e quero um orcamento." }
    ]
  }'

Resposta

{
  "data": {
    "nome": "Ana",
    "intencao": "orcamento"
  },
  "error": null,
  "rawResult": {},
  "metrics": {
    "elapsedMs": 0
  },
  "formDataRecorded": null
}

Campos da Resposta

data
object

Objeto estruturado conforme o schema enviado ou o schema do catálogo.

error
string | null

Mensagem de erro quando a análise falha.

metrics
object
formDataRecorded
object | null

Resultado de persistência no FormFlow quando recordFormData estiver habilitado.

Erros

CódigoDescrição
400Body inválido ou combinação de parâmetros inconsistente
401Token inválido ou ausente
500Erro interno do servidor