As ferramentas nativas são ferramentas predefinidas integradas à plataforma que permitem ao modelo de IA executar ações específicas durante uma conversa. Essas ferramentas expandem as capacidades do agente de IA além da geração de texto, permitindo que ele interaja com o sistema, consulte informações, manipule dados e execute ações concretas.
As ferramentas nativas são encontradas e configuradas no nó de Agente de IA. Para acessá-las:
- Selecione o nó de Agente de IA no seu fluxo
- Abra a seção TOOLS na configuração do nó
- Clique no botão ”+ Adicionar ferramentas”
- No campo “Selecionar uma Ferramenta”, você verá a lista de todas as ferramentas disponíveis, incluindo as nativas (marcadas com o texto “(Native)”)
A seguir estão as descrições de todas as ferramentas nativas disponíveis no nó de Agente de IA:
Busca de produtos
Busca produtos no catálogo disponível para recomendar ao usuário. Usa um motor de busca para encontrar correspondências com base no nome do produto ou termos relacionados.
Parâmetros:
| Nome | Tipo | Obrigatório | Descrição |
|---|
product | string | Sim | Termo de busca ou nome do produto. |
top_k | number | Não | Número máximo de resultados a retornar. |
score_threshold | number | Não | Pontuação mínima de similaridade (0.0 a 1.0) para considerar um resultado relevante. |
client_reference_id | string | Não | ID de referência do cliente para buscas personalizadas. |
Exemplo de Prompt:
“Se o usuário perguntar sobre a disponibilidade de um item ou modelo específico, você DEVE usar a ferramenta search_products para consultar o catálogo antes de responder.”
Exemplo de Argumentos:
{
"product": "iPhone 15 Pro",
"top_k": 5,
"score_threshold": 0.85
}
Resposta:
Retorna uma lista de produtos encontrados ou uma mensagem indicando que nenhum resultado foi encontrado. Em caso de erro, retorna uma mensagem descritiva do sistema.
Notas:
- Requer que o bot tenha um catálogo de produtos configurado e acessível.
Transferir para agente
Transfere a conversa atual do usuário para um agente humano ou uma fila de atendimento. Permite especificar estratégias de roteamento e prioridades.
Parâmetros:
| Nome | Tipo | Obrigatório | Descrição |
|---|
assignment_type | enum | Não (Padrão: direct) | Método de atribuição: direct (imediato) ou queue (fila de tickets). |
assignment_by | enum | Não (Padrão: shuffle) | Estratégia de roteamento: shuffle (automático), team, operators, general. |
teamId | number | Não* | ID da equipe. *Obrigatório apenas se assignment_by for ‘team’. |
operatorId | number | Não* | ID do operador. *Obrigatório apenas se assignment_by for ‘operators’. |
priority | number | Não (Padrão: 0) | Prioridade na fila (0-10), relevante apenas para assignment_type='queue'. |
Exemplo de Prompt:
“Quando o usuário expressar frustração ou solicitar explicitamente falar com uma pessoa real, execute a função transfer_to_agent imediatamente.”
Exemplo de Argumentos:
Caso: Transferência direta automática (mais comum)
{
"assignment_type": "direct",
"assignment_by": "shuffle"
}
Caso: Transferência direta para uma equipe
{
"assignment_type": "direct",
"assignment_by": "team",
"teamId": 4501
}
Caso: Criar ticket na fila geral
{
"assignment_type": "queue",
"assignment_by": "general",
"priority": 5
}
Resposta:
Retorna um objeto JSON com o resultado da operação indicando se a transferência foi iniciada com sucesso.
Notas:
- Pode encerrar o fluxo de IA imediatamente.
- Ao usar
assignment_type: "queue" com assignment_by: "general", um ticket é criado na fila geral de atendimento.
- Importante: IDs de equipe ou operador não devem ser inventados; use apenas os explicitamente configurados.
Enviar mensagens interativas
Envia uma mensagem estruturada ou interativa ao usuário. O formato exato depende do canal (WhatsApp, Web, etc.), mas geralmente inclui botões ou listas de opções.
Parâmetros:
| Nome | Tipo | Obrigatório | Descrição |
|---|
text | string | Sim | Conteúdo principal da mensagem. Máximo de 1024 caracteres. |
title | string | Não | Cabeçalho/título da mensagem. Máximo de 60 caracteres. |
caption | string | Não | Subtítulo ou descrição complementar. Máximo de 60 caracteres. No WhatsApp com 4+ opções, usado como o texto do botão que expande a lista. |
options | array | Sim | Lista de opções/botões. Veja a estrutura abaixo. |
Estrutura de options (Array de objetos):
title (string, obrigatório): Texto da opção/botão. Máximo de 20 caracteres. Títulos duplicados não são permitidos.
description (string, opcional): Descrição adicional da opção. Máximo de 72 caracteres.
Exemplo de Prompt:
“Se o usuário perguntar quais serviços oferecemos, você DEVE usar send_interactive_message para exibir um menu com as opções disponíveis.”
Exemplo de Argumentos (Botões - 3 ou menos opções):
{
"text": "Como você gostaria de continuar com sua consulta?",
"title": "Opções de Atendimento",
"caption": "Selecione uma opção",
"options": [
{
"title": "Falar com Agente",
"description": "Transferir para suporte humano"
},
{
"title": "Ver Catálogo",
"description": "Navegar pelos produtos disponíveis"
}
]
}
Exemplo de Argumentos (Lista WhatsApp - 4+ opções):
{
"text": "Temos vários departamentos disponíveis para atendê-lo.",
"title": "Departamentos",
"caption": "Ver opções",
"options": [
{ "title": "Vendas", "description": "Consultas sobre produtos e preços" },
{ "title": "Suporte Técnico", "description": "Ajuda com problemas técnicos" },
{ "title": "Faturamento", "description": "Consultas sobre pagamentos" },
{ "title": "Devoluções", "description": "Gerenciar devoluções" }
]
}
No WhatsApp, quando você envia 4 ou mais opções, a mensagem é exibida como uma lista suspensa. O valor de caption é usado como o texto do botão que abre a lista (no exemplo acima, “Ver opções”).
Resposta:
Retorna "Message sent successfully." se o envio foi bem-sucedido ou uma mensagem de erro caso contrário.
Notas:
- Envia uma mensagem real ao usuário.
- O tipo de mensagem se adapta automaticamente de acordo com o canal e o número de opções.
Enviar Call to Action (CTA)
Envia um botão de call-to-action que abre uma URL externa. Pode ser configurado como WebView para formulários ou pagamentos que requerem aguardar uma resposta do usuário.
Parâmetros:
| Nome | Tipo | Obrigatório | Descrição |
|---|
text | string | Sim | Conteúdo principal da mensagem. |
url | string | Sim | URL que abre quando o botão é clicado. |
display_text | string | Sim | Texto do botão CTA. Máximo de 20 caracteres. |
title | string | Não | Cabeçalho/título da mensagem. |
caption | string | Não | Subtítulo para complementar a mensagem. |
is_webview | boolean | Não | Se true, envia como WebView que pausa o fluxo e aguarda um callback. Padrão: false. |
expiration_time | number | Não | Segundos para aguardar o callback antes de expirar. Padrão: 300. Aplica-se apenas quando is_webview=true. |
pending_message | string | Não | Mensagem a exibir se o usuário enviar texto enquanto aguarda o callback do WebView. |
response_variable | string | Não | Nome da variável onde a resposta do callback será salva. |
input | string | object | Não | Dados a passar para o WebView como parâmetros de URL. |
Exemplo de Prompt:
“Quando o usuário confirmar que deseja fazer o pagamento, use send_call_to_action com is_webview=true para enviar o link de pagamento e aguardar a confirmação.”
Exemplo de Argumentos (CTA simples):
{
"text": "Visite nossa loja online para ver todos os produtos disponíveis.",
"url": "https://store.example.com/catalog",
"display_text": "Ver Catálogo",
"title": "Loja Online"
}
Exemplo de Argumentos (WebView aguardando resposta):
{
"text": "Clique no botão para concluir seu pagamento com segurança.",
"url": "https://payments.example.com/checkout",
"display_text": "Pagar Agora",
"title": "Concluir Pagamento",
"is_webview": true,
"expiration_time": 600,
"pending_message": "Por favor, conclua o pagamento na janela aberta antes de continuar.",
"response_variable": "payment_result",
"input": {
"order_id": "12345",
"amount": 99.99
}
}
Resposta:
- CTA normal:
"Call-to-action message sent successfully."
- WebView:
"WebView message sent. Waiting for user action."
Notas:
- Disponível apenas para provedores do WhatsApp que suportam esse tipo de mensagem.
- Quando
is_webview=true, o fluxo é pausado até que o WebView retorne um callback ou o tempo expire.
- O valor de
input é convertido em parâmetros de query string da URL.
- A resposta do callback é salva na variável especificada em
response_variable.
Data e hora atual
Obtém a data e hora atuais. Permite especificar um fuso horário para obter a hora local correta.
Parâmetros:
| Nome | Tipo | Obrigatório | Descrição |
|---|
timezone | string | Não | Fuso horário desejado em formato IANA (ex.: “America/Sao_Paulo”, “UTC”). |
Exemplo de Prompt:
“Antes de processar qualquer solicitação dependente de horário (como ‘bom dia’ ou compromissos para ‘hoje’), chame get_current_date_time para saber o horário exato.”
Exemplo de Argumentos:
{
"timezone": "America/Sao_Paulo"
}
Resposta:
Retorna uma string com a data e hora formatadas, por exemplo: "Monday, December 08, 2025 10:30 AM".
Notas:
- Não tem efeitos colaterais visíveis para o usuário.
- É puramente informacional para o modelo.
Dia da semana
Calcula e retorna o dia da semana correspondente a uma data específica fornecida.
Parâmetros:
| Nome | Tipo | Obrigatório | Descrição |
|---|
date | string | Sim | Data a consultar (formato ISO ou formato legível padrão, ex.: “2024-12-25”). |
Exemplo de Prompt:
“Se o usuário quiser agendar para uma data específica, verifique primeiro qual dia da semana é usando get_weekday_of_a_date para garantir que seja um dia útil.”
Exemplo de Argumentos:
Resposta:
Retorna o nome do dia da semana, por exemplo: "Wednesday".
Notas:
- Útil para validar compromissos ou agendas.