The Force.com platform is remarkable in its ability to scale as your business grows, but all systems have constraints. Even if you don’t think you are ever going to run into some of those limits, designing and managing your data with some of those ideas in mind will help you, and make the whole platform more efficient.
What data do you really need?
Adding data to a Salesforce instance without considering whether it is really needed or not can result in “Data Clutter”. “Data Clutter” can impact your business in much the same way physical clutter impacts you: It is harder to find what you are looking for.
Salesforce is ideally suited to work with operational data sets and targeted transactions. While it can work just fine with very large data volumes, they just take up space and slow down the processing you need done. You can see these impacts in reports, list views or possibly when re-assigning an owner or updating the role hierarchy in Salesforce.
What can you do?
Define Your Operational Data Set and Store Only That Data in Salesforce
Do you need all the records you currently have?
- If not, plan on deleting the ones you don’t need. You may need to archive them first for historical reporting reasons. In many cases, you might be able to simplify your archive strategy by summarizing the data first. Make sure to check with data owners, like legal, as needed before doing any transformations that can’t be reversed.
- You can do in-place archiving in Salesforce by creating a new object with all the fields you need and moving the data from the original to the new one. There are some caveats with this approach, as related records won’t come over automatically and you may need to create independent ID numbers to manage that process.
Do you still need all the fields you have?
We have all been in the situation where we add data points to an object to support an urgent initiative. It might get used for a little while, or maybe doesn’t get used at all, but there it is, taking up space. Even if you don’t see it in list views or reports, it still clutters up your org.
- Conduct a periodic review and delete fields that are no longer needed will help keep your org lean.
Are there whole objects that no longer add value?
- I have seen many cases where a custom object was created to track something via automation, but the process it supported was never really embraced by CRM users. Records are created all the time and no one is looking at them. Objects containing these records could be a good candidate for deleting the whole object instead of just some individual records or fields.
So, you’ve done all of the above and you’re eager to further optimize your Salesforce org in anticipation of significant growth in users and data volume. What else can you do?
Optimize Your Data Visibility Structure
Salesforce has an entire set of tables to keep track of who should have visibility to which records, and there are lots of different ways that someone can be given access if the Organization Wide Default is not Public Read/Write. Salesforce has to keep track of all of those ways, and check all of those related records every time someone makes a request to see a record (page, list view, report, etc.)
In addition, users can get access to records through different membership associations, like public groups, queues, manager access and role hierarchy access. Here are four tips to optimize your Salesforce data visibility structure:
- Review your org wide default settings. Make them as permissive as possible. Don’t assume they need to be private. Individual fields can still be hidden via Field Level Security, so that might allow for more global access to the records themselves.
- Review your use of sharing rules. If there are any that are no longer needed, remove them, especially if you changed the org wide default to something with more visibility.
- Review your use of public groups. Do you have duplicate groups? Do you have groups within groups? Simplify this down as much as possible.
- Review your role hierarchy. The role hierarchy is very powerful at providing built-in access, but it can also be very costly to maintain all the needed data on the back-end. Remember that not everyone needs to be in the role hierarchy. For example, customer support should be able to see all accounts regardless of who owns them. And marketing might need access to all Opportunities regardless of who owns them to do product analysis. If you can’t make the objects themselves public, consider putting all of these kinds of users at the highest level of the role hierarchy. The role hierarchy is not meant to only mirror your org chart.
Now that you’ve cleaned up your operational data set, and simplified your sharing. Here are two related items that you can also consider to improve your performance or prepare for growth.
Data Skew
“Data skew” refers to the condition of having the ratio of records to a parent record or to an owner out of balance. For example, you assign all of your inactive customers to your VP of Sales as the owner. Over time, she has 100,000 accounts that she owns, but each salesperson has an average of 2,000 active accounts they manage. This 50-fold difference in ownership patterns makes it harder for the Salesforce Query Optimizer to know how to get the records you want most efficiently.
A similar situation can arise if you put all of your “old” contacts underneath one parent account record. That one account will “skew” the way the Optimizer thinks about the underlying data and prevent Salesforce from being as efficient as possible.
As a basic rule of thumb, you want to keep any one owner or parent record from “owning” more than 10,000 records. If you find that is happening a lot, revisit the idea of archiving your data, or create a plan to spread the wealth by assigning the records to more owners, or to more parent records.
We understand that customer data is the lifeblood of your business – it is your competitive advantage, driving investments and critical business decisions, establishing marketing, sales and service objectives, and impacting the quality of your relationships with key accounts. As part of any Salesforce engagement, consider taking advantage of our Data Services to give your team an enterprise data management framework that focuses on better management of customer data so you can achieve maximum value from your CRM solution.