Registro de atividade do membro
Todo perfil de membro tem uma aba Atividade que mostra uma linha do tempo cronológica de tudo que aconteceu com essa pessoa: quando foi adicionada, em quais grupos entrou, quais domingos frequentou, quais doações fez, quais mensagens de workflow recebeu, e quando (se já) foi marcada como perdida e recuperada.
Abra a partir do perfil de qualquer membro.

O que aparece na linha do tempo
A linha do tempo é alimentada pela tabela member_activity_log, que captura eventos de ciclo de vida e engajamento escritos por código de aplicação (não pelo trigger genérico de auditoria que alimenta o registro de auditoria da org). Eventos vêm de todo o app:
| Fonte | Exemplos |
|---|---|
| Ciclo de vida do membro | criado, atualizado, tipo alterado, marcado como perdido, recuperado, excluído |
| Estrutura org | unidade atribuída/removida, grupo atribuído/removido, ministério atribuído/removido |
| Escolas | matriculado, formado, removido |
| Engajamento | presença marcada, doação registrada |
| Mensageria | mensagem enviada, mensagem com falha (com canal e nome do template) |
| Workflows | workflow iniciado, ação de workflow rodou, workflow completado, workflow com falha |
| Notas | nota adicionada por um membro da equipe |
Cada evento tem um ícone, um título, e (quando relevante) uma descrição curta. Eventos de workflow também incluem o nome do workflow como um badge para você saber qual automação tocou o membro.
Lendo a linha do tempo
As entradas são agrupadas por data com o dia mais recente no topo. Dentro de um dia, são listadas com a mais nova primeiro. Cada linha mostra:
- Ícone + cor indicando o tipo de evento (verde para eventos "entrou", vermelho para "perdido"/com falha, roxo para mudanças de tipo, etc.)
- Título — uma frase humana curta como "Entrou no Grupo de Jovens" ou "Dízimo registrado — R$ 50,00"
- Descrição — uma linha mais longa com contexto (o ator, o nome do workflow, o tipo de reunião)
- Hora no fuso horário da org
A lista rola dentro da aba, para o resto do perfil ficar visível. As 100 entradas mais recentes carregam por padrão; histórico mais antigo é paginado quando presente.
Por que um registro separado em vez do registro de auditoria da org?
O registro de auditoria da org é genérico e dirigido por trigger — ele sabe "uma linha em members foi atualizada" mas não "essa pessoa se matriculou no coral de jovens". O registro de atividade do membro é construído de propósito para a história voltada ao membro:
- Cross-table. Presença e doações são tabelas diferentes; a linha do tempo as tece juntas.
- Títulos legíveis por humanos. Código de aplicação escreve o título e descrição na língua do usuário, para que equipe não-técnica possa ler a linha do tempo sem conhecer o schema.
- Integração de workflow. Execuções de workflow escrevem metadados ricos (qual automação, qual ação, o que aconteceu) que o trigger genérico não pode capturar.
Os dois registros não se duplicam para consultas somente-leitura: uma edição de membro aparece em ambos porque é rastreada pelo trigger genérico e aparece como uma entrada da linha do tempo "Perfil atualizado".
Permissões
A aba Atividade é visível a quem pode ver o perfil do membro (pastores com members.read, líderes de grupo dentro do seu escopo). Não há permissão separada para a linha do tempo porque ela já está filtrada a esse único membro — a fronteira de privacidade é a permissão de visualização do membro, não o registro em si.
Quando usar a linha do tempo vs o registro de auditoria da org
| Pergunta | Use |
|---|---|
| "Quando essa pessoa entrou na igreja?" | Registro de atividade do membro |
| "Qual é o padrão de presença dela esse ano?" | Registro de atividade do membro (ou o relatório de presença) |
| "Quais workflows a tocaram?" | Registro de atividade do membro |
| "Quem editou o e-mail dela?" | Registro de auditoria da org filtrado a esse membro |
| "Por que o tipo de membro dela foi alterado?" | Ambos — a linha do tempo mostra o evento, o registro da org mostra o ator |
Ressalvas
- Importações em massa escrevem um único evento "member.created" por linha mas não populam atribuições de grupo/ministério como entradas separadas da linha do tempo — essas escrevem direto nas linhas. Se um membro está faltando eventos de entrada esperados, verifique o histórico de importações para confirmar que a importação teve sucesso.
- Edições offline do PowerSync são enfileiradas e marcadas com timestamp no momento da sincronização, não no momento da edição. Espere uma pequena diferença entre o timestamp da atividade e o que o voluntário viu no dispositivo.
- Entradas de atividade excluídas. Excluir suavemente um membro não apaga a linha do tempo dele. Restaurar traz de volta intacta. Exclusões permanentes (raras, solicitações de LGPD) apagam a linha do tempo junto com o membro.
Veja também
- Registro de auditoria da organização para histórico filtrável cross-org
- Execuções de workflow para o lado workflow da história
- Detalhe do membro para o resto do perfil
