Reten Docs
Configuración de Ciclo de Vida

Activation Configs

Lee el pilar de activación del ciclo de vida y sus momentos de activación.

El activation config es el pilar de activación de un Activity Generation Config. Define la fuente de datos de actividad y un conjunto de momentos de activación — reglas ordenadas que clasifican qué tan fuerte se activó un usuario.

Este recurso es de solo lectura: solo existen GET (lista) y GET /:id. Los activation configs se crean y editan únicamente a través del flujo del AGC — ver Crear AGC y Actualizar ciclo de vida.

Campos de respuesta

CampoTipoDescripción
idstring (uuid)Id del activation config.
namestringNombre visible.
descriptionstring | nullDescripción opcional.
sourceTablestringTabla desde la que se leen los datos de activación.
sourceColumnsstring[] | nullColumnas usadas para la agregación.
dateColumnstringColumna con el timestamp del evento.
activityGenerationConfigIdstring (uuid)AGC dueño (NOT NULL, 1:1).
aggregationMethodnunique | count | sumCómo se agregan las acciones dentro de una ventana.
isActivebooleanSi la config está activa.
updatedBystring | nullId del usuario que editó por última vez.
createdAtstring (ISO 8601)Timestamp de creación.
updatedAtstring (ISO 8601)Timestamp de última actualización.
activationMomentsarrayReglas de momento de activación ordenadas (ver abajo).

activationMoment

CampoTipoDescripción
idstring (uuid)Id del momento.
activationConfigIdstring (uuid)Activation config dueño.
statusCodestringCode de estado de retención que emite este momento (p. ej. aha).
userRetentionStatusConfigIdstring (uuid)Config de estado de retención del tenant resuelta.
minActionsinteger | nullAcciones mínimas requeridas para alcanzar este momento.
windowDaysinteger | nullVentana móvil en días sobre la que se cuentan las acciones.
timeWindowinteger | nullLímite opcional de ventana temporal (días).
priorityintegerPrioridad de evaluación (gana el menor).
isActivebooleanSi el momento está activo.
createdAtstring (ISO 8601)Timestamp de creación.
updatedAtstring (ISO 8601)Timestamp de última actualización.

GET /api/activation-configs

Lista los activation configs del tenant.

Auth: Requerida — permiso lifecycle-config:view

Ejemplo

curl https://api.reten.ai/api/activation-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/activation-configs', {
  headers: {
    Authorization: 'Bearer <token>',
    'x-tenant-id': '<tenant-id>',
  },
});

const activationConfigs = response.data;

Respuesta 200 OK

[
  {
    "id": "a1111111-1111-1111-1111-111111111111",
    "name": "Activation",
    "description": "First-week activation moments",
    "sourceTable": "events",
    "sourceColumns": ["user_id", "event_name"],
    "dateColumn": "occurred_at",
    "activityGenerationConfigId": "agc11111-1111-1111-1111-111111111111",
    "aggregationMethod": "count",
    "isActive": true,
    "updatedBy": "u1111111-1111-1111-1111-111111111111",
    "createdAt": "2026-01-15T10:00:00.000Z",
    "updatedAt": "2026-01-20T12:30:00.000Z",
    "activationMoments": [
      {
        "id": "m1111111-1111-1111-1111-111111111111",
        "activationConfigId": "a1111111-1111-1111-1111-111111111111",
        "statusCode": "buyer",
        "userRetentionStatusConfigId": "rs111111-1111-1111-1111-111111111111",
        "minActions": 1,
        "windowDays": 14,
        "timeWindow": null,
        "priority": 0,
        "isActive": true,
        "createdAt": "2026-01-15T10:00:00.000Z",
        "updatedAt": "2026-01-15T10:00:00.000Z"
      },
      {
        "id": "m2222222-2222-2222-2222-222222222222",
        "activationConfigId": "a1111111-1111-1111-1111-111111111111",
        "statusCode": "aha",
        "userRetentionStatusConfigId": "rs222222-2222-2222-2222-222222222222",
        "minActions": 3,
        "windowDays": 7,
        "timeWindow": null,
        "priority": 1,
        "isActive": true,
        "createdAt": "2026-01-15T10:00:00.000Z",
        "updatedAt": "2026-01-15T10:00:00.000Z"
      }
    ]
  }
]

GET /api/activation-configs/:id

Lee un único activation config con sus momentos de activación.

Auth: Requerida — permiso lifecycle-config:view

Ejemplo

curl https://api.reten.ai/api/activation-configs/a1111111-1111-1111-1111-111111111111 \
  -H "Authorization: Bearer <token>" \
  -H "x-tenant-id: <tenant-id>"
import axios from 'axios';

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

const activationConfig = response.data;

Respuesta 200 OK

{
  "id": "a1111111-1111-1111-1111-111111111111",
  "name": "Activation",
  "description": "First-week activation moments",
  "sourceTable": "events",
  "sourceColumns": ["user_id", "event_name"],
  "dateColumn": "occurred_at",
  "activityGenerationConfigId": "agc11111-1111-1111-1111-111111111111",
  "aggregationMethod": "count",
  "isActive": true,
  "updatedBy": "u1111111-1111-1111-1111-111111111111",
  "createdAt": "2026-01-15T10:00:00.000Z",
  "updatedAt": "2026-01-20T12:30:00.000Z",
  "activationMoments": [
    {
      "id": "m2222222-2222-2222-2222-222222222222",
      "activationConfigId": "a1111111-1111-1111-1111-111111111111",
      "statusCode": "aha",
      "userRetentionStatusConfigId": "rs222222-2222-2222-2222-222222222222",
      "minActions": 3,
      "windowDays": 7,
      "timeWindow": null,
      "priority": 1,
      "isActive": true,
      "createdAt": "2026-01-15T10:00:00.000Z",
      "updatedAt": "2026-01-15T10:00:00.000Z"
    }
  ]
}