# Tableau Workbook Refresh

## Overview

Paradime provides a convenient way to trigger Workbook refreshes in Tableau, allowing you to keep your visualizations and dashboards up to date with the latest data.&#x20;

By leveraging the Tableau REST API endpoint for refreshing Workbook, Paradime enables you to automate and schedule the refresh process based right after your dbt™ pipeline completes or in a separate schedule, using the [on run completion trigger](https://docs.paradime.io/app-help/documentation/bolt/trigger-types#on-run-completion).  &#x20;

<figure><img src="https://2337193041-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHET0AD04uHMgdeLAjptq%2Fuploads%2FpjoNOxLhXVQ7Z8KDsqKj%2Fimage.png?alt=media&#x26;token=603d5c3a-5747-4383-be8f-580e684a0301" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}

#### Prerequisites <a href="#prerequisites" id="prerequisites"></a>

#### 1. Generate API Credentials

Follow the [Tableau integration](https://docs.paradime.io/app-help/documentation/integrations/dashboards/tableau) guide to generate the API credentials

#### 2. Configure Data Source Credentials

To enable Paradime to trigger a data extract refresh, ensure that any required credentials are embedded within the extract:

1. Edit the data source in Tableau
2. Click **'Publish'**
3. Select **'Embed credentials'**

#### 3. Set Environment Variables

Configure the following environment variables in your Bolt Schedules:

* `TABLEAU_PERSONAL_ACCESS_TOKEN_NAME`
* `TABLEAU_PERSONAL_ACCESS_TOKEN_SECRET`
* `TABLEAU_HOST`   &#x20;
* `TABLEAU_SITE_NAME`
* `TABLEAU_TIMEOUT`  (optional - sets request timeout in seconds, default: 300)
  {% endhint %}

### How to Configure Workbook Refresh

When setting up Tableau Workbook Refresh, you can provide one or more Workbook names when setting up the task by adding the names in a separate line.

{% hint style="info" %}
Alternatively you can provide the Workbook UUID,  a string like `9f8e7d6c5b-4a3f-2e1d-0c9b-8a7f6e5d4c`. This UUID is used in Tableau’s REST and Metadata APIs to ensure uniqueness even if workbook names change or duplicate names exist. [You can use our CLI to list workbooks and their UUID](https://docs.paradime.io/app-help/developers/paradime-cli/tableau-cli#list-tableau-workbooks).
{% endhint %}

<figure><img src="https://2337193041-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHET0AD04uHMgdeLAjptq%2Fuploads%2FdkOC0uzNLft18qTNurTS%2Fimage.png?alt=media&#x26;token=67e222eb-1d8b-4ba3-afd7-a9a056921c1b" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
**Learn More**: For all supported commands and additional configuration flags, refer to the [Paradime Tableau CLI documentation](https://docs.paradime.io/app-help/developers/paradime-cli/tableau-cli).
{% endhint %}

{% hint style="danger" %}
**Tableau doesn't let you use the same Personal access token for multiple requests at the same time. So Workbook refreshes have to be executed sequentially not in parallel.**
{% endhint %}

{% hint style="info" %}
You can monitor your workbook and data source refresh jobs in [Paradime Bolt Logs output](https://docs.paradime.io/app-help/documentation/bolt/managing-schedules/analyzing-run-details) or directly through the Tableau interface by **Navigating in Tableau to the Jobs page.**
{% endhint %}

***

Now, let's learn how to configure the [Trigger Types](https://docs.paradime.io/app-help/documentation/bolt/creating-schedules/trigger-types) of a Bolt Schedule. &#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.paradime.io/app-help/documentation/bolt/creating-schedules/command-settings/tableau-workbook-refresh.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
