# 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;
