You may be a Tableau CRM dashboard builder who intends to build performant dashboards, but you don’t know where to start. Maybe you have used a few techniques for quick wins, or you may already be aware of the best practices and are reading this blog to discover new techniques you can use to further tune your dashboard.
Whether you have little experience in Tableau CRM Dashboard building using Analytics Studio or consider yourself somewhat of an expert, the goal of this multi-part blog series is to help you better understand Tableau CRM Dashboard internals, identify bottlenecks, the best practices used to improve its performance, and additional recommendations to try out in your organization.
Tableau CRM Dashboard – How it works?
Before we get to the best practices, a quick overview of the main components of a Tableau CRM Dashboard.
When users load a Tableau CRM dashboard in the browser, there is a rendering engine which then issues query/ies, these queries are served by a query engine, which processes the query and fetches data from the data store in Salesforce datacenter. So if your dashboard is not loading fast enough, there’s a possibility that certain external factors could be delaying.
The goal is to find which components are causing the slowness.
- Rendering of the dashboard in the browser
- Slower queries
- Data shape and size
- External factors like network or hardware issues in user’s device.
Role of Dashboard Inspector
Before you finalize the dashboard, run a performance check on the dashboard and its queries to ensure that everything is running optimally. The dashboard inspector identifies different types of bottlenecks, like query issues and redundant queries, and provides recommendations to improve performance.
You can find step-by-step instructions on running the dashboard inspector here.
Dashboard inspector identifies and evaluates hotspots, and provides recommendations in the following areas:
- Number of queries in a dashboard: With time, complexity, content, and number of queries can increase in a dashboard. However there are efficient ways in which we can design dashboards to reduce the number of queries, we will cover those in the next section.
- Redundant Queries: With multiple widgets displaying similar content it is easy to lose track. Dashboard inspector helps you to track and reduce redundant queries. Merging such queries can significantly improve your dashboard’s performance.
- Suboptimal queries: An optimal query can make a significant impact on the performance of a dashboard. We will be sharing some of the best practices for writing optimal queries in the next section.
Now that we know a bit more about how TCRM dashboards work and how Dashboard Inspector can be an important assessment tool, let’s take a look at the Best Practices.
To keep it more digestible, I’ve split the best practices into 3 broad categories:
- Performance improvement through cosmetic changes
- Performance improvement with efficient queries
- Performance improvement by leveraging advanced network capabilities
I intend to cover the first category in this blog and will talk about the other 2 categories in the next blogs. Don’t worry, you’ll find references to them both at the bottom of this page.
Performance improvement through cosmetic changes
Something as simple as cosmetic changes can help improve the performance and overall health of your dashboard. How? Let’s check that out.
Dashboards modularized with pages have better performance
Pages in Tableau CRM make it easier to tell more stories within one dashboard, decrease the need for bindings, and enhance the look and feel of dashboards.
You can represent the data in a dashboard effectively by splitting the content into multiple pages, improving the user experience in navigating through the dashboard. One of the significant benefits of using pages is improved performance of the dashboard as unlike a regular dashboard only the steps and hence queries in the default or landing page are fired. You can find step-by-step instructions on creating pages here.
Dashboards with global filters perform ~25% better
Intermediate queries originate from steps that have to fire multiple times. These usually arise due to dashboards that have initial selections, hence resulting in more queries and slower dashboards.
The Global Filters functionality enables filters at the dashboard level. Use a global filter to apply the same filter to multiple queries in the dashboard. For example, a dashboard has two charts comparing two sales reps’ performance. To compare apples to apples, both charts must have the same filters. When possible, use a global filter instead of a selection-based filter to improve dashboard performance. If configured, users can change a global filter while viewing the dashboard. You can find instructions for using the global filters here.
Reduce Network Round Trips
Consider the number of network round trips your query might initiate. There are techniques to reduce network usage. This is especially important for mobile, where network latency can be high.
Note: Through Dashboard Inspector, you can check the number of roundtrips done by your query/ies.
An example is faceting in a dashboard. Say you are using SAQL queries to display grouped values in a list selector, but you want the displayed values to look different (for example, you might want to show dates differently). You might choose to add an intermediate query to filter the stream based on the list selector values in order to display your preferred text. However, this adds an extra network round trip, so it’s not an optimal solution.
In this case, a better solution might be to ensure your data values—those used in the list selector—are those you actually want, and have the data transformed appropriately at load time via the ELT process.
Note: Bindings, while powerful, increase the number of roundtrips. Use them judiciously.