PATCH Asistente Detalles para actualizar parcialmente un asistente por su ID.

Actualizar un Asistente (POST / PATCH)

Este endpoint permite modificar los datos de un asistente existente utilizando su ID. Admite tanto peticiones POST como PATCH a update-assistant. Debes enviar assistant_id y name obligatoriamente, junto con todos los otros campos que desees modificar.

Método HTTP

POST PATCH

Endpoint URL

'https://app.x-ianet.com/api/xianet/update-assistant'

Donde assistant_id se envía en el cuerpo (body) de la solicitud.

Parámetros de Ruta

Parámetro Tipo Descripción
- - Este endpoint no requiere parámetros en la ruta URI. El ID va en el body (assistant_id).

Cuerpo de la Solicitud (Request Body)

Los parámetros deben enviarse en el cuerpo de la solicitud en formato JSON. Solo incluye los campos que deseas modificar.

Ejemplo de datos para una edición parcial:


    {
        "assistant_id": "f5e82310-4341-443e-b3bf-188d85c90515",
        "name": "Asistente de Soporte Técnico Actualizado",
        "first_message": "Hola, soy tu asistente de soporte técnico actualizado, ¿cómo puedo ayudarte hoy?",
        "prompt": "Eres un asistente técnico amable que responde con claridad.",
        "promt_texto": "Instrucciones de texto internas para el asistente.",
        "model": "MODELO_DE_IA",
        "provider": "PROVEEDOR_IA",
        "maxTokens": 250,
        "forwardingPhone": "+34600000000",
        "fileIds": ["file-uuid-123456", "file-uuid-789012"],
        "toolIds": ["tool-uuid-123456", "tool-uuid-789012"],
        "voice": {
            "model": "MODELO_DE_VOZ",
            "voiceId": "h2cd3gvcqTp3m65Dysk7",
            "provider": "PROVEEDOR_VOZ"
        }
    }
            

Campos Esperados en el JSON:

  • assistant_id: (string) Requerido. ID del asistente a actualizar.
  • name: (string) Requerido. Nuevo nombre para el asistente.
  • prompt / description: (string) Opcional. Instrucciones del sistema para la IA.
  • promt_texto: (string) Opcional. Instrucciones en formato texto. Este campo solo se almacena en Xianet para propósitos internos y no es obligatorio enviarlo si el asistente es exclusivamente de voz.
  • first_message: (string) Opcional. Mensaje inicial de la llamada.
  • provider: (string) Opcional. Proveedor de LLM (ej. PROVEEDOR_IA).
  • model: (string) Opcional. Modelo de LLM (ej. MODELO_DE_IA).
  • maxTokens: (integer) Opcional. Máximo de tokens para la respuesta.
  • forwardingPhone: (string) Opcional. Número de teléfono de desvío (transferencia).
  • firstMessageMode: (string) Opcional. Modo del primer mensaje ("assistant-speaks-first", etc).
  • analysisPlan: (array) Opcional. Plan de análisis de llamadas (resúmenes estructurados).
  • fileIds: (array) Opcional. Arreglo de IDs de archivos subidos en X-IAnet (archivos .txt o .csv de tu organización) para asignarlos como Base de Conocimiento (Knowledge Base) del asistente.
    • Para vincular archivos: Envía un arreglo con los IDs de los archivos deseados, ej: ["file-uuid-1", "file-uuid-2"].
    • Para desvincular todos los archivos: Envía un arreglo vacío explícitamente: [].
    • Nota: Si simplemente omites enviar el parámetro fileIds, los archivos vinculados anteriormente se mantendrán sin modificaciones.
  • toolIds: (array) Opcional. Arreglo de IDs de herramientas (Tools/Funciones) registradas en tu organización en X-IAnet (ver sección Herramientas) para asignarlas al asistente.
    • Para vincular herramientas: Envía un arreglo con los IDs de las herramientas, ej: ["tool-uuid-1", "tool-uuid-2"].
    • Para desvincular todas las herramientas: Envía un arreglo vacío explícitamente: [].
    • Nota: Si omites enviar toolIds, las herramientas que el asistente ya tenía asignadas se conservarán intactas junto con su configuración existente.
  • voice: (object) Opcional. Objeto con la configuración de la voz del asistente.
    • Ejemplo: {"model": "MODELO_DE_VOZ", "voiceId": "ID_DE_LA_VOZ", "provider": "PROVEEDOR_VOZ"}

Respuesta Exitosa (Código 200 OK)

Si la actualización es exitosa, el servidor responderá con un código 200 OK y el objeto completo del asistente con los campos actualizados. La estructura será similar a la respuesta de un GET para un asistente específico.


    {
        "status": "Ok",
        "data": {
            "id": "f5e82310-4341-443e-b3bf-188d85c90515",
            "name": "Asistente de Soporte Técnico Actualizado",
            "firstMessage": "Hola, soy tu asistente de soporte técnico actualizado, ¿cómo puedo ayudarte hoy?",
            "voice": {
                "model": "MODELO_DE_VOZ",
                "speed": 1.05,
                "style": 0.9,
                "voiceId": "h2cd3gvcqTp3m65Dysk7",
                "provider": "PROVEEDOR_VOZ"
            },
            "model": {
                "model": "MODELO_DE_IA",
                "provider": "PROVEEDOR_IA",
                "toolIds": ["tool-uuid-123456", "tool-uuid-789012"],
                "knowledgeBase": {
                    "provider": "canonical",
                    "fileIds": ["file-uuid-123456", "file-uuid-789012"]
                }
            },
            "updatedAt": "2026-10-12T18:30:00.000Z"
        },
        "status_code": 200
    }
            

Respuestas de Error Comunes

Código 404 Not Found: Si el asistente con el id especificado no existe.


    {
        "status": "Error",
        "message": "Asistente no encontrado.",
        "status_code": 404
    }
            

Código 422 Unprocessable Entity: Si los datos enviados en la solicitud no pasan la validación (ej. tipo de dato incorrecto, campos requeridos faltantes si la lógica de negocio lo impone para ciertos updates, etc.).


    {
        "status": "Error",
        "message": "Los datos proporcionados no son válidos.",
        "errors": {
            "name": ["El nombre no puede estar vacío."],
            "voice.speed": ["La velocidad de la voz debe ser un número entre 0.5 y 2.0."]
        },
        "status_code": 422
    }