Reten Docs
Resultados de Actividades

Configuraciones de Tipos de Resultado

Configuración por tenant de tipos de resultado activos.

GET /api/task-result-type-configs

Lista todas las configuraciones de tipos de resultado del tenant.

Auth: Requerida — permiso activity:view

Ejemplo

curl https://api.reten.ai/api/task-result-type-configs \
  -H "Authorization: Bearer <token>" \
  -H "x-tenant-id: <tenant-id>"
import axios from 'axios';

const response = await axios.get(
  'https://api.reten.ai/api/task-result-type-configs',
  {
    headers: {
      Authorization: 'Bearer <token>',
      'x-tenant-id': '<tenant-id>',
    },
  }
);

const configs = response.data;

Respuesta 200 OK

[
  {
    "id": "880e8400-e29b-41d4-a716-446655440000",
    "code": "success",
    "label": "✅ Venta",
    "requiresFutureScheduledAt": false,
    "isActive": true,
    "createdAt": "2026-06-18T06:00:00.000Z",
    "updatedAt": "2026-06-18T06:00:00.000Z"
  },
  {
    "id": "990e8400-e29b-41d4-a716-446655440000",
    "code": "decision_maker_unavailable",
    "label": "👤 No se encuentra",
    "requiresFutureScheduledAt": false,
    "isActive": true,
    "createdAt": "2026-06-18T06:00:00.000Z",
    "updatedAt": "2026-06-18T06:00:00.000Z"
  }
]

GET /api/task-result-type-configs/defaults

Devuelve los tipos de resultado por defecto de la plataforma como un catálogo plano { code, label }. La app de administración lo usa para prellenar el diálogo de importación con los tipos de resultado que un tenant puede adoptar.

Auth: Requerida — permiso activity:view

Este endpoint es prellenado, no una entidad. El payload es el catálogo de defaults hardcodeado — no autoritativo y NO se persiste — y siempre lista todos los defaults sin importar lo que el tenant ya tenga. Para adoptarlos, el admin elige los que aún faltan y los crea vía POST /api/task-result-type-configs/bulk. Llamar a este endpoint no crea nada.

Ejemplo

curl https://api.reten.ai/api/task-result-type-configs/defaults \
  -H "Authorization: Bearer <token>" \
  -H "x-tenant-id: <tenant-id>"
import axios from 'axios';

const response = await axios.get(
  'https://api.reten.ai/api/task-result-type-configs/defaults',
  {
    headers: {
      Authorization: 'Bearer <token>',
      'x-tenant-id': '<tenant-id>',
    },
  }
);

const defaults = response.data;

Respuesta 200 OK

[
  {
    "code": "success",
    "label": "✅ Venta"
  },
  {
    "code": "decision_maker_unavailable",
    "label": "👤 No se encuentra"
  }
]

POST /api/task-result-type-configs

Crea una configuración de tipo de resultado para el tenant.

Auth: Requerida — permiso activity-config:manage

Cuerpo de la Solicitud

CampoTipoRequeridoDescripción
codestringSíCódigo único que identifica este tipo de resultado en el catálogo del tenant
labelstringSíEtiqueta de visualización para este tenant

Ejemplo

curl -X POST https://api.reten.ai/api/task-result-type-configs \
  -H "Authorization: Bearer <token>" \
  -H "x-tenant-id: <tenant-id>" \
  -H "Content-Type: application/json" \
  -d '{
    "code": "success",
    "label": "Exito"
  }'
import axios from 'axios';

const response = await axios.post(
  'https://api.reten.ai/api/task-result-type-configs',
  {
    code: 'success',
    label: 'Exito',
  },
  {
    headers: {
      Authorization: 'Bearer <token>',
      'x-tenant-id': '<tenant-id>',
    },
  }
);

Respuesta 201 Created


POST /api/task-result-type-configs/bulk

Creación masiva de configuraciones de tipos de resultado del tenant.

Auth: Requerida — permiso activity-config:manage

Cuerpo de la Solicitud

CampoTipoRequeridoDescripción
itemsarraySíArray de configuraciones a crear
items[].codestringSíCódigo único que identifica este tipo de resultado en el catálogo del tenant
items[].labelstringSíEtiqueta de visualización para este tenant

Ejemplo

curl -X POST https://api.reten.ai/api/task-result-type-configs/bulk \
  -H "Authorization: Bearer <token>" \
  -H "x-tenant-id: <tenant-id>" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {
        "code": "success",
        "label": "Exito"
      },
      {
        "code": "no_answer",
        "label": "Sin respuesta"
      }
    ]
  }'
import axios from 'axios';

const response = await axios.post(
  'https://api.reten.ai/api/task-result-type-configs/bulk',
  {
    items: [
      {
        code: 'success',
        label: 'Exito',
      },
      {
        code: 'no_answer',
        label: 'Sin respuesta',
      },
    ],
  },
  {
    headers: {
      Authorization: 'Bearer <token>',
      'x-tenant-id': '<tenant-id>',
    },
  }
);

Respuesta 201 Created


PATCH /api/task-result-type-configs/:id

Actualiza una configuración de tipo de resultado del tenant.

Auth: Requerida — permiso activity-config:manage

Cuerpo de la Solicitud

CampoTipoRequeridoDescripción
labelstringNoEtiqueta de visualización
is_activebooleanNoHabilitar o deshabilitar esta configuración

Ejemplo

curl -X PATCH https://api.reten.ai/api/task-result-type-configs/<id> \
  -H "Authorization: Bearer <token>" \
  -H "x-tenant-id: <tenant-id>" \
  -H "Content-Type: application/json" \
  -d '{
    "is_active": false
  }'
import axios from 'axios';

const response = await axios.patch(
  'https://api.reten.ai/api/task-result-type-configs/<id>',
  {
    is_active: false,
  },
  {
    headers: {
      Authorization: 'Bearer <token>',
      'x-tenant-id': '<tenant-id>',
    },
  }
);

Respuesta 200 OK


DELETE /api/task-result-type-configs/:id

Desactiva una configuración de tipo de resultado del tenant.

Auth: Requerida — permiso activity-config:manage

Ejemplo

curl -X DELETE https://api.reten.ai/api/task-result-type-configs/<id> \
  -H "Authorization: Bearer <token>" \
  -H "x-tenant-id: <tenant-id>"
import axios from 'axios';

const response = await axios.delete(
  'https://api.reten.ai/api/task-result-type-configs/<id>',
  {
    headers: {
      Authorization: 'Bearer <token>',
      'x-tenant-id': '<tenant-id>',
    },
  }
);

Respuesta 204 No Content