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

# Tableau Setup

> Prerequisites and step-by-step instructions for connecting Prizm to Tableau Cloud or Tableau Server.

<script type="application/ld+json">
  {`{
            "@context": "https://schema.org",
            "@type": "TechArticle",
            "headline": "Tableau Setup",
            "description": "Prerequisites and step-by-step instructions for connecting Prizm to Tableau Cloud or Tableau Server.",
            "url": "https://docs.dqlabs.ai/sources/tableau/setup",
            "publisher": {
              "@type": "Organization",
              "name": "DQLabs Inc",
              "logo": "https://media.brand.dev/332adc35-5bc4-4d2b-bf78-256aa4a5e414.svg"
            }
            }`}
</script>

## Prerequisites

Before connecting, ensure the following:

* Tableau **admin credentials** are available (recommended role: **Site Admin Creator**; Site Admin Explorer may work but has caused issues in some environments)
* Prizm's IP addresses are reachable from your Tableau environment (add to allowlist if network-restricted)
* Tableau APIs are enabled on your instance
* For Connected Apps auth: Tableau Server **2023.3 or later** (or Tableau Cloud)

## Authentication Methods

Prizm supports three authentication methods for Tableau. **Connected Apps with Direct Trust** is strongly recommended for production.

<Tabs>
  <Tab title="Connected Apps — Recommended">
    <Tip>
      Connected Apps (OAuth Direct Trust) is the most secure and debuggable method. Required role: **Site Admin Creator**. Supported on Tableau Server 2023.3+ and all Tableau Cloud versions.
    </Tip>

    ### Step 1 — Create a Connected App in Tableau

    1. In Tableau, navigate to **Settings → Connected Apps**
    2. Click **New Connected App** and select **Direct Trust**
    3. Enter a name for the Connected App and click **Create**

    <Note>
      The **Domain allowlist** field can be left blank. It only applies to Tableau embedded workflows — not to the Prizm integration, which uses the Metadata API and REST APIs.
    </Note>

    4. Click **Generate New Secret** and copy the values — you will need them in Prizm:
       * **Client ID**
       * **Secret ID**
       * **Secret Value**

    5. From the Connected App actions menu, select **Enable**

    ### Step 2 — Add Tableau in Prizm

    Navigate to **Settings → Sources → Add → Tableau** and select **Connected Apps** as the authentication type.

    | **Field**    | **Description**                                                           |
    | :----------- | :------------------------------------------------------------------------ |
    | Username     | Email or username of the Tableau user Prizm will operate as               |
    | Client ID    | From the Tableau Connected App                                            |
    | Secret ID    | From the Tableau Connected App                                            |
    | Secret Value | From the Tableau Connected App — stored encrypted, never shown after save |

    Click **Validate** — if validation succeeds, proceed to complete the integration. If it fails, double-check all credential values and role permissions.
  </Tab>

  <Tab title="Personal Access Token">
    Personal Access Token (PAT) is supported for environments where Connected Apps is not available.

    ### Step 1 — Generate a PAT in Tableau

    1. In Tableau, navigate to your **User Settings → Account Settings → Personal Access Tokens**
    2. Enter a token name and click **Create new token**
    3. Copy the **Token Name** and **Token Secret** — the secret is shown only once

    ### Step 2 — Configure in Prizm

    Navigate to **Settings → Sources → Add → Tableau** and select **Personal Access Token** as the authentication type.

    | **Field**                  | **Description**                                  |
    | :------------------------- | :----------------------------------------------- |
    | Personal Access Token Name | Name of the token created in Tableau             |
    | Personal Access Token Key  | Secret value generated by Tableau — masked in UI |
  </Tab>

  <Tab title="Username / Password">
    Username and Password authentication is available for Tableau Server environments that do not support PAT or Connected Apps.

    Navigate to **Settings → Sources → Add → Tableau** and select **Username and Password** as the authentication type.

    | **Field** | **Description**                                 |
    | :-------- | :---------------------------------------------- |
    | User      | Tableau username or email address               |
    | Password  | Password for the Tableau account — masked in UI |

    <Warning>
      Tableau recommends Connected Apps or PAT over username/password for production environments. Username/password does not support token expiry rotation and has broader access scope.
    </Warning>
  </Tab>
</Tabs>

## Connector Setup

