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
configcompleto (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.
pausedliga ou desliga;modeescolheautomatic(envia sozinho) ouassisted(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
- Chave: crie uma chave live com
agents:readeagents:write. Aprovar execuções, liberar acesso e decidir casos ou propostas exige que a chave tenha sido criada por um Administrador (papelownerouadmin). - Credencial:
POST /ai/credentialsvalida a chave no provedor. Siga só comvalidation_status: "valid". Veja Credenciais e provedores. - Conhecimento (opcional): vincule a finalidade
embeddinga OpenAItext-embedding-3-smallemPUT /ai/providers, crie as fontes e aguardestatus: "ready". Veja Conhecimento e memória. - Rascunho:
POST /ai/agentscom oconfig. Veja Agentes e versões. - Teste:
POST /ai/agents/{id}/preview. Usa o provedor real e a sua chave; as ações são simuladas e nada é enviado. - Publicação:
POST /ai/agents/{id}/publishcom a revisão do rascunho. - 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.
- Ativação:
POST /ai/agents/{id}/operationcompaused: false. Releia o agente antes: publicar incrementaoperation_revision. - 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
| Recurso | Formato |
|---|---|
| Agentes, credenciais, catálogo do provedor | String decimal a partir de "1" |
| Conhecimento, memória, skills, fluxos, inscrições, roteadores, elegibilidade, ajustes de estilo | String decimal; "0" vale para o que ainda não foi gravado |
| Casos, alertas, avisos, aprendizado, configurações de propostas comerciais, orçamento e tarifas | Número inteiro |
| Decisão de proposta comercial | seq 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_pagepadrão 20, máximo 100):{data: [...], meta: {page, per_page, total_pages, total_count}}e os headersX-Total,X-Total-Pages,X-Per-PageeX-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;limit1–100, padrão 30):{data: {data: [...], next_cursor}}. Usada na fila de follow-ups e nos retornos avulsos. Repita comcursor=next_cursoraté virnull. - Limite simples, sem página seguinte: autorizações de contato e inscrições (
limitaté 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.
| Status | Código | Quando |
|---|---|---|
| 401 | unauthorized | Chave ausente, inválida ou revogada. |
| 403 | forbidden_scope | A chave não tem agents:read ou agents:write. |
| 403 | sandbox_forbidden | Chave sandbox. O módulo de IA exige chave live (bz_live_). |
| 403 | forbidden | Operação com autoria exige chave criada por um Administrador. |
| 404 | not_found | Recurso inexistente neste Cliente. Um ID malformado resulta em 404 ou 422, conforme a rota. |
| 409 | revision_conflict | Revisão desatualizada. Releia o recurso e repita com o valor novo. |
| 409 | duplicate_responder | O canal já tem outro agente vinculado ou um roteador ativo. |
| 409 | credential_unavailable | Credencial desativada, não validada ou de outro provedor. |
| 409 | agent_archived | Agente arquivado: desarquive antes de editar ou ativar. |
| 409 | published_version_immutable | Tentativa de publicar uma versão que já foi publicada. |
| 409 | google_data_use_ack_required | Conta com Google Agenda conectada: confirme o uso de dados da credencial no painel ou em POST /v1/ai/credentials/{id}/data-use. |
| 409 | proposal_changed | Proposta comercial substituída depois da leitura (seq diferente). |
| 422 | invalid | Corpo ou parâmetro fora do contrato. Campos extras são recusados. |
| 409 | idempotency_conflict | operation_key repetida com dados diferentes. Repita com os mesmos dados (devolve o mesmo recurso) ou use uma chave nova. |
| 404 | channel_not_found | Canal que não pertence ao Cliente ou não está ativo. |
| 422 | incomplete_configuration | Publicação ou teste sem instruções, modelo, credencial ou canal. |
| 422 | diagnostic_blocked | Publicação recusada pelo diagnóstico do rascunho. error.blockers lista as pendências. |
| 422 | feature_unavailable | Propostas comerciais sem o funil do CRM no plano da Conta. |
| 422 | upload_expired | O prazo do upload direto terminou antes da finalização. |
| 429 | rate_limited | Limite de requisições da Conta. Aguarde e repita. |
| 503 | unavailable | Falha 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.
