Salesforce and Tableau: Integrating Tableau Dashboards within Salesforce.com framework
This article talks about the technical aspects that should be considered to integrate/embed Tableau Dashboards into the Salesforce portal.
We would be exploring the need to embed Tableau Dashboards in Salesforce and the options available to achieve this along with the pros and cons of each option. Later we would focus on the option of using Sparkler, which integrates with the Salesforce Canvas framework, which is one of the best ways to integrate Tableau Dashboards into the Salesforce framework. We would also look at the high-level configuration steps of Sparkler and discuss some challenges that we usually face during configuration.
Why do we need to embed Tableau Dashboards in Salesforce in the first place? Can't we simply ask users to access the required dashboards in Tableau Server?
To answer this question in a nutshell, we need to embed the dashboards to maintain context and save time by reducing the sales cycle. We do not want a Salesforce user who is generally a Sales Representative to switch from Salesforce to Tableau from one place to another to answer questions that arise in the mind. This would go against the principle of being able to answer questions at the speed of thought.
Other factors include providing more interactivity, improving the adoption of Tableau dashboards that have been developed by making them easily accessible to sales representatives, and analyzing integrated data from other systems along with Salesforce data.
Now that we know why this is important, we can dive into the question of how to implement this.
What are the options available to embed a Tableau Dashboard into the Salesforce portal?
There are mainly two ways to do this.
We will examine further the first option of using the Salesforce Canvas Framework, as it is more robust in terms of security and provides better integration in terms of passing parameters between Tableau and Salesforce.
What is the Salesforce Canvas Framework?
Canvas Framework has been created in Salesforce to easily integrate third-party applications. Third-party applications can be exposed as a Canvas App. These Canvas Apps can be made available in several locations, such as the Salesforce or VisualForce or Publisher. More details can be found here.
What is Sparkler (Salesforce Canvas Adaptor) from Tableau?
Since Tableau Server does not have a built-in adapter for Canvas, Tableau has created a Java adapter called Sparkler that helps in the handshake between Tableau Server and Salesforce Canvas. It is freely available for download on the Tableau's website.
How to configure the Salesforce Canvas Adaptor (Sparkler) for embedding Tableau Dashboards within Salesforce?
The exact steps would vary depending on whether we are using Tableau Online / Tableau Server. On which server we are configuring Sparkler. If we are using a self-signed SSL certificate or a corporate certification authority. The details you can find in the document shared by Tableau. The high-level steps are as follows:
- Configure Sparkler
- Install Java
- Install Apache Tomcat
- Enable HTTPS on Tomcat
- Install Sparkler
- Enable SSL on Tableau Server (if it's not already enabled)
- Configure Tableau Server trusted authentication
- Configure Salesforce.com for the Sparkler Connected App
- Salesforce field to be mapped to Tableau user
- Validate Sparkler configuration
- Deploy Sparkler on Tomcat
- Configure Sparkler and test the adapter
- Configure Salesforce VisualForce Page
- Create VisualForce Page and add new tabs within that
- Embed Tableau Dashboards and test the rendering of the dashboard
Once Sparkler is configured and Salesforce and Tableau can communicate with each other, communication takes place according to the following protocol.
Flow of events when a request is made:
- A browser accesses a page in Salesforce
- Salesforce Page is rendered in a Canvas iFrame containing the sparkler request
- Request sent to Sparkler is passed on to the Tableau Server
- Tableau sends the trusted ticket to Sparkler and that is passed on to the browser
- Now the browser has got the required authentication and can interact with Tableau server seamlessly and renders the report in the Salesforce
- The documentation available currently as of Aug 2020 is for older versions of Tableau and hasn't been updated for the changes in the latest versions like 2020.x.
- For example, we don't have tabadmin in the latest version of Tableau. Equivalent commands need to applied accordingly.
- If we are using a self-signed SSL certificate, then we need to follow additional steps in order to make Salesforce talk to Tableau. It is not recommended for Production instances to use self-signed SSL certificates and we won't be getting into the details of it for the purpose of this article.
- The exact syntax for configuring the options in Sparkler would take a few trials to get it to work.
Although there are some challenges that we can find, it will be possible to configure them with the information provided in the document shared by Tableau and the useful forums that discuss this topic.
Embedding Tableau Dashboards into Salesforce will help in improving the sales cycle and efficiency of the sales representatives significantly. One of the best ways to embed Tableau Dashboards in Salesforce is to use the Tableau Salesforce Canvas adapter called Sparkler. The Sparkler configuration requires some steps in which we must make changes at the Salesforce endpoint and at the Tableau endpoint so that reliable authentication and seamless communication are possible. Embedding of Tableau reports into Salesforce may require some effort, but it is a one-time exercise that will result in many benefits.
Ksheetij Dongre is a Principal Consultant at KPI Partners. He is a business intelligence professional specializing in data warehouse reporting. In addition to his ETL experience, he has worked extensively on reporting tools like Tableau, OBIEE, and Business Objects. He has implemented custom BI DW solutions for clients across various industries including Finance, Retail, Manufacturing, Logistics &High Technology.