One of the most difficult tasks to be undertaken by a business enterprise is that of handling customer data. As businesses are getting diversified and customers are getting increasingly specific and demanding, the need for effective CRM has only increased with time. Salesforce CRM has successfully shouldered the responsibility of helping businesses in simplifying and speeding up the process of customer data management.
Salesforce comes with an array of features, tools and platforms that would help your marketing and sales team in making sense of seemingly complicated and random data. It also helps you in coming up with conclusive analysis, ultimately helping you in making certain key decisions regarding your business organisation.
No two businesses are similar and their requirements are unique. Though Salesforce development service offers numerous efficient tools to the users, there are chances that it lacks certain in-built components that are required by the users to carry out specific processes. During such circumstances, it is advisable for the developers and operators to resort to using custom objects and custom settings.
What Are Custom Objects?
Custom objects are the objects that can be specifically customised by Salesforce Developers when important business data and processes are not fitting into the existing Salesforce objects. They can also be referred to as efficient extensions of services provided by Salesforce CRM according to the requirements of its clients.
A good example of custom object would be that of a courier company opting to create a custom object that helps the executives to store details regarding the scheduling and dispatching of parcels on a weekly basis. Salesforce CRM is built with tools that suit majority of business enterprises, but it is impossible to add objects that would suit to every single business and fulfil every need of the clients. These custom objects also comprise of custom fields that are available to the developers and operators along with the standard fields.
Here are some of the most important features pertaining to custom objects in Salesforce CRM:
- The custom objects help the users in building relevant page layouts that can be viewed by field users. These layouts can also be edited by the users when they are entering data for the records pertaining to the concerned custom objects.
- Custom objects allow the users to import necessary custom object records.
- Custom objects allow the users in creating informative dashboards and reports that can be used by the team to undertake custom object data analytics.
- Custom objects allow the users to create necessary custom tabs for the concerned custom objects in order to facilitate the display of that object’s data.
- Custom objects allow the users in tracking the events and tasks pertaining to the records of the custom objects effectively.
Now that you have understood the meaning and importance of a custom object, it is important to answer the question, “what is custom setting in Salesforce?”
What is Custom Setting in Salesforce?
The concept of custom setting in Salesforce is similar to that of custom objects. Just like a developer or operator could create custom objects if the existing Salesforce objects are not enough for the requirements of the business, custom settings can be created to facilitate application developers in building custom data sets associate all necessary custom data according to customised and specific requirements of a profile, a user, an account or the organisation as a whole.
Once the customer settings data is built, it can be used by flows, formula fields, APEX, SOAP API and validation rules according to the required needs. Though custom settings are fairly easy to use and have a high practical usability in any enterprise, not many developers are well-versed with this concept. It is important to note that custom settings may not be as powerful as custom objects in Salesforce, but it is advisable for a business enterprise to make the best of them for enhancing various business activities.
There is a lot of similarity between custom objects and settings. Both these components allow Salesforce developers to build custom sets of data and associate the same to the relevant entity according to the client’s requirements. Also, users can define custom fields in both custom objects and settings.
However, custom settings have relatively fewer types of fields, which include:
- Text area
While it has all these fields, custom settings do not have certain fields pertaining to custom objects such as Picklist, Lookup, Formula and Master/Detail. Moreover, there is no provision for lookups from the platform of custom objects to that of custom settings. Also, there is no provision for page layouts or record types available to the developers for custom settings. Due to this, Salesforce Developers and operators are handicapped when it comes to re-order necessary fields in a concerned page layout. In order to do so, developers will have to create Visualforce pages according to the requirements.
In custom settings, there is no clear defining of workflow rules, validation rules or triggers that are available in the custom objects. A developer or operator would have to resort to using Salesforce custom objects for performing any activity that deals with data validation or dealing with related records.
In spite of these shortcomings, the custom settings are not useless components and have some very critical benefits. The data pertaining to custom settings is stored in application cache. This allows sufficient access to the users, saving them the cost of making several queries to access the database. Also, using custom settings helps the users in getting rid of Governor Limits almost completely. Provided the user is employing GET methods and not SOQL to query the settings, they will be able to extract all the necessary values with absolutely no impact on the count kept by governor regarding the number of queries performed by the user.
This implies that as compared to using a custom object, a custom setting in Salesforce would be preferred by a user as it only allow a maximum of 100 SQL queries 150 DML operations for every transaction performed before it results into an error. Though the use of custom settings help a user in restricting the Governor limits, it is important to note that certain limits such as heap size and some of the script amendments would still apply to the transactions.
Types of Custom Settings
There are two major types of custom settings – List custom setting and Hierarchy custom setting.
List Custom Setting
This is the custom setting that is very similar to the manner in which custom objects function. The primary purpose of this setting is to cache the necessary data. This implies that the access of the concerned data will be cost-efficient. Also, the users will not be required to use SOQL queries, which are considered to be against the above mentioned Governor Limits.
The data used in List custom setting is more or less similar amongst the profiles and users pertaining to a client. Also, this data is available to all the departments of the concerned client organisation. Summing up, List custom setting provides the Salesforce developers and operators with with a set of static data that is reusable and that can be accessed across the client business organisation. This custom setting is ideal for the data sets that are frequently used in the necessary Salesforce applications.
Hierarchy Custom Setting
While List custom settings possess all the qualities of custom objects and all the shortcomings of custom settings in general, Hierarchy custom settings are the ones having majority of the advantages for the users. By using a highly efficient hierarchical logic, these custom settings allow users to personalise specific settings and associate necessary rows to particular profiles and contacts according to the requirements of the client organisation.
Hierarchy custom settings thoroughly scan the client organisation, necessary profiles and different users for the delegated task and show the most specific and accurate value to the user in return. These settings are also designed in a manner that if the values are not clearly defined, they would show the users values ranking lowest in the hierarchy.
Just like any hierarchy would function, these settings make organisational settings subject to relevant profile settings employed by the users, which are in turn subject to the user settings on an individual basis. These custom settings are highly beneficial to the developers as well as the client organisation owing to their ability to define data in a hierarchical manner. Such settings are most ideal when it comes to defining defaults that are specific to certain Salesforce applications and are to be operated by keeping in mind the specific profiles, users and needs of the organisation.
Looking at both the custom settings, Hierarchical custom settings are more in sync with the core functionality of Salesforce CRM as the services they provide are highly customisable and tailored according to the needs of the users.
“Chitiz Agarwal also known as “Kumar” is a Salesforce.com evangelist and architect who has more than 13 yrs of IT experience. He has worked with big MNCs like Accenture and IBM and now running Techila Global Services from last 7 yrs and grown the company to size of 150+. He has delivered more than 700 projects on Salesforce.com till date and participated from initial requirement understanding to final delivery. His twitter handle is @ChitizAgarwal”