Valores Padrão de Ciclo de Vida
Valores padrão da plataforma para pré-preencher o assistente de criação do AGC.
GET /api/lifecycle-defaults
Retorna os três pilares de ciclo de vida pré-preenchidos com valores padrão da plataforma, resolvidos em relação ao catálogo de status de retenção do tenant.
Auth: Obrigatória — permissão activity-generation-config:view
Este endpoint é pré-preenchimento para o assistente de criação do AGC, não uma entidade. O payload não é autoritativo e NÃO é persistido — o admin edita esses valores padrão e os envia via POST /api/activity-generation-configs. Nada é criado ao chamar este endpoint.
Exceção de serialização: ao contrário dos três recursos de pilar (que respondem em camelCase), esta resposta é snake_case (ex.: source_table, min_lifetime_actions_for_engaged, status_code) porque é um payload de valores padrão fixo (hardcoded), não uma entidade serializada.
O que retorna
- Cada pilar (
activation,engagement,resurrection) vem com configurações escalares padrão e um conjunto padrão de itens (momentos / níveis / limiares). - Cada item é resolvido em relação ao catálogo de status de retenção do tenant, portanto carrega
status_code,user_retention_status_config_idelabel. - Os campos de fonte de ativação (
source_table,source_columns,date_column) sãonullpor design — o admin os preenche no assistente.
Exemplo
curl https://api.reten.ai/api/lifecycle-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/lifecycle-defaults', {
headers: {
Authorization: 'Bearer <token>',
'x-tenant-id': '<tenant-id>',
},
});
const defaults = response.data;Resposta 200 OK
{
"activation": {
"aggregation_method": "count",
"source_table": null,
"source_columns": null,
"date_column": null,
"moments": [
{
"status_code": "aha",
"user_retention_status_config_id": "rs222222-2222-2222-2222-222222222222",
"label": "Aha",
"min_actions": 1,
"window_days": 7,
"priority": 0
}
]
},
"engagement": {
"engagement_window_days": 28,
"counting_method": "active_days",
"min_lifetime_actions_for_engaged": 1,
"levels": [
{
"status_code": "habit",
"user_retention_status_config_id": "rs444444-4444-4444-4444-444444444444",
"label": "En hábito",
"min_threshold": 8,
"max_threshold": null,
"order": 0
}
]
},
"resurrection": {
"thresholds": [
{
"status_code": "dormant",
"user_retention_status_config_id": "rs555555-5555-5555-5555-555555555555",
"label": "En riesgo",
"threshold_days": 30,
"order": 0
}
]
}
}Os nomes de campo dentro de cada item são snake_case aqui (status_code, min_actions, window_days, min_threshold, max_threshold, threshold_days, order). Quando o admin envia o assistente, esses campos mapeiam para o corpo da requisição em snake_case de POST /api/activity-generation-configs.