Saltar al contenido principal

Tareas de Workflow

Gestioná las tareas humanas generadas por los workflows en ejecución. Listá las tareas pendientes en tu bandeja de entrada, consultá el detalle de una tarea con sus resultados disponibles y campos de formulario, completá tareas con datos capturados y reasigná tareas a otros usuarios o grupos.

Requisitos previos

Todos los endpoints de esta página requieren un token JWT válido, una clave de API y el encabezado tenant. Consultá Autenticación para más detalles.


Listar tareas​

Recuperá una lista paginada de tareas de workflow.

GET/apidev/v1/workflow/tasks
PermisoAPICLI_WORKFLOW_READ
Límite de solicitudes30 req/min (ventana deslizante)
Caché15s

Encabezados de la solicitud​

Every request to a protected endpoint requires these headers:

HeaderRequiredDescription
AuthorizationYesBearer token obtained from the Login endpoint. Format: Bearer <token>
X-API-KeyYesCompany integration key provided during onboarding. Format: gtk_xxx...
tenantYesYour assigned tenant domain (default: geotareas.com) — always send your assigned tenant
Content-TypeConditionalapplication/json — required for POST and PUT requests

Parámetros de consulta​

ParámetroTipoObligatorioPor defectoDescripción
limitintegerNo25Cantidad de registros por página. Mín: 1, Máx: 100
offsetintegerNo0Cantidad de registros a omitir para la paginación
statusstringNo—Filtrar por estado: PENDING, IN_PROGRESS, COMPLETED
definition_idstringNo—Filtrar por ID de definición de workflow. Longitud máxima: 30
entity_typestringNo—Filtrar por tipo de entidad
overdue_onlybooleanNofalseDevolver solo las tareas vencidas

Respuesta​

CampoTipoDescripción
idstringIdentificador único de la tarea (BigInt)
instance_idstringID de la instancia de workflow padre (BigInt)
workflow_namestringNombre de la definición de workflow
step_namestringNombre visible del paso
statusstring"PENDING", "IN_PROGRESS" o "COMPLETED"
assigned_to_userobject | nullUsuario asignado {id, name}
assigned_to_groupobject | nullGrupo asignado {id, name}
entityobjectEntidad asociada {type, id, label}
due_datestring | nullFecha de vencimiento de la tarea (ISO 8601, sin zona horaria)
escalatedbooleanSi la tarea fue escalada
created_atstringMarca de tiempo de creación de la tarea (ISO 8601, sin zona horaria)

Ejemplos de código​

curl -s -X GET "https://$TENANT_HOST/apidev/v1/workflow/tasks?limit=10&status=PENDING" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Ejemplo de respuesta​

{
"success": true,
"data": [
{
"id": "674839201748392018",
"instance_id": "591847302948571634",
"workflow_name": "New Account Onboarding",
"step_name": "Send Welcome Email",
"status": "PENDING",
"assigned_to_user": null,
"assigned_to_group": {"id": "293847102938471029", "name": "Sales Team"},
"entity": {"type": "CUENTA", "id": "738291047382910473", "label": "Acme Corp"},
"due_date": "2026-03-17T11:30:00",
"escalated": false,
"created_at": "2026-03-15T11:30:01"
}
],
"meta": {
"total": 8,
"limit": 10,
"offset": 0
}
}

Encabezados del límite de solicitudes​

Every response includes rate limit information in the headers:

HeaderDescription
X-RateLimit-LimitMaximum number of requests allowed in the current window
X-RateLimit-RemainingNumber of requests remaining in the current window
X-RateLimit-ResetUnix timestamp (seconds) when the current window resets
Retry-AfterSeconds to wait before retrying (only present on 429 responses)
X-Request-IdUnique request identifier for debugging and support tickets

Detalle de la tarea​

Recuperá el detalle completo de una única tarea de workflow, incluyendo los resultados disponibles, los campos de formulario y los datos capturados en pasos anteriores.

GET/apidev/v1/workflow/tasks/{id}
PermisoAPICLI_WORKFLOW_READ
Límite de solicitudes30 req/min (ventana deslizante)
Caché15s

Parámetros de ruta​

ParámetroTipoObligatorioDescripción
idstringSíEl identificador único de la tarea (BigInt)

Respuesta​

CampoTipoDescripción
idstringIdentificador único de la tarea (BigInt)
instance_idstringID de la instancia de workflow padre (BigInt)
workflow_namestringNombre de la definición de workflow
step_namestringNombre visible del paso
step_descriptionstring | nullDescripción del paso
statusstring"PENDING", "IN_PROGRESS" o "COMPLETED"
assigned_to_userobject | nullUsuario asignado {id, name}
assigned_to_groupobject | nullGrupo asignado {id, name}
due_datestring | nullFecha de vencimiento de la tarea
escalatedbooleanSi la tarea fue escalada
entityobjectEntidad asociada {type, id, label}
available_resultsarrayResultados de finalización posibles (ver abajo)
fieldsarrayCampos de formulario a capturar (ver abajo)
previous_steps_dataarrayDatos capturados en pasos anteriores (ver abajo)
created_atstringMarca de tiempo de creación de la tarea

Elementos del arreglo available_results:

CampoTipoDescripción
codestringCódigo de resultado a enviar al completar la tarea
labelstringEtiqueta visible del resultado

