Upload file(s) to a remote Tableau Server.

Parameters:
- Operating mode:
- column with filenames to upload
- column with Datasource Names on server
- Action type
- Protocol + Name/IP-Adress of Tableau Server
- Authentification mode
- Login/TokenName on Tableau server
- Password/TokenSecret on Tableau server
- Tableau Site on Tableau Server
- Tableau Project Name on Tableau Server
- Embed your credential inside the published datasource
- Debug information level
- Optional: extra parameters for cURL
- Number of retries on connection error
- Version of the Tableau REST API

Parameters:
- Script name
- Short description
- Revision
- Decription
See dedicated page for more information.
Uploads Tableau files to a remote Tableau Server or Tableau Cloud. Supported file types include:
.hyper, .tde, .ttde
.tds, .tdsx
.twb, .twbx
It works in environments that must access Tableau through an Internet proxy (see your platform’s “Cloud/Proxy access” notes).
- Use writeHyper (or another step) to produce a
.hyper/.tde locally.
- Use publishToTableauServer to upload that file to the target Site/Project so dashboards stay on “fresh & updated” data.
- Upload a specified file
Choose one file from Assets / temp data / recorded data / disk image.
- Upload all files specified in the input table
Feed the action with a table listing files to publish (one path per row); the action iterates and publishes each file.
- Provide Login/TokenName on Tableau server (username) and Password/TokenSecret on Tableau server (password).
- Use when traditional credentials are allowed.
- Set Authentification mode to use Personal Access Token (PAT).
- Login/TokenName on Tableau server = PAT Name, Password/TokenSecret on Tableau server = PAT Secret.
- Preferred for Tableau Cloud and modern security practices.
Click column with filenames to upload → select type, then pick from:
- Assets (packaged with the pipeline)
- temporary data (produced earlier in the flow)
- recorded data
- JavaScript expression (compute a dynamic path)
- Disk images (
@shared mounts)
- Switch Operating mode to upload all files specified in the input table.
- Provide an input table with one column containing file paths (and optional columns for per-row overrides like
column with Datasource Names on server).
- The action publishes each row’s file in sequence and reports per-file status in the log.
¶ A) Publish a single .hyper and overwrite if it exists
- Operating mode:
upload a specified file
- column with filenames to upload: select your
.hyper
- column with Datasource Names on server:
Sales_Weekly
- Action type:
overwrite Datasource(s) on Server
- Protocol + Name/IP-Adress of Tableau Server: your server URL
- Authentification mode:
use Personal Access Token (PAT)
- Login/TokenName on Tableau server / Password/TokenSecret on Tableau server: PAT Name / Secret
- Tableau Site on Tableau Server:
default
- Tableau Project Name on Tableau Server:
Executive Dashboards
- Embed your credential inside the published datasource: on (so scheduled refresh works)
- Number of retries on connection error:
3
- Same as above but set Action type to
append to Datasource(s) on Server.
- Ensure the schema matches the target datasource.
- Operating mode:
upload all files specified in the input table
- Upstream step provides a table of file paths; optionally include columns for
column with Datasource Names on server, Tableau Project Name on Tableau Server, etc., if you want row-specific names/targets.
- The action supports corporate proxies. Configure proxy/cURL options as needed using Optional: extra parameters for cURL, or use your platform’s global proxy settings.
- The action logs REST calls and server responses.
- Increase Debug information level to
basic or verbose for troubleshooting.
- On failures, the step returns a non-zero status; Number of retries on connection error covers transient network errors.
- The user (or PAT) must have permission to Publish to the chosen Site/Project.
- Ensure the Tableau REST API version (Version of the Tableau REST API) is compatible with your server.
- For embedded credentials, the account you supply should have access to the underlying data sources.
| Symptom |
Likely cause |
Fix |
| 401 Unauthorized |
Bad credentials / PAT expired |
Re-issue PAT or verify username/password |
| 403 Forbidden |
No publish rights to Site/Project |
Grant publish permission or switch Project |
| 409 Conflict on append |
Schema mismatch |
Align fields and types with the existing datasource |
| Timeout / SSL errors |
Network/proxy/TLS issues |
Add flags in Optional: extra parameters for cURL (e.g., --connect-timeout 60), verify proxy/CA |
| Datasource visible but blank |
Uploaded file empty or filtered upstream |
Inspect upstream step and file content |
- Prefer PAT over username/password.
- Use Embed your credential inside the published datasource for scheduled refreshes.
- Keep Version of the Tableau REST API aligned with your server’s REST API level.
- Start with basic debug when validating a new connection; switch to nothing in production.
- Use append only when your schema is stable; otherwise overwrite to avoid polluted models.
