Skip to main content
As ferramentas de função permitem que seus agentes de IA invoquem APIs externas durante chamadas telefônicas. Use-as para consultar dados de clientes, verificar disponibilidade, agendar compromissos ou executar qualquer ação compatível com seu backend.

Como funciona

  1. Defina ferramentas com um esquema (quais argumentos a ferramenta aceita)
  2. Forneça uma configuração de endpoint (onde o ThunderPhone chama sua API) — ou omita-a para receber chamadas de ferramenta no webhook da sua organização
  3. Durante uma chamada, a IA decide quando usar uma ferramenta com base na conversa
  4. O ThunderPhone chama seu endpoint com os argumentos da ferramenta
  5. A resposta da sua API é enviada de volta à IA para continuar a conversa
As ferramentas de função são a opção para usar sua própria API. O ThunderPhone também oferece ferramentas gerenciadas pela plataforma que não exigem endpoint: conexões de aplicativos (HubSpot, Salesforce, Slack, Google Calendar, Google Sheets, Cal.com), conexões de API e servidores MCP.

Esquema da ferramenta

Cada ferramenta segue esta estrutura:

Definição da função

Configuração do endpoint

A configuração de endpoint não é enviada ao modelo de IA — ela é usada apenas pelo ThunderPhone para executar a chamada da ferramenta.

Dois caminhos de invocação

A solicitação que seu servidor recebe depende de a ferramenta ter um endpoint: Os dois caminhos são bloqueantes — a IA aguarda o resultado no meio da frase — com um tempo limite de 20 s. Mantenha os handlers rápidos. Uma combinação é válida: em uma chamada cuja organização tenha uma URL de webhook, as ferramentas com um endpoint são chamadas diretamente, e as demais usam o webhook como alternativa.

Chamadas diretas de endpoint

Quando a IA invoca uma ferramenta que tem um endpoint, o ThunderPhone envia uma solicitação para sua URL:

Cabeçalhos da solicitação

Os cabeçalhos personalizados de endpoint.headers são sempre incluídos literalmente, além de dois cabeçalhos no namespace do ThunderPhone:
  • X-ThunderPhone-Signature — HMAC-SHA256 dos bytes exatos do corpo da solicitação, com chave definida pelo seu segredo de webhook da organização
  • X-ThunderPhone-Call-ID — O ID da chamada atual
Content-Type: application/json é definido, a menos que endpoint.headers o substitua — um Content-Type personalizado prevalece.
A assinatura usa como chave o segredo de webhook no nível da organização de GET /v1/webhook. Se sua organização nunca configurou o webhook legado, não há segredo e as chamadas de ferramenta incluem apenas X-ThunderPhone-Call-ID — um manipulador que falha imediatamente quando a assinatura está ausente as rejeitaria. Configure o webhook legado para obter um segredo ou inclua seu próprio segredo compartilhado em endpoint.headers.

Corpo da solicitação

Para POST / PUT / PATCH, o corpo contém apenas os argumentos da ferramenta (sem invólucro), serializados canonicamente (chaves ordenadas, separadores compactos):
Para GET / DELETE, os argumentos são enviados como parâmetros de consulta e o corpo fica vazio — a assinatura é então calculada sobre a string de bytes vazia. Consulte Verificar assinaturas de webhook.

Resposta

Retorne uma resposta JSON com o resultado da ferramenta:
A resposta é formatada e fornecida à IA para continuar a conversa. Respostas que não são JSON são encapsuladas como {"data": "<text>"}; tempos limite e falhas de conexão são informados à IA como erros, para que o agente possa pedir desculpas e seguir adiante em vez de travar.

Despacho no modo webhook

Ferramentas sem um endpoint são despachadas para a URL de webhook legado da sua organização como uma solicitação assinada telephony.tool (chamadas telefônicas) ou web.tool (chamadas web). Diferentemente das notificações de auditoria entregues aos endpoints de webhook após a execução, esta solicitação é a execução — sua resposta HTTP é o resultado da ferramenta.
web.tool inclui origin_domain em vez de from_number / to_number. Responda com o resultado da ferramenta como JSON — o mesmo contrato de resposta das chamadas diretas de endpoint. A solicitação é assinada com o segredo de webhook da organização sobre o corpo bruto, como todos os outros webhooks.
Os endpoints de webhook assinados também recebem uma notificação telephony.tool / web.tool sem bloqueio após a execução de cada ferramenta (independentemente do caminho que a executou), incluindo a resposta da ferramenta — útil para trilhas de auditoria. Consulte o catálogo de eventos.

Verificação de assinatura

As chamadas diretas de ferramentas são assinadas da mesma forma que os webhooks:
  • HMAC-SHA256 sobre os bytes exatos do corpo da solicitação (o JSON canônico — chaves ordenadas, sem espaços em branco extras)
  • Com chave baseada no segredo de webhook da sua organização
  • Ferramentas GET / DELETE assinam a string de bytes vazia
Receitas completas — incluindo o caso de corpo vazio e a ressalva sobre não haver segredo — estão em Verificar assinaturas de webhook.

Exemplo: fluxo completo de agendamento

Veja um conjunto de ferramentas para um sistema completo de agendamento de consultas:

Boas práticas

O campo description ajuda a IA a entender quando usar a ferramenta. Seja específico sobre o que ela faz e quando é apropriada.
Retorne mensagens de erro que a IA possa entender: {"error": "No slots available for that date"} em vez de erros 500 genéricos.
Retorne apenas o que a IA precisa para continuar a conversa. Cargas úteis grandes reduzem a velocidade de resposta.
Marque campos como required apenas quando for realmente necessário. A IA pedirá ao usuário as informações obrigatórias antes de chamar a ferramenta.

Relacionados

Conexões de aplicativos

Ferramentas gerenciadas pela plataforma para HubSpot, Salesforce, Slack, Google Calendar, Google Sheets e Cal.com — nenhum endpoint necessário.

Servidores MCP

Conecte um servidor MCP e permita que o agente chame suas ferramentas.

Conexões de API

Integrações REST reutilizáveis que você pode conectar a agentes.

Verifique assinaturas de webhook

Um auxiliar de verificação para webhooks e chamadas de ferramentas.