function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Natalya MurphyNatalya Murphy 

Any reason to use Custom Settings instead of Custom Metadata?

Is there any use case where Custom Settings would still be preferred over Custom Metadata?  Or should all future development use Custom Metadata?
Alain CabonAlain Cabon
To start the discussion, here some points from the Ashutosh Tripathi's best answer (April 24, 2017)

Reason why you would use custom settings instead:

1. Hierarchies - Custom metadata types do not purport to replace hierarchy custom settings which allow you to vary values based on users and profiles across the org. These custom settings can also be referenced in formulas, so can be used in formula fields, validation rules, workflow rules, and visualforce. (Documentation here)

2. Web service credentials - If you’re using test credentials in a sandbox, you don’t have any reason to deploy them to production. More importantly, if you create a sandbox, you don’t want the config for the production versions of your Web Services being created automatically and used by default. However, it is usually best to use Named Credentials for this.

3. Custom setting records’ values can be edited in code, while custom metadata cannot. If you will need to modify your configuration programmatically for any reason (say you’re creating a config console for the user), custom metadata will not work.

Alain CabonAlain Cabon
Need Pick List Data Type in Custom Settings:
Salesforce Platform, AppExchange, AppExchange App Suggestions, Applications, Developer Tools, Salesforce Ideas
Picklists are now available on Custom Metadata Types. For most use cases of List Custom Settings, Custom Metadata Types will provide a much better solution since it gives you better manageability of the object and provides ALM for the records.

ALM = Application lifecycle management.

Custom Settings Limits and Considerations:
If a cross-object formula references a currency field from a custom setting, this field value isn’t converted to the currency of the record containing the formula. The result of the formula could be inaccurate if the custom setting field’s currency and the record’s currency are different.
pradeep kumar yadavpradeep kumar yadav
During Org Migration you cannot migrate Custom Setting Records but Custom Metadata records can be migrated.