Skip to main content
Este documento describe como se puede agregar acciones al Agente de IA, como por ejemplo:
  • Asignar un agente humano al contacto.
  • Desasignar un agente del contacto.
  • Asignar o remover una etapa al contacto.
  • Asignar o remover una etiqueta al contacto.
  • Asignar o remover una segmentacion al contacto.
  • Marcar como resuelto.
  • Apagar el agente de IA para la sesion.
  • Gestionar eventos (crear, actualizar, listar, confirmar, cancelar, eliminar).
  • Asignar una secuencia al contacto.
Campos de la Accion
El agente de IA ejecutara las acciones en orden, esto quiere decir que si puso dos asignaciones, el agente de IA asignara la primera asignacion y luego la segunda asignacion. Por lo que prevalecera la ultima accion ejecutada.

Tipos de Accion

Cada accion dentro del arreglo action tiene un type que define que operacion se ejecutara y un value que define el parametro de la operacion.

Acciones de Asignacion

Acciones de Etapas

Acciones de Segmentacion

Acciones de Etiquetas

Acciones de Estado

Acciones de Eventos (Calendario)

Acciones de Secuencias


Referencia Detallada de Cada Accion

action.asign - Asignar Agente Humano

Asigna un agente humano al contacto. El contacto aparecera en la bandeja del agente asignado.
Que sucede al ejecutarse:
  • Busca al usuario por email dentro del workspace.
  • Asigna el contacto a ese agente.
  • Envia un email de notificacion al agente asignado.
  • Crea una entrada en la bandeja de entrada (inbox) del agente.
  • Registra la asignacion en el historial del contacto.
  • Emite evento en tiempo real (SignalR) para actualizar la interfaz.
El value debe ser el email exacto del agente registrado en el workspace. Si el email no coincide con ningun miembro del equipo, la accion no se ejecutara.

action.unassign - Desasignar Agente

Remueve al agente humano asignado del contacto.
Que sucede al ejecutarse:
  • Limpia el agente asignado, nombre del agente y fecha de asignacion.
  • Registra la desasignacion en el historial del contacto.

action.stage - Asignar Etapa

Asigna una etapa (fase) al contacto. Las etapas deben estar previamente configuradas en el workspace.
Que sucede al ejecutarse:
  • Busca la etapa por nombre en la configuracion del workspace (masterOfStages).
  • Asigna el ID de la etapa al contacto.
  • Registra el cambio de etapa en el historial.
El value debe coincidir exactamente con el nombre de una etapa configurada en el workspace. Si no existe, la accion no se ejecutara.

action.stage.remove - Remover Etapa

Remueve la etapa actualmente asignada al contacto.

action.segmentation - Asignar Segmentacion

Asigna una segmentacion al contacto. Las segmentaciones deben estar previamente configuradas en el workspace.
Que sucede al ejecutarse:
  • Busca la segmentacion por nombre en la configuracion del workspace (masterOfSegmentation).
  • Asigna el ID de la segmentacion al contacto.
  • Registra el cambio en el historial.

action.segmentation.remove - Remover Segmentacion

Remueve la segmentacion actualmente asignada al contacto.

action.tag - Agregar Etiqueta

Agrega una etiqueta al contacto. Un contacto puede tener multiples etiquetas simultaneamente.
Que sucede al ejecutarse:
  • Busca la etiqueta por nombre en la configuracion del workspace (masterOfTags).
  • Agrega la etiqueta a la lista del contacto (evita duplicados).
  • Registra el cambio en el historial.
A diferencia de action.stage y action.segmentation que reemplazan el valor actual, action.tag agrega la etiqueta a las existentes. Un contacto puede tener multiples etiquetas al mismo tiempo.

action.tag.remove - Remover Etiqueta

Remueve una etiqueta especifica del contacto.

action.solved - Marcar como Resuelto