Elementos del arreglo fields:

CampoTipoDescripción
idstringIdentificador del campo
namestringNombre del campo a usar en captured_data
typestringTipo de campo: text, number, date, boolean, select, file
requiredbooleanSi este campo es obligatorio
valueany | nullValor actual (precargado o null)

Elementos del arreglo previous_steps_data:

CampoTipoDescripción
step_namestringNombre visible del paso
completed_bystringUsuario que completó el paso
completed_atstringMarca de tiempo de finalización
resultstringCódigo de resultado
captured_dataobjectPares clave-valor de los datos de campo capturados

Ejemplo de respuesta​

{
"success": true,
"data": {
"id": "674839201748392018",
"instance_id": "591847302948571634",
"workflow_name": "New Account Onboarding",
"step_name": "Send Welcome Email",
"step_description": "Send the welcome email to the new account contact.",
"status": "PENDING",
"assigned_to_user": null,
"assigned_to_group": {"id": "293847102938471029", "name": "Sales Team"},
"due_date": "2026-03-17T11:30:00",
"escalated": false,
"entity": {"type": "CUENTA", "id": "738291047382910473", "label": "Acme Corp"},
"available_results": [
{"code": "sent", "label": "Email Sent"},
{"code": "failed", "label": "Email Failed"}
],
"fields": [
{"id": "f_email", "name": "email_address", "type": "text", "required": true, "value": null},
{"id": "f_template", "name": "template", "type": "select", "required": true, "value": null}
],
"previous_steps_data": [
{
"step_name": "Verify Contact Information",
"completed_by": "jdoe",
"completed_at": "2026-03-15T11:30:00",
"result": "approved",
"captured_data": {
"contact_verified": true,
"phone_confirmed": true
}
}
],
"created_at": "2026-03-15T11:30:01"
},
"meta": {}
}

Completar tarea​

Completá una tarea de workflow proporcionando un código de resultado y datos capturados opcionales. El workflow avanza al siguiente paso.

POST/apidev/v1/workflow/tasks/{id}/complete
PermisoAPICLI_WORKFLOW_EXECUTE
Límite de solicitudes10 req/min (ventana deslizante)

Parámetros de ruta​

ParámetroTipoObligatorioDescripción
idstringSíEl identificador único de la tarea (BigInt)

Cuerpo de la solicitud​

CampoTipoObligatorioDescripción
result_codestringSíUno de los códigos de available_results. Longitud máxima: 80
captured_dataobjectNoPares clave-valor que coinciden con los fields de la tarea
commentstringNoComentario opcional. Longitud máxima: 2000

Ejemplos de código​

curl -s -X POST "https://$TENANT_HOST/apidev/v1/workflow/tasks/674839201748392018/complete" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT" \
-H "Content-Type: application/json" \
-d '{
"result_code": "sent",
"captured_data": {
"email_address": "contact@acme.com",
"template": "Premium Welcome"
},
"comment": "Welcome email sent successfully."
}'

Ejemplo de respuesta​

{
"success": true,
"data": {
"task_id": "674839201748392018",
"status": "COMPLETED",
"result": "sent",
"completed_at": "2026-03-19T14:10:00",
"instance_status": "RUNNING",
"next_step": "Review Welcome Package"
},
"meta": {}
}

Reasignar tarea​

Reasigná una tarea pendiente o en progreso a un usuario o grupo diferente. Se requiere uno de assign_to_user_id o assign_to_group_id.

POST/apidev/v1/workflow/tasks/{id}/reassign
PermisoAPICLI_WORKFLOW_EXECUTE
Límite de solicitudes10 req/min (ventana deslizante)

Parámetros de ruta​

ParámetroTipoObligatorioDescripción
idstringSíEl identificador único de la tarea (BigInt)

Cuerpo de la solicitud​

CampoTipoObligatorioDescripción
assign_to_user_idstringCondicionalID del usuario al que asignar la tarea. Longitud máxima: 30
assign_to_group_idstringCondicionalID del grupo al que asignar la tarea. Longitud máxima: 30
commentstringNoComentario opcional que explica la reasignación. Longitud máxima: 500

Ejemplos de código​

curl -s -X POST "https://$TENANT_HOST/apidev/v1/workflow/tasks/674839201748392018/reassign" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT" \
-H "Content-Type: application/json" \
-d '{
"assign_to_user_id": "182736450918273645",
"comment": "Reassigning to specialist."
}'

Ejemplo de respuesta​

{
"success": true,
"data": {
"task_id": "674839201748392018",
"assigned_to_user": {"id": "182736450918273645", "name": "Maria Garcia"},
"assigned_to_group": null,
"reassigned_at": "2026-03-19T14:15:00"
},
"meta": {}
}

Errores​

Todos los endpoints de esta página pueden devolver los siguientes errores. Para la referencia completa de errores, consultá Manejo de errores.

CódigoHTTPDescripción
VALIDATION_ERROR400Parámetros inválidos
UNAUTHORIZED401tenant / Authorization / X-API-Key ausente, inválido o expirado
FORBIDDEN403El usuario no tiene el permiso requerido
NOT_FOUND404Recurso no encontrado
RATE_LIMITED429Se superó el límite de solicitudes
INTERNAL_ERROR500Error inesperado del servidor