The Problem Every Salesforce Team Hits.
If you've been on the Salesforce platform long enough, you know the moment. An executive asks “who changed the Amount on this Opportunity?” and your admin discovers the field wasn't one of the 20 being tracked. Or a compliance audit requires field change records from two years ago, and the data was purged months earlier.
Salesforce's native field history tracking has two hard constraints:
- 20 fields per object — standard or custom, no exceptions.
- 18 months of retention — after that, data is purged from standard FieldHistory objects. It remains accessible via API for roughly six additional months before it's gone entirely.
For many organizations, these limits are perfectly adequate. But for teams dealing with regulatory compliance, complex sales processes, or high-value data governance, they create real operational gaps.
What Salesforce Offers: Shield Field Audit Trail
Salesforce's answer to these limitations is Field Audit Trail, part of the Salesforce Shield bundle (which also includes Platform Encryption and Event Monitoring). Field Audit Trail extends the limits meaningfully:
- Up to 60 fields per object
- Up to 10 years of retention in the
FieldHistoryArchiveBig Object - No additional storage cost — data in the Big Object doesn't count against your data storage allocation
These are real improvements. But Shield comes with trade-offs that are often understated.
No built-in interface
Once data moves to the FieldHistoryArchive Big Object, there's no UI to view it. You need SOQL queries filtered by FieldHistoryType and either ParentId or CreatedDate. For practical purposes, this data is accessible to developers only.
Limited query flexibility
Big Objects don't support full-table scans or aggregate functions. You can't ask “show me all Amount changes across all Opportunities last quarter.” You need to know the specific record ID or date range before you query.
Still capped at 60 fields
60 fields is better than 20, but it's still a hard limit. Organizations tracking complex objects like Opportunity, Case, or custom regulatory objects with dozens of important fields can hit this ceiling.
What We Built: Field History Console
We're a team of Salesforce engineers who spent years implementing field history workarounds for enterprise clients. After seeing the same constraints play out across hundreds of orgs, we built Field History Console — a 100% native Salesforce managed package designed as a comprehensive Salesforce field history tracking solution.
The key architectural decision: two editions that share the same full-featured console, REST API, and admin tools. The only difference is where your data lives.
Standard EditionFree
Reads your existing Salesforce FieldHistory data and surfaces it through a modern console with search, filters, reporting, CSV export, and customizable themes.
Premium Edition
Replaces Salesforce's data source with our own tracking engine — unlimited fields, no automatic data purge, and 99.5% storage savings through proprietary compression.
How 99.5% Storage Savings Works
Most Salesforce field history solutions store one record per field change. In Salesforce's billing model, each custom object record consumes approximately 2KB of data storage regardless of how much data it actually contains.
Our Premium engine packs thousands of field changes into a single container record using 10 Long Text Area fields, each with 131KB of capacity. A single container holds thousands of changes while consuming the same 2KB of billable storage as one change record in a traditional system.
| Approach | 1,000 Field Changes | Records | Billable Storage |
|---|---|---|---|
| One record per change | 1,000 changes | 1,000 records | ~2 MB |
| Our compressed storage | 1,000 changes | 1–2 containers | ~2–4 KB |
Integrity Verification
Salesforce's native FieldHistory objects are system-managed and immutable. Any solution that stores data in custom objects (including ours) faces a different challenge: custom records are technically editable.
We built SHA-256 Merkle tree verification into the storage pipeline. Every field change gets a leaf hash, every transaction gets a Merkle root, every container gets a sorted container hash. If anyone modifies a record, the hash chain breaks and the tampering is detectable. This runs automatically with no configuration or performance impact.
Cross-Object Transaction Linking
When a single save triggers cascading updates across related objects — an Account update that flows to Contacts, Opportunities, and Orders — Salesforce tracks each change independently with no link between them.
Our Premium engine captures the Salesforce Request ID, linking every change from a single transaction across all affected objects. One click shows the complete picture.
REST API — Both Editions
Both editions include a REST API with 9 endpoints. Three consumption patterns handle different scale requirements:
- Synchronous queries with cursor-based pagination for interactive use
- Scroll sessions with server-managed cursors for large datasets
- Async exports that run in the background and deliver downloadable CSV files
The API can be configured as an MCP server, letting AI tools like Claude or ChatGPT query your Salesforce field history directly.
Secure Data Redaction
Neither native field history nor Field Audit Trail offer selective removal of specific field history for compliance. Once data is captured, it stays until retention expires.
Our Premium Edition includes certified data redaction. When compliance requires it — GDPR right-to-erasure, internal policy, legal hold release — you can remove specific field history on demand with a cryptographic certificate proving the removal was complete.
Side-by-Side Comparison
| Capability | Native History | Field Audit Trail | Field History Console |
|---|---|---|---|
| Fields per object | 20 | 60 | Unlimited |
| Data retention | 18 months | Up to 10 years | No automatic purge |
| User interface | Basic related list | None | Full console |
| Reporting & export | Not in standard reports | Requires developer access | Built-in with CSV export |
| REST API | Basic SOQL | Basic SOQL | 9 endpoints + scroll sessions |
| Cross-object linking | None | None | Request ID correlation |
| Data redaction | Not supported | Not supported | Certified with audit trail |
| Storage impact | Included | Included | 99.5% savings |
| AI / MCP support | None | None | MCP server compatible |
| Cost | Free | ~10% of SF contract | Fraction of Shield |
Who Should Consider This
Field History Console isn't for everyone. If you track fewer than 20 fields per object and 18 months of history is sufficient, native tracking works fine — and our free Standard Edition can still give you a better interface on top of it.
But if any of these apply, it's worth a conversation:
- Regulatory compliance requiring long-term field change records
- More than 20 fields that need tracking on key objects
- Teams that need to search, filter, and report on field history
- Integration requirements needing structured API access to history data
- Multi-object processes where cross-object visibility matters
- GDPR or privacy requirements demanding selective data redaction