Multi Datasource Filters with the JavaScript API

A common challenge in Tableau is to create cross, or multi, datasource quick filters. The workarounds are using a parameter or a sheet as a menu -- neither of which have the same user experience as quick filters.
When you use the JavaScript API, though, you get complete control over the behavior of your filters and their UI, so we can essentially create cross-datasource quick filters.

Here's the finished product:

How'd we do it?

The two sheets in the dashboard point at different datasources. That dashboard has been embedded in the webpage using the

Read More

#Tags: JSAPI

Tables in the East: The Game

Back in 2012, when Tableau 8.0 was still in Beta, I used my favorite 8.0 feature, the JavaScript API, to create a game called Tables in the East: The Game. This was the beginning of my love affair with everything API in Tableau.

Dustin Smith blogged about my experience learning the API, but until this point I had never written about the implementation details. The point of this blog post is to finally talk about those nitty gritty aspects of the game.

But first, a little about the game:

A common demonstrations of Tableau's power is the "Tables

Read More

#Tags: JSAPI

JavaScript API Examples

Now that I have finally built a place to store stuff I build, I'm posting some hopefully-useful things from years past.

Soon, I hope to create an in-depth look at how I made Tables in the East: The Game: The Beta, but for now here are is a set of JavaScript API Examples.

The idea behind this page is that you can see a lot of the basic functionality of the JavaScript API in action. For instance, you can click the filtering tab and see what happens when you 'filter add Furniture'. Below the viz, you also get a look

Read More

#Tags: JSAPI

Dynamic Date Dimensions with the JavaScript API

Here's a Tableau question I had semi-recently: How can I make the date axis change levels as the user adjusts the date range filter. If the user filters to 3 years or so, give us a line chart with 3 points; filters to 8 months, give us 8 points, and so on.

The only way to do it is with JavaScript API and it falls under a set of JSAPI tricks I call "hidden parameter javascript tricks". These tricks open up a whole world of robust interactions that can occur on dashboards.

But first...

Why is it not possible in

Read More

#Tags: JSAPI

Some REST API Pre-release Goodies

All of us on the Tableau OEM team are pumped for the upcoming Tableau Server REST API. I've been spending so much time playing around with it that I haven't had time to play with 8.2's other blockbuster feature, storyboarding (though I have been playing with the Mac version of Desktop plenty!).

Anyways, as we've been working on ramping ourselves up on the REST API we've started to build out some useful tools and examples that can you guys can use to learn the API yourselves.

Postman collection

First up is an awesome Postman collection made by the original

Read More

#Tags: NodeJS, REST API

TabChat: SocketIO + JavaScript API

A relatively common request is for collaborative features in Tableau Server. Here's my crack at creating a web application that includes collaboration between Tableau Server end-users.

TabChat is a web application I built using the SocketIO module for NodeJS in conjunction with Tableau's JavaScript API. It allows multiple people to log in to the same view, chat about it, and see each other's interactions. Check it out, and if you're curious how I made it see the rest of this post.

SocketIO + JavaScript API

SocketIO is an awesome module that implements all the dirty details of WebSockets allowing the web

Read More

#Tags: NodeJS, JSAPI, SocketIO