Salesforce technical debt
Salesforce technical debt is the accumulated cost of past shortcuts and outdated choices in an org's configuration and code: overlapping automation, legacy tools, hard-coded values, unused fields and outdated integrations. It is not a single metric but a practice concept — each item makes the next change slower to analyse and riskier to deploy.
Overlapping and legacy automation
Salesforce's architect guidance recommends one automation entry point per object and advises against mixing Flow and Apex triggers as entry points for the same object. It describes flows and triggers coexisting without being designed together as often the result of legacy technical debt, with real governance and maintenance overhead.
Workflow Rules and Process Builder are another source. Salesforce ended support for both on December 31, 2025: existing ones keep running, but without customer support or bug fixes, and Salesforce recommends migrating them to Flow.
Hard-coded values and outdated API versions
Record Ids are not synchronised between a production org and its sandboxes, so code or configuration that hard-codes an Id has to be edited per environment. Integrations calling retired platform API versions fail outright: Salesforce retired SOAP, REST and Bulk API versions 21.0 to 30.0 in the Summer '25 release. That retirement does not affect the API version saved on Apex classes, triggers or flows.
Unused fields and dead automation
Fields nobody reads, inactive or superseded automation, and components left behind by abandoned projects add noise without adding function. Each one still has to be checked before a change can rule it out, so the cost is paid on every impact analysis, not once.
Managing it
Salesforce's Well-Architected guidance on operational excellence recommends putting technical debt in the same backlog as feature work and deliberately reserving capacity to reduce it. The prerequisite is an inventory: you cannot prioritise debt you cannot see.
How aprity helps
aprity produces that inventory from the metadata, read-only: objects, fields, automations and business rules documented in business language, a dependency graph computed deterministically, per-object execution graphs that show where several automations react to the same save, and a business-language diff of rules between scans to follow the clean-up over time.
Related terms
- Salesforce order of execution — The fixed sequence in which Salesforce runs flows, triggers, validation rules and other automation when a record is saved.
- Record-triggered flow — A Flow that Salesforce launches automatically when a record of a given object is created, updated or deleted.
- Managed package and namespace prefix — A managed package is a distributable, upgradeable bundle of metadata; its namespace prefix is the identifier added to every component's API name.
- Validation rule — A formula that blocks a record from being saved and shows an error message whenever the formula evaluates to true.
Sources
Official Salesforce documentation this entry was checked against. Platform behaviour changes between releases; the linked page is the reference.