consultar_horarios
Muestra los horarios libres de tu agenda para que la IA los ofrezca a la persona.
Parámetros: data
{"horarios": ["09:00", "10:30", "15:00"]}
El bloque ferramentas va en la petición de la llamada o en el agente. Una url recibe todas las llamadas, con el nombre de la función y los parámetros que la IA extrajo del habla. Respondes un JSON y vuelve a la IA como contexto.
"ferramentas" en el agente o en la petición
{
"url": "https://loja.exemplo.com/ia/ferramentas",
"timeout_ms": 1500,
"headers": { "X-Token": "seu-token" },
"lista": [
{
"nome": "consultar_pedido",
"descricao": "Situação e previsão de entrega de um pedido pelo número",
"frase_espera": "Só um instante, vou olhar o seu pedido.",
"parametros": {
"numero_pedido": { "tipo": "string", "obrigatorio": true, "descricao": "Só dígitos" }
}
},
{
"nome": "consultar_cep",
"url": "https://brasilapi.com.br/api/cep/v1/{cep}",
"metodo": "GET",
"descricao": "Endereço de um CEP",
"parametros": { "cep": { "tipo": "string", "obrigatorio": true } }
}
]
}
Durante la llamada
AntônioQuería saber de mi pedido, el 48213.
IAUn momento, voy a revisar tu pedido.
POSTa tu url: {"ferramenta": "consultar_pedido", "argumentos": {"numero_pedido": "48213"}}
200respondes: {"situacao": "em transporte", "previsao": "quinta-feira"}
IAAquí lo tengo. Tu pedido ya está en transporte y la entrega está prevista para el jueves.
Reglas
Ejemplos
El nombre y la descripción le dicen a la IA cuándo usarla. Los parámetros son lo que saca de lo que dice la persona. La respuesta es lo que usa para seguir.
Muestra los horarios libres de tu agenda para que la IA los ofrezca a la persona.
Parámetros: data
{"horarios": ["09:00", "10:30", "15:00"]}
Guarda en tu agenda el horario que eligió la persona y devuelve la confirmación.
Parámetros: data, hora
{"ok": true, "protocolo": "A-2291"}
Crea o actualiza el contacto en tu CRM con lo que la persona contó en la llamada.
Parámetros: produto, melhor_horario
{"ok": true}
Tu sistema genera la boleta o el Pix y lo envía por WhatsApp o correo mientras la IA sigue en la línea.
Parámetros: forma
{"enviado": true, "canal": "whatsapp"}
De tu lado
Cada llamada es un POST con JSON en tu URL. Responde 200 con un JSON corto: la IA lo lee y habla con sus propias palabras.
Lo que llega a tu URL
{
"event": "tool.call",
"call_id": "…",
"tool_call_id": "…",
"numero_destino": "5511988888888",
"ferramenta": "consultar_pedido",
"argumentos": { "numero_pedido": "48213" }
}
{"erro": "pedido não encontrado"}, va a la IA, que confirma el dato con la persona y vuelve a intentar.timeout_ms: la IA avisa que el sistema está tardando y sigue la conversación.numero_destino dice con quién está hablando la IA, sin pedir el teléfono otra vez.frase_espera es lo que dice la IA mientras espera tu respuesta, para que la línea no quede en silencio.Un endpoint para varias funcionesPHP
<?php
$chamada = json_decode(file_get_contents('php://input'), true);
$args = $chamada['argumentos'];
header('Content-Type: application/json');
switch ($chamada['ferramenta']) {
case 'consultar_pedido':
$pedido = buscarPedido($args['numero_pedido']);
if (!$pedido) {
http_response_code(404);
echo json_encode(['erro' => 'pedido não encontrado']);
break;
}
echo json_encode(['situacao' => $pedido['situacao'], 'previsao' => $pedido['previsao']]);
break;
case 'consultar_horarios':
echo json_encode(['horarios' => horariosLivres($args['data'])]);
break;
}