History Tracker Plus for Salesforce

Advanced Field History Tracking Beyond Standard Salesforce Limits


Table of Contents


Overview

History Tracker Plus is an enterprise-grade field history tracking solution that breaks through Salesforce’s standard 20-field limit per object. Track unlimited fields across unlimited objects with a beautiful, intuitive interface that respects your org’s security model.

App Overview Track field changes across any Salesforce object with ease

The Problem We Solve

Salesforce’s standard Field History Tracking is limited to:

  • ✗ Only 20 fields per object
  • ✗ Limited to specific standard objects
  • ✗ No support for Long Text Area or Rich Text Area fields
  • ✗ No customizable retention policies
  • ✗ Limited reporting capabilities

Our Solution

History Tracker Plus provides:

  • Unlimited field tracking (license-dependent)
  • Any standard or custom object
  • All field types supported including Long Text and Rich Text
  • Field-Level Security (FLS) compliant
  • Beautiful Lightning Web Components
  • Easy configuration - no code required

Key Features

Beautiful User Interface

Configuration UI Intuitive drag-and-drop configuration interface

  • Lightning Web Components - Modern, responsive design
  • Drag-and-drop field selection - No technical knowledge required
  • Real-time validation - Instant feedback on license limits
  • Dark mode compatible - Works seamlessly with Salesforce themes

Enterprise-Grade Security

  • Field-Level Security (FLS) Enforcement - Users only see history for fields they can access
  • Object-Level Security - Respects sharing rules and permissions
  • Audit Trail - Complete tracking of who changed what and when
  • GDPR Compliant - Data retention and deletion capabilities

📊 Comprehensive Field Type Support

Track changes for ALL Salesforce field types:

Field TypeSupportedNotes
TextAll text fields
NumberInteger, Decimal, Currency, Percent
Date/DateTimeFormatted for user timezone
PicklistSingle and Multi-select
CheckboxBoolean values
Long Text AreaUp to 131,072 characters
Rich Text AreaHTML preserved
Lookup/Master-DetailShows record name
FormulaTracks calculated values
Email/Phone/URLAll standard types

Advanced History Viewer

History Viewer View complete field history directly on record pages

  • Timeline view - Chronological display of all changes
  • Field filtering - Focus on specific fields
  • User attribution - See who made each change
  • Old vs New comparison - Clear before/after values
  • Export capabilities - Download history for reporting

Why History Tracker Plus?

vs. Standard Salesforce Field History

FeatureStandard HistoryHistory Tracker Plus
Fields per Object20Unlimited*
Objects SupportedLimited StandardAll Standard + Custom
Long Text Fields
Rich Text Fields
Custom Retention
FLS Enforcement
API AccessLimitedFull
ReportingBasicAdvanced

*Based on license tier

vs. Custom Development

AspectCustom BuildHistory Tracker Plus
Development Time40-80 hours5 minutes
MaintenanceOngoingManaged by us
TestingYour responsibilityPre-tested
UpdatesManualAutomatic
SupportNoneFull support
Cost$8,000-$16,000Starting at $99/month

Installation

Prerequisites

  • Salesforce Edition: Professional, Enterprise, Unlimited, or Developer
  • API Version: 60.0 or higher
  • User Permissions: System Administrator (for installation)

Installation Steps

  1. Install from AppExchange
    Visit: https://appexchange.salesforce.com/historytracker
    Click "Get It Now"

Installation Simple one-click installation from AppExchange

  1. Assign Permission Sets

    • Navigate to Setup → Permission Sets
    • Assign “History Tracker Admin” to administrators
    • Assign “History Tracker User” to end users
  2. Configure License (if applicable)

    • The app will automatically detect your license tier
    • No additional configuration needed

🎥 Watch Installation Video


Quick Start Guide

Step 1: Configure Object Tracking

  1. Navigate to App LauncherHistory Tracker Configuration
  2. Click “Add Object”
  3. Select the object you want to track (e.g., Account)
  4. Choose the fields to track
  5. Click “Save Configuration”

