Agentes
Editar agente
Actualiza y publica un agente existente. Solo se modifican los campos que incluyas; el resto se mantiene sin cambios. Todos los campos son opcionales, por lo que puedes enviar actualizaciones parciales.
Autenticación
AuthorizationBearerAutentica las solicitudes desde tu servidor con una API Key de Fonema. Créala en la sección de API Keys del Dashboard y envíala en el encabezado Authorization como Bearer <token>. No pongas tus claves en código del navegador ni en repositorios públicos.
Parámetros de ruta
slugstringObligatorioCuerpo
Parámetros de nivel superior
namestringOpcionalgreetingstringOpcionalpromptstringOpcionaltextPromptstringOpcionalfarewellstringOpcionalvoiceIdstringOpcionalIdentificador de la voz del agente. Consulta los valores disponibles en Listar voces.
outputVariablesarrayOpcionalVariables a capturar durante la llamada (misma estructura que en Crear agente).
recallLogicobjectOpcionalConfiguración de reintentos para llamadas no contestadas. Ver recallLogic.
numberOfAttemptintegerOpcionalallowReturnCallbooleanOpcionallocalizationsobjectOpcionalworkingHoursobjectOpcionalHorario en el que el agente puede realizar llamadas. Ver workingHours.
dtmfbooleanOpcionaltransferCallDestinationsarrayOpcionalNúmeros de teléfono a los que el agente puede transferir la llamada. Un arreglo vacío desactiva las transferencias. Ver transferCallDestinations.
endOfCallWebhookstringOpcionalendOfSessionWebhookstringOpcionalcallUpdatesWebhookstringOpcionalknowledgeBaseFilesinteger[]OpcionaltoolsarrayOpcionalconfigobjectOpcionalElementos de tools
tools[].idintegertools[].namestringcontent.functionName.tools[].typestringAPI_CALL).tools[].descriptionstringtools[].variablesarraytools[].contentobjectObjeto config
config acepta la misma configuración que varios campos de nivel superior. Puedes enviar los valores en el nivel superior o dentro de config; los campos de nivel superior tienen prioridad cuando ambos están presentes. Claves soportadas:
transcriberLanguage, endOfCallMessage, silenceTimeoutSeconds, silenceMessages, maxDurationSeconds, voice, captureDataVariables, endOfCallWebhook, endOfSessionWebhook, callUpdatesWebhook, allowReturnCall, workingHours, dtmf, transferCallDestinations, localizations.
Las claves que solo existen dentro de config son:
config.transcriberLanguagestringIdioma en el que escucha el agente. Uno de es, es-419 (español latinoamericano), en, pt, pt-BR, ro.
config.endOfCallMessagestringfarewell en el nivel superior.config.silenceTimeoutSecondsnumberconfig.silenceMessagesstring[]Frases que el agente dice cuando el cliente se queda en silencio (se elige una al azar) antes de que el tiempo de silencio termine la llamada. Solo se usa si silenceTimeoutSeconds está definido. Enviar este campo reemplaza la lista completa; envía [] para vaciarla.
config.maxDurationSecondsnumberconfig.voiceobjectAjustes finos de la voz del agente. Ver config.voice.
config.captureDataVariablesarrayoutputVariables en el nivel superior.Objeto config.voice
config.voice.stabilitynumber0 – 1Valores altos suenan más estables y consistentes; valores bajos suenan más expresivos y variables.
config.voice.similarityBoostnumber0 – 1Qué tanto se parece el audio generado a la voz original (claridad).
config.voice.speednumber0.7 – 1.2Velocidad al hablar. 1 es la velocidad normal.
Solo se modifican las claves que envíes; el resto conserva su valor actual.
Objeto recallLogic
Controla los reintentos automáticos cuando una llamada no es contestada (no contesta, ocupado, buzón de voz, etc.).
recallLogic.allowRetrybooleanrecallLogic.triesarrayUn elemento por reintento, en orden. Cada elemento es { "waitMinutes": number }: minutos que se esperan después del intento anterior no contestado antes de volver a llamar. La cantidad de elementos es la cantidad de reintentos.
recallLogic.timeZonestringPor defecto America/Mexico_CityZona horaria IANA usada para programar los reintentos (ej. America/Mexico_City). Por defecto America/Mexico_City.
recallLogic.scheduleTypestringSAME_AS_WORKING para reintentar solo dentro de workingHours, o CUSTOM para usar availability.
recallLogic.availabilityobjectHorario de reintentos cuando scheduleType es CUSTOM. Misma estructura que workingHours.availability.
tries, availability y scheduleType se reemplazan por completo cada vez que envías recallLogic, así que siempre envía la lista completa de reintentos.
Ejemplo: reintentar dos veces, 30 y 120 minutos después de una llamada no contestada, para un total de 3 intentos:
{
"numberOfAttempt": 3,
"recallLogic": {
"allowRetry": true,
"timeZone": "America/Mexico_City",
"scheduleType": "SAME_AS_WORKING",
"tries": [{ "waitMinutes": 30 }, { "waitMinutes": 120 }]
}
}
Objeto workingHours
workingHours.typestringALL_DAY (sin restricción) o CUSTOM.workingHours.availabilityobjectObligatorio cuando type es CUSTOM. Las claves son los días (monday … sunday); cada valor es una lista de ventanas { "start": "HH:mm", "end": "HH:mm" }. Los días que falten o estén vacíos no están disponibles.
{
"workingHours": {
"type": "CUSTOM",
"availability": {
"monday": [{ "start": "09:00", "end": "18:00" }],
"tuesday": [{ "start": "09:00", "end": "14:00" }, { "start": "16:00", "end": "19:00" }]
}
}
}
Elementos de transferCallDestinations
Cada destino es un número de teléfono al que el agente puede transferir la llamada. Envía un arreglo vacío para desactivar las transferencias.
transferCallDestinations[].numberstringObligatorioNúmero de destino en formato E.164 (ej. +525512345678).
transferCallDestinations[].messagestringOpcionaltransferCallDestinations[].extensionstringOpcionaltransferCallDestinations[].descriptionstringOpcionalCuándo debe transferir el agente a este número. El agente lo usa para elegir el destino correcto.
{
"transferCallDestinations": [
{
"number": "+525512345678",
"message": "Te transfiero con un asesor, un momento por favor.",
"description": "Transferir cuando el cliente pida hablar con un asesor humano."
}
]
}
Respuesta
Devuelve el agente completo y actualizado, con la misma estructura que Consultar agente.
Errores
400403