Try Serpent Free
← Salesforce DevOps Glossary

Custom Setting

Custom settings store data, not metadata, so their values usually need a separate data migration step that a standard deployment won't handle.

Definition

A custom setting is a special kind of custom object, either List, a set of reusable static rows, or Hierarchy, values that cascade by org, profile, or user, used to store configuration that Apex and formulas can read without a SOQL query, since custom setting data is cached. Unlike custom metadata types, custom setting records are data, not metadata, so they don't move with a Metadata API deployment: a change set carries the field and object definition but not the rows, a common gap when a team assumes “it's Setup configuration, it'll deploy like everything else.” Salesforce has recommended custom metadata types over custom settings for new work for years, specifically because metadata deploys and data doesn't, but plenty of orgs still carry legacy custom setting usage that needs a scripted data load alongside every metadata release. Our guide to managing Salesforce metadata covers the metadata-versus-data distinction.

In practice

How it works in Serpent

Serpent deploys metadata and data together in the same release, so custom setting values that need to move with a change ship in the same task instead of a separate manual data step. See release management in Serpent for how metadata and data ship in one pass.

Metadata and data in one deployment flow in Serpent

Start free. No credit card, no install, no commitment.

Set up in under 15 minutes. No DevOps hire needed.

Curious about faster shipping before you dive in? Let's talk

Commitment free!