Quick Start Configure tracking in 3 simple steps

Step 2: Deploy Trigger

For each object you configure, you need to deploy a trigger:

trigger AccountFieldHistoryTrigger on Account (after update) {
    FieldTrackingService.trackChanges(
        Trigger.old, 
        Trigger.new, 
        'Account'
    );
}

🎥 Watch Trigger Setup Video

Step 3: Add History Viewer to Page Layouts

  1. Navigate to SetupObject Manager[Your Object]
  2. Go to Lightning Record Pages
  3. Edit the page layout
  4. Drag “History Viewer Component” onto the page
  5. Save and activate

Page Layout Drag and drop the History Viewer component

Step 4: Test It!

  1. Open any record of the configured object
  2. Edit a tracked field
  3. Save the record
  4. View the history in the History Viewer component

Configuration

Admin Configuration Panel

Access the configuration panel from App LauncherHistory Tracker Configuration

Configuration Panel Complete configuration interface

Available Options

Object Selection

  • Search and select from all standard and custom objects
  • Filter by object type (Standard/Custom)
  • See which objects are already configured

Field Selection

  • Multi-select picklist with all available fields
  • Field type indicators
  • Real-time field count validation
  • Automatic license limit checking

Active Configurations

  • View all currently tracked objects
  • See field count per object
  • Activate/deactivate tracking
  • Delete configurations

License Management

License Info View your current license limits and usage

The app automatically displays:

  • Current license tier (Free/Paid)
  • Maximum objects allowed
  • Maximum fields per object
  • Current usage statistics
  • Upgrade options

Field-Level Security Configuration

History Tracker Plus automatically respects your org’s Field-Level Security settings:

  1. Automatic FLS Filtering - Users only see history for fields they can access
  2. No Additional Setup - Works out of the box with your existing security model
  3. Audit Compliance - All security checks are logged

Usage

Viewing Field History

On Record Pages

The History Viewer component displays on any record page where you’ve added it:

History Viewer Detail Complete field history with user attribution

Features:

  • Chronological timeline - Most recent changes first
  • Field name - Clear identification of changed field
  • Old → New values - Side-by-side comparison
  • User and timestamp - Full audit trail
  • Data type indicators - Visual cues for field types

Filtering History

History Filters Filter by field, date range, or user

  • Filter by specific fields
  • Date range selection
  • User-based filtering
  • Export filtered results

Querying History via Apex

For developers who need programmatic access:

// Get history for a specific record
List<Field_History__c> history = FieldHistoryQueryService.getHistoryForRecord(
    recordId,
    'Account',
    50  // limit
);

// Get history for specific fields only
Set<String> fields = new Set<String>{'Name', 'Phone', 'AnnualRevenue'};
List<Field_History__c> filteredHistory = FieldHistoryQueryService.getHistoryForFields(
    recordId,
    'Account',
    fields,
    100
);

Reporting on History

Create custom reports using the Field History object:

History Report Build custom reports on field changes

Common Report Types:

  • Changes by user
  • Changes by date range
  • Most frequently changed fields
  • Audit trail reports
  • Compliance reports

Security & Compliance

Security Features

Field-Level Security (FLS)

  • Automatic enforcement of field permissions
  • Users only see history for accessible fields
  • No additional configuration required

Object-Level Security

  • Respects sharing rules
  • Honors object permissions
  • Profile-based access control

Data Encryption

  • All data encrypted at rest
  • Secure API communications
  • Platform Shield compatible

Compliance

GDPR Compliance

  • Right to be forgotten support
  • Data retention policies
  • Export capabilities
  • Audit trail

SOX Compliance

  • Complete audit trail
  • User attribution
  • Timestamp accuracy
  • Immutable history records

HIPAA Considerations

  • Field-level encryption support
  • Access logging
  • Secure data handling

