Core Feature

Activity Tracking & Ghost Recorder

Every change, comment, and hour logged in Delivery Hub is automatically tracked. The Activity Feed gives project managers a real-time view of what is happening across all work items — who changed what, when, and why. Ghost Recorder runs silently in the background, capturing view activity without any user action.

Key Features

Ghost Recorder

A utility bar component that runs silently in the background. Ghost Recorder detects when users view work item records and logs view activity without any user action. It is injected into the utility bar across all Lightning apps, so there is nothing to enable and nothing to click — it simply observes and records.

Field Change Tracking

Configurable via TrackedField__mdt custom metadata. Track changes to any field on any object — stage transitions, priority updates, developer assignments, status changes. Each change creates an ActivityLog__c record capturing the old value, new value, timestamp, and the user who made the change.

Activity Feed LWC

A tabbed feed component with four views: All Activity (chronological stream of every event), Conversations (comments only), Hours (time logs only), and Changes (field changes only). Filterable by work item. Displays relative timestamps like "2 days ago" for quick scanning.

Time Logging

A built-in time logger component for recording hours against any work item. Log hours with a date, description, and automatic total calculation. Hours roll up to both the work item level and the entity level, feeding directly into invoicing and budget tracking.

Cleanup Job

The DeliveryActivityLogCleanup scheduled job runs on a configurable schedule and purges old activity records to prevent storage bloat. Retention period is configurable — keep 90 days, 180 days, or whatever fits your org. The job is declared global for managed package compatibility.

Activity Timeline

A Gantt-style visualization of active work items with projected UAT dates. Color-coded by status: green for on track, amber for due soon, and red for overdue. Gives project managers a single view of the delivery schedule across all in-flight work.

Tracked Event Types

Five categories of events flow into the activity stream. Each type is visually distinct in the feed and independently filterable.

View

Ghost Recorder logs when a user opens a work item record page. No click required.

Stage Change

Dedicated handler captures every status transition with old and new stage values.

Field Change

Any field listed in TrackedField__mdt generates a change record with before/after values.

Comment

New comments on work items are captured in the activity stream alongside all other events.

Time Log

Hours logged against a work item appear in the feed with duration, date, and description.

How It Works

From observation to cleanup — the activity tracking pipeline is fully automatic. No manual tagging, no missed events.

1

Observe

Ghost Recorder silently detects record views. TrackedField__mdt triggers fire on field changes. Users log hours and comments through standard LWC components. All events flow into ActivityLog__c records automatically.

2

Record

Every event creates an ActivityLog__c record with a consistent schema: the parent work item, event type, old and new values (for field changes), the acting user, and a timestamp. No data is lost — even view events are persisted.

3

Surface

The Activity Feed LWC queries ActivityLog__c records and renders them in a tabbed, filterable feed. Relative timestamps, user avatars, and event-type icons make the stream easy to scan at a glance.

4

Clean Up

The DeliveryActivityLogCleanup job runs on schedule and removes records older than the configured retention window. Storage stays lean without manual intervention.

Ghost Recorder Deep Dive

Ghost Recorder is not a tab or a button — it is a utility bar component that lives in every Lightning app. Here is how it works under the hood.

User navigates to a Work Item recordStandard Lightning page navigation
Ghost Recorder detects the page referenceUtility bar LWC listens for navigation events
Apex creates an ActivityLog__c recordType: View, User, Timestamp, Work Item ID
Activity Feed shows the view event"Glen viewed T-0042 — 2 minutes ago"

TrackedField Configuration

Field change tracking is entirely declarative. Add a TrackedField__mdt record for each field you want to monitor — no Apex changes, no deployment, no downtime.

Object + Field Name

Each TrackedField__mdt record specifies the SObject API name and the field API name to watch. When that field changes on any record of that object type, an ActivityLog__c record is created.

Old Value / New Value

Every change record captures both the previous and current values. The Activity Feed renders these as a clear before/after comparison, making it easy to trace exactly what changed and when.

Dedup with Stage Changes

Stage transitions have a dedicated handler that creates richer log entries (with phase mapping and color coding). The generic field change tracker skips stage fields to avoid duplicate entries in the feed. Clean data, no information loss.

Technical Details

Activity Tracking is built on native Salesforce — custom objects, custom metadata, Apex triggers, and Lightning Web Components. No external dependencies.

ComponentDetails
ActivityLog__cCore object storing all tracked events — views, field changes, comments, time logs, stage transitions
TrackedField__mdtCustom metadata defining which fields on which objects generate change records. Declarative configuration, no code changes needed.
Ghost Recorder (LWC)Utility bar component using NavigationMixin to detect record page views. Zero-click, always-on across all Lightning apps.
deliveryActivityFeed (LWC)Tabbed feed component — All Activity, Conversations, Hours, Changes. Filterable, relative timestamps, lazy-loaded.
deliveryTimeLogger (LWC)Inline time entry with date picker, description, and auto-calculated totals. Hours roll up to work item and entity.
DeliveryActivityLogCleanupGlobal schedulable Apex job. Configurable retention period. Prevents storage bloat in long-running orgs.

Activity tracking is always on.

Every Delivery Hub installation includes the full activity tracking system. Ghost Recorder activates automatically via the utility bar. Field change tracking is pre-configured for the most important fields and extensible via TrackedField__mdt. No setup required.