> **Building with AI coding agents?** If you're using an AI coding agent, install the official Scalekit plugin. It gives your agent full awareness of the Scalekit API — reducing hallucinations and enabling faster, more accurate code generation.
>
> - **Claude Code**: `/plugin marketplace add scalekit-inc/claude-code-authstack` then `/plugin install <auth-type>@scalekit-auth-stack`
> - **GitHub Copilot CLI**: `copilot plugin marketplace add scalekit-inc/github-copilot-authstack` then `copilot plugin install <auth-type>@scalekit-auth-stack`
> - **Codex**: run the bash installer, restart, then open Plugin Directory and enable `<auth-type>`
> - **Skills CLI** (Windsurf, Cline, 40+ agents): `npx skills add scalekit-inc/skills --list` then `--skill <skill-name>`
>
> `<auth-type>` / `<skill-name>`: `agentkit`, `full-stack-auth`, `mcp-auth`, `modular-sso`, `modular-scim` — [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Tableau

## What you can do

Connect this agent connector to let your agent:

- **Browse workbooks and views** — List, search, and retrieve detailed metadata for workbooks, views (sheets and dashboards), and data sources published on a Tableau site
- **Export visualizations** — Download dashboards as PNGs, PDF documents, or Excel crosstab files; download full workbooks as `.twbx` files
- **Query underlying data** — Export view summary data as CSV, or run structured queries against published data sources using the VizQL Data Service API (Tableau Cloud 2024.1+)
- **Monitor jobs** — Poll background job status to track completion of long-running operations
- **Manage the site** — Create and update projects; add and remove users; create, add, and remove groups

## Authentication

Tableau uses **Personal Access Token (PAT)** authentication. You store your PAT credentials in Scalekit once, and Scalekit calls `tableau_auth_signin` to obtain a session token, then refreshes it automatically before every tool call. Your agent code never handles tokens directly — Scalekit injects the current session token as the `X-Tableau-Auth` header on every request.

**How it works:**

1. Store your PAT name, PAT secret, domain, and site content URL in a Scalekit connected account
2. Before each tool call, Scalekit checks if the session token is still valid (with a 5-minute buffer)
3. If the token has expired or is about to expire, Scalekit signs in automatically using the stored PAT credentials via `tableau_auth_signin`
4. The fresh session token is injected as `X-Tableau-Auth` — your code does nothing
5. After sign-in, the **site ID** (site LUID) is stored automatically in the connected account — you do not pass `site_id` to tool calls. Token lifetime is 120 minutes for Tableau Cloud and 240 minutes for Tableau Server.

<details>
<summary>Set up the connector</summary>

<SetupTableauSection />

</details>

<details>
<summary>Code examples</summary>

<UsageTableauSection />

</details>

## Getting resource IDs

Most Tableau tools require one or more resource LUIDs. The **site ID is resolved automatically** by Scalekit after sign-in — you do not pass it to tool calls. Always fetch other IDs from the API — never guess or hard-code them.

| Resource | Tool to get ID | Field in response |
|----------|---------------|-------------------|
| Workbook ID | `tableau_workbooks_list` or `tableau_workbook_search` | `workbooks.workbook[].id` |
| View ID | `tableau_views_list` or `tableau_workbook_views_list` | `views.view[].id` |
| Data Source ID | `tableau_datasources_list` | `datasources.datasource[].id` |
| Project ID | `tableau_projects_list` | `projects.project[].id` |
| User ID | `tableau_users_list` | `users.user[].id` |
| Group ID | `tableau_groups_list` | `groups.group[].id` |
| Job ID | `tableau_job_get` (from background job operations) | `job.id` |
| Site ID (proxy only) | `tableau_session_get` | `session.site.id` |

**Recommended start sequence for any agent session:**

```text
1. tableau_workbooks_list           → discover workbooks
2. tableau_workbook_views_list      → discover views within a workbook
3. tableau_datasources_list         → discover data sources
```

## Tool list

<ToolList tools={tools} />

---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