Marca la conversacion del contacto como resuelta o la reabre.
Que sucede al ejecutarse:
  • Si value es "true":
    • Marca la conversacion como resuelta (isSolved = true).
    • Registra la fecha de resolucion.
    • Si el workspace tiene la opcion “Limpiar datos al resolver” activada (fCleanContactDataOnSolve), se limpian automaticamente: segmentacion, etapa y etiquetas del contacto.
  • Si value es "false":
    • Reabre la conversacion (isSolved = false).
Si el workspace tiene activada la opcion de limpiar datos al resolver, al marcar como resuelto se eliminaran la segmentacion, etapa y etiquetas del contacto automaticamente. Ten esto en cuenta al disenar tu flujo de acciones.

action.agentshutdown - Desactivar Agente IA

Desactiva o reactiva el agente de IA para la sesion actual del contacto. Esto es util cuando se transfiere la conversacion a un agente humano y se necesita que el bot deje de responder.
Si se desactiva el agente con "true", no volvera a contestar hasta que se reactive de forma manual desde la interfaz o con otra accion que envie "false". Usalo con precaucion.

action.secuence - Asignar Secuencia

Asigna una secuencia automatizada al contacto. Las secuencias permiten ejecutar una serie de pasos programados (mensajes, esperas, acciones) de forma automatica.
Que sucede al ejecutarse:
  • Busca la secuencia por ID.
  • Obtiene el primer paso de la secuencia.
  • Asigna la secuencia al contacto con estado activo.
  • El orquestador de secuencias continuara ejecutando los pasos automaticamente.
El value debe ser el ID de la secuencia, no su nombre. Puedes obtener el ID de la secuencia desde la seccion de Secuencias en el panel de Plazbot.

Acciones de Eventos (Calendario)

Las acciones de tipo action.event.* permiten gestionar citas, reuniones y eventos directamente desde el agente de IA. Si el workspace tiene integrado Google Calendar, los eventos se sincronizan automaticamente.
Cuando configuras al menos una accion de tipo action.event.add, el sistema inyecta automaticamente una herramienta de consulta de disponibilidad (check_availability) para que el agente pueda verificar horarios libres antes de agendar.

action.event.add - Crear Evento

Crea un nuevo evento o cita en el calendario del contacto. Parametros recopilados del usuario (via requiredFields):
Que sucede al ejecutarse:
  • Valida que no existan conflictos de horario con otros eventos.
  • Crea el evento local con los datos recopilados.
  • Si el workspace tiene Google Calendar integrado, sincroniza el evento automaticamente.
  • Retorna informacion del evento creado al agente.
El sistema valida automaticamente conflictos de horario. Si ya existe un evento en el horario solicitado, la creacion fallara y el agente informara al usuario sobre el conflicto.

action.event.update - Actualizar Evento

Actualiza un evento existente del contacto. Parametros recopilados del usuario: Que sucede al ejecutarse:
  • Busca el evento por ID.
  • Actualiza los campos proporcionados (valida conflictos si cambia la fecha).
  • Sincroniza los cambios con Google Calendar si aplica.

action.event.list - Listar Eventos

Lista todos los eventos del contacto asociados al agente actual.
Que sucede al ejecutarse:
  • Filtra eventos por agente (cada agente solo ve sus propios eventos).
  • Retorna la lista formateada con: titulo, fecha, estado y detalles.
  • El agente puede presentar la informacion al usuario de forma conversacional.

action.event.confirm - Confirmar Evento

Confirma un evento que esta pendiente.
Parametros recopilados del usuario: Que sucede al ejecutarse:
  • Busca el evento por ID (o usa el ultimo si no se especifica).
  • Cambia el estado del evento a "confirmed".
  • Registra la fecha de confirmacion.

action.event.cancel - Cancelar Evento

Cancela un evento existente sin eliminarlo.
Que sucede al ejecutarse:
  • Cambia el estado del evento a "cancelled".
  • Registra la fecha de cancelacion.
  • Sincroniza el cambio con Google Calendar si aplica.