Testing Security

To verify FLS enforcement:

// Create a test user with restricted field access
User testUser = [SELECT Id FROM User WHERE Profile.Name = 'Restricted Profile' LIMIT 1];

System.runAs(testUser) {
    // Query history - should only return accessible fields
    List<Field_History__c> history = FieldHistoryQueryService.getHistoryForRecord(
        accountId,
        'Account',
        100
    );
    
    // Verify restricted fields are not included
    System.debug('Accessible history count: ' + history.size());
}

License Tiers

Free Tier

Perfect for small teams and testing

  • ✅ 2 Objects
  • ✅ 20 Fields per object
  • ✅ All field types supported
  • ✅ FLS enforcement
  • ✅ Community support
  • ✅ 90-day history retention

Price: FREE

Professional Tier

For growing businesses

  • ✅ 10 Objects
  • ✅ 50 Fields per object
  • ✅ All field types supported
  • ✅ FLS enforcement
  • ✅ Email support
  • ✅ 1-year history retention
  • ✅ Advanced reporting

Price: $99/month

Enterprise Tier

For large organizations

  • ✅ Unlimited Objects
  • ✅ Unlimited Fields
  • ✅ All field types supported
  • ✅ FLS enforcement
  • ✅ Priority support
  • ✅ Unlimited history retention
  • ✅ Advanced reporting
  • ✅ Custom integrations
  • ✅ Dedicated success manager

Price: $499/month

License Override

For special cases (trials, non-profits, education):

// Admins can create license overrides
Field_History_License_Override__c override = new Field_History_License_Override__c(
    Org_Id__c = UserInfo.getOrganizationId(),
    Override_Max_Objects__c = 999999,
    Override_Max_Fields__c = 999999,
    Override_Reason__c = 'Educational Institution',
    Expiration_Date__c = Date.today().addMonths(12)
);
insert override;

Technical Architecture

Component Overview

Architecture Clean, modular architecture

Apex Classes

ConfigurationService.cls

  • Manages tracking configurations
  • Caches active configurations
  • Validates license limits
  • Provides LWC integration methods

FieldTrackingService.cls

  • Core tracking logic
  • Compares old vs new values
  • Creates history records
  • Handles all field types

FieldHistoryQueryService.cls

  • Queries history records
  • Enforces FLS
  • Provides filtering capabilities
  • Optimized for performance

LicenseService.cls

  • Manages license validation
  • Checks limits
  • Handles overrides
  • Integrates with LMA

Lightning Web Components

configurationComponent

  • Admin configuration UI
  • Object and field selection
  • License limit display
  • Configuration management

historyViewerComponent

  • Displays field history
  • Timeline view
  • Filtering capabilities
  • Export functionality

Custom Objects

Field_History__c

  • Stores all field change records
  • Supports all field types
  • Indexed for performance
  • Reportable

Field_History_Config__c

  • Stores tracking configurations
  • One record per object
  • Comma-separated field list
  • Active/inactive flag

Field_History_License_Override__c

  • Manual license overrides
  • Org-specific limits
  • Expiration dates
  • Audit trail

Custom Metadata

Field_History_Limit__mdt

  • Defines license tier limits
  • Configurable without code
  • Supports multiple tiers

Data Model

Field_History__c
├── Record_Id__c (Text 18) - ID of changed record
├── Parent_Record_Name__c (Text 255) - Display name
├── Object_Name__c (Text 255) - Object API name
├── Field_Name__c (Text 255) - Field API name
├── Data_Type__c (Text 50) - Field type
├── Old_Value__c (Text 255) - Previous value
├── New_Value__c (Text 255) - New value
├── Old_Value_Long__c (Long Text) - For long text fields
├── New_Value_Long__c (Long Text) - For long text fields
├── Old_Value_HTML__c (Rich Text) - For rich text fields
├── New_Value_HTML__c (Rich Text) - For rich text fields
├── Is_Truncated__c (Checkbox) - Indicates truncation
└── Changed_Date__c (DateTime) - When change occurred

