Administer Tableau Server with sites, projects, and permissions
✓Works with OpenClaudeYou are a Tableau Server administrator. The user wants to configure and manage Tableau Server resources including sites, projects, users, groups, and permissions through the REST API or TSM (Tableau Server Management) CLI.
What to check first
- Run
tsm status -vto verify Tableau Server is running and check version - Confirm you have server admin credentials and REST API token authentication configured
- Check
tsm topology list-nodesto see server topology and node roles - Verify Python 3.6+ is installed if using
tableauserverclientlibrary for API automation
Steps
- Authenticate to Tableau Server using REST API by posting credentials to
/api/3.x/auth/signinand capture the session ID token - Create or retrieve a site using
/api/3.x/sitesendpoint with site name, content URL, and admin mode settings - Create projects within the site via
/api/3.x/sites/{site-id}/projectswith project name and owner assignment - Add users to the site using
/api/3.x/sites/{site-id}/usersand assign site roles (SiteAdmin, InteractiveViewer, Viewer) - Create groups using
/api/3.x/sites/{site-id}/groupsand add users to groups for bulk permission management - Set workbook permissions using
/api/3.x/sites/{site-id}/workbooks/{workbook-id}/permissionswith grant/revoke capabilities per user/group - Configure project-level permissions via
/api/3.x/sites/{site-id}/projects/{project-id}/permissionsto inherit or override defaults - Export audit logs using
tsm maintenance audit-logsor REST API to monitor admin activity and user access
Code
import requests
import json
from tableauserverclient import Server, RequestOptions
# Initialize connection with credentials
class TableauAdminClient:
def __init__(self, server_url, username, password):
self.server_url = server_url.rstrip('/')
self.session = requests.Session()
self.auth_token = self._authenticate(username, password)
self.site_id = None
def _authenticate(self, username, password):
"""Authenticate and return session token"""
auth_url = f"{self.server_url}/api/3.17/auth/signin"
payload = f"""
<tsRequest xmlns="http://tableauserverclient.com/api"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tableauserverclient.com/api
http://tableauserverclient.com/api/ts-api-3.17.xsd">
<credentials name="{username}" password="{password}">
<site contentUrl=""/>
</credentials>
</tsRequest>"""
headers = {'Content-Type': 'application/xml'}
Note: this example was truncated in the source. See the GitHub repo for the latest full version.
Common Pitfalls
- Treating this skill as a one-shot solution — most workflows need iteration and verification
- Skipping the verification steps — you don't know it worked until you measure
- Applying this skill without understanding the underlying problem — read the related docs first
When NOT to Use This Skill
- When a simpler manual approach would take less than 10 minutes
- On critical production systems without testing in staging first
- When you don't have permission or authorization to make these changes
How to Verify It Worked
- Run the verification steps documented above
- Compare the output against your expected baseline
- Check logs for any warnings or errors — silent failures are the worst kind
Production Considerations
- Test in staging before deploying to production
- Have a rollback plan — every change should be reversible
- Monitor the affected systems for at least 24 hours after the change
Related Tableau Skills
Other Claude Code skills in the same category — free to download.
Tableau Dashboard
Build interactive dashboards with filters, parameters, and actions
Tableau Calculated Fields
Write calculated fields with LOD expressions, table calcs, and sets
Tableau Data Prep
Clean and transform data with Tableau Prep Builder flows
Tableau REST API
Automate Tableau operations with REST API and Hyper API
Tableau Extensions
Build dashboard extensions with Tableau Extensions API
Tableau Dashboard Performance Tuning
Speed up slow Tableau dashboards by fixing the most common performance killers
Tableau Extract Best Practices
Configure Tableau extracts for fast queries and efficient refresh
Want a Tableau skill personalized to YOUR project?
This is a generic skill that works for everyone. Our AI can generate one tailored to your exact tech stack, naming conventions, folder structure, and coding patterns — with 3x more detail.