Expanda as capacidades dos seus agentes com ferramentas personalizadas
As Tools (Ferramentas) expandem as capacidades dos seus agentes durante as conversas. Com elas, seu agente pode consultar APIs, transferir para humanos ou encerrar chamadas de forma controlada.
Se o endpoint exige autenticação, configure o tipo adequado na seção Autenticação do formulário:
Tipo
Campos
Descrição
Nenhuma
—
Endpoint público, sem autenticação
Bearer Token
Token
Envia o header Authorization: Bearer <token>
Basic Auth
Usuário, Senha
Envia o header Authorization: Basic <base64>
API Key
Nome do Header, Chave
Envia a chave em um header customizado (padrão: X-API-Key)
As credenciais são armazenadas de forma segura e nunca são expostas na URL. Use sempre a seção de Autenticação em vez de colocar tokens diretamente nos Headers.
Os campos Query Params Schema e Body Schema definem quais dados o agente deve coletar do cliente para enviar na requisição. Para cada parâmetro, você configura:
Nome: identificador do parâmetro (ex: cep, pedido_id)
Tipo: string, number, integer, boolean, object ou array
Descrição: explica ao agente o que é este campo
Obrigatório: se o agente deve obrigatoriamente coletar este dado
Você pode usar o editor visual para adicionar campos um a um, ou alternar para o modo JSON para colar o esquema diretamente.
Antes de vincular a Tool a um agente, use o botão Testar Endpoint para validar a configuração. Se o endpoint possui parâmetros, um modal pedirá que você preencha valores de teste. O resultado mostra o status HTTP, tempo de resposta, corpo da resposta e headers retornados.
Transfere a chamada para um atendente humano via SIP. Quando o agente aciona essa Tool, o cliente é redirecionado para o número ou ramal de destino configurado.Exemplos de uso:
O campo Número de Destino aceita diferentes formatos dependendo do seu cenário:
Formato
Exemplo
Quando usar
E.164
+5511999999999
Números de telefone convencionais (PSTN)
SIP URI (Twilio)
sip:+5511999999999@seu-trunk.pstn.twilio.com
Transferência via trunk Twilio
SIP URI (outro provedor)
sip:+5511999999999@sip.seuprovedor.com
Conforme documentação do seu trunk SIP
SIP URI (Ramal)
sip:ramal100@pbx.empresa.com
Transferência para ramal interno
A transferência usará automaticamente o mesmo SIP trunk da chamada em andamento.
A transferência via Handoff funciona apenas em chamadas telefônicas reais (recebidas ou feitas via SIP). Ela não funciona no Playground, que utiliza WebRTC. Para testar o Handoff, faça uma ligação telefônica real para o número vinculado ao agente.Além disso, o SIP REFER deve estar habilitado no seu provedor SIP para que a transferência funcione. Consulte a documentação de SIP Trunks.
Permite encerrar chamadas de forma controlada. Essa Tool funciona de duas maneiras complementares:
Encerramento pela IA — O agente decide encerrar a chamada com base nos contextos que você definir (ex: quando o assunto está resolvido, quando o usuário foge do escopo).
Encerramento por inatividade — A chamada é encerrada automaticamente se o usuário ficar em silêncio por um tempo configurado.
Em ambos os casos, o agente fala a mensagem de despedida antes de desligar.Exemplos de uso:
Encerrar quando o atendimento está concluído
Desligar se o usuário ficar em silêncio (ex: esqueceu de desligar)
Encerrar quando o usuário foge completamente do escopo
Quando habilitado, um timer conta o tempo de silêncio do usuário. O timer:
Reseta cada vez que o usuário fala
Pausa enquanto o agente está falando ou pensando
Conta apenas quando o agente está aguardando resposta do usuário
Se o timer atingir o limite configurado, o agente fala a mensagem de despedida e encerra a chamada.
O timeout por inatividade é diferente da duração máxima da chamada (configurada no agente). A duração máxima limita o tempo total da ligação. O timeout por inatividade encerra apenas quando há silêncio prolongado.
Mensagem de Despedida: “Obrigado pelo contato. Se precisar de algo mais, ligue novamente. Até logo!”
Timeout por Inatividade: 30 segundos
Quando Usar: “Quando o usuário pedir para encerrar a chamada, quando fugir completamente do escopo do atendimento, ou quando o assunto estiver resolvido e não houver mais perguntas”
Permite que o agente consulte disponibilidade, agende, reagende e cancele compromissos diretamente no Google Calendar, inclusive em várias agendas diferentes em paralelo — útil, por exemplo, para uma clínica que atende por vários profissionais, cada um com sua agenda.Exemplos de uso:
Clínica com vários médicos, cada um com sua agenda
Consultório que atende em horários diferentes por profissional
Escritório que divide atendimento por especialista
Qualquer negócio que precise oferecer escolha de profissional e horário em uma mesma ligação
Antes de criar a Tool de Agendamento você precisa conectar pelo menos uma conta do Google Calendar em Integrações > Plugins. Cada profissional pode ter sua própria conta conectada. Veja Plugins.
Cada agenda representa um profissional ou recurso agendável. O agente escolhe a agenda certa durante a conversa e verifica a disponibilidade dentro das regras que você definir.Para cada agenda configure:
Campo
Descrição
Nome / Rótulo
Como a agenda aparece para o agente (ex: Dra. Ana Silva, Sala de Exames)
Título do Evento
Modelo do título que será criado no Google Calendar (pode usar variáveis)
Conta Google Calendar
Conta conectada em Plugins onde o compromisso será criado
Calendário
Calendário específico dentro daquela conta (principal ou secundário)
Início / Fim do expediente
Janela diária de atendimento
Dias disponíveis
Seg–Dom que o profissional atende
Duração (minutos)
Duração padrão de cada compromisso
Fuso horário
Fuso em que os horários são interpretados
Use Adicionar Agenda para vincular quantos profissionais quiser. Cada agenda pode usar uma conta Google Calendar diferente — ideal para que cada pessoa mantenha sua própria conta.
Se uma conta do Google Calendar usada na agenda for desconectada, a plataforma avisa e pede para reconectá-la em Integrações > Plugins. Enquanto isso, aquela agenda específica fica indisponível.
Marque quais informações o agente deve pedir ao cliente antes de confirmar o agendamento. Os dados coletados vão para a descrição do evento no Google Calendar.
A mesma Tool também permite ao agente reagendar ou cancelar compromissos existentes do cliente durante a ligação — não há uma configuração separada. O agente identifica o compromisso, conversa com o cliente e executa a alteração na agenda correspondente.
Cada agente pode ter apenas uma Tool de Agendamento vinculada por vez. Ao tentar vincular uma segunda, a opção aparece desabilitada com a mensagem “Já existe uma tool de agendamento vinculada”.
Permite que o agente aja diretamente no CRM durante a conversa — sem depender de alguém da equipe atualizar o cliente depois. Cada Tool CRM Action tem uma sub-ação específica.Sub-ações disponíveis:
Sub-ação
O que o agente faz
Canal
move_to_stage
Move o cliente entre etapas do board, escolhendo a etapa com base nas descrições do pipeline
Voz + WhatsApp
create_task
Cria uma tarefa humana para o time quando precisa de mão-de-obra humana
Voz + WhatsApp
schedule_callback
Agenda retorno — nova ligação ou WhatsApp na hora marcada
Voz + WhatsApp
add_client_tag
Adiciona uma tag ao cliente
Voz
mark_converted
Marca o cliente como convertido (com valor opcional do deal)
Voz
mark_wrong_person
Marca que o número fala com pessoa errada
Voz
Você cria uma Tool CRM Action por sub-ação — não é uma única tool com tudo dentro. Isso dá controle fino sobre quando o agente pode fazer cada coisa e permite descrições específicas.
O agente decide se o cliente deve ser movido entre etapas do board com base na conversa. As etapas são pré-aprovadas por você (whitelist).
Campo
Descrição
Pipeline
Board (funil) que essa tool pode mexer
Etapas permitidas
Subconjunto de etapas que o agente pode escolher como destino — selecione 2 ou mais
Quando usar
Reforço opcional sobre o critério para mover
A tool só funciona se o cliente já estiver no pipeline configurado. Se o cliente está em outro funil, o agente recebe erro estruturado e segue a conversa sem mover.
Como o agente decide a etapa: o agente recebe a lista de etapas permitidas com nome + descrição de cada uma. Quanto mais clara a descrição (ver Board), mais precisa a movimentação.Tracking visual: o card no Kanban mostra 🤖 + nome do agente + tempo relativo quando movido pela IA. A timeline registra stage_change com metadata.source='agent'.Cascata: se a etapa de destino tem automação com trigger stage_entry, ela é disparada automaticamente.
O agente cria uma Tarefa quando identifica trabalho humano: confirmar com terceiro, conferir documento, resolver pendência.
Campo
Descrição
Responsável padrão (opcional)
UUID de usuário usado quando o agente não consegue determinar o responsável
Quando usar
Cenários típicos (ex: “use sempre que o cliente pedir conferência humana”)
Resolução automática do responsável: parâmetro do agente → responsável padrão da tool → assigned_to do cliente. Se nenhum resolve, retorna erro para o agente.Tarefa interna, não-visível ao cliente: o agente NÃO comenta sobre criar tarefa durante a conversa. A tarefa aparece em /tasks para o time humano.
O agente agenda nova conversa quando o cliente diz “me liga depois” ou “manda no WhatsApp em vez”. Ver Retornos para detalhes completos.
Campo
Descrição
Duração máxima da chamada
Teto da call agendada (default 300s)
Integração WhatsApp (opcional)
Se preenchida, o agente pode trocar de canal: voz → WhatsApp. Sem isso, o agente só pode agendar nova ligação.
Quando usar
Cenários típicos
O agente WhatsApp nunca agenda call (regra de segurança). Cross-channel só funciona no sentido voz → WhatsApp.
Por trás:schedule_callback reusa a engine de Automações — cria uma run em uma “system automation” do agente. Aparece em /retornos (sidebar) e na timeline do cliente.
Selecione o card CRM Action, depois escolha a sub-ação (move_to_stage, create_task, schedule_callback, etc.).
3
Configure os campos específicos
Cada sub-ação tem seu formulário. Para move_to_stage: pipeline + etapas permitidas. Para schedule_callback: integração WhatsApp opcional. Etc.
4
Defina Quando Usar
Descreva os cenários concretos — quanto mais claros, mais precisa a decisão do agente.
5
Vincule ao agente
Em Studio de IA > Agentes, abra o agente e adicione a tool em Recursos vinculáveis.
Você pode vincular várias Tools CRM Action ao mesmo agente — uma para cada sub-ação que ele precisa executar. Por exemplo: um agente de vendas pode ter move_to_stage, create_task, schedule_callback e mark_converted ao mesmo tempo.
Tool 3 — Agendar retorno: schedule_callback, com integração WhatsApp ativa para fallback.
Tool 4 — Marcar conversão: mark_converted.
Resultado: o agente conduz a conversa completa, qualifica, propõe, fecha o deal — tudo registrado direto no CRM, sem ninguém atualizando o cliente depois.
Configure seus trunks SIP para transferências via Handoff
Plugins
Conecte o Google Calendar para usar a Tool de Agendamento
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/schema.json","name":"Kiraa","colors":{"primary":"#7C3AED","light":"#9A63F1","dark":"#6624D6"},"logo":{"light":"https://mintcdn.com/tropicall/6ax9XPpM2V4kzDw4/logo/light.png?fit=max\u0026auto=format\u0026n=6ax9XPpM2V4kzDw4\u0026q=85\u0026s=fb9cccca9594239e3fb5cbe74c70c4ee","dark":"https://mintcdn.com/tropicall/6ax9XPpM2V4kzDw4/logo/dark.png?fit=max\u0026auto=format\u0026n=6ax9XPpM2V4kzDw4\u0026q=85\u0026s=772fb55405bbc93d26eff749a74db06b"},"favicon":"https://mintcdn.com/tropicall/6ax9XPpM2V4kzDw4/favicon.png?fit=max\u0026auto=format\u0026n=6ax9XPpM2V4kzDw4\u0026q=85\u0026s=64040c7dacbe504f8851348e5dfa960a","styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tropicall","hasAudioNarration":false,"actualSubdomain":"tropicall","customDomains":["docs.kiraa.com.br"],"gitSource":{"type":"github","owner":"carlosfeduardo","repo":"tropicall","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad9f62125e5b97c63692734","collectionId":"bd58d578-b412-46cc-bf18-0629d6432983","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad9f62125e5b97c63692734"},"entitlements":{},"buildId":"6ad9f62125e5b97c63692734","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"Documentação","count":26},{"language":"default","tag":"Templates","count":6},{"language":"default","tag":"Studio de IA","count":6},{"language":"default","tag":"CRM","count":5},{"language":"default","tag":"Operação","count":3},{"language":"default","tag":"Integrações","count":3},{"language":"default","tag":"Começando","count":2},{"language":"default","tag":"Cobrança","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"tools","slug":"/tools","pageMetadata":{"title":"Tools (Ferramentas)","description":"Expanda as capacidades dos seus agentes com ferramentas personalizadas","href":"/tools"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Expanda as capacidades dos seus agentes com ferramentas personalizadas\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,Heading,Info,Step,Steps,Tab,Table,Tabs,Tip,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`As `,_jsx(_components.strong,{children:`Tools`}),` (Ferramentas) expandem as capacidades dos seus agentes durante as conversas. Com elas, seu agente pode consultar APIs, transferir para humanos ou encerrar chamadas de forma controlada.`]}),`\n`,_jsx(Heading,{level:`2`,id:`tipos-de-tools`,children:`Tipos de Tools`}),`\n`,_jsxs(_components.p,{children:[`O Kiraa oferece `,_jsx(_components.strong,{children:`cinco tipos`}),` de Tools, cada uma para uma finalidade diferente:`]}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Endpoint`,icon:`plug`,children:_jsx(_components.p,{children:`Integre com APIs externas para buscar ou enviar dados em tempo real durante a conversa.`})}),_jsx(Card,{title:`Handoff`,icon:`phone-arrow-right`,children:_jsx(_components.p,{children:`Transfira a chamada para um atendente humano via SIP.`})}),_jsx(Card,{title:`Encerrar Chamada`,icon:`phone-xmark`,children:_jsx(_components.p,{children:`Encerre chamadas de forma controlada, com mensagem de despedida e timeout por inatividade.`})}),_jsx(Card,{title:`Agendamento`,icon:`calendar-check`,children:_jsx(_components.p,{children:`Deixe o agente consultar disponibilidade, agendar, reagendar e cancelar compromissos em múltiplas agendas do Google Calendar.`})}),_jsx(Card,{title:`CRM Action`,icon:`wrench`,children:_jsxs(_components.p,{children:[`Permite que o agente `,_jsx(_components.strong,{children:`aja no CRM`}),` durante a conversa: mover etapa, criar tarefa, agendar retorno, marcar conversão, marcar pessoa errada, adicionar tag.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`como-funcionam`,children:`Como funcionam?`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Crie a Tool`,children:_jsx(_components.p,{children:`Configure uma Tool com as especificações necessárias (URL, número de destino, etc.)`})}),_jsx(Step,{title:`Vincule ao Agente`,children:_jsx(_components.p,{children:`Conecte a Tool aos agentes que devem utilizá-la`})}),_jsx(Step,{title:`Agente usa automaticamente`,children:_jsx(_components.p,{children:`Durante a conversa, o agente identifica quando usar cada Tool baseado na descrição e no campo “Quando Usar”`})}),_jsx(Step,{title:`Resultado integrado`,children:_jsx(_components.p,{children:`A Tool executa a ação e retorna o resultado para o agente continuar a conversa`})})]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Uma mesma Tool pode ser vinculada a múltiplos agentes, permitindo reutilização e consistência.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`detalhes-por-tipo`,children:`Detalhes por Tipo`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Endpoint`,id:`endpoint`,\"data-child-heading-ids\":`[\"tool-endpoint\",\"campos-de-configura%C3%A7%C3%A3o\",\"autentica%C3%A7%C3%A3o\",\"schemas-de-par%C3%A2metros\",\"testar-endpoint\",\"exemplo%3A-consulta-de-cep\"]`,children:[_jsx(Heading,{level:`3`,id:`tool-endpoint`,children:`Tool Endpoint`}),_jsx(_components.p,{children:`Permite que seu agente faça chamadas HTTP para APIs externas durante a conversa. Ideal para integrar com sistemas existentes.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Exemplos de uso:`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Consultar CEP para obter endereço`}),`\n`,_jsx(_components.li,{children:`Buscar preço de produto ou status de pedido`}),`\n`,_jsx(_components.li,{children:`Verificar disponibilidade de estoque`}),`\n`,_jsx(_components.li,{children:`Enviar dados para um CRM ou ERP`}),`\n`]}),_jsx(Heading,{level:`4`,id:`campos-de-configuração`,children:`Campos de Configuração`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Campo`}),_jsx(_components.th,{style:{textAlign:`center`},children:`Obrigatório`}),_jsx(_components.th,{children:`Descrição`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Nome`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Sim`}),_jsxs(_components.td,{children:[`Identificador da Tool (ex: `,_jsx(_components.code,{children:`consultar_cep`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Descrição`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Sim`}),_jsx(_components.td,{children:`Explica ao agente o que a Tool faz`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Método HTTP`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Sim`}),_jsx(_components.td,{children:`GET, POST, PUT ou DELETE`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`URL`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Sim`}),_jsxs(_components.td,{children:[`Endereço do endpoint (ex: `,_jsx(_components.code,{children:`https://api.exemplo.com/dados`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Autenticação`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`Tipo de autenticação para o endpoint (veja detalhes abaixo)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Headers`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`Cabeçalhos HTTP adicionais (ex: Content-Type)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Query Params Schema`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`Esquema dos parâmetros de URL`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Body Schema`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`Esquema do corpo da requisição`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Quando Usar`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`Instruções de quando o agente deve acionar a Tool`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Instruções de Resposta`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`Como o agente deve apresentar a resposta da API ao cliente`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Mensagem de Erro`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`O que o agente fala quando a API retorna erro ou está indisponível`})]})]})]}),_jsx(Heading,{level:`4`,id:`autenticação`,children:`Autenticação`}),_jsxs(_components.p,{children:[`Se o endpoint exige autenticação, configure o tipo adequado na seção `,_jsx(_components.strong,{children:`Autenticação`}),` do formulário:`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Tipo`}),_jsx(_components.th,{children:`Campos`}),_jsx(_components.th,{children:`Descrição`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Nenhuma`})}),_jsx(_components.td,{children:`—`}),_jsx(_components.td,{children:`Endpoint público, sem autenticação`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Bearer Token`})}),_jsx(_components.td,{children:`Token`}),_jsxs(_components.td,{children:[`Envia o header `,_jsx(_components.code,{children:`Authorization: Bearer \u003ctoken>`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Basic Auth`})}),_jsx(_components.td,{children:`Usuário, Senha`}),_jsxs(_components.td,{children:[`Envia o header `,_jsx(_components.code,{children:`Authorization: Basic \u003cbase64>`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`API Key`})}),_jsx(_components.td,{children:`Nome do Header, Chave`}),_jsxs(_components.td,{children:[`Envia a chave em um header customizado (padrão: `,_jsx(_components.code,{children:`X-API-Key`}),`)`]})]})]})]}),_jsx(Tip,{children:_jsx(_components.p,{children:`As credenciais são armazenadas de forma segura e nunca são expostas na URL. Use sempre a seção de Autenticação em vez de colocar tokens diretamente nos Headers.`})}),_jsx(Heading,{level:`4`,id:`schemas-de-parâmetros`,children:`Schemas de Parâmetros`}),_jsxs(_components.p,{children:[`Os campos `,_jsx(_components.strong,{children:`Query Params Schema`}),` e `,_jsx(_components.strong,{children:`Body Schema`}),` definem quais dados o agente deve coletar do cliente para enviar na requisição. Para cada parâmetro, você configura:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Nome`}),`: identificador do parâmetro (ex: `,_jsx(_components.code,{children:`cep`}),`, `,_jsx(_components.code,{children:`pedido_id`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Tipo`}),`: `,_jsx(_components.code,{children:`string`}),`, `,_jsx(_components.code,{children:`number`}),`, `,_jsx(_components.code,{children:`integer`}),`, `,_jsx(_components.code,{children:`boolean`}),`, `,_jsx(_components.code,{children:`object`}),` ou `,_jsx(_components.code,{children:`array`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Descrição`}),`: explica ao agente o que é este campo`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Obrigatório`}),`: se o agente deve obrigatoriamente coletar este dado`]}),`\n`]}),_jsxs(_components.p,{children:[`Você pode usar o `,_jsx(_components.strong,{children:`editor visual`}),` para adicionar campos um a um, ou alternar para o modo `,_jsx(_components.strong,{children:`JSON`}),` para colar o esquema diretamente.`]}),_jsx(Heading,{level:`4`,id:`testar-endpoint`,children:`Testar Endpoint`}),_jsxs(_components.p,{children:[`Antes de vincular a Tool a um agente, use o botão `,_jsx(_components.strong,{children:`Testar Endpoint`}),` para validar a configuração. Se o endpoint possui parâmetros, um modal pedirá que você preencha valores de teste. O resultado mostra o status HTTP, tempo de resposta, corpo da resposta e headers retornados.`]}),_jsx(Heading,{level:`4`,id:`exemplo-consulta-de-cep`,children:`Exemplo: Consulta de CEP`}),_jsx(_components.p,{children:`Para configurar uma Tool que busca endereço por CEP:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Nome`}),`: `,_jsx(_components.code,{children:`consultar_cep`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Descrição`}),`: “Consulta o endereço completo a partir do CEP informado pelo cliente”`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Método`}),`: GET`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`URL`}),`: `,_jsx(_components.code,{children:`https://viacep.com.br/ws/{cep}/json/`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Instruções de Resposta`}),`: “Informe ao cliente o endereço completo: logradouro, bairro, cidade e estado”`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Quando Usar`}),`: “Quando o cliente informar um CEP ou perguntar sobre endereço”`]}),`\n`]})]}),_jsxs(Tab,{title:`Handoff`,id:`handoff`,\"data-child-heading-ids\":`[\"tool-handoff\",\"campos-de-configura%C3%A7%C3%A3o-2\",\"n%C3%ADveis-de-prioridade\",\"n%C3%BAmero-de-destino\",\"exemplo%3A-transfer%C3%AAncia-para-vendas\"]`,children:[_jsx(Heading,{level:`3`,id:`tool-handoff`,children:`Tool Handoff`}),_jsx(_components.p,{children:`Transfere a chamada para um atendente humano via SIP. Quando o agente aciona essa Tool, o cliente é redirecionado para o número ou ramal de destino configurado.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Exemplos de uso:`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Transferir para suporte técnico avançado`}),`\n`,_jsx(_components.li,{children:`Redirecionar para time de vendas`}),`\n`,_jsx(_components.li,{children:`Encaminhar reclamações para ouvidoria`}),`\n`,_jsx(_components.li,{children:`Escalar atendimentos sensíveis`}),`\n`]}),_jsx(Heading,{level:`4`,id:`campos-de-configuração-2`,children:`Campos de Configuração`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Campo`}),_jsx(_components.th,{style:{textAlign:`center`},children:`Obrigatório`}),_jsx(_components.th,{children:`Descrição`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Nome`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Sim`}),_jsxs(_components.td,{children:[`Identificador da Tool (ex: `,_jsx(_components.code,{children:`transferir_suporte`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Descrição`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Sim`}),_jsx(_components.td,{children:`Explica ao agente quando usar esta transferência`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Departamento`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Sim`}),_jsx(_components.td,{children:`Setor de destino (ex: suporte, vendas, financeiro)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Prioridade`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Sim`}),_jsx(_components.td,{children:`Nível de urgência na fila`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Número de Destino`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Sim`}),_jsx(_components.td,{children:`Número E.164 ou SIP URI para onde transferir`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tocar Tom de Espera`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`Tocar tom de discagem durante a transferência (padrão: ativado)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Quando Usar`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`Instruções de quando transferir`})]})]})]}),_jsx(Heading,{level:`4`,id:`níveis-de-prioridade`,children:`Níveis de Prioridade`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Prioridade`}),_jsx(_components.th,{children:`Descrição`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Baixa`})}),_jsx(_components.td,{children:`Atendimento pode aguardar`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Normal`})}),_jsx(_components.td,{children:`Atendimento padrão`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Alta`})}),_jsx(_components.td,{children:`Atendimento prioritário`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Urgente`})}),_jsx(_components.td,{children:`Atendimento imediato`})]})]})]}),_jsx(Heading,{level:`4`,id:`número-de-destino`,children:`Número de Destino`}),_jsxs(_components.p,{children:[`O campo `,_jsx(_components.strong,{children:`Número de Destino`}),` aceita diferentes formatos dependendo do seu cenário:`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Formato`}),_jsx(_components.th,{children:`Exemplo`}),_jsx(_components.th,{children:`Quando usar`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.strong,{children:`E.164`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`+5511999999999`})}),_jsx(_components.td,{children:`Números de telefone convencionais (PSTN)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`SIP URI (Twilio)`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`sip:+5511999999999@seu-trunk.pstn.twilio.com`})}),_jsx(_components.td,{children:`Transferência via trunk Twilio`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`SIP URI (outro provedor)`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`sip:+5511999999999@sip.seuprovedor.com`})}),_jsx(_components.td,{children:`Conforme documentação do seu trunk SIP`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`SIP URI (Ramal)`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`sip:ramal100@pbx.empresa.com`})}),_jsx(_components.td,{children:`Transferência para ramal interno`})]})]})]}),_jsx(Info,{children:_jsx(_components.p,{children:`A transferência usará automaticamente o mesmo SIP trunk da chamada em andamento.`})}),_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`A transferência via Handoff funciona `,_jsx(_components.strong,{children:`apenas em chamadas telefônicas reais`}),` (recebidas ou feitas via SIP). Ela `,_jsx(_components.strong,{children:`não funciona no Playground`}),`, que utiliza WebRTC. Para testar o Handoff, faça uma ligação telefônica real para o número vinculado ao agente.`]}),_jsxs(_components.p,{children:[`Além disso, o `,_jsx(_components.strong,{children:`SIP REFER`}),` deve estar habilitado no seu provedor SIP para que a transferência funcione. Consulte a documentação de `,_jsx(_components.a,{href:`/sip-trunks`,children:`SIP Trunks`}),`.`]})]}),_jsx(Heading,{level:`4`,id:`exemplo-transferência-para-vendas`,children:`Exemplo: Transferência para Vendas`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Nome`}),`: `,_jsx(_components.code,{children:`transferir_vendas`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Descrição`}),`: “Transfere a chamada para a equipe de vendas”`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Departamento`}),`: Vendas`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Prioridade`}),`: Alta`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Número de Destino`}),`: `,_jsx(_components.code,{children:`+551140001234`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Tocar Tom de Espera`}),`: Ativado`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Quando Usar`}),`: “Quando o cliente quiser fazer uma compra ou pedir uma proposta comercial”`]}),`\n`]})]}),_jsxs(Tab,{title:`Encerrar Chamada`,id:`encerrar-chamada`,\"data-child-heading-ids\":`[\"tool-encerrar-chamada-end-call\",\"campos-de-configura%C3%A7%C3%A3o-3\",\"como-funciona-o-timeout-por-inatividade\",\"exemplo%3A-encerramento-padr%C3%A3o\"]`,children:[_jsx(Heading,{level:`3`,id:`tool-encerrar-chamada-end-call`,children:`Tool Encerrar Chamada (End Call)`}),_jsx(_components.p,{children:`Permite encerrar chamadas de forma controlada. Essa Tool funciona de duas maneiras complementares:`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Encerramento pela IA`}),` — O agente decide encerrar a chamada com base nos contextos que você definir (ex: quando o assunto está resolvido, quando o usuário foge do escopo).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Encerramento por inatividade`}),` — A chamada é encerrada automaticamente se o usuário ficar em silêncio por um tempo configurado.`]}),`\n`]}),_jsx(_components.p,{children:`Em ambos os casos, o agente fala a mensagem de despedida antes de desligar.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Exemplos de uso:`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Encerrar quando o atendimento está concluído`}),`\n`,_jsx(_components.li,{children:`Desligar se o usuário ficar em silêncio (ex: esqueceu de desligar)`}),`\n`,_jsx(_components.li,{children:`Encerrar quando o usuário foge completamente do escopo`}),`\n`]}),_jsx(Heading,{level:`4`,id:`campos-de-configuração-3`,children:`Campos de Configuração`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Campo`}),_jsx(_components.th,{style:{textAlign:`center`},children:`Obrigatório`}),_jsx(_components.th,{children:`Descrição`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Nome`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Sim`}),_jsxs(_components.td,{children:[`Identificador da Tool (ex: `,_jsx(_components.code,{children:`encerrar_chamada`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Descrição`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`Descrição complementar`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Mensagem de Despedida`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Sim`}),_jsx(_components.td,{children:`Frase que o agente fala antes de desligar (padrão: “Obrigado pelo contato. Até logo!”)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Timeout por Inatividade`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`Tempo em segundos sem resposta do usuário para encerrar automaticamente (10 a 300 segundos). Desabilitado por padrão.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Quando Usar`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`Contextos em que a IA deve encerrar a chamada`})]})]})]}),_jsx(Heading,{level:`4`,id:`como-funciona-o-timeout-por-inatividade`,children:`Como funciona o Timeout por Inatividade`}),_jsx(_components.p,{children:`Quando habilitado, um timer conta o tempo de silêncio do usuário. O timer:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Reseta`}),` cada vez que o usuário fala`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pausa`}),` enquanto o agente está falando ou pensando`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Conta`}),` apenas quando o agente está aguardando resposta do usuário`]}),`\n`]}),_jsx(_components.p,{children:`Se o timer atingir o limite configurado, o agente fala a mensagem de despedida e encerra a chamada.`}),_jsx(Info,{children:_jsx(_components.p,{children:`O timeout por inatividade é diferente da duração máxima da chamada (configurada no agente). A duração máxima limita o tempo total da ligação. O timeout por inatividade encerra apenas quando há silêncio prolongado.`})}),_jsx(Heading,{level:`4`,id:`exemplo-encerramento-padrão`,children:`Exemplo: Encerramento Padrão`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Nome`}),`: `,_jsx(_components.code,{children:`encerrar_chamada`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Descrição`}),`: “Encerra a chamada quando apropriado”`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Mensagem de Despedida`}),`: “Obrigado pelo contato. Se precisar de algo mais, ligue novamente. Até logo!”`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Timeout por Inatividade`}),`: 30 segundos`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Quando Usar`}),`: “Quando o usuário pedir para encerrar a chamada, quando fugir completamente do escopo do atendimento, ou quando o assunto estiver resolvido e não houver mais perguntas”`]}),`\n`]})]}),_jsxs(Tab,{title:`Agendamento`,id:`agendamento`,\"data-child-heading-ids\":`[\"tool-agendamento\",\"campos-de-configura%C3%A7%C3%A3o-4\",\"configurando-as-agendas\",\"dados-a-coletar\",\"reagendamento-e-cancelamento\",\"v%C3%ADnculo-com-o-agente\",\"exemplo%3A-cl%C3%ADnica-com-dois-m%C3%A9dicos\"]`,children:[_jsx(Heading,{level:`3`,id:`tool-agendamento`,children:`Tool Agendamento`}),_jsxs(_components.p,{children:[`Permite que o agente `,_jsx(_components.strong,{children:`consulte disponibilidade`}),`, `,_jsx(_components.strong,{children:`agende`}),`, `,_jsx(_components.strong,{children:`reagende`}),` e `,_jsx(_components.strong,{children:`cancele`}),` compromissos diretamente no `,_jsx(_components.strong,{children:`Google Calendar`}),`, inclusive em `,_jsx(_components.strong,{children:`várias agendas`}),` diferentes em paralelo — útil, por exemplo, para uma clínica que atende por `,_jsx(_components.strong,{children:`vários profissionais`}),`, cada um com sua agenda.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Exemplos de uso:`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Clínica com vários médicos, cada um com sua agenda`}),`\n`,_jsx(_components.li,{children:`Consultório que atende em horários diferentes por profissional`}),`\n`,_jsx(_components.li,{children:`Escritório que divide atendimento por especialista`}),`\n`,_jsxs(_components.li,{children:[`Qualquer negócio que precise oferecer `,_jsx(_components.strong,{children:`escolha de profissional e horário`}),` em uma mesma ligação`]}),`\n`]}),_jsx(Info,{children:_jsxs(_components.p,{children:[`Antes de criar a Tool de Agendamento você precisa conectar pelo menos uma conta do `,_jsx(_components.strong,{children:`Google Calendar`}),` em `,_jsx(_components.strong,{children:`Integrações > Plugins`}),`. Cada profissional pode ter `,_jsx(_components.strong,{children:`sua própria conta`}),` conectada. Veja `,_jsx(_components.a,{href:`/plugins`,children:`Plugins`}),`.`]})}),_jsx(Heading,{level:`4`,id:`campos-de-configuração-4`,children:`Campos de Configuração`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Campo`}),_jsx(_components.th,{style:{textAlign:`center`},children:`Obrigatório`}),_jsx(_components.th,{children:`Descrição`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Nome`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Sim`}),_jsxs(_components.td,{children:[`Identificador da Tool (ex: `,_jsx(_components.code,{children:`agendar_consulta`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Descrição`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`Explicação complementar`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Agendas`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Sim`}),_jsx(_components.td,{children:`Uma ou mais agendas, cada uma representando um profissional ou recurso`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Dados a coletar`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`Dados que o agente deve pedir ao cliente antes de confirmar`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Quando Usar`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`Instruções de quando o agente deve acionar a Tool`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Mensagem de Confirmação`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Não`}),_jsx(_components.td,{children:`Frase que o agente fala após confirmar o agendamento`})]})]})]}),_jsx(Heading,{level:`4`,id:`configurando-as-agendas`,children:`Configurando as Agendas`}),_jsxs(_components.p,{children:[`Cada `,_jsx(_components.strong,{children:`agenda`}),` representa `,_jsx(_components.strong,{children:`um profissional ou recurso agendável`}),`. O agente escolhe a agenda certa durante a conversa e verifica a disponibilidade dentro das regras que você definir.`]}),_jsx(_components.p,{children:`Para cada agenda configure:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Campo`}),_jsx(_components.th,{children:`Descrição`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Nome / Rótulo`})}),_jsxs(_components.td,{children:[`Como a agenda aparece para o agente (ex: `,_jsx(_components.code,{children:`Dra. Ana Silva`}),`, `,_jsx(_components.code,{children:`Sala de Exames`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Título do Evento`})}),_jsx(_components.td,{children:`Modelo do título que será criado no Google Calendar (pode usar variáveis)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Conta Google Calendar`})}),_jsxs(_components.td,{children:[`Conta conectada em `,_jsx(_components.strong,{children:`Plugins`}),` onde o compromisso será criado`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Calendário`})}),_jsx(_components.td,{children:`Calendário específico dentro daquela conta (principal ou secundário)`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Início`}),` / `,_jsx(_components.strong,{children:`Fim`}),` do expediente`]}),_jsx(_components.td,{children:`Janela diária de atendimento`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Dias disponíveis`})}),_jsx(_components.td,{children:`Seg–Dom que o profissional atende`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Duração (minutos)`})}),_jsx(_components.td,{children:`Duração padrão de cada compromisso`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Fuso horário`})}),_jsx(_components.td,{children:`Fuso em que os horários são interpretados`})]})]})]}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Use `,_jsx(_components.strong,{children:`Adicionar Agenda`}),` para vincular quantos profissionais quiser. Cada agenda pode usar uma conta Google Calendar diferente — ideal para que cada pessoa mantenha sua própria conta.`]})}),_jsx(Warning,{children:_jsxs(_components.p,{children:[`Se uma conta do Google Calendar usada na agenda for `,_jsx(_components.strong,{children:`desconectada`}),`, a plataforma avisa e pede para `,_jsx(_components.strong,{children:`reconectá-la`}),` em `,_jsx(_components.strong,{children:`Integrações > Plugins`}),`. Enquanto isso, aquela agenda específica fica indisponível.`]})}),_jsx(Heading,{level:`4`,id:`dados-a-coletar`,children:`Dados a Coletar`}),_jsxs(_components.p,{children:[`Marque quais informações o agente deve `,_jsx(_components.strong,{children:`pedir ao cliente antes de confirmar`}),` o agendamento. Os dados coletados vão para a `,_jsx(_components.strong,{children:`descrição do evento`}),` no Google Calendar.`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Opção`}),_jsx(_components.th,{children:`Observações`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Nome completo`}),_jsx(_components.td,{children:`Recomendado em quase todos os cenários`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`CPF`}),_jsx(_components.td,{children:`Útil para clínicas e serviços regulamentados`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Telefone`}),_jsx(_components.td,{children:`Pré-preenchido quando o cliente já está no CRM`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`E-mail`}),_jsx(_components.td,{children:`Útil para envio de confirmação por e-mail`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Observações`}),_jsx(_components.td,{children:`Campo livre (ex: sintoma, tipo de atendimento)`})]})]})]}),_jsx(Heading,{level:`4`,id:`reagendamento-e-cancelamento`,children:`Reagendamento e cancelamento`}),_jsxs(_components.p,{children:[`A mesma Tool também permite ao agente `,_jsx(_components.strong,{children:`reagendar`}),` ou `,_jsx(_components.strong,{children:`cancelar`}),` compromissos existentes do cliente durante a ligação — não há uma configuração separada. O agente identifica o compromisso, conversa com o cliente e executa a alteração na agenda correspondente.`]}),_jsx(Heading,{level:`4`,id:`vínculo-com-o-agente`,children:`Vínculo com o agente`}),_jsxs(_components.p,{children:[`Cada agente pode ter `,_jsx(_components.strong,{children:`apenas uma`}),` Tool de Agendamento vinculada por vez. Ao tentar vincular uma segunda, a opção aparece desabilitada com a mensagem `,_jsx(_components.strong,{children:`“Já existe uma tool de agendamento vinculada”`}),`.`]}),_jsx(Heading,{level:`4`,id:`exemplo-clínica-com-dois-médicos`,children:`Exemplo: Clínica com dois médicos`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Nome`}),`: `,_jsx(_components.code,{children:`agendar_consulta`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Descrição`}),`: “Permite agendar, reagendar e cancelar consultas”`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Agendas`}),`:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Dra. Ana Silva`}),` — conta `,_jsx(_components.code,{children:`ana@clinica.com`}),`, calendário principal, seg-sex 08:00-18:00, 30 min, America/Sao_Paulo`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Dr. Bruno Lima`}),` — conta `,_jsx(_components.code,{children:`bruno@clinica.com`}),`, calendário principal, seg-qua-sex 14:00-20:00, 45 min, America/Sao_Paulo`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Dados a coletar`}),`: Nome, CPF, Telefone, Observações`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Quando Usar`}),`: “Quando o cliente quiser marcar, mudar ou cancelar uma consulta”`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Mensagem de Confirmação`}),`: “Pronto! Sua consulta está agendada. Você receberá uma confirmação em breve.”`]}),`\n`]})]}),_jsxs(Tab,{title:`CRM Action`,id:`crm-action`,\"data-child-heading-ids\":`[\"tool-crm-action\",\"sub-a%C3%A7%C3%A3o%3A-move_to_stage-mover-etapa-do-board\",\"sub-a%C3%A7%C3%A3o%3A-create_task-criar-tarefa-humana\",\"sub-a%C3%A7%C3%A3o%3A-schedule_callback-agendar-retorno\",\"sub-a%C3%A7%C3%B5es-secund%C3%A1rias-voz\",\"como-criar-uma-tool-crm-action\",\"exemplo%3A-agente-de-vendas-com-4-a%C3%A7%C3%B5es\"]`,children:[_jsx(Heading,{level:`3`,id:`tool-crm-action`,children:`Tool CRM Action`}),_jsxs(_components.p,{children:[`Permite que o agente `,_jsx(_components.strong,{children:`aja diretamente no CRM`}),` durante a conversa — sem depender de alguém da equipe atualizar o cliente depois. Cada Tool `,_jsx(_components.strong,{children:`CRM Action`}),` tem uma sub-ação específica.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Sub-ações disponíveis:`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Sub-ação`}),_jsx(_components.th,{children:`O que o agente faz`}),_jsx(_components.th,{children:`Canal`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:_jsx(_components.code,{children:`move_to_stage`})})}),_jsx(_components.td,{children:`Move o cliente entre etapas do board, escolhendo a etapa com base nas descrições do pipeline`}),_jsx(_components.td,{children:`Voz + WhatsApp`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:_jsx(_components.code,{children:`create_task`})})}),_jsxs(_components.td,{children:[`Cria uma `,_jsx(_components.a,{href:`/tasks`,children:`tarefa`}),` humana para o time quando precisa de mão-de-obra humana`]}),_jsx(_components.td,{children:`Voz + WhatsApp`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:_jsx(_components.code,{children:`schedule_callback`})})}),_jsxs(_components.td,{children:[`Agenda `,_jsx(_components.a,{href:`/callbacks`,children:`retorno`}),` — nova ligação ou WhatsApp na hora marcada`]}),_jsx(_components.td,{children:`Voz + WhatsApp`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:_jsx(_components.code,{children:`add_client_tag`})})}),_jsx(_components.td,{children:`Adiciona uma tag ao cliente`}),_jsx(_components.td,{children:`Voz`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:_jsx(_components.code,{children:`mark_converted`})})}),_jsx(_components.td,{children:`Marca o cliente como convertido (com valor opcional do deal)`}),_jsx(_components.td,{children:`Voz`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:_jsx(_components.code,{children:`mark_wrong_person`})})}),_jsx(_components.td,{children:`Marca que o número fala com pessoa errada`}),_jsx(_components.td,{children:`Voz`})]})]})]}),_jsx(Info,{children:_jsxs(_components.p,{children:[`Você cria `,_jsx(_components.strong,{children:`uma Tool CRM Action por sub-ação`}),` — não é uma única tool com tudo dentro. Isso dá controle fino sobre quando o agente pode fazer cada coisa e permite descrições específicas.`]})}),_jsx(_components.hr,{}),_jsxs(Heading,{level:`4`,id:`sub-ação-move_to_stage-mover-etapa-do-board`,children:[`Sub-ação: `,_jsx(_components.code,{children:`move_to_stage`}),` (mover etapa do board)`]}),_jsx(_components.p,{children:`O agente decide se o cliente deve ser movido entre etapas do board com base na conversa. As etapas são pré-aprovadas por você (whitelist).`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Campo`}),_jsx(_components.th,{children:`Descrição`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Pipeline`})}),_jsx(_components.td,{children:`Board (funil) que essa tool pode mexer`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Etapas permitidas`})}),_jsx(_components.td,{children:`Subconjunto de etapas que o agente pode escolher como destino — selecione 2 ou mais`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Quando usar`})}),_jsx(_components.td,{children:`Reforço opcional sobre o critério para mover`})]})]})]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[`A tool `,_jsx(_components.strong,{children:`só funciona se o cliente já estiver no pipeline configurado`}),`. Se o cliente está em outro funil, o agente recebe erro estruturado e segue a conversa sem mover.`]})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Como o agente decide a etapa:`}),` o agente recebe a lista de etapas permitidas com `,_jsx(_components.strong,{children:`nome + descrição`}),` de cada uma. Quanto mais clara a descrição (ver `,_jsx(_components.a,{href:`/board#por-que-a-descri%C3%A7%C3%A3o-da-etapa-importa`,children:`Board`}),`), mais precisa a movimentação.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Tracking visual:`}),` o card no Kanban mostra `,_jsx(_components.strong,{children:`🤖 + nome do agente + tempo relativo`}),` quando movido pela IA. A timeline registra `,_jsx(_components.code,{children:`stage_change`}),` com `,_jsx(_components.code,{children:`metadata.source='agent'`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Cascata:`}),` se a etapa de destino tem `,_jsx(_components.a,{href:`/automations`,children:`automação`}),` com trigger `,_jsx(_components.code,{children:`stage_entry`}),`, ela é disparada automaticamente.`]}),_jsx(_components.hr,{}),_jsxs(Heading,{level:`4`,id:`sub-ação-create_task-criar-tarefa-humana`,children:[`Sub-ação: `,_jsx(_components.code,{children:`create_task`}),` (criar tarefa humana)`]}),_jsxs(_components.p,{children:[`O agente cria uma `,_jsx(_components.a,{href:`/tasks`,children:`Tarefa`}),` quando identifica trabalho humano: confirmar com terceiro, conferir documento, resolver pendência.`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Campo`}),_jsx(_components.th,{children:`Descrição`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Responsável padrão`}),` (opcional)`]}),_jsx(_components.td,{children:`UUID de usuário usado quando o agente não consegue determinar o responsável`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Quando usar`})}),_jsx(_components.td,{children:`Cenários típicos (ex: “use sempre que o cliente pedir conferência humana”)`})]})]})]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Resolução automática do responsável:`}),` parâmetro do agente → responsável padrão da tool → `,_jsx(_components.code,{children:`assigned_to`}),` do cliente. Se nenhum resolve, retorna erro para o agente.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Tarefa interna, não-visível ao cliente:`}),` o agente NÃO comenta sobre criar tarefa durante a conversa. A tarefa aparece em `,_jsx(_components.code,{children:`/tasks`}),` para o time humano.`]}),_jsx(_components.hr,{}),_jsxs(Heading,{level:`4`,id:`sub-ação-schedule_callback-agendar-retorno`,children:[`Sub-ação: `,_jsx(_components.code,{children:`schedule_callback`}),` (agendar retorno)`]}),_jsxs(_components.p,{children:[`O agente agenda `,_jsx(_components.strong,{children:`nova conversa`}),` quando o cliente diz “me liga depois” ou “manda no WhatsApp em vez”. Ver `,_jsx(_components.a,{href:`/callbacks`,children:`Retornos`}),` para detalhes completos.`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Campo`}),_jsx(_components.th,{children:`Descrição`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Duração máxima da chamada`})}),_jsx(_components.td,{children:`Teto da call agendada (default 300s)`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Integração WhatsApp`}),` (opcional)`]}),_jsx(_components.td,{children:`Se preenchida, o agente pode trocar de canal: voz → WhatsApp. Sem isso, o agente só pode agendar nova ligação.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Quando usar`})}),_jsx(_components.td,{children:`Cenários típicos`})]})]})]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[`O agente WhatsApp `,_jsx(_components.strong,{children:`nunca`}),` agenda call (regra de segurança). Cross-channel só funciona no sentido voz → WhatsApp.`]})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Por trás:`}),` `,_jsx(_components.code,{children:`schedule_callback`}),` reusa a engine de `,_jsx(_components.a,{href:`/automations`,children:`Automações`}),` — cria uma run em uma “system automation” do agente. Aparece em `,_jsx(_components.code,{children:`/retornos`}),` (sidebar) e na timeline do cliente.`]}),_jsx(_components.hr,{}),_jsx(Heading,{level:`4`,id:`sub-ações-secundárias-voz`,children:`Sub-ações secundárias (voz)`}),_jsx(_components.p,{children:`Disponíveis apenas no agente de voz, sem campos extras de configuração — só nome, descrição e “Quando usar”:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`mark_wrong_person`})}),` — marca o número como pessoa errada. Dispara automações com trigger `,_jsx(_components.code,{children:`intent=\"not_the_person\"`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`mark_converted`})}),` — marca conversão (aceita `,_jsx(_components.code,{children:`deal_value`}),` como parâmetro do agente). Grava nota na timeline.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`add_client_tag`})}),` — adiciona tag ao cliente. Cascateia trigger `,_jsx(_components.code,{children:`tag_added`}),` em automações.`]}),`\n`]}),_jsx(_components.hr,{}),_jsx(Heading,{level:`4`,id:`como-criar-uma-tool-crm-action`,children:`Como criar uma Tool CRM Action`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Nova Tool`,children:_jsxs(_components.p,{children:[`Em `,_jsx(_components.strong,{children:`Studio de IA > Tools`}),`, clique em `,_jsx(_components.strong,{children:`Nova Tool`}),`.`]})}),_jsx(Step,{title:`Escolha CRM Action`,children:_jsxs(_components.p,{children:[`Selecione o card `,_jsx(_components.strong,{children:`CRM Action`}),`, depois escolha a `,_jsx(_components.strong,{children:`sub-ação`}),` (move_to_stage, create_task, schedule_callback, etc.).`]})}),_jsx(Step,{title:`Configure os campos específicos`,children:_jsxs(_components.p,{children:[`Cada sub-ação tem seu formulário. Para `,_jsx(_components.code,{children:`move_to_stage`}),`: pipeline + etapas permitidas. Para `,_jsx(_components.code,{children:`schedule_callback`}),`: integração WhatsApp opcional. Etc.`]})}),_jsx(Step,{title:`Defina Quando Usar`,children:_jsx(_components.p,{children:`Descreva os cenários concretos — quanto mais claros, mais precisa a decisão do agente.`})}),_jsx(Step,{title:`Vincule ao agente`,children:_jsxs(_components.p,{children:[`Em `,_jsx(_components.strong,{children:`Studio de IA > Agentes`}),`, abra o agente e adicione a tool em `,_jsx(_components.strong,{children:`Recursos vinculáveis`}),`.`]})})]}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Você pode vincular `,_jsx(_components.strong,{children:`várias`}),` Tools CRM Action ao mesmo agente — uma para cada sub-ação que ele precisa executar. Por exemplo: um agente de vendas pode ter `,_jsx(_components.code,{children:`move_to_stage`}),`, `,_jsx(_components.code,{children:`create_task`}),`, `,_jsx(_components.code,{children:`schedule_callback`}),` e `,_jsx(_components.code,{children:`mark_converted`}),` ao mesmo tempo.`]})}),_jsx(_components.hr,{}),_jsx(Heading,{level:`4`,id:`exemplo-agente-de-vendas-com-4-ações`,children:`Exemplo: agente de vendas com 4 ações`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Tool 1 — Mover etapa`}),`: `,_jsx(_components.code,{children:`move_to_stage`}),`, pipeline “Vendas”, etapas permitidas: “Lead qualificado”, “Proposta enviada”, “Negociação”.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Tool 2 — Criar tarefa`}),`: `,_jsx(_components.code,{children:`create_task`}),`, responsável padrão = vendedor sênior.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Tool 3 — Agendar retorno`}),`: `,_jsx(_components.code,{children:`schedule_callback`}),`, com integração WhatsApp ativa para fallback.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Tool 4 — Marcar conversão`}),`: `,_jsx(_components.code,{children:`mark_converted`}),`.`]}),`\n`]}),_jsx(_components.p,{children:`Resultado: o agente conduz a conversa completa, qualifica, propõe, fecha o deal — tudo registrado direto no CRM, sem ninguém atualizando o cliente depois.`})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`criando-uma-tool`,children:`Criando uma Tool`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Clique em Nova Tool`,children:_jsxs(_components.p,{children:[`Na página de Tools, clique no botão `,_jsx(_components.strong,{children:`Nova Tool`}),` no canto superior direito`]})}),_jsx(Step,{title:`Selecione o tipo`,children:_jsxs(_components.p,{children:[`Escolha entre `,_jsx(_components.strong,{children:`Endpoint`}),`, `,_jsx(_components.strong,{children:`Handoff`}),`, `,_jsx(_components.strong,{children:`Encerrar Chamada`}),`, `,_jsx(_components.strong,{children:`Agendamento`}),` ou `,_jsx(_components.strong,{children:`CRM Action`})]})}),_jsx(Step,{title:`Preencha os campos`,children:_jsx(_components.p,{children:`Configure os campos específicos do tipo escolhido (veja detalhes de cada tipo acima)`})}),_jsx(Step,{title:`Crie a Tool`,children:_jsxs(_components.p,{children:[`Clique em `,_jsx(_components.strong,{children:`Criar Tool`}),` para salvar`]})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`vinculando-tools-a-agentes`,children:`Vinculando Tools a Agentes`}),`\n`,_jsx(_components.p,{children:`Após criar uma Tool, vincule-a aos agentes que devem utilizá-la:`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Acesse o Agente`,children:_jsxs(_components.p,{children:[`Vá para a página `,_jsx(_components.strong,{children:`Agentes`}),` e clique no agente desejado`]})}),_jsx(Step,{title:`Localize a seção Tools`,children:_jsxs(_components.p,{children:[`Role até encontrar a seção `,_jsx(_components.strong,{children:`Tools`})]})}),_jsx(Step,{title:`Vincule a Tool`,children:_jsxs(_components.p,{children:[`Clique em `,_jsx(_components.strong,{children:`Vincular Tool`}),` e selecione a Tool desejada na lista, ou crie uma nova diretamente`]})})]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Para desvincular uma Tool, clique no ícone de lixeira ao lado dela na seção Tools do agente. A Tool não será excluída, apenas desvinculada.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`boas-práticas`,children:`Boas Práticas`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Nomenclatura`,icon:`tag`,children:_jsxs(_components.p,{children:[`Use nomes descritivos em snake_case: `,_jsx(_components.code,{children:`consultar_pedido`}),`, `,_jsx(_components.code,{children:`calcular_frete`}),`. Evite nomes genéricos como `,_jsx(_components.code,{children:`tool1`}),`.`]})}),_jsx(Card,{title:`Descrições`,icon:`align-left`,children:_jsx(_components.p,{children:`Seja específico sobre o que a Tool faz. A descrição ajuda o agente a decidir quando usá-la.`})}),_jsx(Card,{title:`Campo Quando Usar`,icon:`lightbulb`,children:_jsx(_components.p,{children:`Descreva cenários concretos e palavras-chave que devem acionar a Tool. Quanto mais preciso, melhor o agente decide.`})}),_jsx(Card,{title:`Segurança`,icon:`shield`,children:_jsxs(_components.p,{children:[`Nunca exponha credenciais na URL. Use a seção de `,_jsx(_components.strong,{children:`Autenticação`}),` para configurar tokens e chaves em Tools do tipo Endpoint.`]})})]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Ao excluir uma Tool, ela será automaticamente desvinculada de todos os agentes. Esta ação não pode ser desfeita.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`resolução-de-problemas`,children:`Resolução de Problemas`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Problema`}),_jsx(_components.th,{children:`Solução`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tool não é acionada pelo agente`}),_jsx(_components.td,{children:`Verifique se está vinculada e se a descrição e “Quando Usar” estão claros`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Endpoint retornando erro`}),_jsxs(_components.td,{children:[`Confirme URL, método, autenticação e headers. Use o botão `,_jsx(_components.strong,{children:`Testar Endpoint`}),` no formulário para validar`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Handoff não transfere`}),_jsx(_components.td,{children:`Verifique se o número de destino está correto e se o SIP REFER está habilitado no seu provedor`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Chamada não encerra por inatividade`}),_jsx(_components.td,{children:`Verifique se a Tool Encerrar Chamada está vinculada e o timeout por inatividade está habilitado`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tool de Agendamento indisponível`}),_jsxs(_components.td,{children:[`Confira se o Google Calendar está conectado em `,_jsx(_components.strong,{children:`Integrações > Plugins`}),` e se a conta usada na agenda não foi desconectada`]})]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`próximos-passos`,children:`Próximos Passos`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Agentes`,icon:`robot`,href:`/agents`,children:_jsx(_components.p,{children:`Configure e gerencie seus agentes de voz`})}),_jsx(Card,{title:`Documentos`,icon:`file-lines`,href:`/documents`,children:_jsx(_components.p,{children:`Adicione conhecimento aos seus agentes`})}),_jsx(Card,{title:`Playground`,icon:`play`,href:`/playground`,children:_jsx(_components.p,{children:`Teste seus agentes com Tools configuradas`})}),_jsx(Card,{title:`SIP Trunks`,icon:`tower-broadcast`,href:`/sip-trunks`,children:_jsx(_components.p,{children:`Configure seus trunks SIP para transferências via Handoff`})}),_jsx(Card,{title:`Plugins`,icon:`plug`,href:`/plugins`,children:_jsx(_components.p,{children:`Conecte o Google Calendar para usar a Tool de Agendamento`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Tools (Ferramentas)","description":"Expanda as capacidades dos seus agentes com ferramentas personalizadas","href":"/tools"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Tipos de Tools","slug":"tipos-de-tools","depth":2,"children":[]},{"title":"Como funcionam?","slug":"como-funcionam","depth":2,"children":[]},{"title":"Detalhes por Tipo","slug":"detalhes-por-tipo","depth":2,"children":[{"title":"Tool Endpoint","slug":"tool-endpoint","depth":3,"children":[],"tabId":"endpoint"},{"title":"Campos de Configuração","slug":"campos-de-configuração","depth":4,"children":[],"tabId":"endpoint"},{"title":"Autenticação","slug":"autenticação","depth":4,"children":[],"tabId":"endpoint"},{"title":"Schemas de Parâmetros","slug":"schemas-de-parâmetros","depth":4,"children":[],"tabId":"endpoint"},{"title":"Testar Endpoint","slug":"testar-endpoint","depth":4,"children":[],"tabId":"endpoint"},{"title":"Exemplo: Consulta de CEP","slug":"exemplo-consulta-de-cep","depth":4,"children":[],"tabId":"endpoint"},{"title":"Tool Handoff","slug":"tool-handoff","depth":3,"children":[],"tabId":"handoff"},{"title":"Campos de Configuração","slug":"campos-de-configuração-2","depth":4,"children":[],"tabId":"handoff"},{"title":"Níveis de Prioridade","slug":"níveis-de-prioridade","depth":4,"children":[],"tabId":"handoff"},{"title":"Número de Destino","slug":"número-de-destino","depth":4,"children":[],"tabId":"handoff"},{"title":"Exemplo: Transferência para Vendas","slug":"exemplo-transferência-para-vendas","depth":4,"children":[],"tabId":"handoff"},{"title":"Tool Encerrar Chamada (End Call)","slug":"tool-encerrar-chamada-end-call","depth":3,"children":[],"tabId":"encerrar-chamada"},{"title":"Campos de Configuração","slug":"campos-de-configuração-3","depth":4,"children":[],"tabId":"encerrar-chamada"},{"title":"Como funciona o Timeout por Inatividade","slug":"como-funciona-o-timeout-por-inatividade","depth":4,"children":[],"tabId":"encerrar-chamada"},{"title":"Exemplo: Encerramento Padrão","slug":"exemplo-encerramento-padrão","depth":4,"children":[],"tabId":"encerrar-chamada"},{"title":"Tool Agendamento","slug":"tool-agendamento","depth":3,"children":[],"tabId":"agendamento"},{"title":"Campos de Configuração","slug":"campos-de-configuração-4","depth":4,"children":[],"tabId":"agendamento"},{"title":"Configurando as Agendas","slug":"configurando-as-agendas","depth":4,"children":[],"tabId":"agendamento"},{"title":"Dados a Coletar","slug":"dados-a-coletar","depth":4,"children":[],"tabId":"agendamento"},{"title":"Reagendamento e cancelamento","slug":"reagendamento-e-cancelamento","depth":4,"children":[],"tabId":"agendamento"},{"title":"Vínculo com o agente","slug":"vínculo-com-o-agente","depth":4,"children":[],"tabId":"agendamento"},{"title":"Exemplo: Clínica com dois médicos","slug":"exemplo-clínica-com-dois-médicos","depth":4,"children":[],"tabId":"agendamento"},{"title":"Tool CRM Action","slug":"tool-crm-action","depth":3,"children":[],"tabId":"crm-action"},{"title":"Sub-ação: move_to_stage (mover etapa do board)","slug":"sub-ação-move_to_stage-mover-etapa-do-board","depth":4,"children":[],"tabId":"crm-action"},{"title":"Sub-ação: create_task (criar tarefa humana)","slug":"sub-ação-create_task-criar-tarefa-humana","depth":4,"children":[],"tabId":"crm-action"},{"title":"Sub-ação: schedule_callback (agendar retorno)","slug":"sub-ação-schedule_callback-agendar-retorno","depth":4,"children":[],"tabId":"crm-action"},{"title":"Sub-ações secundárias (voz)","slug":"sub-ações-secundárias-voz","depth":4,"children":[],"tabId":"crm-action"},{"title":"Como criar uma Tool CRM Action","slug":"como-criar-uma-tool-crm-action","depth":4,"children":[],"tabId":"crm-action"},{"title":"Exemplo: agente de vendas com 4 ações","slug":"exemplo-agente-de-vendas-com-4-ações","depth":4,"children":[],"tabId":"crm-action"}]},{"title":"Criando uma Tool","slug":"criando-uma-tool","depth":2,"children":[]},{"title":"Vinculando Tools a Agentes","slug":"vinculando-tools-a-agentes","depth":2,"children":[]},{"title":"Boas Práticas","slug":"boas-práticas","depth":2,"children":[]},{"title":"Resolução de Problemas","slug":"resolução-de-problemas","depth":2,"children":[]},{"title":"Próximos Passos","slug":"próximos-passos","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"tropicall","siteName":"Kiraa","title":"Tools (Ferramentas) - Kiraa","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-16T02:31:07.497Z","originalFileLocation":"tools.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Expanda as capacidades dos seus agentes com ferramentas personalizadas\">\u003cmeta data-mint-head name=\"application-name\" content=\"Kiraa\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tropicall/S3G2rjAxQdRg7MZB/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/tropicall/S3G2rjAxQdRg7MZB/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tropicall/S3G2rjAxQdRg7MZB/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tropicall/S3G2rjAxQdRg7MZB/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tropicall/S3G2rjAxQdRg7MZB/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tropicall/S3G2rjAxQdRg7MZB/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tropicall/S3G2rjAxQdRg7MZB/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tropicall/S3G2rjAxQdRg7MZB/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tropicall/S3G2rjAxQdRg7MZB/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Tools (Ferramentas) - Kiraa\">\u003cmeta data-mint-head property=\"og:description\" content=\"Expanda as capacidades dos seus agentes com ferramentas personalizadas\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kiraa\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.kiraa.com.br/tools\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tropicall.mintlify.app/_mintlify/api/og/v2?division=Studio+de+IA\u0026amp;title=Tools+%28Ferramentas%29\u0026amp;description=Expanda+as+capacidades+dos+seus+agentes+com+ferramentas+personalizadas\u0026amp;theme=71e01bc5e94cfa68eb53c761\u0026amp;signature=7dce2935a35be571bf7420a4bee269486da0f5aad7062ff5b6186be6c72cd582\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Tools (Ferramentas) - Kiraa\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Expanda as capacidades dos seus agentes com ferramentas personalizadas\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tropicall.mintlify.app/_mintlify/api/og/v2?division=Studio+de+IA\u0026amp;title=Tools+%28Ferramentas%29\u0026amp;description=Expanda+as+capacidades+dos+seus+agentes+com+ferramentas+personalizadas\u0026amp;theme=71e01bc5e94cfa68eb53c761\u0026amp;signature=7dce2935a35be571bf7420a4bee269486da0f5aad7062ff5b6186be6c72cd582\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/tropicall/S3G2rjAxQdRg7MZB/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Kiraa\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7C3AED\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.kiraa.com.br/tools\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/tools.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.kiraa.com.br/#organization\",\"name\":\"Kiraa\",\"url\":\"https://docs.kiraa.com.br\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tropicall/6ax9XPpM2V4kzDw4/logo/light.png?fit=max\u0026auto=format\u0026n=6ax9XPpM2V4kzDw4\u0026q=85\u0026s=fb9cccca9594239e3fb5cbe74c70c4ee\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.kiraa.com.br#website\",\"name\":\"Kiraa\",\"url\":\"https://docs.kiraa.com.br\",\"publisher\":{\"@id\":\"https://docs.kiraa.com.br/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.kiraa.com.br/tools#webpage\",\"url\":\"https://docs.kiraa.com.br/tools\",\"name\":\"Tools (Ferramentas)\",\"description\":\"Expanda as capacidades dos seus agentes com ferramentas personalizadas\",\"dateModified\":\"2026-05-16T02:31:07.497Z\",\"isPartOf\":{\"@id\":\"https://docs.kiraa.com.br#website\"},\"breadcrumb\":{\"@id\":\"https://docs.kiraa.com.br/tools#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.kiraa.com.br/tools#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Studio de IA\",\"item\":\"https://docs.kiraa.com.br/agents\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tools (Ferramentas)\",\"item\":\"https://docs.kiraa.com.br/tools\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.kiraa.com.br/tools#article\",\"headline\":\"Tools (Ferramentas)\",\"name\":\"Tools (Ferramentas)\",\"description\":\"Expanda as capacidades dos seus agentes com ferramentas personalizadas\",\"url\":\"https://docs.kiraa.com.br/tools\",\"mainEntityOfPage\":{\"@id\":\"https://docs.kiraa.com.br/tools#webpage\"},\"dateModified\":\"2026-05-16T02:31:07.497Z\",\"publisher\":{\"@id\":\"https://docs.kiraa.com.br/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.kiraa.com.br#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Kiraa\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Kiraa","nav":{"global":null,"tabs":[{"tab":"Documentação","groups":[{"group":"Começando","pages":[{"title":"Introdução","href":"/introduction"},{"title":"Guia Rápido","href":"/quickstart"}]},{"group":"Studio de IA","pages":[{"title":"Agentes","description":"Crie e configure seus assistentes de voz com inteligência artificial","href":"/agents"},{"title":"Tools (Ferramentas)","href":"/tools"},{"title":"Skills (Habilidades)","description":"Ensine tarefas específicas aos seus agentes com blocos de conhecimento reutilizáveis","href":"/skills"},{"title":"Rules (Regras)","href":"/rules"},{"title":"Base de Conhecimento","href":"/documents"},{"title":"Playground","href":"/playground"}]},{"group":"Integrações","pages":[{"title":"Plugins","href":"/plugins"},{"title":"Números de Telefone","href":"/phone-numbers"},{"title":"SIP Trunks (BYOC)","href":"/sip-trunks"}]},{"group":"Operação","pages":[{"title":"Campanhas","href":"/campaigns"},{"title":"Automações","href":"/automations"},{"title":"Discador","href":"/dialer"}]},{"group":"Templates","pages":[{"title":"Templates (visão geral)","href":"/files"},{"title":"Templates de E-mail","href":"/templates-email"},{"title":"Templates de Documentos","href":"/templates-documents"},{"title":"Templates de WhatsApp","href":"/templates-whatsapp"},{"title":"Templates de SMS","href":"/templates-sms"},{"title":"Atividade","href":"/activity"}]},{"group":"CRM","pages":[{"title":"Clientes (Cliente 360)","href":"/clients"},{"title":"Board e Pipelines","href":"/board"},{"title":"Tarefas","href":"/tasks"},{"title":"Retornos (Callbacks)","href":"/callbacks"},{"title":"Insights (CRM)","href":"/insights"}]},{"group":"Cobrança","pages":[{"title":"Cobrança","href":"/cobranca"}]}]}]},"title":"Tools (Ferramentas) - Kiraa","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":[],"chunks":[]}