> ## Documentation Index
> Fetch the complete documentation index at: https://docs.duvo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Tableau

Tableau is a business intelligence platform for publishing and sharing interactive dashboards, workbooks, and data visualizations. Connecting Tableau to Duvo lets your agents access published analytics, query data sources, and incorporate live BI insights into automated workflows.

<Note>
  Tableau connects through a **Connected App** using OAuth via JWT. This Duvo connection currently supports Connected App credentials only, so you create a Connected App in your Tableau site settings and provide those credentials to Duvo.
</Note>

## Setup

<Steps>
  <Step title="Confirm prerequisites" icon="circle-check">
    <Check>A Tableau Cloud or Tableau Server account with site role **Explorer** or higher.</Check>
    <Check>A site admin must [create and enable a Connected App](https://help.tableau.com/current/online/en-us/connected_apps_direct.htm) (Direct Trust) for Duvo. The app is disabled by default after creation and must be explicitly enabled.</Check>
    <Check>**VizQL Data Service** must be enabled on the site for data source schema and query capabilities. Available on Tableau Cloud by default; Tableau Server requires version **2025.1+**.</Check>
    <Check>**Data Management license** at the site level for Metadata API access (used for data source field enrichment).</Check>

    To create the Connected App:

    1. Sign in to Tableau as a site admin.
    2. Go to **Settings** > **Connected Apps**.
    3. Click **New Connected App** > **Direct Trust**.
    4. Enter a name (e.g., `Duvo Integration`).
    5. Click **Create**.
    6. Copy the **Client ID** displayed on the app page.
    7. Click **Generate New Secret**. Copy both the **Secret ID** and **Secret Value** (the secret value is shown only once).
    8. **Enable the Connected App** — it is disabled by default. Click the three-dot actions menu next to the app and select **Enable**. Authentication will fail until the app is enabled.

    <Tip>
      For details on enabling these features, see the [Connected Apps documentation](https://help.tableau.com/current/online/en-us/connected_apps_direct.htm) and [VizQL Data Service configuration](https://help.tableau.com/current/api/vizql-data-service/en-us/docs/vds_vizql_data_service_config.html).
    </Tip>
  </Step>

  <Step title="Grant the required permissions" icon="key">
    The Tableau account you connect must have:

    * Site role of **Explorer**, **Explorer (Can Publish)**, **Creator**, **Site Administrator Explorer**, or **Site Administrator Creator**. Viewer is not sufficient.
    * **View** capability on workbooks and views that Duvo should access.
    * **View** and **Connect** capabilities on data sources that Duvo should access.
    * **API Access** capability on data sources for schema and query operations. This is not granted by default and must be explicitly assigned by an admin per data source or via project default permissions.

    <Warning>
      The connected account's site role and per-content capabilities determine exactly what the agent can reach. Note that **API Access** is not granted by default, so an admin must assign it per data source or through project default permissions before schema and query operations will work.
    </Warning>
  </Step>

  <Step title="Add the connection in Duvo" icon="plug">
    On the [Connections page](https://app.duvo.ai/integrations), open Tableau and fill in these fields:

    <ParamField body="Connected App Client ID" type="string" required>
      The Client ID shown when you create the Connected App in Tableau.
    </ParamField>

    <ParamField body="Secret ID" type="string" required>
      The UUID generated when you click Generate New Secret in the Connected App settings.
    </ParamField>

    <ParamField body="Secret Value" type="string" required>
      The secret value shown once when the secret is generated. Copy and store it securely.
    </ParamField>

    <ParamField body="Username" type="string" required>
      The Tableau username to act as. Use the user's email address for Tableau Cloud, or their Tableau username for Server.
    </ParamField>

    <ParamField body="Server URL" type="URL" required>
      The base URL of your Tableau Cloud or Tableau Server site (e.g., `https://dub01.online.tableau.com`).
    </ParamField>

    <ParamField body="Site Name" type="string">
      The site name from your Tableau URL after `/site/`. For Tableau Server default site, leave this blank.
    </ParamField>
  </Step>
</Steps>

<AccordionGroup>
  <Accordion title="Third-party documentation" icon="book">
    * [Connected Apps (Direct Trust)](https://help.tableau.com/current/online/en-us/connected_apps_direct.htm) — creating and managing Connected Apps.
    * [REST API Authentication](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_auth.htm) — overview of Tableau authentication methods.
    * [VizQL Data Service Configuration](https://help.tableau.com/current/api/vizql-data-service/en-us/docs/vds_vizql_data_service_config.html) — enabling data source queries.
  </Accordion>
</AccordionGroup>

## Capabilities

* **Browse published content** — List and discover workbooks, dashboards, views, and projects across your Tableau site.
* **Inspect data source schemas** — Retrieve field names, types, and metadata for any connected data source.
* **Run read-only queries** — Execute queries against published data sources and return results, without modifying any data in Tableau.

## Key Benefits

* **Direct access to live analytics** — Query dashboards and data sources without manual logins or CSV exports.
* **Automated data-driven workflows** — Use real-time Tableau data to trigger actions, populate reports, or inform decisions.
* **Consistent source of truth** — Agents always reference the same published dashboards and data sources your team relies on.
* **No data duplication** — Query data in place rather than exporting and re-importing between tools.

## Works Well With

<CardGroup cols={3}>
  <Card title="Google Sheets" icon="https://mintcdn.com/duvo-d8027998/O3tlM6eCuFk2uJpN/images/connections/google-sheets.svg?fit=max&auto=format&n=O3tlM6eCuFk2uJpN&q=85&s=0ef8d55e05c34e7a4a618933bdf0ceb3" href="/user-guide/connections/available-connections/google-sheets" width="24" height="24" data-path="images/connections/google-sheets.svg">
    Pull data from Tableau data sources into spreadsheets for further analysis or distribution.
  </Card>

  <Card title="Slack" icon="https://mintcdn.com/duvo-d8027998/O3tlM6eCuFk2uJpN/images/connections/slack.svg?fit=max&auto=format&n=O3tlM6eCuFk2uJpN&q=85&s=8a64bdd1af39e903923e4a273b4a4618" href="/user-guide/connections/available-connections/slack" width="512" height="512" data-path="images/connections/slack.svg">
    Post dashboard summaries or metric alerts to channels based on Tableau data.
  </Card>

  <Card title="Gmail" icon="https://mintcdn.com/duvo-d8027998/O3tlM6eCuFk2uJpN/images/connections/gmail.svg?fit=max&auto=format&n=O3tlM6eCuFk2uJpN&q=85&s=ad4e229283f3fe2f26c0f96a49f28e13" href="/user-guide/connections/available-connections/gmail" width="88" height="66" data-path="images/connections/gmail.svg">
    Include Tableau-derived insights in automated email reports sent to stakeholders.
  </Card>
</CardGroup>
