Tarea (Task)
Introducción
La Tarea (Task) es la capacidad de mensajería proactiva del Agente: es el Agente quien inicia la conversación con el usuario, en lugar de esperar a que el usuario hable primero.
A diferencia de la conversación habitual, que sigue el esquema "el usuario pregunta → el Agente responde", la tarea funciona así: "la plataforma, según las condiciones que hayas definido, envía un mensaje al Agente en nombre del usuario → el Agente genera una respuesta → la respuesta se envía al usuario". El "mensaje de activación" que rellenas en la tarea es, en esencia, una frase enviada al Agente en lugar del usuario; el Agente generará una respuesta como si hubiera recibido un mensaje real de un usuario, y lo que el usuario final ve es la respuesta del Agente, no el mensaje de activación en sí.
Escenarios de uso típicos:
| Escenario | Modo de activación | Ejemplo |
|---|---|---|
| Boletín periódico | Activa - Programada | Enviar cada día a las 9:00 las noticias del día a todos los usuarios de Telegram |
| Reactivación de usuarios inactivos | Pasiva - Activada por usuario | Cuando un usuario lleva más de 3 días sin conversar, enviarle proactivamente un mensaje de seguimiento |
| Integración con sistemas de negocio | Activa - Por evento | Tras el envío de un pedido, el sistema de negocio llama al Webhook para notificar al usuario la información logística |
| Notificación única | Activa - Programada (única) | Enviar en un momento determinado una notificación de campaña a los usuarios activos durante el último mes |
Requisitos previos
- Las tareas solo se envían a usuarios que ya han mantenido una conversación con el Agente. La plataforma localiza, para cada usuario, la conversación en la que estuvo "activo por última vez" en el canal de destino e inyecta el mensaje en esa conversación. Los usuarios sin registro de conversación no recibirán el mensaje de la tarea (en el detalle de ejecución se registra como
NO_CONVERSATION). - Si el canal de destino es una integración de terceros (como WhatsApp, Telegram, LINE, etc.), asegúrate de que la integración correspondiente esté correctamente configurada y habilitada en «Integrations»; si la integración está desactivada o las credenciales han caducado, el envío fallará (
CHANNEL_CONFIG_INVALID/CHANNEL_AUTH_FAILED). - La ejecución de una tarea invoca el LLM del Agente para generar la respuesta, por lo que consume créditos (Credits) con normalidad.
Acceso
Entra en Espacio de desarrollo → Agente → selecciona un Agente → menú lateral izquierdo «Tasks».
La lista de tareas permite: buscar por nombre de tarea y filtrar por estado (Status), tipo de activación (Trigger) y usuarios de destino (Target). Descripción de los campos de la lista:
| Campo | Descripción |
|---|---|
| Name | Nombre de la tarea |
| Status | Estado de la tarea, consulta Estado de la tarea |
| Trigger | Tipo de activación: programada / por evento / activada por usuario |
| Target | Usuarios de destino: todos los usuarios / usuarios personalizados |
| Message | Mensaje de activación (contenido de la plantilla) |
| Created | Fecha de creación y creador |
| Action | Operaciones: View (ver) / Stop (detener) / Delete (eliminar) |
Crear una tarea
Haz clic en New task en la esquina superior derecha y completa la configuración en el panel lateral derecho.
1. Información básica
| Elemento de configuración | Descripción |
|---|---|
| Task name | Nombre de la tarea, obligatorio, máximo 100 caracteres |
| Target users | Usuarios de destino, elige una opción: Custom users (usuarios personalizados, por defecto) o All users (todos los usuarios) |
| Target channels | Canales de destino, obligatorio al seleccionar Custom users, admite selección múltiple. Solo se enviará a los usuarios que tengan conversaciones en estos canales |
| Target conversation scope | Rango de conversaciones de destino (hora de inicio – hora de fin). Solo los usuarios cuya fecha de creación de la conversación esté dentro de este intervalo serán destinatarios; sirve para limitar el envío a los usuarios "activos recientemente" |
Atención: al seleccionar All users aparecerá una confirmación adicional, ya que implica difundir el mensaje a todos los usuarios de todos los canales de este Agente. Asegúrate de que el rango de conversaciones de destino esté configurado de forma razonable para evitar envíos por error.
Canales de destino admitidos
| Categoría | Canales |
|---|---|
| Canales propios | Web, Share, Embed (iframe), Widget, App, API |
| Espacio de trabajo | Workspace, Workspace Apps |
| Canales de mensajería instantánea | Telegram, WhatsApp (Meta), WhatsApp (Engagelab), LINE, Slack, Facebook Messenger, Instagram, WeChat Customer Service (微信客服), Teams |
| Plataformas de atención al cliente | Intercom, LiveChat, Livedesk, OmniChat, Zoho SalesIQ |
Consejo: algunos canales no admiten por ahora el envío proactivo desde el servidor debido a las limitaciones del protocolo de la plataforma (por ejemplo, Discord, DingTalk, SoBot); aparecerán atenuados en el desplegable de canales con la indicación del motivo. En los canales propios (Web / Widget, etc.), la respuesta se escribe directamente en la conversación y el usuario la verá la próxima vez que abra la ventana de chat; en los canales de mensajería instantánea y las plataformas de atención al cliente, la respuesta se envía proactivamente al usuario a través de la API de la plataforma correspondiente.
2. Modo de activación (Trigger)
El modo de activación determina "cuándo se envía". Existen tres modos:
Activa - Programada (Active - Scheduled)
La plataforma inicia el envío según el calendario definido; adecuado para boletines periódicos y notificaciones únicas.
| Modo de periodicidad | Descripción |
|---|---|
| Daily | Se activa cada día a la hora indicada (HH:mm) |
| Weekly | Se activa cada semana el día de la semana y a la hora indicados |
| Monthly | Se activa cada mes el día y a la hora indicados; si el mes no tiene ese día (por ejemplo, el 31), se toma el último día del mes |
| Interval | Se activa a intervalos fijos; las unidades admitidas son minutos / horas / días, con un mínimo de 1 minuto |
| Once | Se ejecuta una sola vez. La hora de ejecución debe ser al menos 1 minuto posterior a la hora actual y no superar 1 año |
La hora se calcula según la zona horaria seleccionada en la tarea. Tras crearse, una tarea programada queda en estado WAITING y pasa a RUNNING cuando llega la hora de la primera ejecución; una tarea Once pasa automáticamente a COMPLETED al finalizar su ejecución.
Activa - Por evento (Active - Event)
Se activa cuando tu sistema de negocio llama a la plataforma mediante un Webhook; adecuado para integrarse con eventos de negocio como pedidos, pagos o tickets.
Al crear la tarea, selecciona el método de autenticación y rellena las credenciales; la plataforma generará automáticamente una URL de Webhook única (que podrás consultar en el detalle de la tarea una vez creada):
| Elemento de configuración | Descripción |
|---|---|
| Auth method | Método de autenticación: Basic Auth o HMAC signature |
| Username / Password | Obligatorios en el modo Basic Auth; al llamar se envían mediante Authorization: Basic base64(username:password) |
| Secret | Clave de firma en el modo HMAC; el llamante debe calcular el HMAC-SHA256 del body de la solicitud y enviarlo en la cabecera X-Signature: sha256=<hex> |
Ejemplo de llamada al Webhook
La URL del Webhook tiene la forma {dominio de la plataforma}/bot/proactive-task/webhook/{webhookPath}; utiliza la dirección completa que se muestra en el detalle de la tarea.
POST {Webhook URL}
Content-Type: application/json
Authorization: Basic base64(username:password)
{
"idempotency_key": "order-20260903-0001",
"target": {
"channel": "TELEGRAM",
"user_id": "customer_123"
},
"variables": {
"order_no": "SO-20260903-0001",
"eta": "5 de septiembre"
}
}
| Campo | Obligatorio | Descripción |
|---|---|---|
idempotency_key |
No | Clave de idempotencia, máximo 128 caracteres. Las solicitudes repetidas con la misma clave en un plazo de 24 horas se rechazan, para evitar envíos duplicados provocados por reintentos del sistema de negocio |
target.channel |
Sí | Canal de destino; los valores coinciden con la enumeración de canales, por ejemplo WEB, TELEGRAM, WHATSAPP_META, LINE |
target.user_id |
Uno de los dos | ID de usuario de negocio (usuario con sesión iniciada) |
target.aid |
Uno de los dos | ID de usuario anónimo (visitante sin sesión iniciada) |
variables |
No | Variables personalizadas, que pueden referenciarse en el mensaje de activación mediante {{event.variables.nombre_del_campo}} |
Atención: que la solicitud al Webhook se procese correctamente solo significa que "se ha recibido y se ha añadido a la cola de envío"; consulta el resultado real del envío en el historial de ejecución. Los casos de fallo de autenticación, tarea detenida o canal de destino fuera del rango de canales de destino de la tarea devuelven un error de permisos. Cada dirección de Webhook tiene un límite de 120 llamadas por minuto.
Pasiva - Activada por usuario (Passive - User Triggered)
La plataforma analiza cada minuto a todos los usuarios de destino y activa el envío para los usuarios que cumplen las reglas; adecuado para escenarios como la reactivación de usuarios inactivos o el seguimiento de usuarios de alto valor.
Configuración de reglas
Haz clic en Add rule para añadir reglas; entre varias reglas puedes elegir AND (deben cumplirse todas) u OR (basta con que se cumpla una).
| Campo de la regla | Tipo | Operadores disponibles | Ejemplo |
|---|---|---|---|
| User's last chat time (hora de la última conversación del usuario) | Fecha y hora | Han pasado N minutos/horas/días, dentro de los últimos N minutos/horas/días | Han pasado 3 días desde la última conversación |
| Total chats (número total de conversaciones) | Número | Igual a / distinto de / mayor que / mayor o igual que / menor que / menor o igual que / vacío / no vacío | Número total de conversaciones ≥ 10 |
| User attributes (atributos de usuario) | Cadena / número / booleano / lista / fecha y hora | Según el tipo: igual a / distinto de / contiene / es verdadero / está incluido en… | Nivel de miembro está incluido en [VIP, Platino] |
| Custom attributes (atributos personalizados) | Cadena / número / booleano / lista / fecha y hora | Igual que el anterior | Interruptor de campaña es verdadero |
Nota: los atributos de usuario provienen de «Gestión de variables → Atributos de usuario» y se evalúan usuario por usuario (si el usuario no tiene valor definido, se toma el valor por defecto del atributo); son adecuados para filtrar por perfil de usuario. Los atributos personalizados provienen de «Gestión de variables → Variables personalizadas»; son valores unificados a nivel de Agente, iguales para todos los usuarios, y resultan adecuados como condiciones de tipo "interruptor general". Todos los campos de las reglas se evalúan a partir de la conversación en la que el usuario estuvo activo por última vez en el canal de destino.
Control de frecuencia de mensajes (Message Frequency)
Las tareas de activación pasiva deben configurar un control de frecuencia: dentro de la ventana definida (N horas / N días), un mismo usuario solo podrá ser activado una vez por esta tarea, para evitar molestar repetidamente a los usuarios que cumplen las reglas de forma continua.
Consejo: la hora de la última conversación del usuario (User's last chat time) es un momento "pasado", por lo que debes usar operadores del tipo "han pasado N unidades"; los operadores del tipo "dentro de N unidades a partir de ahora" solo se aplican a campos de fecha futura (como la fecha de vencimiento de una suscripción) y, si se usan con la hora de la última conversación, nunca coincidirán.
3. Mensaje de activación (Message)
Introduce el contenido del mensaje que se enviará al Agente "en nombre del usuario". El Agente generará una respuesta a partir de este mensaje, junto con su propio prompt, base de conocimiento, etc., y después la enviará al usuario.
Puedes usar {{variable}} para referenciar las siguientes variables:
| Variable | Descripción |
|---|---|
{{user.userId}} / {{user.aId}} |
ID de usuario / ID de usuario anónimo |
{{conversation.id}} / {{conversation.subject}} |
ID de la conversación / asunto de la conversación |
{{conversation.recentChatTime}} / {{conversation.messageCount}} |
Hora de la última conversación / número de mensajes |
{{now}} |
Marca de tiempo actual (milisegundos) |
{{event.variables.xxx}} |
En la activación por evento, los campos incluidos en variables de la solicitud al Webhook |
{{sys_agent_id}}, {{sys_conversation_id}}, {{sys_user_id}}, etc. |
Variables del sistema, idénticas a las de la conversación |
Ejemplos
- Boletín programado:
Resúmeme las noticias más importantes del sector de hoy con un tono breve y cercano. - Reactivación de usuarios inactivos:
Llevo varios días sin pasarme por aquí; salúdame de forma proactiva y cuéntame qué novedades hay últimamente. - Notificación por evento:
Mi pedido {{event.variables.order_no}} ya se ha enviado y está previsto que llegue el {{event.variables.eta}}; indícame la información logística y recuérdame que esté atento a la entrega.
Consejo: el mensaje de activación es una pregunta escrita "desde la perspectiva del usuario" dirigida al Agente, no un texto que se muestre directamente al usuario. Si quieres que el Agente lo transmita lo más literalmente posible, indícalo expresamente en el mensaje, por ejemplo: "Dile al usuario textualmente: …".
Una vez comprobado que todo es correcto, haz clic en Create.
Atención: cada Agente puede tener como máximo 10 tareas simultáneamente en estado
WAITING/RUNNING; si se supera este límite, deberás detener alguna o esperar a que finalicen las tareas existentes.
Estado de la tarea
| Estado | Descripción |
|---|---|
| WAITING | En espera. La tarea programada se ha creado, pero aún no ha llegado la hora de la primera ejecución |
| RUNNING | En ejecución. La tarea programada ha comenzado a ejecutarse según el plan; las tareas por evento / activadas por usuario pasan a este estado nada más crearse, a la espera de la llamada al Webhook o de que se cumplan las reglas |
| COMPLETED | Completada. Solo las tareas programadas de tipo "única (Once)" pasan a este estado al terminar su ejecución |
| TERMINATED | Detenida. Se entra en este estado al hacer clic manualmente en Stop; no se puede reanudar |
| ERROR | Error. Cuando una tarea falla en 10 ejecuciones consecutivas (por ejemplo, porque la integración de terceros ha dejado de funcionar), se detiene automáticamente como medida de protección; el motivo puede consultarse en el detalle de la tarea |
Ver la tarea y el historial de ejecución
Haz clic en View en la lista para acceder al detalle de la tarea, que contiene dos pestañas:
- Configuration: vista de solo lectura de la configuración de la tarea. En las tareas por evento, aquí puedes consultar la URL del Webhook y la información de autenticación.
- Execution History: registro de cada ejecución, con la hora de ejecución, el número de destinatarios, el número de éxitos / fallos y la tasa de éxito.
Haz clic en una ejecución para ver el detalle de ejecución: estadísticas de éxitos / fallos por canal y el registro de cada envío individual. Descripción de los motivos de fallo:
| Motivo del fallo | Descripción | Recomendación |
|---|---|---|
| NO_CONVERSATION | El usuario no tiene conversaciones en el canal de destino, o la fecha de creación de la conversación no está dentro del rango de conversaciones de destino | Revisa el rango de conversaciones de destino y la configuración de canales |
| CHANNEL_CONFIG_INVALID | La integración del canal está desactivada, se ha eliminado o su configuración no es válida | Revisa la integración correspondiente en Integrations |
| CHANNEL_AUTH_FAILED | Fallo de autenticación del canal (por ejemplo, el Token de Telegram ha caducado) | Actualiza las credenciales de la integración |
| RATE_LIMITED | Se ha alcanzado el límite de velocidad de envío y no se ha obtenido cuota tras los reintentos | Reduce el alcance de destino o envía por lotes |
| AGENT_FAILED | El Agente no ha podido generar la respuesta | Revisa la configuración del Agente, el modelo y el saldo de créditos |
| TIMEOUT | Tiempo de espera agotado en la entrega por el canal (60 segundos por mensaje) | Reintenta más tarde y comprueba el estado de la plataforma de terceros |
| NOT_IMPLEMENTED | Este canal no admite por ahora el envío proactivo | Cambia el canal de destino |
Detener y eliminar
- Stop: las tareas en estado
WAITING/RUNNING/ERRORpueden detenerse en cualquier momento; tras detenerse pasan aTERMINATEDy no se pueden reanudar. - Delete: solo pueden eliminarse las tareas en estado
COMPLETED/TERMINATED; al eliminarlas se borran también el historial y el detalle de ejecución.
Preguntas frecuentes
P: ¿Por qué la tarea se ejecuta correctamente, pero el contenido que ve el usuario no es el mensaje de activación que he introducido?
El mensaje de activación es "una pregunta enviada al Agente en nombre del usuario"; lo que el usuario ve es la respuesta que el Agente genera a partir de esa frase. Si necesitas controlar el texto con exactitud, pide expresamente al Agente en el mensaje de activación que lo reproduzca literalmente.
P: ¿Los usuarios nuevos recibirán los mensajes de la tarea?
No. Las tareas solo se envían a usuarios con registro de conversación previo, y la fecha de creación de la conversación debe estar dentro del "rango de conversaciones de destino".
P: ¿Por qué la tarea programada no se ha enviado exactamente a la hora en punto?
El planificador realiza un análisis cada minuto y, además, los envíos masivos se realizan por lotes según el límite de velocidad a nivel de proyecto, por lo que la hora real de llegada puede retrasarse ligeramente.
P: ¿El Webhook devuelve un error de permisos (Permission deny)?
Comprueba, en este orden: que la URL del Webhook sea correcta, que las credenciales de autenticación coincidan, que la tarea no haya sido detenida y que el target.channel de la solicitud pertenezca a los canales de destino configurados en la tarea.
