Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
Salesforce Developer
medium

From a developer perspective, when do you pick Custom Settings over Custom Metadata?

Both are config patterns. The decision pivots on mutability and deployability.

Custom Metadata Types are deployable as metadata; their records deploy. Read-only at runtime. Cached automatically.

Custom Settings are runtime-mutable. Records do NOT deploy with metadata — you re-enter values in production. Two flavours: Hierarchy (per-org/profile/user) and List (singleton table).

When to pick Custom Metadata: configuration that should ship with codebase (feature flags, integration endpoints, region rules), read-only at runtime, multi-org consistency, packageable.

When to pick Custom Settings: mutable at runtime (Apex needs to write), per-user/per-profile overrides (Hierarchy is great for this), personalisation.

Practical default: pick Custom Metadata for almost all new configuration. Only fall back to Custom Settings when you need runtime-write or per-user values.

Common mistake: using Custom Settings for static config because dev learned them first, then discovering production deployment requires manual re-entry — causing drift.

Why this answer works

Senior. The "Custom Metadata for almost all, Custom Settings only for runtime-write" rule is the modern position.

Follow-ups to expect

Related dictionary terms