Skip to content

Registro de auditoría de la organización

El registro de actividad es el feed canónico de "quién cambió qué" para tu organización. Cada escritura material a una entidad rastreada — miembro, asistencia, donación, grupo, ministerio, unidad organizativa, escuela o inscripción — escribe una fila aquí, automáticamente, vía un trigger de base de datos que no puede ser evitado por el código de la aplicación.

Ábrelo desde la barra lateral bajo Registro de actividad, o visita /activity-log directamente.

Página del registro de actividad con entradas y filtros

Leer una entrada

Cada fila te dice cuatro cosas en lenguaje claro:

Sarah Patel actualizó membersCambiado: email, phonehace 2 horas

PiezaDe dónde viene
Nombre del actoractor_id → resuelto al nombre completo del usuario; recae en el correo si el perfil ya no existe
VerboLa columna de acción (created, updated, deleted, restored, merge_members, …)
Enlace de entidadSi el tipo de entidad tiene una ruta de detalle (members, groups, ministries, schools), la fila enlaza directamente a ella
Columnas cambiadasPara acciones updated, la lista de columnas que cambiaron — no los valores anteriores/posteriores
Marca de tiempoRelativa ("hace 2 horas"); pasa el cursor para ver la fecha absoluta en la zona horaria de tu organización

Las escrituras del sistema — acciones de workflow, trabajos programados, edge functions ejecutándose sin un usuario autenticado — muestran System como actor en lugar de una persona.

Filtrar

El encabezado tiene tres filtros que se combinan con AND:

  • Tipo de entidad — limita a solo miembros, donaciones, asistencias, etc. Usa esto cuando investigas una tabla específica.
  • Acción — created, updated, deleted, restored. Por defecto, todas.
  • Correo del actor — coincidencia parcial de texto libre. Escribe @tuiglesia.org para ver solo las escrituras del personal; escribe una dirección parcial para encontrar a una persona.

Los filtros se manejan por URL, así que puedes guardar como favorito o compartir una vista filtrada (/activity-log?entity=donations&action=deleted y demás).

TIP

El registro de actividad es de desplazamiento infinito — las entradas antiguas se cargan al desplazarte más allá del final. Aplica los filtros primero si vas tras un evento específico; el caudal sin filtrar puede ser de 10.000+ filas al mes para una organización ocupada.

Investigaciones comunes

"Un monto de donación cambió y no sé por qué"

  1. Abre /activity-log
  2. Establece el filtro de entidad a donations
  3. Establece el filtro de acción a updated
  4. Opcionalmente filtra por correo del actor si sospechas de una persona específica
  5. Busca la donación; haz clic para verificar contra el registro actual

La pista de columnas cambiadas te dirá si se tocó amount, fund o solo las notas.

"¿Quién eliminó a este miembro?"

  1. Filtra entidad a members, acción a deleted
  2. Desplázate hasta la fecha en cuestión
  3. La columna de actor te dice exactamente quién lo hizo y cuándo

Los miembros eliminados son borrados lógicamente — siguen en la base de datos con deleted_at establecido. La fila de auditoría preserva al actor; la fila del miembro preserva los datos. Puedes restaurar desde la papelera de reciclaje dentro de 30 días.

"¿El workflow realmente se ejecutó anoche?"

Las acciones de workflow escriben entradas con actor_email = system y metadatos que describen la ejecución del workflow. Filtra el correo del actor a system para ver solo la actividad automatizada.

Cómo se ven los datos por debajo

La tabla org_audit_log:

sql
id              uuid primary key
organization_id uuid          -- scoped by current_org_id() RLS
actor_id        uuid          -- null for system writes
actor_email     text          -- denormalized for the case the profile is gone
action          text          -- 'created' | 'updated' | 'deleted' | 'restored' | …
entity_type     text          -- table name
entity_id       uuid          -- row id in that table
metadata        jsonb         -- { changed: [...], reason: '...', … }
created_at      timestamptz

El arreglo metadata.changed lista los nombres de las columnas. El campo metadata.reason, cuando está presente, es una justificación de texto libre proporcionada por la acción que escribió la fila — por ejemplo, el motivo de ejecución del workflow o una explicación manual de "marcado como perdido".

Diferencias frente a la pestaña de auditoría de Datos y Registros

La misma tabla org_audit_log alimenta la pestaña de auditoría en Datos y Registros. Las diferencias son:

/activity-logDatos y Registros → Auditoría
Permisousers.manageconfig.manage
Filas mostradasDesplazamiento infinito, todas las filasÚltimas 50, sin paginación
FiltrosEntidad, acción, correo del actorNinguno
Úsalo paraInvestigaciones, auditoríasUn vistazo rápido a "¿qué pasó recientemente?" durante una sesión de configuración

La mayoría de los administradores usan /activity-log día a día. La pestaña de Datos y Registros existe para que un rol solo-de-configuración (sin users.manage) pueda ver la actividad reciente sin otorgarle el permiso mayor.

Véase también