Agente de IA pela API

Configure agentes com a sua chave de IA, libere o atendimento com segurança e acompanhe cada ação no mesmo Inbox, CRM e Agenda do painel.

Base https://botozap.com.br/api/v1 e Authorization: Bearer $BOTOZAP_API_KEY. O módulo usa exclusivamente chaves dos seus provedores de IA (BYOK). O provedor cobra o consumo; o BotoZap registra tokens e estimativas em Uso e orçamento, sem créditos ou recargas de IA.

Conceitos

  • Agente: identidade que atende um canal. Tem no máximo um rascunho e várias versões publicadas.
  • Versão: o config completo (instruções, modelo, credencial, canal, ferramentas, limites). O rascunho é editável. A versão publicada é imutável; mudar exige um novo rascunho.
  • Operação: estado de atendimento do agente. paused liga ou desliga; mode escolhe automatic (envia sozinho) ou assisted (a resposta e as ações aguardam aprovação humana). Publicar não ativa o agente.
  • Roteador: classifica a intenção da mensagem e escolhe entre agentes publicados do mesmo canal. Um canal tem um único responsável automático: um agente ativo ou um roteador ativo.
  • Elegibilidade: decide quais contatos podem ser atendidos pela IA em cada canal. Todo canal começa fechado, respondendo só a números de teste.
  • Credencial e finalidade: a chave do provedor fica no Vault. O atendimento e o operador usam a credencial da versão; o roteador usa a do classificador; as demais finalidades têm vínculo próprio.
  • Execução: cada turno do agente, com resposta, ferramentas chamadas, consumo e trilha de proteção. Casos e alertas levam a equipe de volta à conversa original.

Checklist de go-live

  1. Chave: crie uma chave live com agents:read e agents:write. Aprovar execuções, liberar acesso e decidir casos ou propostas exige que a chave tenha sido criada por um Administrador (papelowner ou admin).
  2. Credencial: POST /ai/credentials valida a chave no provedor. Siga só com validation_status: "valid". Veja Credenciais e provedores.
  3. Conhecimento (opcional): vincule a finalidade embedding a OpenAI text-embedding-3-small em PUT /ai/providers, crie as fontes e aguarde status: "ready". Veja Conhecimento e memória.
  4. Rascunho: POST /ai/agents com o config. Veja Agentes e versões.
  5. Teste: POST /ai/agents/{id}/preview. Usa o provedor real e a sua chave; as ações são simuladas e nada é enviado.
  6. Publicação: POST /ai/agents/{id}/publish com a revisão do rascunho.
  7. Liberar acesso: sem este passo o agente ativo só responde aos números de teste do canal, e a lista começa vazia. Cadastre testadores, valide e depois abra o canal por autorização de origem ou para todos em Acesso e elegibilidade.
  8. Ativação: POST /ai/agents/{id}/operation com paused: false. Releia o agente antes: publicar incrementa operation_revision.
  9. Operação: aprove execuções no modo assistido, trate casos e alertas e defina um orçamento. Veja Acompanhamento e Uso e orçamento.

Convenções

Conta, Cliente e chave

A Conta vem da chave autenticada; não envie account_id. Informe customer_id na query das leituras e no corpo das escritas, inclusive em DELETE. Todo ID citado precisa pertencer ao mesmo Cliente. A exceção é POST /conversations/{id}/agent-control, que identifica a conversa pelo caminho.

Todas as rotas exigem chave live: uma chave sandbox recebe 403 sandbox_forbidden. Leituras usam agents:read e alterações agents:write. Nas operações que registram autoria, o banco também exige que o criador da chave ainda seja Administrador (papel owner ou admin); a auditoria registra a chave separada do usuário.

Corpos

Corpos e respostas usam snake_case. Os schemas são estritos: um campo desconhecido gera 422 invalid. Sucesso vem em {"data": ...}; erro em {"error": {"code", "message"}}.

Revisões

RecursoFormato
Agentes, credenciais, catálogo do provedorString decimal a partir de "1"
Conhecimento, memória, skills, fluxos, inscrições, roteadores, elegibilidade, ajustes de estiloString decimal; "0" vale para o que ainda não foi gravado
Casos, alertas, avisos, aprendizado, configurações de propostas comerciais, orçamento e tarifasNúmero inteiro
Decisão de proposta comercialseq numérico, como trava otimista

Reenvie a revisão exatamente como leu. Strings não devem virar ponto flutuante. Revisão desatualizada retorna 409 revision_conflict: releia e decida de novo.

Idempotência

