Configuraciones de Razones de Actividad
Configuracion por tenant de razones de actividad activas.
GET /api/activity-reason-configs
Lista todas las configuraciones de razones de actividad del tenant.
Auth: Requerida — permiso VIEW_ACTIVITIES
Ejemplo
curl https://api.reten.ai/api/activity-reason-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/activity-reason-configs',
{
headers: {
Authorization: 'Bearer <token>',
'x-tenant-id': '<tenant-id>',
},
}
);
const configs = response.data;Respuesta 200 OK
[
{
"id": "880e8400-e29b-41d4-a716-446655440000",
"code": "recurrent",
"label": "🔁 Reposición de stock",
"isActive": true,
"createdAt": "2026-06-18T06:00:00.000Z",
"updatedAt": "2026-06-18T06:00:00.000Z"
},
{
"id": "990e8400-e29b-41d4-a716-446655440000",
"code": "retain",
"label": "❤️ Retención",
"isActive": true,
"createdAt": "2026-06-18T06:00:00.000Z",
"updatedAt": "2026-06-18T06:00:00.000Z"
}
]GET /api/activity-reason-configs/defaults
Devuelve las razones de actividad por defecto de la plataforma como un catalogo plano { code, label }. La app de administracion lo usa para prellenar el dialogo de importacion con las razones que un tenant puede adoptar.
Auth: Requerida — permiso VIEW_ACTIVITIES
Este endpoint es prellenado, no una entidad. El payload es el catalogo 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 aun faltan y los crea via POST /api/activity-reason-configs/bulk. Llamar a este endpoint no crea nada.
Ejemplo
curl https://api.reten.ai/api/activity-reason-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/activity-reason-configs/defaults',
{
headers: {
Authorization: 'Bearer <token>',
'x-tenant-id': '<tenant-id>',
},
}
);
const defaults = response.data;Respuesta 200 OK
[
{
"code": "recurrent",
"label": "🔁 Reposición de stock"
},
{
"code": "retain",
"label": "❤️ Retención"
}
]POST /api/activity-reason-configs
Crea una configuracion de razon de actividad para el tenant.
Auth: Requerida — permiso MANAGE_ACTIVITY_CONFIG
Cuerpo de la Solicitud
| Campo | Tipo | Requerido | Descripcion |
|---|---|---|---|
code | string | Si | Codigo unico que identifica esta razon en el catalogo del tenant |
label | string | Si | Etiqueta de visualizacion para este tenant |
Ejemplo
curl -X POST https://api.reten.ai/api/activity-reason-configs \
-H "Authorization: Bearer <token>" \
-H "x-tenant-id: <tenant-id>" \
-H "Content-Type: application/json" \
-d '{
"code": "retention",
"label": "Retencion"
}'import axios from 'axios';
const response = await axios.post(
'https://api.reten.ai/api/activity-reason-configs',
{
code: 'retention',
label: 'Retencion',
},
{
headers: {
Authorization: 'Bearer <token>',
'x-tenant-id': '<tenant-id>',
},
}
);Respuesta 201 Created
POST /api/activity-reason-configs/bulk
Creacion masiva de configuraciones de razones de actividad del tenant.
Auth: Requerida — permiso MANAGE_ACTIVITY_CONFIG
Cuerpo de la Solicitud
| Campo | Tipo | Requerido | Descripcion |
|---|---|---|---|
items | array | Si | Array de configuraciones a crear |
items[].code | string | Si | Codigo unico que identifica esta razon en el catalogo del tenant |
items[].label | string | Si | Etiqueta de visualizacion para este tenant |
Ejemplo
curl -X POST https://api.reten.ai/api/activity-reason-configs/bulk \
-H "Authorization: Bearer <token>" \
-H "x-tenant-id: <tenant-id>" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"code": "retention",
"label": "Retencion"
},
{
"code": "upsell",
"label": "Upsell"
}
]
}'import axios from 'axios';
const response = await axios.post(
'https://api.reten.ai/api/activity-reason-configs/bulk',
{
items: [
{
code: 'retention',
label: 'Retencion',
},
{
code: 'upsell',
label: 'Upsell',
},
],
},
{
headers: {
Authorization: 'Bearer <token>',
'x-tenant-id': '<tenant-id>',
},
}
);Respuesta 201 Created
PATCH /api/activity-reason-configs/:id
Actualiza una configuracion de razon de actividad del tenant.
Auth: Requerida — permiso MANAGE_ACTIVITY_CONFIG
Cuerpo de la Solicitud
| Campo | Tipo | Requerido | Descripcion |
|---|---|---|---|
label | string | No | Etiqueta de visualizacion |
is_active | boolean | No | Habilitar o deshabilitar esta configuracion |
Ejemplo
curl -X PATCH https://api.reten.ai/api/activity-reason-configs/<id> \
-H "Authorization: Bearer <token>" \
-H "x-tenant-id: <tenant-id>" \
-H "Content-Type: application/json" \
-d '{
"label": "Etiqueta Actualizada"
}'import axios from 'axios';
const response = await axios.patch(
'https://api.reten.ai/api/activity-reason-configs/<id>',
{
label: 'Etiqueta Actualizada',
},
{
headers: {
Authorization: 'Bearer <token>',
'x-tenant-id': '<tenant-id>',
},
}
);Respuesta 200 OK
DELETE /api/activity-reason-configs/:id
Desactiva una configuracion de razon de actividad del tenant.
Auth: Requerida — permiso MANAGE_ACTIVITY_CONFIG
Ejemplo
curl -X DELETE https://api.reten.ai/api/activity-reason-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/activity-reason-configs/<id>',
{
headers: {
Authorization: 'Bearer <token>',
'x-tenant-id': '<tenant-id>',
},
}
);