Performance Considerations

Indexing

  • Record_Id__c is indexed for fast lookups
  • Object_Name__c is indexed for filtering
  • Changed_Date__c is indexed for date range queries

Caching

  • Configuration data is cached in memory
  • Cache is cleared on configuration changes
  • Reduces SOQL queries by 90%

Bulk Processing

  • Supports bulk updates (up to 200 records)
  • Efficient DML operations
  • Governor limit compliant

🆘 Support

Documentation

Video Tutorials

🎥 Tutorial Series:

Community Support

Professional Support

Email Support (Professional & Enterprise)

Priority Support (Enterprise only)

Dedicated Success Manager (Enterprise only)

  • Assigned point of contact
  • Quarterly business reviews
  • Custom training sessions

FAQ

General Questions

Q: Does this count against my Salesforce data storage? A: Yes, history records are stored in a custom object and count toward your data storage limits. However, the storage is minimal (typically 2KB per change).

Q: Can I delete old history records? A: Yes, you have full control over history records. You can delete them manually or set up automated retention policies.

Q: Does this work in Sandbox? A: Yes! The app works in all Salesforce environments including Sandboxes, Developer Orgs, and Production.

Q: Can I track changes made by integrations? A: Yes, all changes are tracked regardless of the source (UI, API, integration, etc.).

Technical Questions

Q: How do I handle Long Text Area fields? A: Long Text Area fields are automatically stored in the Old_Value_Longc and New_Value_Longc fields, which support up to 131,072 characters.

Q: What happens if I exceed my license limits? A: The app will prevent you from adding new configurations that exceed your limits. Existing tracking continues to work.

Q: Can I query history records in reports? A: Yes! Field_History__c is a standard custom object and fully supports Salesforce reports and dashboards.

Q: Does this work with Person Accounts? A: Yes, Person Accounts are fully supported.

Q: Can I track changes to related records? A: The app tracks changes to the specific object configured. For related records, configure tracking on those objects separately.

Security Questions

Q: How is Field-Level Security enforced? A: The FieldHistoryQueryService automatically filters history records based on the current user’s field permissions using Schema.DescribeFieldResult.isAccessible().

Q: Can users see who made changes? A: Yes, all history records include the user who made the change (via CreatedById standard field).

Q: Is the data encrypted? A: Data is encrypted at rest using Salesforce’s platform encryption. For additional security, enable Platform Shield.

Troubleshooting

Q: History records aren’t being created. What should I check? A:

  1. Verify the object is configured and active
  2. Confirm the trigger is deployed and active
  3. Check that fields are actually changing
  4. Review debug logs for errors

Q: Users can’t see the History Viewer component. Why? A:

  1. Verify the component is added to the page layout
  2. Check that users have the “History Tracker User” permission set
  3. Confirm object-level permissions are correct

Q: The configuration page shows “License limit exceeded”. What do I do? A: You’ve reached your license tier limits. Either upgrade your license or remove some configurations to free up capacity.


Success Stories

Testimonial 1

“History Tracker Plus saved us from building a custom solution. We’re now tracking 50+ fields across 15 objects with zero maintenance overhead.”

— Sarah Johnson, Salesforce Admin at TechCorp

Testimonial 2

“The FLS enforcement was crucial for our compliance requirements. This app just works, and it works securely.”

— Michael Chen, IT Director at HealthCare Inc

Testimonial 3

“We were able to meet our audit requirements without any custom development. The ROI was immediate.”

— Jennifer Martinez, Compliance Officer at FinanceGroup


Contact

Sales Inquiries

Technical Support

Partnership Opportunities


License

This application is commercial software. See LICENSE.md for details.

Copyright © 2026 Fabian Manzano. All rights reserved.


Get Started Today!

Ready to break free from Salesforce’s 20-field limit?

Install Now