Introduction and Disclaimer:
This post is a discussion I would like to start. The text applies to enterprise-sized implementations. This is purely my personal opinion and I would be happy to get your feedback and ideas. I state it quite black and white while I understand that reality of your project is more nuanced. Please view it as a guideline rather than a strict rule.
I only talk about core Salesforce. This includes standard and custom Salesforce objects. Tableau CRM, Big Objects, or Heroku as near-platform or on-platform solutions are not considered core by me.
Theory: Salesforce is for people, Salesforce is not a DWH or MDM
-> Salesforce is for operational data only
-> Salesforce is not for tactical and strategical reporting
-> Salesforce is not a Data Warehouse
-> Salesforce is not a Master Data management
I think Salesforce is best suited to help sales/service/support… people to do their daily job. These people need only data they are currently working with and a fast, responsive Salesforce. Salesforce is very good for that. Furthermore, Salesforce is good for operational, day by day reporting by team-leads. Therefore all data which is not needed for these front-line people or their managers do not serve any value for these people and might slow down your staff.
Salesforce is not good for:
– Holding large volumes of data
– Reading/updating/crunching large volumes of data
– Tactical and strategic reporting on large volumes of data
Long term storage and reporting:
Do not store data in Salesforce which is not needed by your front-line people to fulfill their task. Warm or cold data should be stored in a dedicated system, a DWH, or Data Lake. All strategic or tactical reporting should be done based on data from DWH or Data Lake and not directly on Salesforce data.
Master Data Management:
Master Data Management is the task of creating “a golden record” across several systems. This record has to be combined from different systems, aggregated, and profiled into several other systems. Since the record needs to be kept even if it becomes cold the golden record should not be in Salesforce but in a dedicated Master Data Management Solution.
Company: A large B2B company has 35 million customers. The company sells via a custom webshop. The company wants to build a Service Center based on Service Cloud. Customers are expected to create on average 0.2 cases per year. Furthermore, the company needs a way to identify customers across different systems (ERP, Finance Reporting, Marketing Cloud, Lifetime analysis…).
Solution 1: Salesforce as Master Data Management and Service Cloud
Every time a customer buys something in the online shop or creates a case a “Customer” record is created in Salesforce and checked against the existing customer records in Salesforce. If needed duplicates are merged into a golden record.
All other systems connect to Salesforce to create, read, and update customer golden records in Salesforce. The Service Department works on the same Org.
Master Data Management:
The Salesforce Org has to store, de-duplicate, and aggregate 35 million Accounts and Contacts. All master data management logic is built-in Salesforce.
All downstream systems (ERP, Finance Reporting…) have to constantly check against Salesforce. Downstream systems complain: CRUD operations are slow, Salesforce down-times and read-only times bring the company to a complete stop.
Integration Team has to build complex fall-back solutions in case Salesforce is down.
Salesforce has to be at the center of your whole enterprise architecture. Many heavy calculations to facilitate MDM and golden record creation need to be built. Salesforce needs to store potentially data that is not needed for its business case of Service.
Service Cloud users complain about slow CRUD times. Row-Lock errors and time-outs are common. Service Cloud users can not use search since old cases from years ago clutter up all results. Team-leads can barely build reports without the help of the Salesforce team.
The team complains that every change to either Service Cloud or MDM “Golden Record” calculations become more and more complex. De-Duplication calculations time-out on a regular basis.
Row-Lock errors are commonplace. Salesforce team spend a considerable amount of time on building fixes for all the Salesforce limits.
Solution 2: Salesforce for Service Cloud, Dedicated Master Data Management, DWH for Cold Data Master Data Management:
A dedicated Master Data Management tool is built to store the golden record. Creation of golden record is down in Master Data Management tool.
All downstream systems CRUD the MDM to get the latest information about the customer. MDM system has an SLA of 99.9999 via built-in redundancy.
Service Cloud hosts only “warm” data. All data which is not used for service anymore is sent to a dedicated DWH. If needed data is retrieved from DWH into Salesforce on Demand.
CRUD operations run fast, the system can be optimized for speed. Salesforce never stores more than 7 million Accounts.
The Salesforce team can focus on optimizing service processes instead of fixing limit issues.
Implementing and adopting automation becomes significantly easier since no MDM logic is built into Salesforce.
Heroku / Big Objects / Tableau CRM:
Tableau CRM, Heroku and Big Objects can be used to solve some of the DWH or even MDM requirements. These technologies can be very beneficial in certain circumstances.