Saltar a contenido

Activity Feed y actualizaciones

Hardhat Flow registra dos tipos de actividad: ActivityLog (generado por el sistema, registro de auditoría inmutable) y Updates (notas y fotos publicadas por usuarios). Ambos aparecen en contexto en Bids y Jobs. El Dashboard Feed agrega actividad y alertas relevantes por rol.


ActivityLog (generado por el sistema)

El ActivityLog es un registro de auditoría inmutable generado por el sistema. Cada cambio significativo crea automáticamente una entrada de ActivityLog. Ningún usuario puede editar ni eliminar un registro de ActivityLog en ningún caso.

Los registros del ActivityLog son permanentes. No pueden editarse, eliminarse ni borrarse con eliminación lógica — ni siquiera por Platform Admin.

Qué se almacena

Cada entrada del ActivityLog contiene:

Field Description
entity_type Tipo de objeto afectado (ej. bid, job, invoice, user).
entity_id ID del registro afectado.
action_type Categoría del cambio. Vea la tabla abajo.
performed_by Usuario que disparó la acción (o system para acciones automáticas).
metadata Objeto JSON con diff antes/después de campos modificados u otros datos.
created_at Marca de tiempo UTC de cuándo ocurrió la acción.

Tipos de acción

Action Type Qué lo dispara
status_change Cualquier transición de estado en Bid, Job o Invoice.
field_update Cambia el valor de un campo en Bid, Job o Invoice. El metadata contiene un diff JSON.
assignment Se asigna o quita un trabajador o PM/Supervisor de un Job.
blocked_change Se activa o quita la bandera blocked en un Bid o Job.
subcontractor_added Se agrega o quita un subcontratista de un Job.
payment_recorded Se registra un pago contra un Invoice.
login Un usuario autentica correctamente.
role_change Un Owner o Platform Admin cambia el rol de un usuario.
invoice_edit Se modifica cualquier campo de un Invoice después de crearlo.
admin_action Un Platform Admin realiza una operación administrativa (ej. eliminación lógica, aprovisionamiento de inquilino).
tenant_provisioned Se crea un nuevo inquilino y se provisiona su base de datos.

Por qué es inmutable

El ActivityLog es el registro legal y operativo del sistema. Garantiza que:

  • Todo cambio puede rastrearse a un usuario y momento específicos.
  • Nadie puede borrar su huella eliminando entradas del log.
  • Las disputas sobre qué ocurrió — y cuándo — pueden resolverse de forma objetiva.

Updates (generadas por usuarios)

Las Updates son notas manuales que los usuarios publican directamente en un Bid o Job. Admiten texto libre y archivos adjuntos de fotos.

Publicar una actualización

  • Cualquier usuario con acceso al Bid o Job puede publicar una actualización.
  • Las actualizaciones admiten contenido de texto y fotos adjuntas (vea Photos).
  • Las actualizaciones no son editables después de publicarse en V1. Si hay error, publique una actualización de seguimiento para aclarar.
  • Las actualizaciones no se eliminan — todas las eliminaciones en el sistema son lógicas y debe iniciarlas Platform Admin.

La política de no edición en Updates asegura un registro confiable de comunicaciones y observaciones en el proyecto.

Quién puede ver las Updates

  • Todo usuario asignado al Bid o Job relevante puede ver las actualizaciones publicadas en esa entidad.
  • El Owner puede ver todas las actualizaciones en todas las entidades.
  • Accounting puede ver actualizaciones en Invoices y Jobs pero no publicarlas directamente.

Dashboard Feed

El Dashboard Feed es la página de inicio para todos los usuarios. Muestra un flujo reciente de actividad y alertas activas acotado por rol.

Visibilidad por rol

Ve todo: todos los Bids, todos los Jobs, todas las alertas del inquilino. Panorama completo de operaciones.

Ve actividad y alertas para Bids y Jobs donde es el PM asignado — su jerarquía completa.

Ve actividad y alertas solo para Jobs donde es el Supervisor asignado.

Ve actividad relacionada con Invoices y cambios de estado. Sin alertas operativas.

No tiene Dashboard Feed. Solo ve su lista de Jobs asignados.

Panel de alertas

El Dashboard muestra tres categorías de alertas de forma destacada:

Alert Type Trigger Who Sees It
Priority Cualquier Bid o Job con priority = true. Owner (todos), PM (sus elementos), Supervisor (sus Jobs).
Blocked Cualquier Bid o Job con blocked = true. Owner (todos), PM (sus elementos), Supervisor (sus Jobs).
Stale Jobs Cualquier Job In Progress sin cambio de estado más allá del umbral “stale” (predeterminado: 14 días). Owner (todos), PM (sus elementos).

El umbral de Jobs \"stale\" es configurable por inquilino en CompanySettings. El valor predeterminado es 14 días de inactividad.