Building your own custom features using the Tableau REST API

An overworked Tableau extract refresh task takes a nap. (Photo by David Clode on Unsplash)

An object in motion tends to stay in motion, right? It turns out Newton knew a thing or two about Tableau Server extract refresh tasks. While you can pause and unpause schedules, there is no pause button for an extract refresh task.

Hope is not lost. You can use that creative brain of yours to stitch together a few REST API endpoints to build a process that ends up behaving just like a pause button would.

Often times it’s no joke when you need to pause extract refreshes, and time is of the essence. If a piece of your ETL…

Hey Daniel,

As far as I know there isn't a way to pause an individual task. Here's what I would do:

1) query tasks on the site via REST API

2) use the response the server returns to you to identify the tasks associated with your workbook (each task will be associated with a datasource ID or workbook ID)

3) create a schedule on your server that isn't actually used (set it to disabled / suspended)

4) move the task you want to 'pause' to the dummy placeholder schedule until you want to 'unpause' it, then move it back to a real schedule.

You can also get cute with workbook tags, which you can set and remove using the REST API, which could indicate if a workbook is currently paused or not. That info could also be maintained in a database (better, but more technically involved).

Hope that helps!


How to push beyond a plateau and earn your experience

Photo by KOBU Agency on Unsplash

It’s the nasty trap that catches almost everyone at some point when deciding to adventure out into the world and learn a new skill:

  1. We find a tutorial or course on the subject we want to learn
  2. We watch the relevant videos or read the articles
  3. If we feel extra motivated, we create an exact replica of the tutorial project
  4. We convince ourselves that we now understand that subject or topic
  5. We fail to build anything meaningful and we end up where we started

This is a pattern you know all too well if you’ve ever been stuck in tutorial…


For those who learn better by watching instead of reading instructions

Come one, come all (Photo by Barry Weatherall on Unsplash)

As awkward as it might sound to write a blog post about how you can avoid reading more blog posts, I want to diverse my bonds here and let anyone who values these tutorials know that we are now producing Youtube tutorial videos at a faster rate than we are writing them. Wouldn’t want anyone to miss out!

In 2020 I joined the first cohort of Tableau DataDev Ambassadors, so you can expect even more educational content from me moving forward.

The Youtube channel (Devyx) provides tutorials relevant to Tableau APIs (REST API, Metadata API, etc.) and Python.

My preference…


How to download your Tableau view data without losing the original table structure

Sometimes you just need the rows and columns. (Photo by Nick Hillier on Unsplash)

In another article we covered how you can query your Tableau view data like a boss, and I received some feedback from one person that they wanted to tumble deeper down the rabbit hole.

That brings us to this article, where we will demonstrate how you can download view data for a table (crosstab) in Tableau, and reconstruct the shape of that data as it appeared in Tableau.

This tutorial walks through using the Python tableau-api-lib package and is part of a series on how to tap Tableau Server like a keg, giving you control over Tableau Server’s REST API.

Keeping your analytics on brand with custom email subscriptions

Photo by Kira auf der Heide on Unsplash

I recently overheard a professional speaker from the hospitality industry having a conversation, and they mentioned something that piqued my interest. They were making the case that an inferior product, when paired with excellent service, will often make a customer happier than an objectively superior product with worse service.

If that’s true, it means time spent on improving your service can be more valuable than time spent on improving your product.

One way service manifests itself is through presentation. If you were competing on a cooking show, you’d be packing your knives and going home if your food was great…


Making your data even more delicious with joins and Pandas

Photo by Bannon Morrissy on Unsplash

Between data blends, joins, and wrestling with the resulting levels of detail in Tableau, managing relationships between data can be tricky.

Stepping into your shiny new Python shoes, the world opens up a bit. Instead of trying to squeeze everything into a single data source to rule them all, you can choose your battles.

In our previous articles, we already saw:

  1. Pandas groupby expressions and basic visualizations
  2. Calculations and coloring sales by profitability
  3. Data exploration with advanced visuals

Setting the stage

In this article, we’ll focus on one of the most important aspects of working with data in any ecosystem: joins.

Lucky for…


Translating familiar data exploration from Tableau to Python

One of Tableau’s biggest advantages is how it lets you swim around in your data. You don’t always need a fine-tuned dashboard to find meaningful insights, so even someone with quite a basic understanding of Tableau can make a significant impact.

For this article, we’ll play into that theme of not needing to know everything about a tool in order to build useful things with it. In our previous article, we touched on how you can create custom calculations and color visuals in Python to arrive at visuals that look quite similar to what we build in Tableau.

Today, let’s…


Getting a feel for calculations and color gradients

Photo by Joyce McCown on Unsplash

And we’re back! Let’s pick up where we left off in the first article of this series and use the visual we built there as a starting point.

Before we dive in, let’s set the stage for what we’ll accomplish here:

  1. Build upon what we know about creating calculated fields in Tableau and show how that translates to Python
  2. Demonstrate how we can use color to add depth to the insights our visuals provide

In Tableau, you can often get your brain all twisted around a tricky situation that requires you to produce calculations various levels of aggregation. Some of…

Exploring Data with Python

Tableau got you hooked on data, but why stop there?

Meet your new best friend for data analysis (Photo by Allie on Unsplash)

Like many other people, my first steps into the world of data were taken wearing the shoes of a Tableau developer. As the Tableau skills increased, so did my exposure to other things like SQL and Python.

Over time, learning more about these adjacent tools enhanced my day to day capabilities. As I learned more SQL, I better understood how to optimally feed data into Tableau. That enabled me to take more ownership of the wider data flow, beyond Tableau itself.

Python was a natural next step. It offered flexible control over the Tableau ecosystem via the Tableau Server REST…

Elliott Stam

Data scientist and author. Sometimes seen falling down mountains with a snowboard strapped to my feet.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store