Tableau Integration
Integrate with Tableau Server and Tableau Online for business intelligence, data visualization, and analytics dashboard management.
Overview
The Tableau Integration skill provides comprehensive functionality for:
- Managing workbooks and data sources
- Publishing and downloading Tableau content
- Handling user and project management
- Querying view data and analytics
- Managing permissions and access control
Connection Requirements
This skill requires a Tableau connection configured through:
- PinkConnect Proxy: PC_BASE_URL (includes site-id and API version)
- Authentication: Handled automatically by the proxy
- Site Context: Site ID is included in the base URL
Basic Usage
// Get all workbooks
GET: workbooks
// Get specific workbook
GET: workbooks/{workbook-id}
// Publish new workbook
POST: workbooks (with multipart form data)
Key Features
Content Management
- Workbook Operations: Create, read, update, delete workbooks
- Data Source Management: Publish and manage data sources
- Project Organization: Organize content in projects
- Version Control: Handle workbook versions and updates
User and Permissions
- User Management: List and manage site users
- Permission Control: Set and manage content permissions
- Role Management: Handle user roles and site access
- Security: Implement proper access controls
Data Access
- View Querying: Extract data from Tableau views
- CSV Export: Export view data in CSV format
- Metadata Access: Get workbook and data source metadata
- Real-time Data: Access live data through Tableau views
Common Operations
List All Workbooks
Get Workbook Details
GET: workbooks/{workbook-id}
Publish Workbook
POST: workbooks
Content-Type: multipart/form-data
Form Data:
- request_payload: {"workbook": {"name": "Sales Dashboard", "projectId": "project-456"}}
- tableau_workbook: [workbook.twbx file]
Query View Data
GET: views/{view-id}/data?format=csv&maxAge=60
Response Structures
Workbook Response
{
"workbook": {
"id": "workbook-123",
"name": "Sales Dashboard",
"description": "Monthly sales performance dashboard",
"contentUrl": "SalesDashboard",
"showTabs": true,
"size": 2048576,
"createdAt": "2025-01-15T12:34:56Z",
"updatedAt": "2025-01-15T14:20:00Z",
"project": {
"id": "project-456",
"name": "Sales Analytics"
},
"owner": {
"id": "user-789",
"name": "John Doe"
},
"views": {
"view": [
{
"id": "view-111",
"name": "Sales Overview",
"contentUrl": "SalesOverview"
}
]
}
}
}
Data Source Response
{
"datasource": {
"id": "datasource-123",
"name": "Sales Data",
"description": "Customer and sales transaction data",
"contentUrl": "SalesData",
"type": "sqlserver",
"size": 10485760,
"createdAt": "2025-01-10T09:00:00Z",
"updatedAt": "2025-01-15T08:30:00Z",
"project": {
"id": "project-456",
"name": "Sales Analytics"
},
"owner": {
"id": "user-789",
"name": "John Doe"
}
}
}
View Data Response (CSV)
{
"status": 200,
"headers": {
"Content-Type": "text/csv"
},
"output": "Date,Sales,Region\n2025-01-01,10000,North\n2025-01-01,15000,South\n2025-01-02,12000,North"
}
Project Management
Create Project
POST: projects
{
"project": {
"name": "Finance Analytics",
"description": "Financial reporting and analytics",
"contentPermissions": "ManagedByOwner",
"parentProjectId": "project-000"
}
}
Project Permissions
- ManagedByOwner: Owner manages all permissions
- LockedToProject: Project-level permission management
- LockedToProjectWithoutNested: Project-level without nested projects
User Management
List Users
User Roles
- Creator: Can create and publish content
- Explorer: Can interact with published content
- Viewer: Can view published content
- SiteAdministrator: Full site administration rights
Permission Management
Get Workbook Permissions
GET: workbooks/{workbook-id}/permissions
Permission Capabilities
- Read: View content
- Write: Edit content
- Delete: Remove content
- ChangePermissions: Modify permissions
- ChangeHierarchy: Move content between projects
Data Export Options
CSV Export
GET: views/{view-id}/data?format=csv
Export Parameters
- format: Export format (csv)
- maxAge: Cache age in seconds
- vf_: View filters
- refresh: Force refresh of data
File Operations
Download Workbook
GET: workbooks/{workbook-id}/content
// Returns binary TWBX file
Download Data Source
GET: datasources/{datasource-id}/content
// Returns binary TDSX/TDS file
Query Parameters
Common Parameters
- fields: Specify response fields
- filter: Filter results
- sort: Sort results
- pageSize: Items per page (max 1000)
- pageNumber: Page number for pagination
Filtering Examples
// Filter workbooks by project
GET: workbooks?filter=projectName:eq:Sales Analytics
// Filter users by site role
GET: users?filter=siteRole:eq:Creator
Error Handling
Common Errors
{
"error": {
"code": "400008",
"summary": "Bad Request",
"detail": "The workbook name is required."
}
}
Error Categories
- Authentication: Invalid credentials or expired tokens
- Authorization: Insufficient permissions
- Validation: Invalid request parameters
- Resource: Missing or invalid resource IDs
- Server: Internal server errors
Important Notes
- Site Context: All operations are scoped to the configured site
- Authentication: Handled automatically by PinkConnect Proxy
- File Uploads: Use multipart/form-data for workbook and data source publishing
- Rate Limits: Respect Tableau Server rate limits
- API Versioning: API version is included in the proxy URL
- Binary Content: File downloads return binary content
Best Practices
- Project Organization: Use projects to organize content logically
- Permission Management: Implement least-privilege access principles
- Version Control: Track workbook versions and changes
- Data Freshness: Use appropriate cache settings for data exports
- Error Handling: Implement robust error handling for API calls
- Resource Management: Clean up unused workbooks and data sources
- Performance: Use pagination for large result sets
- Security: Regularly audit user permissions and access
Responses are generated using AI and may contain mistakes.