Reten Docs
Actividades de Tarea

Crear Actividades de Tarea en Lote

Crear multiples actividades de tarea en una sola solicitud.

POST /api/activities/tasks/bulk

Crea hasta 200 actividades de tarea en una sola solicitud. Cada elemento sigue el mismo esquema que el endpoint individual Crear Actividad de Tarea.

Auth: Requerida — permiso CREATE_ACTIVITY

Cuerpo de la Solicitud

CampoTipoRequeridoDescripcion
itemsarraySiArray de objetos de actividad de tarea (min 1, max 200)

Cada elemento en items tiene los mismos campos que el cuerpo de la solicitud de Crear Actividad de Tarea:

CampoTipoRequeridoDescripcion
reasonstringSiRazon para crear la actividad
channelstringSiSALESMAN, CALLCENTER, WHATSAPP, EMAIL, SMS, PUSH
commerce_idUUIDSiID del comercio destino
idempotency_keystringSiClave unica por tenant (previene duplicados)
assigned_route_idUUIDSiRuta a asignar la tarea
assigned_operator_idUUIDSiOperador a asignar la tarea
scheduled_atISO 8601SiCuando se debe ejecutar la actividad
suggested_execution_timeISO 8601NoHora sugerida de ejecucion
user_statusstringNoContexto de estado del usuario
scoreintegerNoPuntaje de prioridad
assignment_reasonstringNoRazon de la asignacion
target_criteriaarrayNoCriterios de resolucion de objetivo
attribute_keysstring[]NoNombres de claves de atributos a resolver via politicas
attributesarrayNoValores de atributos provistos por el llamador

Ejemplo

curl -X POST https://api.reten.ai/api/activities/tasks/bulk \
  -H "Authorization: Bearer <token>" \
  -H "x-tenant-id: <tenant-id>" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {
        "reason": "retention_visit",
        "channel": "SALESMAN",
        "commerce_id": "880e8400-e29b-41d4-a716-446655440000",
        "idempotency_key": "task-2025-01-15-001",
        "assigned_route_id": "dd0e8400-e29b-41d4-a716-446655440000",
        "assigned_operator_id": "cc0e8400-e29b-41d4-a716-446655440000",
        "scheduled_at": "2025-01-16T09:00:00.000Z"
      },
      {
        "reason": "retention_visit",
        "channel": "SALESMAN",
        "commerce_id": "990e8400-e29b-41d4-a716-446655440000",
        "idempotency_key": "task-2025-01-15-002",
        "assigned_route_id": "dd0e8400-e29b-41d4-a716-446655440000",
        "assigned_operator_id": "cc0e8400-e29b-41d4-a716-446655440000",
        "scheduled_at": "2025-01-16T10:00:00.000Z"
      }
    ]
  }'
const response = await fetch("https://api.reten.ai/api/activities/tasks/bulk", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <token>",
    "x-tenant-id": "<tenant-id>",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    items: [
      {
        reason: "retention_visit",
        channel: "SALESMAN",
        commerce_id: "880e8400-e29b-41d4-a716-446655440000",
        idempotency_key: "task-2025-01-15-001",
        assigned_route_id: "dd0e8400-e29b-41d4-a716-446655440000",
        assigned_operator_id: "cc0e8400-e29b-41d4-a716-446655440000",
        scheduled_at: "2025-01-16T09:00:00.000Z",
      },
      {
        reason: "retention_visit",
        channel: "SALESMAN",
        commerce_id: "990e8400-e29b-41d4-a716-446655440000",
        idempotency_key: "task-2025-01-15-002",
        assigned_route_id: "dd0e8400-e29b-41d4-a716-446655440000",
        assigned_operator_id: "cc0e8400-e29b-41d4-a716-446655440000",
        scheduled_at: "2025-01-16T10:00:00.000Z",
      },
    ],
  }),
});
const result = await response.json();
import requests

response = requests.post(
    "https://api.reten.ai/api/activities/tasks/bulk",
    headers={
        "Authorization": "Bearer <token>",
        "x-tenant-id": "<tenant-id>",
    },
    json={
        "items": [
            {
                "reason": "retention_visit",
                "channel": "SALESMAN",
                "commerce_id": "880e8400-e29b-41d4-a716-446655440000",
                "idempotency_key": "task-2025-01-15-001",
                "assigned_route_id": "dd0e8400-e29b-41d4-a716-446655440000",
                "assigned_operator_id": "cc0e8400-e29b-41d4-a716-446655440000",
                "scheduled_at": "2025-01-16T09:00:00.000Z",
            },
            {
                "reason": "retention_visit",
                "channel": "SALESMAN",
                "commerce_id": "990e8400-e29b-41d4-a716-446655440000",
                "idempotency_key": "task-2025-01-15-002",
                "assigned_route_id": "dd0e8400-e29b-41d4-a716-446655440000",
                "assigned_operator_id": "cc0e8400-e29b-41d4-a716-446655440000",
                "scheduled_at": "2025-01-16T10:00:00.000Z",
            },
        ],
    },
)
result = response.json()

Respuesta 201 Created

Devuelve un array de objetos de actividad de tarea creados.

Respuestas de Error

EstadoDescripcion
400Error de validacion — campos invalidos o faltantes en uno o mas elementos
401Token de autenticacion faltante o invalido
404Ruta u operador no encontrado
409Clave de idempotencia ya existe para uno o mas elementos