Pular para o conteúdo

Agentes de IA

Os agentes de IA respondem as conversas do WhatsApp e do Chat do site sozinhos, seguindo as instruções, FAQs e a base de conhecimento configuradas no painel (Agentes de IA). Pela API você:

  • lista os agentes e vê qual é o padrão;
  • liga ou desliga um agente;
  • escolhe qual agente atende uma conversa, ou desliga a IA só naquela conversa (para um humano assumir).

Criar agentes e editar instruções, FAQs e base de conhecimento é feito no painel.

{
"id": "523fc881-026e-4e04-89e2-8a99c28607c9",
"object": "ai_agent",
"name": "Aurora",
"description": "Atendimento geral: dúvidas sobre pedidos, entregas e trocas.",
"active": true,
"is_default": true,
"tone": "profissional_caloroso",
"strict_mode": false,
"created_at": "2026-03-05T14:00:00Z",
"updated_at": "2026-11-02T10:15:00Z"
}
Campo Tipo Descrição
id UUID ID do agente. Use em ai_agent_id de uma conversa.
object string Sempre ai_agent.
name string Nome do agente.
description string ou null Descrição livre (para que serve o agente).
active booleano Se o agente está respondendo.
is_default booleano Agente padrão: atende as conversas que não têm agente definido (ai_agent_id: null).
tone string Tom de voz configurado no painel (ex.: profissional_caloroso).
strict_mode booleano Modo restrito: só responde com base nas FAQs, na base de conhecimento e nas instruções.
created_at data Criação.
updated_at data Última alteração.

A IA responde uma conversa quando as três condições são verdadeiras:

  1. a conversa está com a IA ligada (ai_enabled: true no contato);
  2. o agente da conversa — o de ai_agent_id ou, se for null, o agente padrão — está active: true;
  3. a IA da organização está ligada (ou seja, o agente padrão está ativo).

Grupos não são atendidos pela IA.

GET/v1/ai-agents

Todos os agentes da organização. Use para descobrir o id do agente certo antes de atribuí-lo a uma conversa.

Não tem parâmetros. A lista vem inteira numa página (has_more: false).

Janela do terminal
curl https://platform.toptalking.com.br/v1/ai-agents \
-H "Authorization: Bearer $TOPTALKING_API_KEY"
{
"object": "list",
"data": [
{
"id": "523fc881-026e-4e04-89e2-8a99c28607c9",
"object": "ai_agent",
"name": "Aurora",
"description": "Atendimento geral: dúvidas sobre pedidos, entregas e trocas.",
"active": true,
"is_default": true,
"tone": "profissional_caloroso",
"strict_mode": false,
"created_at": "2026-03-05T14:00:00Z",
"updated_at": "2026-11-02T10:15:00Z"
},
{
"id": "52da47ff-662a-4292-9961-27a95fc5ddd8",
"object": "ai_agent",
"name": "Vendas",
"description": "Qualifica leads e apresenta produtos e promoções.",
"active": true,
"is_default": false,
"tone": "descontraido",
"strict_mode": true,
"created_at": "2026-06-18T16:30:00Z",
"updated_at": "2026-10-21T09:05:00Z"
}
],
"has_more": false,
"next_cursor": null
}

Só os gerais: 401 (chave) e 429 (limite por minuto). Veja Erros.

GET/v1/ai-agents/{agent_id}

Um agente pelo ID — por exemplo, para mostrar qual agente atende uma conversa a partir do ai_agent_id do contato.

Parâmetro Onde Tipo Obrigatório Descrição
agent_id caminho UUID sim ID do agente.
Janela do terminal
curl https://platform.toptalking.com.br/v1/ai-agents/52da47ff-662a-4292-9961-27a95fc5ddd8 \
-H "Authorization: Bearer $TOPTALKING_API_KEY"
{
"id": "52da47ff-662a-4292-9961-27a95fc5ddd8",
"object": "ai_agent",
"name": "Vendas",
"description": "Qualifica leads e apresenta produtos e promoções.",
"active": true,
"is_default": false,
"tone": "descontraido",
"strict_mode": true,
"created_at": "2026-06-18T16:30:00Z",
"updated_at": "2026-10-21T09:05:00Z"
}
HTTP code Quando acontece
404 resource_not_found O agente não existe ou é de outra organização.

PATCH/v1/ai-agents/{agent_id}

Liga (active: true) ou desliga (active: false) um agente. Um agente desligado para de responder as conversas dele.

Parâmetro Onde Tipo Obrigatório Descrição
agent_id caminho UUID sim ID do agente.
active corpo booleano sim true liga; false desliga.
Janela do terminal
# Desligar o agente "Vendas" (o agente padrão continua respondendo)
curl -X PATCH https://platform.toptalking.com.br/v1/ai-agents/52da47ff-662a-4292-9961-27a95fc5ddd8 \
-H "Authorization: Bearer $TOPTALKING_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "active": false }'

O agente atualizado:

{
"id": "52da47ff-662a-4292-9961-27a95fc5ddd8",
"object": "ai_agent",
"name": "Vendas",
"description": "Qualifica leads e apresenta produtos e promoções.",
"active": false,
"is_default": false,
"tone": "descontraido",
"strict_mode": true,
"created_at": "2026-06-18T16:30:00Z",
"updated_at": "2026-11-11T16:45:12Z"
}
HTTP code Quando acontece
400 missing_field Faltou active.
400 invalid_json, invalid_field Corpo inválido ou active não é true/false.
403 read_only_key Chave somente leitura.
404 resource_not_found O agente não existe ou é de outra organização.
400 missing_field
{
"error": {
"type": "invalid_request_error",
"code": "missing_field",
"message": "Informe `active` (true ou false).",
"param": "active",
"request_id": "req_6f1d2c3b4a5e"
}
}

O agente e a IA de cada conversa são campos do contato. Use PATCH /contacts/{contact_id}:

PATCH/v1/contacts/{contact_id}

Corpo Efeito
{ "ai_agent_id": "<id do agente>" } Esta conversa passa a ser atendida por este agente.
{ "ai_agent_id": null } Volta para o agente padrão.
{ "ai_enabled": false } Desliga a IA só nesta conversa (para um humano assumir).
{ "ai_enabled": true } Religa a IA nesta conversa.
Janela do terminal
# Passar a conversa para o agente "Vendas"
curl -X PATCH https://platform.toptalking.com.br/v1/contacts/3f1c2b9a-7d4e-4c55-8a0e-1b2c3d4e5f60 \
-H "Authorization: Bearer $TOPTALKING_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "ai_agent_id": "52da47ff-662a-4292-9961-27a95fc5ddd8" }'
# Um humano vai assumir: desligar a IA e atribuir à Carla
curl -X PATCH https://platform.toptalking.com.br/v1/contacts/3f1c2b9a-7d4e-4c55-8a0e-1b2c3d4e5f60 \
-H "Authorization: Bearer $TOPTALKING_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "ai_enabled": false, "assigned_to": "4083deb8-f96e-4093-8598-ebdd4dee786b" }'

A resposta 200 é o contato atualizado. Um ai_agent_id que não é agente da organização responde 400 invalid_field (param: "ai_agent_id").