Activity Generation Configs
Configuração somente de ciclo de vida que define como as atividades de retenção são geradas.
Visão geral
Uma Activity Generation Config (AGC) descreve como a plataforma deriva o estado do ciclo de vida de retenção de um usuário a partir de dados brutos de atividade. É uma configuração somente de ciclo de vida: metadados base, uma audiência opcional e exatamente três pilares de ciclo de vida obrigatórios.
Toda AGC pertence a um projeto: os endpoints trabalham sobre as AGCs do projeto ativo, e uma AGC de outro projeto responde 404 como se não existisse. Seu nome é único dentro do projeto.
| Pilar | Finalidade |
|---|---|
activation | Classifica se (e com que intensidade) um usuário se ativou, com base nos primeiros momentos de ação. |
engagement | Agrupa usuários ativos em níveis de engajamento (por exemplo, casual, core, power). |
resurrection | Detecta usuários que retornam de um período de inatividade e classifica recuperação vs. abandono. |
Os três pilares são 1:1 com a AGC: toda AGC sempre tem exatamente um activationConfig, um engagementConfig e um resurrectionConfig. Você não pode criar uma AGC com um pilar faltando, nem criar um pilar que não esteja associado a uma AGC.
Não existe configuração de despacho independente: uma AGC define apenas a classificação do ciclo de vida.
Status
Toda AGC tem um status:
| Status | Significado |
|---|---|
draft | Status inicial de toda AGC nova. |
active | A configuração está pensada para rodar. |
paused | Retirada de execução. Conserva seu id e sua definição, e pode ser publicada novamente. |
O status só muda por meio de duas ações, ambas com a permissão activity-generation-config:update:
status não é aceito em nenhum corpo de criação ou de atualização. Apenas as configurações active estão pensadas para rodar: liste-as com GET /api/activity-generation-configs?status=active.
Audiência efetiva
audienceId é a audiência própria da AGC, e é opcional. As leituras — GET /:id e a lista — retornam também effectiveAudienceId, a audiência sobre a qual a AGC roda:
audienceId, quando a AGC tem audiência própria;- caso contrário, a audiência raiz do projeto (veja Projetos → Audiência raiz).
effectiveAudienceId nunca é null. É calculado ao ler a AGC: não é armazenado e não é enviado em nenhum corpo.
Config hashes
GET /:id retorna um objeto configHashes — um hash determinístico por pilar (16 caracteres hexadecimais) para cada um dos três pilares:
{
"activation": "9f1c2a3b4d5e6f70",
"engagement": "a1b2c3d4e5f60718",
"resurrection": "0f1e2d3c4b5a6978"
}Os clientes usam esses hashes para detectar de forma econômica quando a configuração de um pilar mudou, sem precisar comparar o payload aninhado completo. O hash é calculado apenas sobre o conteúdo semântico do pilar: campos voláteis (id, timestamps) são removidos, e as coleções filhas são hasheadas de forma independente da ordem, de modo que reordenar filhos sem alterar seus valores não muda o hash.
Autenticação
Todos os endpoints exigem um token JWT Bearer, o header x-tenant-id identificando o tenant sobre cujo esquema a requisição opera, e o header x-project-id identificando o projeto em que a requisição trabalha (veja Autenticação → Contexto de Projeto).
-H "Authorization: Bearer <token>"
-H "x-tenant-id: <tenant-id>"
-H "x-project-id: <project-id>"Permissões
| Permissão | Concede |
|---|---|
activity-generation-config:view | Listar e ler AGCs |
activity-generation-config:create | Criar uma AGC |
activity-generation-config:update | Atualizar metadados, substituir pilares de ciclo de vida, publicar e pausar |
activity-generation-config:delete | Arquivar (soft delete) uma AGC |
Convenção de serialização: os corpos de requisição de criar, atualizar e atualizar o ciclo de vida são snake_case (por exemplo, source_table, user_retention_status_config_id), enquanto as respostas de GET são camelCase (por exemplo, sourceTable, userRetentionStatusConfigId).
Endpoints
Listar Configs
Lista os metadados de AGC (sem config aninhada, sem config hashes).
Obter Config
Lê uma AGC com seus três pilares aninhados e os config hashes.
Criar Config
Cria uma AGC com os três pilares de ciclo de vida (transacional).
Atualizar Lifecycle
Substituição in-place de um ou mais pilares de ciclo de vida.
Atualizar Config
Atualiza apenas os metadados da AGC (nome, descrição, audiência).
Publicar Config
Passa uma AGC de draft ou paused para active.
Pausar Config
Passa uma AGC active para paused, conservando seu id.
Excluir Config
Arquiva uma AGC; seus três pilares são arquivados em cascata.