The best way to learn how to build your own extensions is to look at the sample code. To examine the sample source files to see how Tableau dashboard extensions work, you can clone or download the Extensions API SDK on GitHub and run the samples.
To download the Extensions API SDK, if you have not already done so, see Get Started.
You can also check out the dashboard extensions from the community, see Community Extensions.
In this section
The following instructions assume that you have already downloaded and extracted the files or have cloned the Extensions API SDK to your desktop.
The dashboard extension samples are in the
Samples folder. There is also a step-by-step tutorial you can follow in the
Shows how to use the
getDataSourcesAsync function to find the names of the data sources for each worksheet in the dashboard. Like the Filtering sample, the DataSources sample makes use the
Promise.all function to combine the promises from the asynchronous calls together, and then waits for them to resolve.
Demonstrates how to use the
getFiltersAsync function to find and display the active filters in the dashboard and calls the
addEventListener function to set a
FilterChanged event on each workbook in the dashboard. Any time a filter value is changed, the extension refreshes the table that displays the active filters.
Finds and displays all the parameters in the dashboard and then sets an event listener that waits for a parameter to change, which triggers a refresh.
settings namespace to save settings (key-value pairs) for the extension. Demonstrates how you can save settings for each instance of an extension, which enables sharing common views of a workbook.
Demonstrates how you can use the
UI namespace to create a modal dialog box (or popup) that runs another extension, which allows users to interact and change the settings for the parent extension. This sample controls the background auto-refresh interval for data sources in a dashboard.
To use the dashboard extension samples, you need to start up a web server on your computer to host the HTML pages. If you downloaded or cloned the Extensions API repository, you can start the web service in the root directory of the repository on your computer.
The samples are set up so that the web server is using port
8765. If you need to specify a different port instead of
8765, you can change ports using Python, if you have Python installed, or you can run another Node.js command.
extensions-api folder, start an HTTP server using one of the following commands. Replace
PORT with the port you are using (for example,
python -m SimpleHTTPServer PORT
python -m http.server PORT
npm install http-server -g && http-server -p PORT
The port you use for the web server also has to match the port specified in the manifest file (
.trex) for the server.
<source-location> <url>http://localhost:PORT/samples/parameters/parameters.html</url> </source-location>
After you start the web server to host the sample extensions, you can try the extensions in Tableau.
.trex) that describes the extension and identifies the location of the web application.
.trexfile (for example,