Extensions for Tableau

As you probably already know if you have followed some of my content over the past couple of years, I am pretty excited about the release of the Extensions API for Tableau. This blog is an overdue follow up from #TC18, where Tamás Földi and I presented on Extensions, demoing a number of extensions covering both advanced visualization types and capabilities (like write back). This post provides some of my own perspectives on Extensions in Tableau as well as the content presented during TC18, along with some new stuff.

First, my thoughts on extensions…

The Good (really good!):

  • With the implementation of the Extensions API, assuming that it is kept up and continuously improved upon by Tableau, we can now pretty much allow for anything to be done within Tableau. Whether this be to make advanced visualizations simpler, or extend the foundation that Tableau provides. The only limit here is your imagination (although I do have to confess to saying the same thing about building visuals directly within Tableau as well).

  • A lot of blockers we run into within Tableau, are already solved. Extensions allow us to leverage solutions out there which may not be Tableau specific. The work I demonstrated at TC18 shows this, taking advantage of D3 and Semiotic to allow for visualization types which previously required a lot of hacking and trickery within Tableau.

  • The Extensions API feels very “familiar” as it is pretty close to the JavaScript API, thus the learning curve is not as steep if you have used the JavaScript API previously.

  • We have BARELY scratched the surface of what is possible, I am looking forward to what the community comes up with over the next year (see my first point below though).

The Bad:

  • Tableau Public does not currently support Extensions (even though it is on >= 2018.2 version). This is a HUGE blocker for community driven Extension development, iterations and learning. As a comparison, countless demonstrations were done via Tableau Public for the JavaScript API, I myself leveraged these to first learn the JavaScript API and then give back by providing some write ups and demonstrations of my own via Tableau Public. This also allowed Tamás and I do to more experimental work with the API as well, and to share this work publicly. That could all be done with only Tableau Public, no desktop license required. Extensions on Tableau Public will enable exponential jumps in capabilities implemented via open source, community driven development and improvements. This needs to be addressed to enable Extension development and invaluable feedback iterations for developers.

  • All developers (including me) are currently building extensions with their own look and feel. This can and will ultimately lead to a disjointed feeling for end users who may leverage extensions from several different developers on a single Dashboard.

  • Tableau’s extension gallery does not provide a way for developers to monetize extensions, this again leads to developers and vendors coming up with their own solutions for payment. The result of this is that it will be more difficult to leverage this content within your company as getting approval to pay a bunch of different vendors for yearly extension subscriptions will likely be a challenge.

  • It is up to YOU (and your company) to do your own due diligence on any extension(s) you are looking to bring into your environment. You should treat extensions the same as any other application you would introduce into your environment, and assess them for security vulnerabilities, etc. This one is not on Tableau, it is on you to be responsible when evaluating and leveraging extensions.

So… Are they worth it? DEFINITELY! But proceed with caution as one misstep can flip this equation on you in a heartbeat, with significant consequences.

Time to get off my soapbox and show you some content. Here are four extensions I have been able to develop to date. All of these were built in collaboration with Tamás Földi and Abraham Szilagyi of StarSchema, ltd. They all leverage D3 and three of the four also leverage Semiotic by Elijah Meeks, which, via D3, handles pretty much all of the hard work, I simply leverage and extend these technologies into Tableau. Below I give you a one liner about each of the four extensions built as of this post and a small GIF showing some one piece of their functionality. Lastly, but definitely not least, here is my Github repo that has all four trex files for you to use on your own (same one shared at TC18). Note that these hit Github pages sites on my Github as well (so they will not work in situations where you cannot call out to Github from Tableau Desktop and/or Server.

Map Projections (initial version released):

There are examples of using different map projections other than Mercator in Tableau. They involve custom shape files and/or hackery/trickery. Why not make this easier?


Hierarchy Charts (initial version released):

The Tableau community, including me, have spent countless hours building and then sharing techniques on how to build these types of charts within Tableau. The approaches often include the need for pre-processing of data and advanced hacking. Why not make this easier?

Network Charts (under development):

I have seen a number of network diagrams in Tableau, most of these require extensive pre-processing of data in things like R or NodeXL. Charts like the Chord diagram have been built completely in Tableau, but contain very advanced and heavy computations. Why not make this easier?

Swarm with Summary (under development):

There is work out there around building things like bee swarm and violin plots in Tableau. Some of the implementations require pre-processing, like this violin plot example by Ben Moss. Also, why not allow for more visual aggregations beyond Tableau’s built-in Box Plot, and make this easier while we are at it?

I hope you find this overview useful and if you have comments and/or features you want to see in the above extensions leave a comment below or ping me on Twitter.