action.event.delete - Eliminar Evento

Elimina un evento del calendario de forma permanente.
Parametros recopilados del usuario: Que sucede al ejecutarse:
  • Busca el evento por ID.
  • Si el evento esta sincronizado con Google Calendar, lo elimina tambien de Google.
  • Remueve el evento del array de eventos del contacto de forma permanente.

Herramienta de Disponibilidad (Auto-inyectada)

Cuando el agente tiene configurada al menos una accion action.event.add, el sistema inyecta automaticamente la herramienta check_availability. El agente de IA la utiliza antes de crear un evento para verificar horarios disponibles. Parametros que recibe la herramienta: Respuesta de la herramienta:
La herramienta utiliza la configuracion de horario comercial (businessHoursConfig) del workspace para calcular los slots disponibles. Asegurate de tener configurados los horarios de atencion correctamente.

Campos Requeridos en Acciones

Las acciones soportan requiredFields, que funcionan de la misma forma que en los servicios. Esto es util cuando la accion necesita datos del usuario antes de ejecutarse (por ejemplo, una fecha para agendar un evento).
Tipos de campos soportados: Las variables recopiladas en requiredFields se pueden usar en el responseMessage con los formatos {{variable}}, {variable} o @variable.

Tipos de Respuesta

Las acciones del agente tienen configuraciones que determinan como responde despues de ejecutar las acciones:

responseExact (Tool Calling)

Cuando el agente esta en modo Tool Calling (useToolCalling: true), el resultado de una accion normalmente pasa al LLM, que reformula el mensaje antes de enviarlo al usuario. Con responseExact: true, el responseMessage se envia directamente al usuario sin pasar por el LLM. Ejemplo con responseExact = true:
Ejemplo con responseExact = false:

responseJson (Orquestador Clasico)

Controla el formato de la respuesta cuando se consume via API/SDK. Solo aplica en el orquestador clasico (sin Tool Calling). Ejemplo con responseJson = false:
Ejemplo con responseJson = true:
En modo Tool Calling, la respuesta siempre incluye actionsExecuted en el resultado del tool, independientemente del valor de responseJson.

Casos de Uso Comunes

1. Transferir a Agente Humano

Asigna un agente humano, desactiva el bot y responde con mensaje fijo.

2. Clasificar Lead Automaticamente

Etiqueta y segmenta al contacto segun la intencion detectada. El LLM genera la respuesta.

3. Agendar Cita con Campos Requeridos

El agente recopila los datos necesarios, crea el evento y responde con mensaje exacto.

4. Resolver Conversacion y Etiquetar

Marca la conversacion como resuelta y agrega una etiqueta de cierre.

5. Accion para API/Webhook (JSON)

Respuesta JSON estructurada para integraciones externas via API/SDK.

Flujo de Ejecucion

El siguiente diagrama muestra como se procesan las acciones dentro del flujo del agente:
1

Deteccion de Intencion

El usuario envia un mensaje. El LLM analiza el reference y tags de cada accion para determinar si alguna coincide con la intencion del usuario.
2

Recopilacion de Campos

Si la accion tiene requiredFields, el agente recopila los datos necesarios del usuario de forma conversacional antes de ejecutar.
3

Ejecucion de Acciones

El sistema ejecuta cada accion del arreglo action en orden secuencial. Cada accion actualiza el contacto, emite eventos en tiempo real y registra el cambio en el historial.
4

Respuesta al Usuario

Segun la configuracion: si responseExact es true, envia el responseMessage textual. Si es false, el LLM genera una respuesta natural basada en el resultado de las acciones.
El ciclo de ejecucion soporta hasta 8 iteraciones de tool calling. Si el agente necesita ejecutar multiples herramientas (por ejemplo, verificar disponibilidad y luego crear un evento), lo hara dentro de este ciclo de forma automatica.