Crear Agente

Crea un nuevo agente en tu workspace.

POST https://api.platica.mx/v1/agents

Cuerpo de la solicitud

{
  "name": "Mi Asistente",
  "channel": "whatsapp",
  "systemPrompt": "Eres un asistente especializado en atención al cliente...",
  "channelId": ["channel-123"],
  "phoneNumber": ["+1234567890"],
  "imageUrl": "/images/mi-asistente.png",
  "status": "active",
  "owners": ["soporte@miempresa.com"],
  "supportInformation": {
    "supportPhone": "+1234567890",
    "supportEmail": "soporte@miempresa.com",
    "supportAddress": "Calle Principal #123",
    "outOfServiceBehavior": "limited",
    "serviceHours": {
      "monday": {
        "availability": "Abierto",
        "start": "9:00am",
        "end": "5:00pm"
      },
      "tuesday": {
        "availability": "Abierto",
        "start": "9:00am",
        "end": "5:00pm"
      },
      "saturday": {
        "availability": "Cerrado",
        "start": "Cerrado",
        "end": "Cerrado"
      },
      "sunday": {
        "availability": "Cerrado",
        "start": "Cerrado",
        "end": "Cerrado"
      }
    }
  },
  "assistanceTriggers": "",
  "assistanceEnabled": true,
  "recallLastConversation": false,
  "enableFileAttachments": true,
  "workingMessage": {
    "enabled": true,
    "trigger": {
      "type": "toolCallCount",
      "minToolCalls": 2
    },
    "message": {
      "enabled": true,
      "mode": "fixed",
      "fixedText": "Dame un momento, estoy procesando tu solicitud…"
    },
    "sticker": {
      "enabled": false
    }
  }
}

Parámetros del cuerpo

ParámetroTipoDescripciónRequeridoValor por defecto
namestringNombre del agente (1-100 caracteres)
channelstringPlataforma del agente"whatsapp"
systemPromptstringPrompt del sistema. Si no es vacío, se inicializa el historial de versiones y se setea activePromptId.""
channelIdstring | arrayID(s) del canal de comunicación. Puede ser un ID interno o array de IDs.null
phoneNumberstring | arrayNúmero(s) de teléfono (formato internacional) o array de números.null
imageUrlstringURL de la imagen del agente"/images/campaignCreator.png"
statusstringEstado del agente"inactive"
supportInformationobjectInformación de soporte y horarios. Ver detalles abajo.Configuración por defecto (ver abajo)
assistanceTriggersstringDisparadores de asistencia humana""
waitMessagestringMensaje de espera""
assistanceEnabledbooleanSi la asistencia humana está habilitadatrue
recallLastConversationbooleanMemoria entre conversaciones: inyecta el resumen de la última conversación al promptfalse
enableFileAttachmentsbooleanLectura de archivos: el agente acepta y procesa adjuntos (imágenes, audios, documentos)
disableContextSummarizationbooleanConservar historial completo: salta la compactación automática de contexto
workingMessageobjectMensaje "trabajando" que se le envía al cliente cuando el agente está ocupado llamando herramientas. Ver forma completa abajo.
ownersarrayLista de correos de usuarios responsables[]
{
  "supportAddress": "",
  "supportEmail": null,
  "supportPhone": null,
  "outOfServiceBehavior": "limited",
  "serviceHours": {
    "monday": { "availability": "Abierto", "start": "9:00am", "end": "5:00pm" },
    "tuesday": { "availability": "Abierto", "start": "9:00am", "end": "5:00pm" },
    "wednesday": { "availability": "Abierto", "start": "9:00am", "end": "5:00pm" },
    "thursday": { "availability": "Abierto", "start": "9:00am", "end": "5:00pm" },
    "friday": { "availability": "Abierto", "start": "9:00am", "end": "5:00pm" },
    "saturday": { "availability": "Cerrado", "start": "Cerrado", "end": "Cerrado" },
    "sunday": { "availability": "Cerrado", "start": "Cerrado", "end": "Cerrado" }
  }
}
ValorDescripción
whatsappCanal de WhatsApp Business
telegramCanal de Telegram
instagramCanal de Instagram Direct
facebookCanal de Facebook Messenger
smsCanal de mensajes SMS

Configuración del mensaje de espera que se envía al cliente cuando el agente está procesando una secuencia de herramientas que puede tardar.

{
  "enabled": true,
  "trigger": {
    "type": "toolCallCount",
    "minToolCalls": 2
  },
  "message": {
    "enabled": true,
    "mode": "fixed",
    "fixedText": "Dame un momento, estoy procesando tu solicitud…"
  },
  "sticker": {
    "enabled": false
  }
}

enabled (boolean)

Activa o desactiva el envío del mensaje de espera.

trigger (object) — cuándo se dispara

CampoTipoDescripción
type"toolCallCount" \| "toolName" \| "any"Modo de disparo. Ver tabla abajo.
minToolCallsinteger (1-10)Sólo aplica cuando type es "toolCallCount" o "any". Cuántas herramientas debe haber llamado el agente antes de mandar el mensaje.
toolNamesstring[]Sólo aplica cuando type es "toolName" o "any". Nombres de herramientas que disparan el mensaje en cuanto se invocan.
match"exact" \| "prefix"Cómo comparar contra toolNames. Default "exact". Con "prefix", p. ej. "api_" activa para api_get_orders, api_search, etc.
typeSignificado
toolCallCountDispara después de N herramientas llamadas (usa minToolCalls).
toolNameDispara cuando el agente llama una herramienta cuyo nombre esté en toolNames.
anyDispara con cualquiera de las dos condiciones anteriores.

message (object) — qué se envía

CampoTipoDescripción
enabledbooleanSi se envía mensaje de texto (puedes desactivarlo y mandar sólo un sticker).
mode"fixed" \| "ai""fixed" envía un texto literal; "ai" lo genera con IA según un prompt.
fixedTextstringTexto literal a enviar (cuando mode es "fixed").
aiPromptstringInstrucción para la IA que genera el mensaje (cuando mode es "ai").

sticker (object) — sticker opcional

CampoTipoDescripción
enabledbooleanSi se manda un sticker acompañando al mensaje.
urlstringURL del sticker (cuando enabled es true).

Respuesta

{
  "status": "success",
  "message": "Agent created successfully",
  "data": {
    "id": "agent_abc123"
  }
}

Notas

  • channelId y phoneNumber pueden enviarse como string o array
  • en la respuesta del agente siempre se devuelven dentro de comunicationChannel como arreglos
  • owners debe enviarse como correos válidos de usuarios que pertenezcan al workspace