The Salesforce Customer Relationship Management (CRM) solution has been the at the center of practically every business for well over a decade. But, while it’s perfectly suited to improve operational efficiency, many discover that it’s challenging to use for multi-dimensional data analysis.
This blog post describes how to bridge that gap by augmenting your Salesforce footprint with a modern cloud data warehouse.
Salesforce at the Center of Your Business
Salesforce is undoubtedly the pioneer in software as a
service and you’d be hard pressed to find a business today that doesn’t use it.
In addition, current Salesforce offerings have expanded beyond the traditional
CRM roots to encompass virtually every aspect of the customer interaction journey,
as the diagram below illustrates.
However, not every company uses all the Salesforce modules
to run their business, and it’s not uncommon to find a mix of differing
solutions. In that event, conventional wisdom suggests that every system feeds
customer data into Salesforce, making the platform “the center of gravity” for
operational insight.
Consequently, it’s relatively easy to use Salesforce to answer common operational questions:
That's Data-driven. Where's the Problem?
I know what you’re thinking: “What’s the problem if all my business data is stored in Salesforce?”
Several issues immediately come to mind.
Firstly, not all your business data belongs or needs to live in Salesforce. Replicating unnecessary data without a specific business reason will just bloat the size of your Salesforce instance and increase storage costs.
Secondly, Salesforce is an application that’s optimized for transactions and not for analysis. Each “database table” is an object with fields and reference data. An “Account” object, for example, can have many with references to other objects. Consequently, performing complex analyses can be extremely difficult and slow to execute.
Finally, the Salesforce data model doesn’t always contain the complete record history, which means that multi-dimensional historical reporting is virtually impossible. In dimensional modeling, numerical and text data are stored as facts and attributes in a star schema pattern. Each dimension provides a different perspective or axis on the transactional data.
For example, suppose we decide to record sales transactions from a retail store. In the Salesforce model, each transaction conducted at the register is logged as either a sale or a return “Order” object. This object may identify the product, customer, account, and date of the transaction. In a dimensional model, you can easily examine all the transactions by product, customer, date or some combination of them. Product, customer and date are considered dimensions of the transaction data.
In summary, it’s really the age-old discussion of when it’s appropriate to use online transaction processing (OLTP) and when to use online analytics processing (OLAP).
Augment Your Warehouse with Salesforce Data
There’s never been a better time to flip the script and put the data warehouse at the center of your decision making. This is because there are several great cloud data warehouses offerings to choose from. Solutions, such as Amazon Redshift, Azure Synapse, Google BigQuery, and Snowflake Cloud Data Platform, are all elastic, pay-as-you-go, self-service options.
So, now you can just import the data that your teams require to do their jobs into Salesforce, while letting related analytics systems handle specialty reporting.
Data Mapping Methods
Many practitioners will tell you that the Salesforce data model is extremely flexible and easy to customize. However, every company which implements a warehouse often defines a data model to suit their entire organizational reporting needs. As a result, it’s much more efficient to add Salesforce data to your organizational data model than the other way around (i.e., the black lines in the above diagram).
Syncing Salesforce with the Data Warehouse
Filling and updating the data warehouse with Salesforce data requires several phases. The first phase is called the “initial load,” which extracts the bulk of Salesforce data and lands it into the warehouse. The second phase focuses on keeping the data warehouse current with incremental Salesforce changes.
Initial Load
Not surprisingly, there are many options to load a data warehouse with Salesforce data. The most common are as follows:
Incremental Updates
We should not be shocked to discover that there’s also a variety
of methods to keep the warehouse fed with current data. They are as follows:
CDC has the advantage that external
systems can be updated in real-time, keeping target data fresh.
Using Salesforce CDC with Qlik Replicate
Arguably the best data movement method is to use Qlik Replicate with
Salesforce CDC because this enables you to stream data changes between a wide
variety of heterogeneous databases, data lakes and data warehouse platforms,
not just Salesforce. Also, Qilk Replicate’s agentless solution moves your data
easily and efficiently without impacting the performance of production data
systems. Read the official documentation
for further details on how to configure Qlik Replicate and Salesforce CDC.
Data Warehouse Automation with the Qlik Data Integration Platform
Another important issue to consider is warehouse automation. Data Warehouse Automation (DWA) accelerates and simplifies the data warehouse lifecycle for faster time to insights.
While the scope of DWA goes beyond this blog post, let me just mention that the Qlik Data Integration platform automates the entire data warehouse lifecycle to accelerate the availability of analytics-ready data. Our model-driven approach helps data engineers deliver on the promise of agile data warehouses by automating every step of the data warehouse pipeline from data modeling and real-time ingestion, to data marts creation and governed data consumption.
In short, by combining Salesforce data with DWA, you can improve your data warehouse accuracy and efficiency, which can deliver demonstrable growth to your business.
To learn more about DWA, click here.