Next level Storytelling with Tableau and Extensions API

///Next level Storytelling with Tableau and Extensions API


Before I start this blog, a big THANK YOU to Timothy Vermeiren to let me borrow his workbook for this proof of concept!

I am always obsessed by the beauty of interactive data stories. For example the “How 2 M.T.A. Decisions Pushed the Subway Into Crisis” interactive data story from NYT. Telling interactive stories driven by data is becoming more and more important.

Interactive stories are really helping people to see and understand data to make more decisions for themselves.

Tableau has several features to build a story in Tableau. You can either choose the ‘Story’ feature or build a long vertical canvas to create your story. Both options have up- and downsides. A long vertical dashboard may look beautiful, it does not comply with visual best practices and can become very slow. On Tableau Public this is an issue because dashboards will become server-side rendered and therefore not desirable to work with.

Download workbook from Tableau Public

Click to view in fullscreen

Tableau Stories

Tableau Stories is a very nice feature but from a developer point of view not a seamless experience. You have to create seperate story points with a title. Formatting is limited and if you want a piece of text next to a visual you end up with building custom dashboards to include in your stories which means extra work.

With this knowledge in mind I started working on a Extension which could solve these issues.

The current version of the extension is a Proof of Concept. We would love to know what you think of it and how we could improve it. If you like it, we will develop a production ready version of the extension so you can build your own beautiful data story in Tableau!

Let us know what you think!

Storytelling with Tableau Extensions

For my Proof of Concept I am using ReactJS and react-intersection-observer. All text and interaction is hardcoded in the extension for now and looks like the image here on the right. You see the component which is being created by the react-intersection-observer package. The treshhold is on 0.3 so you have to scroll over 30% of the section to go to the next section and therefore visualization.

Click to view in fullscreen

Click to view in fullscreen

Extensions API Functions

I have added functions to change the layout of the dashboard. For example the function applyFilter lets you update a filter of your likings on a specific sheet. And the changeParameter function is build for the sheet switching technique. Of course we can add lots of other functions to do more modification but that is not the point of this Proof of Concept.

Do you have ideas or features you would like to have in the final version of the extension? Let me know!

Let us know what you think!

Whats next?

We would like to start a Beta test for the final extension. Are you willing to participate in Beta testing? Would you be interested in creating your next level story in Tableau with the Extensions API? We would love to have your feedback to create the best possible extension!

Sign up for the Beta now:

Sign up for beta testing
Download workbook from Tableau Public

Click to view in fullscreen


A big THANK YOU to Timothy Vermeiren to let me borrow his workbook to create the Proof of Concept Extension 🙂

The open Tableau community and our customers are very important to us. We love to make great extensions for Tableau and help Tableau users do things more efficiently. If you have feedback, ideas, questions or an issue? Please make sure you share it with us! Use our community forum or contact us directly. To do so, please have a look at our support page.


Merlijn Buit – Tableau Zen Master