operation_key (UUID) identifica testes, inscrições, retornos, respostas de caso e avisos de teste; request_key faz o mesmo no teste do roteador e nas propostas comerciais. Sem resposta, repita com a mesma chave para obter o mesmo resultado. Não reutilize a chave para outro conteúdo. Um envio com resultado unknown nunca é repetido automaticamente: confira e concilie.

Paginação

  • Página (page; per_page padrão 20, máximo 100): {data: [...], meta: {page, per_page, total_pages, total_count}} e os headers X-Total, X-Total-Pages, X-Per-Page e X-Page. Usada em agentes, execuções, casos e suas subcoleções, alertas, envios de avisos, propostas de aprendizado, propostas comerciais e inferências.
  • Cursor (cursor; limit 1–100, padrão 30): {data: {data: [...], next_cursor}}. Usada na fila de follow-ups e nos retornos avulsos. Repita com cursor=next_cursor até vir null.
  • Limite simples, sem página seguinte: autorizações de contato e inscrições (limit até 200, padrão 100), promessas do turno (até 100, padrão 50) e jobs de propostas comerciais (50 mais recentes).
  • As demais listas devolvem o array completo em data.

Erros comuns

Um 503 não é lista vazia nem prova de que nada aconteceu. Em escritas, releia o recurso antes de repetir.

StatusCódigoQuando
401unauthorizedChave ausente, inválida ou revogada.
403forbidden_scopeA chave não tem agents:read ou agents:write.
403sandbox_forbiddenChave sandbox. O módulo de IA exige chave live (bz_live_).
403forbiddenOperação com autoria exige chave criada por um Administrador.
404not_foundRecurso inexistente neste Cliente. Um ID malformado resulta em 404 ou 422, conforme a rota.
409revision_conflictRevisão desatualizada. Releia o recurso e repita com o valor novo.
409duplicate_responderO canal já tem outro agente vinculado ou um roteador ativo.
409credential_unavailableCredencial desativada, não validada ou de outro provedor.
409agent_archivedAgente arquivado: desarquive antes de editar ou ativar.
409published_version_immutableTentativa de publicar uma versão que já foi publicada.
409google_data_use_ack_requiredConta com Google Agenda conectada: confirme o uso de dados da credencial no painel ou em POST /v1/ai/credentials/{id}/data-use.
409proposal_changedProposta comercial substituída depois da leitura (seq diferente).
422invalidCorpo ou parâmetro fora do contrato. Campos extras são recusados.
409idempotency_conflictoperation_key repetida com dados diferentes. Repita com os mesmos dados (devolve o mesmo recurso) ou use uma chave nova.
404channel_not_foundCanal que não pertence ao Cliente ou não está ativo.
422incomplete_configurationPublicação ou teste sem instruções, modelo, credencial ou canal.
422diagnostic_blockedPublicação recusada pelo diagnóstico do rascunho. error.blockers lista as pendências.
422feature_unavailablePropostas comerciais sem o funil do CRM no plano da Conta.
422upload_expiredO prazo do upload direto terminou antes da finalização.
429rate_limitedLimite de requisições da Conta. Aguarde e repita.
503unavailableFalha transitória. Não significa lista vazia nem ausência de efeito.

Páginas do guia

O módulo tem 153 operações. Cada página traz corpo, resposta, erros e exemplos.

  • Credenciais e provedores: Chaves BYOK, finalidades, alternativas, modelos e catálogo do provedor.
  • Agentes e versões: Rascunho, teste, publicação, operação e o schema completo de config e tool_ids.
  • Acesso e elegibilidade: Quem pode ser atendido: números de teste, autorizações por origem e canal aberto.
  • Conhecimento e memória: Fontes, busca, catálogo incremental, importações, uploads diretos e memória.
  • Skills: Instruções versionadas, pacote ZIP, catálogo da plataforma e quase acertos.
  • Roteadores: Classificação por intenção entre agentes publicados e tomada de canal.
  • Follow-ups e retornos: Fluxos em grafo, inscrições, efeitos, retornos avulsos e fila.
  • Acompanhamento: Execuções, casos, alertas, avisos, aprendizado, métricas e controle da conversa.
  • Propostas comerciais: Próxima ação sugerida para um negócio do CRM, com decisão humana.
  • Uso e orçamento: Inferências, consumo, orçamento mensal e tarifas por modelo.
  • Referência de endpoints: Todas as operações do módulo, com escopo e página de cada uma.

Para conectar um agente executado fora do BotoZap aos eventos de canal, consulte Endpoint para agentes. As integrações de atendimento estão em Atendimento pela API.