Saltar al contenido principal

Herramientas disponibles

El asistente elige estas herramientas por su cuenta según lo que le pidas. No necesitas llamarlas por nombre, pero saber qué hace cada una te ayuda a escribir mejores solicitudes.

Todas las herramientas trabajan sobre la empresa del usuario que autorizó la app.

Empresa​

getCompany​

Devuelve el id, nombre y slug de tu empresa. Solo lectura.

Agentes​

listAgents​

Lista tus agentes de voz y de WhatsApp, ordenados por nombre, con el nombre y slug de cada uno. Solo lectura.

ParámetroTipoDescripción
searchstring, opcionalTexto a buscar en el nombre o slug del agente, por ejemplo "ventas". No distingue mayúsculas.
pageinteger, opcionalNúmero de página. Por defecto 1.
limitinteger, opcionalTamaño de página. Por defecto 50, máximo 100.

getAgent​

Devuelve la configuración de un agente: prompt de voz, prompt de texto (WhatsApp), saludo, voz, lógica de rellamada y reintentos, horario de trabajo, destinos de transferencia, variables de salida, archivos de la base de conocimiento y herramientas. Nunca incluye secretos ni credenciales. Solo lectura.

También devuelve:

  • inputVariables: los {{placeholders}} que usan el prompt de voz y el saludo, para que el asistente sepa qué enviar con startCall.
  • updatedAt: lo usa updateAgent para no sobrescribir cambios de otra persona.
ParámetroTipoDescripción
slugstring, requeridoSlug del agente, como lo devuelve listAgents.

createAgent​

Solo administradores. Crea un nuevo agente de voz en tu empresa y lo devuelve con la misma forma que getAgent (incluido updatedAt). Funciona igual que crear un agente desde el dashboard o con la API de creación de agentes.

ParámetroTipoDescripción
namestring, requeridoNombre visible.
promptstring, requeridoPrompt de voz. Usa placeholders {{variable}} para los datos que cambian en cada llamada.
voiceIdstring, requeridoVoz a usar, como la devuelve listVoices.
greetingstring, opcionalPrimer mensaje que dice el agente.
farewellstring, opcionalMensaje antes de colgar.
outputVariablesarray, opcionalDatos que el agente captura en cada llamada. Máximo 50.

Para configurar el prompt de texto/WhatsApp, el horario de trabajo u otros ajustes, el asistente llama a updateAgent justo después con el updatedAt devuelto. Los números de teléfono, archivos de la base de conocimiento, herramientas y webhooks se configuran en el dashboard.

Para evitar duplicados, Fonema rechaza la solicitud si:

  • Ya se creó un agente con el mismo nombre en los últimos 10 minutos (normalmente un reintento). Al asistente se le indica que actualice ese agente o elija otro nombre.
  • La conexión ya creó 20 agentes en la última hora.

updateAgent​

Solo administradores. Actualiza un agente. Solo cambian los campos enviados, y el cambio se publica de inmediato, igual que al publicar desde el dashboard.

ParámetroTipoDescripción
slugstring, requeridoSlug del agente.
expectedUpdatedAtstring, requeridoEl updatedAt de getAgent. La actualización falla si el agente cambió desde entonces, para que no se pierdan ediciones.
namestringNombre visible. El slug no cambia.
promptstringPrompt de voz completo nuevo.
promptEditsarrayEdiciones pequeñas de buscar y reemplazar en el prompt de voz. Cada find debe aparecer exactamente una vez.
textPromptstringPrompt de texto/WhatsApp completo nuevo.
textPromptEditsarrayEdiciones de buscar y reemplazar en el prompt de texto.
greetingstringPrimer mensaje que dice el agente.
farewellstringMensaje antes de colgar.
outputVariablesarrayReemplaza toda la lista de variables capturadas.
workingHoursobjectReemplaza el horario de trabajo (ALL_DAY o CUSTOM con horarios por día de la semana).
allowReturnCallbooleanSi los clientes pueden devolver la llamada al agente.

Envía prompt o promptEdits, no ambos (lo mismo para textPrompt).

tip

Pide al asistente que te muestre el cambio antes de aplicarlo, por ejemplo: "Sugiere un nuevo saludo para mi agente de ventas y espera mi OK antes de actualizarlo."

Voces​

listVoices​

Lista las voces disponibles para tus agentes, incluidas las voces personalizadas de tu empresa. Cada voz incluye su voiceId, nombre, país, idioma, sexo, un detalle corto y la URL de un audio de muestra. Solo lectura.

ParámetroTipoDescripción
languagestring, opcionalTexto a buscar en el idioma, por ejemplo "spanish". No distingue mayúsculas.
countrystring, opcionalTexto a buscar en el país, por ejemplo "mexico". No distingue mayúsculas.

Usa el voiceId con createAgent.

Llamadas​

listCalls​

Lista las llamadas entrantes y salientes, de la más reciente a la más antigua. Solo lectura. Cada llamada incluye su uid, agente, números, dirección, horarios, duración, motivo de fin, evaluación de éxito, variables de entrada y un resumen corto.

ParámetroTipoDescripción
phoneNumberstring, opcionalNúmero del cliente con código de país, por ejemplo "+5215512345678".
agentstring, opcionalSlug del agente.
startDatestring, opcionalLlamadas creadas a partir de esta fecha. ISO 8601 con zona horaria, por ejemplo "2026-09-23T00:00:00-06:00".
endDatestring, opcionalLlamadas creadas hasta esta fecha.
pageinteger, opcionalNúmero de página. Por defecto 1.
limitinteger, opcionalTamaño de página. Por defecto 20, máximo 50.

Los filtros se combinan, así que agent + startDate devuelve solo las llamadas de ese agente desde esa fecha.

getCall​

Devuelve una llamada con su análisis completo de fin de llamada (resumen, evaluación de éxito, datos capturados) y la transcripción en orden cronológico. La transcripción incluye los turnos del cliente y del agente, y las herramientas que el agente usó durante la llamada (entradas tool_call y tool_result). Solo lectura.

ParámetroTipoDescripción
uidstring, requeridouid de la llamada, como lo devuelve listCalls.

La grabación no se devuelve; hasRecording indica si existe una.

startCall​

Hace una llamada saliente con uno de tus agentes. La llamada se pone en cola y se marca en aproximadamente un minuto, con las mismas reglas que la API de llamadas: aplican el horario de trabajo, los reintentos y el control de volumen.

ParámetroTipoDescripción
agentstring, requeridoSlug del agente.
phoneNumberstring, requeridoNúmero del cliente con código de país, por ejemplo "+5215512345678". Un número de 10 dígitos sin + usa el código de país por defecto del agente.
namestring, opcionalNombre del cliente, disponible para el prompt.
emailstring, opcionalEmail del cliente, disponible para el prompt.
variablesobject, opcionalVariables de entrada para el prompt, sin llaves: { "poliza": "123" }. Máximo 50.
delayMinutesinteger, opcionalMinutos de espera antes de llamar. Por defecto 0, máximo 10080 (7 días).

La respuesta le indica al asistente:

  • callAt: cuándo está programada la llamada.
  • outsideWorkingHours y nextAvailableAt: si la hora cae fuera del horario del agente, cuándo se marcará realmente.
  • missingVariables: variables del prompt que no se enviaron.

Antes de ponerla en cola, Fonema verifica que:

  • El agente tenga prompt de voz.
  • La facturación de tu cuenta esté activa.
  • No haya ya una llamada pendiente del mismo agente al mismo número.
  • La conexión no haya iniciado más de 10 llamadas en los últimos 10 minutos.

Una vez marcada, la llamada aparece en listCalls.