Reten Docs
Configuração de Ciclo de Vida

Activation Configs

Leia o pilar de ativação do ciclo de vida e seus momentos de ativação.

O activation config é o pilar de ativação de um Activity Generation Config. Define a fonte dos dados de atividade e um conjunto de momentos de ativação — regras ordenadas que classificam com que intensidade um usuário se ativou.

Este recurso é somente leitura: só existem GET (lista) e GET /:id. Os activation configs são criados e editados apenas através do fluxo do AGC — veja Criar AGC e Atualizar ciclo de vida.

Campos de resposta

CampoTipoDescrição
idstring (uuid)Id do activation config.
namestringNome de exibição.
descriptionstring | nullDescrição opcional.
sourceTablestringTabela da qual os dados de ativação são lidos.
sourceColumnsstring[] | nullColunas usadas para a agregação.
dateColumnstringColuna que carrega o timestamp do evento.
activityGenerationConfigIdstring (uuid)AGC dono (NOT NULL, 1:1).
aggregationMethodnunique | count | sum | active_weeksComo as ações são agregadas dentro de uma janela.
isActivebooleanSe a config está ativa.
updatedBystring | nullId do usuário do último editor.
createdAtstring (ISO 8601)Timestamp de criação.
updatedAtstring (ISO 8601)Timestamp da última atualização.
activationMomentsarrayRegras de momento de ativação ordenadas (veja abaixo).

activationMoment

CampoTipoDescrição
idstring (uuid)Id do momento.
activationConfigIdstring (uuid)Activation config dono.
statusCodestringCode de status de retenção emitido por este momento (ex.: aha).
userRetentionStatusConfigIdstring (uuid)Config de status de retenção do tenant resolvida.
minActionsinteger | nullAções mínimas necessárias para alcançar este momento.
windowDaysinteger | nullJanela móvel em dias sobre a qual as ações são contadas.
timeWindowinteger | nullLimite opcional de janela temporal (dias).
priorityintegerPrioridade de avaliação (o menor valor vence).
isActivebooleanSe o momento está ativo.
createdAtstring (ISO 8601)Timestamp de criação.
updatedAtstring (ISO 8601)Timestamp da última atualização.

GET /api/activation-configs

Lista os activation configs do tenant.

Auth: Obrigatória — permissão lifecycle-config:view

Exemplo

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;

Resposta 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

Lê um único activation config com seus momentos de ativação.

Auth: Obrigatória — permissão lifecycle-config:view

Exemplo

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;

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