Reten Docs

Activation Configs

Read the activation lifecycle pillar and its activation moments.

The activation config is the activation pillar of an Activity Generation Config. It defines the source of activity data and a set of activation moments — ordered rules that classify how strongly a user has activated.

This resource is read-only: only GET (list) and GET /:id exist. Activation configs are created and edited only through the AGC flow — see Create AGC and Update lifecycle.

Response fields

FieldTypeDescription
idstring (uuid)Activation config id.
namestringDisplay name.
descriptionstring | nullOptional description.
sourceTablestringTable the activation data is read from.
sourceColumnsstring[] | nullColumns used for the aggregation.
dateColumnstringColumn carrying the event timestamp.
activityGenerationConfigIdstring (uuid)Owning AGC (NOT NULL, 1:1).
aggregationMethodnunique | count | sum | active_weeksHow actions are aggregated within a window.
isActivebooleanWhether the config is active.
updatedBystring | nullUser id of the last editor.
createdAtstring (ISO 8601)Creation timestamp.
updatedAtstring (ISO 8601)Last update timestamp.
activationMomentsarrayOrdered activation moment rules (see below).

activationMoment

FieldTypeDescription
idstring (uuid)Moment id.
activationConfigIdstring (uuid)Owning activation config.
statusCodestringRetention status code emitted by this moment (e.g. aha).
userRetentionStatusConfigIdstring (uuid)Resolved tenant retention status config.
minActionsinteger | nullMinimum actions required to reach this moment.
windowDaysinteger | nullRolling window in days over which actions are counted.
timeWindowinteger | nullOptional time-window bound (days).
priorityintegerEvaluation priority (lower wins).
isActivebooleanWhether the moment is active.
createdAtstring (ISO 8601)Creation timestamp.
updatedAtstring (ISO 8601)Last update timestamp.

GET /api/activation-configs

List the activation configs of the tenant.

Auth: Required — lifecycle-config:view permission

Example

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

const activationConfigs = response.data;

Response 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

Read a single activation config with its activation moments.

Auth: Required — lifecycle-config:view permission

Example

curl https://api.reten.ai/api/activation-configs/a1111111-1111-1111-1111-111111111111 \
  -H "Authorization: Bearer <token>" \
  -H "x-tenant-id: <tenant-id>" \
  -H "x-project-id: <project-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>',
      'x-project-id': '<project-id>',
    },
  }
);

const activationConfig = response.data;

Response 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"
    }
  ]
}