Resurrection Configs
Read the resurrection lifecycle pillar and its decay thresholds.
The resurrection config is the resurrection pillar of an Activity Generation Config. It defines ordered decay thresholds based on days of inactivity, classifying users as they slip from dormant toward churned.
This resource is read-only: only GET (list) and GET /:id exist. Resurrection configs are created and edited only through the AGC flow — see Create AGC and Update lifecycle.
Response fields
| Field | Type | Description |
|---|---|---|
id | string (uuid) | Resurrection config id. |
name | string | Display name. |
description | string | null | Optional description. |
sourceTable | string | Table the activity data is read from. |
sourceColumns | string[] | null | Columns used for the aggregation. |
dateColumn | string | Column carrying the event timestamp. |
activityGenerationConfigId | string (uuid) | Owning AGC (NOT NULL, 1:1). |
isActive | boolean | Whether the config is active. |
updatedBy | string | null | User id of the last editor. |
createdAt | string (ISO 8601) | Creation timestamp. |
updatedAt | string (ISO 8601) | Last update timestamp. |
resurrectionThresholds | array | Ordered decay thresholds (see below). |
resurrectionThreshold
| Field | Type | Description |
|---|---|---|
id | string (uuid) | Threshold id. |
resurrectionConfigId | string (uuid) | Owning resurrection config. |
statusCode | string | Retention status code emitted at this threshold (e.g. dormant). |
userRetentionStatusConfigId | string (uuid) | Resolved tenant retention status config. |
label | string | Display label for the threshold. |
thresholdDays | integer | Days of inactivity at which this threshold applies. |
order | integer | Ordering of the threshold along the decay path. |
isActive | boolean | Whether the threshold is active. |
createdAt | string (ISO 8601) | Creation timestamp. |
updatedAt | string (ISO 8601) | Last update timestamp. |
GET /api/resurrection-configs
List the resurrection configs of the tenant.
Auth: Required — lifecycle-config:view permission
Example
curl https://api.reten.ai/api/resurrection-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/resurrection-configs', {
headers: {
Authorization: 'Bearer <token>',
'x-tenant-id': '<tenant-id>',
'x-project-id': '<project-id>',
},
});
const resurrectionConfigs = response.data;Response 200 OK
[
{
"id": "r1111111-1111-1111-1111-111111111111",
"name": "Resurrection",
"description": "Inactivity decay path",
"sourceTable": "events",
"sourceColumns": ["user_id", "event_name"],
"dateColumn": "occurred_at",
"activityGenerationConfigId": "agc11111-1111-1111-1111-111111111111",
"isActive": true,
"updatedBy": "u1111111-1111-1111-1111-111111111111",
"createdAt": "2026-01-15T10:00:00.000Z",
"updatedAt": "2026-01-20T12:30:00.000Z",
"resurrectionThresholds": [
{
"id": "t1111111-1111-1111-1111-111111111111",
"resurrectionConfigId": "r1111111-1111-1111-1111-111111111111",
"statusCode": "dormant",
"userRetentionStatusConfigId": "rs555555-5555-5555-5555-555555555555",
"label": "En riesgo",
"thresholdDays": 30,
"order": 0,
"isActive": true,
"createdAt": "2026-01-15T10:00:00.000Z",
"updatedAt": "2026-01-15T10:00:00.000Z"
},
{
"id": "t2222222-2222-2222-2222-222222222222",
"resurrectionConfigId": "r1111111-1111-1111-1111-111111111111",
"statusCode": "churned",
"userRetentionStatusConfigId": "rs666666-6666-6666-6666-666666666666",
"label": "Fugado",
"thresholdDays": 90,
"order": 1,
"isActive": true,
"createdAt": "2026-01-15T10:00:00.000Z",
"updatedAt": "2026-01-15T10:00:00.000Z"
}
]
}
]GET /api/resurrection-configs/:id
Read a single resurrection config with its decay thresholds.
Auth: Required — lifecycle-config:view permission
Example
curl https://api.reten.ai/api/resurrection-configs/r1111111-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/resurrection-configs/r1111111-1111-1111-1111-111111111111',
{
headers: {
Authorization: 'Bearer <token>',
'x-tenant-id': '<tenant-id>',
'x-project-id': '<project-id>',
},
}
);
const resurrectionConfig = response.data;Response 200 OK
{
"id": "r1111111-1111-1111-1111-111111111111",
"name": "Resurrection",
"description": "Inactivity decay path",
"sourceTable": "events",
"sourceColumns": ["user_id", "event_name"],
"dateColumn": "occurred_at",
"activityGenerationConfigId": "agc11111-1111-1111-1111-111111111111",
"isActive": true,
"updatedBy": "u1111111-1111-1111-1111-111111111111",
"createdAt": "2026-01-15T10:00:00.000Z",
"updatedAt": "2026-01-20T12:30:00.000Z",
"resurrectionThresholds": [
{
"id": "t1111111-1111-1111-1111-111111111111",
"resurrectionConfigId": "r1111111-1111-1111-1111-111111111111",
"statusCode": "dormant",
"userRetentionStatusConfigId": "rs555555-5555-5555-5555-555555555555",
"label": "En riesgo",
"thresholdDays": 30,
"order": 0,
"isActive": true,
"createdAt": "2026-01-15T10:00:00.000Z",
"updatedAt": "2026-01-15T10:00:00.000Z"
}
]
}