Description
Add Tableau integration to sync workbooks, views, data sources, dashboard activity, and user analytics into CORE.
Reference Implementations
Existing Integrations (use as templates)
integrations/github-analytics/ - Similar analytics-focused integration
integrations/google-sheets/ - Similar data/visualization platform
integrations/slack/ - For reference
Required Files Structure
integrations/tableau/
├── src/
│ ├── index.ts # Main entry, auth spec
│ ├── schedule.ts # Sync logic
│ ├── utils.ts # Tableau REST API utilities
│ ├── account-create.ts # Auth setup (PAT or JWT)
│ └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md
Tableau REST API Integration
Authentication Setup
- Use Personal Access Token (PAT) authentication (recommended)
- Alternative: JWT (JSON Web Token) for connected apps
- Sign in via
POST /api/{api-version}/auth/signin to get auth token
- Auth token used in
X-Tableau-Auth header for subsequent requests
- Latest API version: 3.24+ (Tableau Cloud) / 3.27 (Server 2025.3)
Key Endpoints
- Workbooks
GET /api/{version}/sites/{site-id}/workbooks - List workbooks
GET /api/{version}/sites/{site-id}/workbooks/{workbook-id} - Get workbook details
GET /api/{version}/sites/{site-id}/workbooks/{workbook-id}/views - Get workbook views
POST /api/{version}/sites/{site-id}/workbooks - Publish workbook
- Views (Dashboards)
GET /api/{version}/sites/{site-id}/views - List views
GET /api/{version}/sites/{site-id}/views/{view-id}/image - Get view as image
GET /api/{version}/sites/{site-id}/views/{view-id}/data - Get view data
- Data Sources
GET /api/{version}/sites/{site-id}/datasources - List data sources
GET /api/{version}/sites/{site-id}/datasources/{datasource-id} - Get data source details
POST /api/{version}/sites/{site-id}/datasources - Publish data source
- Users & Groups
GET /api/{version}/sites/{site-id}/users - List site users
GET /api/{version}/sites/{site-id}/groups - List groups
- Projects
GET /api/{version}/sites/{site-id}/projects - List projects
- Flows (Prep Conductor)
GET /api/{version}/sites/{site-id}/flows - List flows
POST /api/{version}/sites/{site-id}/flows/{flow-id}/run - Run a flow
Events to Track
- Workbook Activity - Workbooks published, updated, downloaded, deleted
- View/Dashboard Access - Views accessed, images exported, data downloaded
- Data Source Updates - Data sources published, refreshed, connection changes
- User Activity - User logins, permission changes, group membership changes
- Flow Executions - Prep flows triggered, completed, or failed
Implementation Tasks
Technical Notes
- Tableau REST API requires signing in first to get an auth token, which expires after a configured period
- API version is tied to Tableau Server/Cloud version (3.24 for Cloud Dec 2025, 3.27 for Server 2025.3)
- OpenAPI endpoints are available for code generation
- Supports both Tableau Server (on-premises) and Tableau Cloud
- Multiple authentication types supported since Jan 2025
- User credentials management endpoints added recently
- Consider using the OpenAPI spec for client generation
Resources
Labels
enhancement, integration, new-feature
Description
Add Tableau integration to sync workbooks, views, data sources, dashboard activity, and user analytics into CORE.
Reference Implementations
Existing Integrations (use as templates)
integrations/github-analytics/- Similar analytics-focused integrationintegrations/google-sheets/- Similar data/visualization platformintegrations/slack/- For referenceRequired Files Structure
Tableau REST API Integration
Authentication Setup
POST /api/{api-version}/auth/signinto get auth tokenX-Tableau-Authheader for subsequent requestsKey Endpoints
GET /api/{version}/sites/{site-id}/workbooks- List workbooksGET /api/{version}/sites/{site-id}/workbooks/{workbook-id}- Get workbook detailsGET /api/{version}/sites/{site-id}/workbooks/{workbook-id}/views- Get workbook viewsPOST /api/{version}/sites/{site-id}/workbooks- Publish workbookGET /api/{version}/sites/{site-id}/views- List viewsGET /api/{version}/sites/{site-id}/views/{view-id}/image- Get view as imageGET /api/{version}/sites/{site-id}/views/{view-id}/data- Get view dataGET /api/{version}/sites/{site-id}/datasources- List data sourcesGET /api/{version}/sites/{site-id}/datasources/{datasource-id}- Get data source detailsPOST /api/{version}/sites/{site-id}/datasources- Publish data sourceGET /api/{version}/sites/{site-id}/users- List site usersGET /api/{version}/sites/{site-id}/groups- List groupsGET /api/{version}/sites/{site-id}/projects- List projectsGET /api/{version}/sites/{site-id}/flows- List flowsPOST /api/{version}/sites/{site-id}/flows/{flow-id}/run- Run a flowEvents to Track
Implementation Tasks
integrations/github/src/index.tspatternaccount-create.tsutils.tswith session managementschedule.tsfor workbooks, views, and data sourcesintegrations/README.mdTechnical Notes
Resources
Labels
enhancement, integration, new-feature