Human Task Activities
Versión: 1.3.3 · ID: zoan-packages-human-tasks · Autor: Zoan Software
El paquete Human Tasks permite que un proceso le pida una decisión a una persona: aprobar un reembolso, validar un dato que el robot no pudo leer bien, elegir entre varias opciones. El robot crea una tarea en la bandeja Tareas de Zoan Cloud, con los archivos que la persona necesita para decidir; la persona la revisa, decide (y, si hace falta, llena algunos campos o un formulario completo, con tablas y adjuntos) y el proceso continúa con esa decisión.
Cómo funciona una tarea
Sección titulada «Cómo funciona una tarea»- El robot crea la tarea con Create Human Task: un título, el contexto, los datos que la persona debe ver, los adjuntos y las opciones de decisión (por defecto Aprobar y Rechazar).
- La tarea va siempre dirigida a una persona (por correo) o a un rol: solo ellos la ven en la bandeja Tareas de Zoan Cloud y reciben un correo con el enlace. Una persona con varios roles ve las tareas de todos sus roles.
- Alguien toma la tarea, revisa los datos y decide, con un comentario opcional y los campos que le pidas.
- El proceso recibe la decisión, el comentario y los campos; los archivos que la persona adjuntó en su respuesta se bajan con Download Human Task File.
Una tarea pasa por estos estados:
| Estado | Significado |
|---|---|
pending | Creada, esperando a que alguien la tome. |
claimed | Una persona la tomó y la está revisando. |
completed | Decidida. La opción elegida está en decision. |
cancelled | Cancelada (por el proceso o por una persona). |
expired | Venció el plazo (dueInHours) sin decisión. |
Tres formas de esperar la decisión
Sección titulada «Tres formas de esperar la decisión»El robot no se queda “dormido” indefinidamente, así que elige el patrón según cuánto puede tardar la decisión:
- Minutos → esperar en el mismo proceso. Crea la tarea y usa Wait for Human Task: el robot consulta la tarea cada pocos segundos y continúa cuando alguien decide. Ideal para una aprobación rápida en medio de un proceso.
- Horas o días → retomar con otro proceso. Crea la tarea con
onCompleteProcessy termina el proceso. Cuando alguien decida (o la tarea venza, o una persona la cancele desde Zoan Cloud), Zoan Cloud ejecuta ese otro proceso con la decisión como entradas, en el mismo agente y la misma sesión de robot. - Lotes → cola de trabajo. Si son muchas decisiones (cincuenta facturas que un supervisor aprueba una tras otra), liga cada tarea a un item de cola con
queueName: un solo performer procesa todo lo que se decidió. Lo explica la guía Decisiones humanas en lotes.
Actividades
Sección titulada «Actividades»| Actividad | Tipo | Salida | Qué hace |
|---|---|---|---|
| Create Human Task | human-task-create | object | Crea una tarea para que una persona decida |
| Wait for Human Task | human-task-wait | object | Espera a que la tarea se decida, se cancele o venza |
| Cancel Human Task | human-task-cancel | object | Cancela una tarea que sigue abierta |
| Download Human Task File | human-task-download-file | List<string> | Descarga los archivos que la persona adjuntó en su respuesta |
La tarea que devuelven las actividades
Sección titulada «La tarea que devuelven las actividades»Create, Wait y Cancel devuelven la tarea como un diccionario con las mismas claves:
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Id de la tarea. |
status | string | Uno de los estados de arriba (o timeout en Wait for Human Task). |
title | string | Título. |
decision | string | Opción elegida; null mientras nadie decida. |
comment | string | Comentario de quien decidió o motivo de la cancelación. |
fields | Dictionary | Campos que llenó la persona (vacío mientras nadie decida). |
form | Dictionary | name y version del formulario, o null. |
Un flujo típico
Sección titulada «Un flujo típico»Pedir la aprobación de un reembolso y actuar según la decisión:
Create Human Task title = "Aprobar reembolso #0001" data = { "Cliente": "Cliente de prueba", "Monto": "150.000" } assignRole = "tenant-admin" → output: tareaWait for Human Task taskId = tarea["id"] timeoutMinutes = 30 → output: resultadoIf condition = resultado["decision"] == "Aprobar" ├─ then: │ ... registrar el reembolso ... └─ else: Log level = info message = "Reembolso no aprobado: " + str(resultado["status"])Siguientes pasos
Sección titulada «Siguientes pasos»- Create Human Task — todas las opciones de la tarea.
- Usar un formulario desde un robot — pedir datos con un formulario de la biblioteca.
- Decisiones humanas en lotes — el patrón con colas de trabajo.
- Colas de trabajo — cómo funcionan los items y sus estados.