<Steps>
  <Step title="Open the connector wizard">
    Navigate to **Settings → Sources** and click **Add**. Select **Tableau** from the source type grid under the Pipeline section.

    | **Field**       | **Description**                                                                                               |
    | :-------------- | :------------------------------------------------------------------------------------------------------------ |
    | Connection Name | A unique label for this instance (e.g., `tableau-prod`)                                                       |
    | Description     | Optional free-text description                                                                                |
    | Host            | Tableau Server or Cloud host URL (e.g., `https://prod-uswest-b.online.tableau.com/`)                          |
    | Server Type     | **Server** or **Cloud**                                                                                       |
    | Default Site    | Tableau site name. Leave blank if using the Default Site. Site name is case-sensitive and must match exactly. |
  </Step>

  <Step title="Identify your server and site names">
    To find the correct server and site name, inspect the Tableau URL in your browser:

    | **Example URL**                                                    | **Server Name**                             | **Site Name**   |
    | :----------------------------------------------------------------- | :------------------------------------------ | :-------------- |
    | `http://techdata.io/#/site/AnalyticsTeam/projects`                 | `http://techdata.io/`                       | `AnalyticsTeam` |
    | `https://prod-uswest-b.online.tableau.com/#/site/staging/projects` | `https://prod-uswest-b.online.tableau.com/` | `staging`       |

    <Warning>
      When using **Tableau Cloud**, the HTTPS scheme must be included in the host URL. Omitting it may cause connection failures. Tableau Cloud does not support HTTP for Metadata API access.
    </Warning>

    <Note>
      If your Tableau environment uses the **Default Site**, leave the Site Name field blank. If multiple sites exist, you must specify the site name explicitly.
    </Note>
  </Step>

  <Step title="Choose an authentication method">
    Select an authentication type and provide the required credentials. See the [Authentication Methods](#authentication-methods) section above for detailed steps.

    | **Auth Method**               | **When to Use**                                                                     |
    | :---------------------------- | :---------------------------------------------------------------------------------- |
    | Connected Apps (Direct Trust) | Recommended for all environments. Requires Tableau Server 2023.3+ or Tableau Cloud. |
    | Personal Access Token         | Use when Connected Apps is not available.                                           |
    | Username / Password           | Legacy fallback only. Not recommended for production.                               |
  </Step>

  <Step title="Configure propagation settings">
    Set how Prizm should propagate quality signals from upstream warehouse tables to Tableau assets.

    | **Signal** | **Options**                        |
    | :--------- | :--------------------------------- |
    | Alerts     | Based on associated table, or None |
    | Issues     | Based on associated table, or None |
    | Score      | Based on associated table, or None |

    When set to **Based on associated table**, any alert, issue, or quality score change on an upstream table is automatically propagated to the Tableau workbooks that consume that table.
  </Step>

  <Step title="Select workbooks to connect">
    After validation, Prizm presents a list of available Tableau workbooks. Select the workbooks you want to bring into Prizm.

    | **Column**        | **Description**                                 |
    | :---------------- | :---------------------------------------------- |
    | Name              | Workbook name                                   |
    | Site              | Tableau Site ID                                 |
    | Project           | Tableau project/folder                          |
    | Owner             | User or service account that owns the workbook  |
    | Sheet / Dashboard | Number of sheets and dashboards in the workbook |
    | Updated At        | Last updated timestamp                          |

    Use checkboxes to select workbooks and click **Connect** to bring them into Prizm.
  </Step>

  <Step title="Save and verify">
    Click **Save**. Prizm runs an initial Catalog scan immediately — assets appear within a few minutes. Navigate to **Settings → Sources → Logs** to monitor scan progress.

    After setup, you can manage connected assets with the following actions from the asset selection page:

    | **Action**              | **Description**                                                          |
    | :---------------------- | :----------------------------------------------------------------------- |
    | **Sync**                | Finds deleted workbooks in Tableau and marks them as deprecated in Prizm |
    | **View Logs**           | Shows ingestion job logs for the connector                               |
    | **Connection Schedule** | Configures how often the Catalog job runs                                |
    | **Sync Schedule**       | Configures how often the deprecation sync runs                           |
    | **Edit Connection**     | Updates credentials or connection settings                               |
  </Step>
</Steps>

## Job Schedules

| **Job**               | **Default Schedule** | **What It Does**                                                                                   |
| :-------------------- | :------------------- | :------------------------------------------------------------------------------------------------- |
| Catalog / Metadata    | Daily                | Full inventory of sites, projects, workbooks, dashboards, datasources, fields, lineage, and owners |
| Operational / Refresh | Hourly               | Extract refresh status, freshness delay, failure tracking                                          |
| Usage / Adoption      | Daily                | Workbook view counts, active user counts, usage trends                                             |

Schedules can be overridden from the connector detail page after saving.

## Next Steps

<CardGroup cols={2}>
  <Card title="What We Collect" icon="database" href="/sources/tableau/what-we-collect">
    Full breakdown of every object and field Prizm ingests from Tableau.
  </Card>

  <Card title="FAQ" icon="circle-question" href="/sources/tableau/faq">
    Common questions about authentication, permissions, and asset selection.
  </Card>
</CardGroup>
