- Overview
- Setup Guide
- Permissions
- Troubleshooting
Personal Access Token (recommended)
Connect Parable to Tableau Server or Tableau Cloud with a Personal Access Token. Parable signs in with the token and finds your site automatically.Content
Workbooks, views, data sources, projects, flowsUsage and users
Users, groups, jobs, subscriptionsConnected Apps (Direct Trust JWT)
Connect Parable to Tableau using a Connected App with Direct Trust. Parable signs a short-lived token with the Connected App secret and uses it to sign in. This is not browser OAuth (no authorize redirect).Username and password (Tableau Server)
Connect Parable to Tableau Server with username and password.Warning: Not available on Tableau Cloud when MFA is enabled. Prefer Personal Access Token or Connected Apps.
Data streams
This Provider Plugin defines 19 data streams.| Stream | Description | Sync |
|---|---|---|
users | Tableau site users | full |
groups | Tableau site groups | full |
group_users | Users that belong to a Tableau group | full |
user_workbooks | The workbooks each licensed Tableau user can open | full |
projects | Tableau projects | incremental |
workbooks | Published Tableau workbooks | incremental |
views | Tableau views/dashboards on a site | incremental |
custom_views | Saved custom views | incremental |
datasources | Published data sources | incremental |
datasource_connections | Connection configs for a published data source | full |
jobs | Background jobs on the site | incremental |
extract_refresh_tasks | Scheduled extract refresh tasks | full |
flows | Tableau Prep flows | incremental |
flow_tasks | Scheduled flow run tasks | full |
flow_runs | Historical Tableau Prep flow runs | incremental |
subscriptions | Content subscriptions | full |
schedules | Server schedules (Tableau Server only; not available on Tableau Cloud) | full |
workbook_views | Views nested under a workbook (opt-in; site views is default) | full |
activity_events | Tableau Cloud Manager / activity log events (opt-in; requires TCM host and admin access) | incremental |
Source permissions
When your Workspace enforces source permissions, each member reads only the Tableau rows that their Tableau user can open. Parable matches a member to a Tableau user by email. Only a user with a licensed site role (Creator, Explorer, Explorer (can publish), Viewer, a site administrator role, or a server administrator) gives access. AnUnlicensed user, a
guest, or a user whose site role Tableau leaves out gives no access.| Data | Who reads it |
|---|---|
workbooks, views, workbook_views | The users that Tableau lists as able to open the workbook (user_workbooks). A view follows its workbook. |
custom_views | The owner. A shared custom view also opens to the readers of its view. |
projects, datasources, datasource_connections, flows | The owner of the project, data source or flow. |
subscriptions, activity_events | The user the subscription is for, and the user who performed the event. |
users, groups, group_users, user_workbooks, jobs, extract_refresh_tasks, schedules, flow_tasks, flow_runs | Only people with All data access. |
user_workbooks sends at least one request for each licensed user on
each sync. Use a site administrator credential, so that Tableau returns
the list for every user.Personal Access Token (recommended)
What You’ll Need
| Credential | What it is |
|---|---|
| Token Name | PAT identifier from My Account Settings |
| Token Secret | PAT secret value (shown once at creation) |
| Site Name | Tableau site content URL slug (from your site URL; blank for Default) |
| Base URL | Tableau Server/Cloud URL (e.g. https://yourcompany.online.tableau.com) |
Info: These steps require Site Administrator, or a colleague who can create a PAT for you.
- Personal Access Tokens enabled on your site
- Site Administrator role (to sync every data stream)
Step 1: Access Account Settings
- Sign in to Tableau Server/Cloud
- Click your avatar → My Account Settings
- Open Personal Access Tokens
Step 2: Create Personal Access Token
- Enter a token name:
Parable Integration - Click Create new token
- Copy both Token name and Token secret
Warning: Copy the token secret now. Tableau shows it only once.
Step 3: Note your server details
| Detail | Example |
|---|---|
| Base URL | https://yourcompany.online.tableau.com or https://tableau.yourcompany.com |
| Site Name | content URL slug from the site URL (empty for Default site) |
Step 4: Enter values in Parable
- Choose Personal Access Token
- Enter Base URL, Site Name, Token Name, Token Secret
- Click Save & test connection
Connected Apps (Direct Trust JWT)
What You’ll Need
| Credential | What it is |
|---|---|
| Connected App Client ID | Client ID from Tableau Connected Apps (Direct Trust) |
| Secret ID | Secret key ID (kid) from the Connected App |
| Secret Value | Shared secret used to sign the JWT |
| Impersonate User | Tableau user email used as the JWT sub claim |
| Site Name | Site content URL slug (blank for the Default site) |
| Base URL | Tableau Server/Cloud URL (e.g. https://yourcompany.online.tableau.com) |
Info: Requires a Tableau site administrator (or Cloud admin) to create the Connected App.
- Connected Apps enabled on the site
- A Tableau user email that Parable should act as (
sub) - REST API scopes enabled on the Connected App for the methods you need, including
tableau:users:read, which Save & test needs
Step 1: Create a Connected App (Direct Trust)
- Sign in to Tableau Server/Cloud as an admin
- Open Settings → Connected Apps
- Create a Direct Trust Connected App
- Enable the app
- Generate a secret and copy:
- Client ID
- Secret ID
- Secret value
Step 2: Note site and server details
| Detail | Example |
|---|---|
| Base URL | https://yourcompany.online.tableau.com |
| Site Name | content URL slug from the site URL (or blank for Default) |
| Impersonate User | admin@yourcompany.com |
Step 3: Enter values in Parable
- Choose Connected Apps (Direct Trust JWT)
- Enter Client ID, Secret ID, Secret value, Impersonate User, Site Name, Base URL
- Optionally set scopes (space-separated). Defaults cover content/users/projects read scopes
- Click Save & test connection
Note: Save & test asks Tableau only for tableau:users:read, the scope its users listing needs, whatever scopes you set in step 3. If your scopes leave out a scope a table needs, Save & test can pass while that table cannot sync.
Username and password (Tableau Server)
What You’ll Need
| Credential | What it is |
|---|---|
| Username | Tableau Server username |
| Password | Tableau Server password |
| Site Name | Site content URL slug (blank for the Default site) |
| Base URL | Tableau Server URL |
- Tableau Server (not Cloud + MFA)
- A user with Site Administrator (or a role that can read the data streams you enable)
Step 1: Confirm password sign-in works on your server
- Sign in to Tableau Server with the username/password you will use
- Confirm MFA is not required for that account
Step 2: Note server details
| Detail | Example |
|---|---|
| Base URL | https://tableau.yourcompany.com |
| Site Name | content URL slug (or blank for Default) |
Step 3: Enter values in Parable
- Choose Username and password (Tableau Server)
- Enter Username, Password, Site Name, Base URL
- Click Save & test connection
Activity Events
Activity Events
activity_eventsActivity Events contain Tableau Cloud Manager / activity log events (opt-in; requires TCM host and admin access).- Enables: trace opted-in Tableau Cloud Manager events to the recorded actor, site, and event time.
- Scope: Reads the records that changed since the previous sync from
GET /api/3.29/activity/events. This opt-in endpoint requires a Tableau Cloud Manager host and administrator access.
Actor User ID
Actor User ID
activity_events.actorUserIdActor User ID carries the Tableau LUID of the user who performed the event. It is needed to resolve references that repeat the same provider identifier.- Enables: match activity event records to the actor’s row in
users(users.id). - Interpretation: The provider supplies
actorUserIdas a site user LUID. For source permissions, each event opens to the user who performed it. An event with no actor opens only to readers with All data access.
Actor User Name
Actor User Name
activity_events.actorUserNameActor User Name carries the source person or account value named Actor User Name for each activity event row. It keeps the provider-reported person or account context attached to the record.- Enables: attribute the activity event record to the provider-reported actor represented by actor user name.
- Interpretation: The provider supplies
actorUserNameas identity or attribution context on each activity event record. Names and contact values can change and are not stable identifiers unless the provider documents them as such.
Event Time
Event Time
activity_events.eventTimeEvent Time carries the source date or timestamp named Event Time for each activity event row. It anchors the named event or boundary on the record’s timeline.- Enables: place activity event records on a timeline by event time and select the records within an explicit reporting window.
- Interpretation: The provider supplies
eventTimeper activity event record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Event Type
Event Type
activity_events.eventTypeEvent Type carries the source state or classification named Event Type for each activity event row. It preserves the provider’s current classification of this record.- Enables: separate activity event records by the exact provider-reported event type value when describing their recorded state.
- Interpretation: The provider supplies
eventTypeper activity event record using its own state vocabulary; unknown and missing values must remain distinct.
ID
ID
activity_events.idID is the record key for each activity event row. Rows with the same value describe the same record.- Enables: identify each activity event record across syncs.
- Interpretation: The provider supplies
idat one value per activity event record, and it is the record key. Tableau identifiers and view metadata do not prove effective access.
Site LUID
Site LUID
activity_events.siteLuidSite LUID carries the source identifier named Site LUID for each activity event row. It is needed to resolve references that repeat the same provider identifier.- Enables: match activity event records to provider records that carry the same site LUID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
siteLuidas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access.
Custom Views
Custom Views
custom_viewsCustom Views contain saved custom views.- Enables: catalog saved custom views with owner and source-view references.
- Scope: Reads the records that changed since the previous sync from
GET /api/3.29/sites/{siteId}/customviews. Results are limited to objects returned for the authenticated Tableau site; identifiers and view metadata do not establish effective access.
Created At
Created At
custom_views.createdAtCreated At carries the source date or timestamp named Created At for each custom view row. It anchors the named event or boundary on the record’s timeline.- Enables: place custom view records on a timeline by created at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
createdAtper custom view record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported. Tableau identifiers and view metadata do not prove effective access.
ID
ID
custom_views.idID identifies Tableau LUID. It is the record key, so rows with the same value describe the same record.- Enables: identify each custom view record across syncs.
- Interpretation: The provider supplies
idat one value per custom view record, and it is the record key. Tableau identifiers and view metadata do not prove effective access.
Last Accessed At
Last Accessed At
custom_views.lastAccessedAtLast Accessed At carries the source date or timestamp named Last Accessed At for each custom view row. It anchors the named event or boundary on the record’s timeline.- Enables: place custom view records on a timeline by last accessed at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
lastAccessedAtper custom view record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported. Tableau identifiers and view metadata do not prove effective access.
Name
Name
custom_views.nameName carries the source-authored value named Name for each custom view row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact name value attached to each custom view record.
- Interpretation: The provider supplies
nameat custom view granularity in the format stated by its description; omitted or redacted content remains unknown. Tableau identifiers and view metadata do not prove effective access.
Owner
Owner
custom_views.ownerOwner. The user who saved the custom view, as Tableau’s nested owner element.- Enables: Attribute each custom view to its owner (
owner.idtousers.id). - Interpretation: For source permissions, the owner always reads their own custom view.
ID
ID
custom_views.owner.idID. Tableau’s LUID of the user who owns the custom view.- Enables: Connect each custom view to its owner’s row in
users(users.id). - Interpretation: Tableau returns the owner as a nested
ownerelement with anid. The value is in the same namespace asusers.id.
Name
Name
custom_views.owner.nameName. The Tableau user name of the custom view’s owner, when Tableau returns it.- Enables: Show who owns each custom view without a join to
users. - Interpretation: A user name can change. Use
owner.idto identify the owner.
Shared
Shared
custom_views.sharedShared carries the source true-or-false flag named Shared for each custom view row. It preserves the provider-reported yes-or-no condition for this record.- Enables: select custom view records for which the provider reports shared as true or false.
- Interpretation: The provider supplies
sharedas a boolean per custom view record. For source permissions, a custom view inherits the access of its view only whensharedis true. When it is false or missing, only the owner reads the custom view.
Updated At
Updated At
custom_views.updatedAtUpdated At carries the source date or timestamp named Updated At for each custom view row. It anchors the named event or boundary on the record’s timeline.- Enables: place custom view records on a timeline by updated at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
updatedAtper custom view record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported. Tableau identifiers and view metadata do not prove effective access.
View
View
custom_views.viewView. The view that the custom view is based on, as Tableau’s nested view element.- Enables: Associate each custom view with its view (
view.idtoviews.id). - Interpretation: For source permissions, a shared custom view (
sharedtrue) also opens to each member who can open its view. A custom view that is not shared opens to its owner only.
ID
ID
custom_views.view.idID. Tableau’s LUID of the view that the custom view is based on.- Enables: Connect each custom view to its view in
views(views.id). - Interpretation: Every custom view is based on one view.
Name
Name
custom_views.view.nameName. The name of the view that the custom view is based on.- Enables: Show the source view without a join to
views. - Interpretation: A view name can change. Use
view.idto identify the view.
Workbook
Workbook
custom_views.workbookWorkbook. The workbook that holds the view, as Tableau’s nested workbook element.- Enables: Associate each custom view with its workbook (
workbook.idtoworkbooks.id). - Interpretation: Source permissions read
view, not this field.
ID
ID
custom_views.workbook.idID. Tableau’s LUID of the workbook that holds the view.- Enables: Connect each custom view to its workbook in
workbooks. - Interpretation: Source permissions read the view, not this field.
Name
Name
custom_views.workbook.nameName. The name of the workbook that holds the view.- Enables: Show the workbook without a join to
workbooks. - Interpretation: A workbook name can change. Use
workbook.idto identify it.
Datasource Connections
Datasource Connections
datasource_connectionsDatasource Connections contain connection configs for a published data source.- Enables: inspect connection configuration returned for a published data source.
- Scope: Reads every record from
GET /api/3.29/sites/{siteId}/datasources/{datasource_id}/connectionson each sync. Results are limited to objects returned for the authenticated Tableau site; identifiers and view metadata do not establish effective access.
Datasource ID
Datasource ID
datasource_connections.datasource_idDatasource ID identifies the LUID of the parent datasource, which Parable copies from that record. It is needed to resolve references that repeat the same provider identifier.- Enables: match datasource connection records to provider records that carry the same datasource ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
datasource_idas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access. For source permissions, the connection inherits the access of this data source.
ID
ID
datasource_connections.idID is the record key for each datasource connection row. Rows with the same value describe the same record.- Enables: identify each datasource connection record across syncs.
- Interpretation: The provider supplies
idat one value per datasource connection record, and it is the record key. Tableau identifiers and view metadata do not prove effective access.
Server Address
Server Address
datasource_connections.serverAddressServer Address carries the source configuration value named Server Address for each datasource connection row. It preserves the configuration or technical value needed to explain how the provider object is defined.- Enables: inspect the exact server address when validating the configuration or technical definition of a datasource connection record.
- Interpretation: The provider supplies
serverAddressas configuration or technical metadata; consumers must preserve the exact syntax and documented vocabulary.
Server Port
Server Port
datasource_connections.serverPortServer Port carries the source configuration value named Server Port for each datasource connection row. It preserves the configuration or technical value needed to explain how the provider object is defined.- Enables: inspect the exact server port when validating the configuration or technical definition of a datasource connection record.
- Interpretation: The provider supplies
serverPortas configuration or technical metadata; consumers must preserve the exact syntax and documented vocabulary.
Type
Type
datasource_connections.typeType carries the source state or classification named Type for each datasource connection row. It preserves the provider’s current classification of this record.- Enables: separate datasource connection records by the exact provider-reported type value when describing their recorded state.
- Interpretation: The provider supplies
typeper datasource connection record using its own state vocabulary; unknown and missing values must remain distinct.
User Name
User Name
datasource_connections.userNameUser Name records connection login username (not email). It keeps the provider-reported person or account context attached to the record.- Enables: attribute the datasource connection record to the provider-reported actor represented by user name.
- Interpretation: The provider supplies
userNameas identity or attribution context on each datasource connection record. Names and contact values can change and are not stable identifiers unless the provider documents them as such.
Datasources
Datasources
datasourcesDatasources contain published data sources.- Enables: catalog published data sources with their project, owner, and extract metadata.
- Scope: Reads the records that changed since the previous sync from
GET /api/3.29/sites/{siteId}/datasources. Results are limited to objects returned for the authenticated Tableau site; identifiers and view metadata do not establish effective access.
Certification Note
Certification Note
datasources.certificationNoteCertification Note carries the source-authored value named Certification Note for each datasource row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact certification note value attached to each datasource record.
- Interpretation: The provider supplies
certificationNoteat datasource granularity in the format stated by its description; omitted or redacted content remains unknown.
Content URL
Content URL
datasources.contentUrlContent URL carries the provider-reported content url for each datasource record. It retains the exact provider location for the referenced resource.- Enables: open or trace the exact provider resource referenced by content URL on a datasource record.
- Interpretation: The provider supplies
contentUrlas a URL or resource locator on each datasource record. It identifies a Tableau catalog location but does not prove who can open it.
Created At
Created At
datasources.createdAtCreated At carries the source date or timestamp named Created At for each datasource row. It anchors the named event or boundary on the record’s timeline.- Enables: place datasource records on a timeline by created at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
createdAtper datasource record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Description
Description
datasources.descriptionDescription carries the source-authored value named Description for each datasource row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact description value attached to each datasource record.
- Interpretation: The provider supplies
descriptionat datasource granularity in the format stated by its description; omitted or redacted content remains unknown.
Encrypt Extracts
Encrypt Extracts
datasources.encryptExtractsEncrypt Extracts carries the source true-or-false flag named Encrypt Extracts for each datasource row. It preserves the provider-reported yes-or-no condition for this record.- Enables: select datasource records for which the provider reports encrypt extracts as true or false.
- Interpretation: The provider supplies
encryptExtractsas a boolean per datasource record; false and missing are distinct when the field is optional.
Has Extracts
Has Extracts
datasources.hasExtractsHas Extracts carries the source true-or-false flag named Has Extracts for each datasource row. It preserves the provider-reported yes-or-no condition for this record.- Enables: select datasource records for which the provider reports has extracts as true or false.
- Interpretation: The provider supplies
hasExtractsas a boolean per datasource record; false and missing are distinct when the field is optional.
ID
ID
datasources.idID identifies Tableau LUID. It is the record key, so rows with the same value describe the same record.- Enables: identify each datasource record across syncs.
- Interpretation: The provider supplies
idat one value per datasource record, and it is the record key. Tableau identifiers and view metadata do not prove effective access.
Is Certified
Is Certified
datasources.isCertifiedIs Certified carries the source true-or-false flag named Is Certified for each datasource row. It preserves the provider-reported yes-or-no condition for this record.- Enables: select datasource records for which the provider reports is certified as true or false.
- Interpretation: The provider supplies
isCertifiedas a boolean per datasource record; false and missing are distinct when the field is optional.
Name
Name
datasources.nameName carries the source-authored value named Name for each datasource row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact name value attached to each datasource record.
- Interpretation: The provider supplies
nameat datasource granularity in the format stated by its description; omitted or redacted content remains unknown.
Owner
Owner
datasources.ownerOwner. The user who owns the data source, as Tableau’s nested owner element.- Enables: Attribute each data source to its owner (
owner.idtousers.id). - Interpretation: For source permissions, the owner reads the data source. Parable does not read Tableau’s permission rules for a data source yet, so no other member reads it, except readers with All data access.
ID
ID
datasources.owner.idID. Tableau’s LUID of the user who owns the data source.- Enables: Connect each data source to its owner’s row in
users(users.id). - Interpretation: Tableau returns the owner as a nested
ownerelement with anid. The value is in the same namespace asusers.id.
Name
Name
datasources.owner.nameName. The Tableau user name of the data source’s owner, when Tableau returns it.- Enables: Show who owns each data source without a join to
users. - Interpretation: A user name can change. Use
owner.idto identify the owner.
Project ID
Project ID
datasources.project_idProject ID carries the source identifier named Project ID for each datasource row. It is needed to resolve references that repeat the same provider identifier.- Enables: match datasource records to provider records that carry the same project ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
project_idas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access.
Project Name
Project Name
datasources.project_nameProject Name carries the source-authored value named Project Name for each datasource row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact project name value attached to each datasource record.
- Interpretation: The provider supplies
project_nameat datasource granularity in the format stated by its description; omitted or redacted content remains unknown.
Type
Type
datasources.typeType carries the source state or classification named Type for each datasource row. It preserves the provider’s current classification of this record.- Enables: separate datasource records by the exact provider-reported type value when describing their recorded state.
- Interpretation: The provider supplies
typeper datasource record using its own state vocabulary; unknown and missing values must remain distinct.
Updated At
Updated At
datasources.updatedAtUpdated At carries the source date or timestamp named Updated At for each datasource row. It anchors the named event or boundary on the record’s timeline.- Enables: place datasource records on a timeline by updated at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
updatedAtper datasource record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Use Remote Query Agent
Use Remote Query Agent
datasources.useRemoteQueryAgentUse Remote Query Agent carries the source true-or-false flag named Use Remote Query Agent for each datasource row. It preserves the provider-reported yes-or-no condition for this record.- Enables: select datasource records for which the provider reports use remote query agent as true or false.
- Interpretation: The provider supplies
useRemoteQueryAgentas a boolean per datasource record; false and missing are distinct when the field is optional.
Extract Refresh Tasks
Extract Refresh Tasks
extract_refresh_tasksExtract Refresh Tasks contain scheduled extract refresh tasks.- Enables: review scheduled extract refresh configuration and consecutive failure counts.
- Scope: Reads every record from
GET /api/3.29/sites/{siteId}/tasks/extractRefresheson each sync. Results are limited to objects returned for the authenticated Tableau site; identifiers and view metadata do not establish effective access.
Extract Refresh
Extract Refresh
extract_refresh_tasks.extractRefreshExtract Refresh records the extractRefresh task Tableau wraps each tasks.task element in. It carries the whole extract refresh task, whose record identity is extractRefresh.id.- Enables: read each extract refresh task record from the one object Tableau returns per tasks.task element.
- Interpretation: The provider supplies
extractRefreshat one value per extract refresh task record and puts no fields beside it; the task’s own fields are declared.
Consecutive Failed Count
Consecutive Failed Count
extract_refresh_tasks.extractRefresh.consecutiveFailedCountConsecutive Failed Count carries the source measure named Consecutive Failed Count for each extract refresh task row. It preserves the stated measure at this record’s granularity.- Enables: measure the provider-reported consecutive failed count for each extract refresh task record.
- Interpretation: The provider supplies
consecutiveFailedCountat extract refresh task granularity as a count at one value per record; zero and missing are not interchangeable.
Datasource
Datasource
extract_refresh_tasks.extractRefresh.datasourceDatasource carries the data source the task refreshes, when it targets a data source, as Tableau returns it for each extract refresh task row. It holds a nested object whose keys can vary.- Enables: match extract refresh task records to the data source they refresh by the identifier and name inside
datasource, without assuming that this field alone makes every row unique. - Interpretation: The provider supplies
datasourceat extract refresh task granularity only when the task targets a data source; keys and value shapes within it can vary with provider configuration. Tableau identifiers and view metadata do not prove effective access.
ID
ID
extract_refresh_tasks.extractRefresh.idID is the task LUID Tableau returns for each extract refresh task row. It is the key of this nested record.- Enables: identify each extract refresh task record.
- Interpretation: The provider supplies
idat one value per extract refresh task record inside theextractRefreshobject, andextractRefresh.idis the record key. Tableau identifiers and view metadata do not prove effective access.
Priority
Priority
extract_refresh_tasks.extractRefresh.priorityPriority carries the source state or classification named Priority for each extract refresh task row.- Enables: separate extract refresh task records by the exact provider-reported priority value when describing their recorded state.
- Interpretation: The provider supplies
priorityper extract refresh task record as a number; unknown and missing values must remain distinct.
Schedule
Schedule
extract_refresh_tasks.extractRefresh.scheduleSchedule carries the schedule the task runs on (id, name, state, frequency, nextRunAt, frequencyDetails) as Tableau returns it for each extract refresh task row. It preserves the provider-defined cadence for this record.- Enables: group extract refresh task records by the provider-defined schedule and place their next run on a timeline from the values inside
schedule. - Interpretation: The provider supplies
scheduleper extract refresh task record using its own period and state vocabulary; keys and value shapes within it can vary with provider configuration, and it is not an elapsed-duration measurement.
Type
Type
extract_refresh_tasks.extractRefresh.typeType carries the source state or classification named Type for each extract refresh task row. It preserves the provider’s current classification of this record.- Enables: separate extract refresh task records by the exact provider-reported type value when describing their recorded state.
- Interpretation: The provider supplies
typeper extract refresh task record using its own state vocabulary; unknown and missing values must remain distinct.
Workbook
Workbook
extract_refresh_tasks.extractRefresh.workbookWorkbook carries the workbook the task refreshes, when it targets a workbook, as Tableau returns it for each extract refresh task row. It holds a nested object whose keys can vary.- Enables: match extract refresh task records to the workbook they refresh by the identifier and name inside
workbook, without assuming that this field alone makes every row unique. - Interpretation: The provider supplies
workbookat extract refresh task granularity only when the task targets a workbook; keys and value shapes within it can vary with provider configuration. Tableau identifiers and view metadata do not prove effective access.
Flow Runs
Flow Runs
flow_runsFlow Runs contain historical Tableau Prep flow runs.- Enables: track historical Tableau Prep runs by status, progress, and timestamps.
- Scope: Reads the records that changed since the previous sync from
GET /api/3.29/sites/{siteId}/flows/runs. Results are limited to objects returned for the authenticated Tableau site; identifiers and view metadata do not establish effective access.
Background Job ID
Background Job ID
flow_runs.backgroundJobIdBackground Job ID carries the source identifier named Background Job ID for each flow run row. It is needed to resolve references that repeat the same provider identifier.- Enables: match flow run records to provider records that carry the same background job ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
backgroundJobIdas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access.
Completed At
Completed At
flow_runs.completedAtCompleted At carries the source state or classification named Completed At for each flow run row.- Enables: place flow run records on a timeline by completed at.
- Interpretation: The provider supplies
completedAtper flow run record as a timestamp; a missing value means the time was not reported.
Flow ID
Flow ID
flow_runs.flow_idFlow ID carries the source identifier named Flow ID for each flow run row. It is needed to resolve references that repeat the same provider identifier.- Enables: match flow run records to provider records that carry the same flow ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
flow_idas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access.
ID
ID
flow_runs.idID is the record key for each flow run row. Rows with the same value describe the same record.- Enables: identify each flow run record across syncs.
- Interpretation: The provider supplies
idat one value per flow run record, and it is the record key. Tableau identifiers and view metadata do not prove effective access.
Progress
Progress
flow_runs.progressProgress records Tableau’s numeric progress value for the flow run. It preserves the execution-state value returned by the provider.- Enables: distinguish flow runs at different stages of execution after applying the scale used by the source export.
- Interpretation: The provider supplies
progressas an integer but this schema does not declare its range or unit; zero and missing are not interchangeable.
Started At
Started At
flow_runs.startedAtStarted At carries the source date or timestamp named Started At for each flow run row. It anchors the named event or boundary on the record’s timeline.- Enables: place flow run records on a timeline by started at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
startedAtper flow run record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Status
Status
flow_runs.statusStatus carries the source state or classification named Status for each flow run row. It preserves the provider’s current classification of this record.- Enables: separate flow run records by the exact provider-reported status value when describing their recorded state.
- Interpretation: The provider supplies
statusper flow run record using its own state vocabulary; unknown and missing values must remain distinct.
Flow Tasks
Flow Tasks
flow_tasksFlow Tasks contain scheduled flow run tasks.- Enables: review scheduled Tableau Prep flow task configuration.
- Scope: Reads every record from
GET /api/3.29/sites/{siteId}/tasks/flowson each sync. Results are limited to objects returned for the authenticated Tableau site; identifiers and view metadata do not establish effective access.
Consecutive Failed Count
Consecutive Failed Count
flow_tasks.consecutiveFailedCountConsecutive Failed Count carries the source measure named Consecutive Failed Count for each flow task row. It preserves the stated measure at this record’s granularity.- Enables: measure the provider-reported consecutive failed count for each flow task record.
- Interpretation: The provider supplies
consecutiveFailedCountat flow task granularity as a count at one value per record; zero and missing are not interchangeable.
Flow ID
Flow ID
flow_tasks.flow_idFlow ID carries the source identifier named Flow ID for each flow task row. It is needed to resolve references that repeat the same provider identifier.- Enables: match flow task records to provider records that carry the same flow ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
flow_idas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access.
Flow Name
Flow Name
flow_tasks.flow_nameFlow Name carries the source-authored value named Flow Name for each flow task row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact flow name value attached to each flow task record.
- Interpretation: The provider supplies
flow_nameat flow task granularity in the format stated by its description; omitted or redacted content remains unknown.
Flow Run
Flow Run
flow_tasks.flowRunFlow Run records nested flowRun payload when present on tasks.task. It holds configured attributes whose keys and shapes can vary.- Enables: interpret flow run according to the provider and Workspace configuration that produced each flow task record.
- Interpretation: Keys and value shapes within
flowRuncan vary with provider and customer configuration. Check the keys in your Workspace’s data rather than assume a fixed set.
ID
ID
flow_tasks.idID is the record key for each flow task row. Rows with the same value describe the same record.- Enables: identify each flow task record across syncs.
- Interpretation: The provider supplies
idat one value per flow task record, and it is the record key. Tableau identifiers and view metadata do not prove effective access.
Priority
Priority
flow_tasks.priorityPriority carries the source state or classification named Priority for each flow task row.- Enables: separate flow task records by the exact provider-reported priority value when describing their recorded state.
- Interpretation: The provider supplies
priorityper flow task record as a number; unknown and missing values must remain distinct.
Schedule Frequency
Schedule Frequency
flow_tasks.schedule_frequencySchedule Frequency carries the source period or schedule value named Schedule Frequency for each flow task row. It preserves the provider-defined period or schedule cadence for this record.- Enables: group flow task records by the provider-defined schedule frequency period or schedule.
- Interpretation: The provider supplies
schedule_frequencyper flow task record using its own period or schedule vocabulary; it is not an elapsed-duration measurement.
Schedule ID
Schedule ID
flow_tasks.schedule_idSchedule ID carries the source identifier named Schedule ID for each flow task row. It is needed to resolve references that repeat the same provider identifier.- Enables: match flow task records to provider records that carry the same schedule ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
schedule_idas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access.
Schedule Name
Schedule Name
flow_tasks.schedule_nameSchedule Name carries the source-authored value named Schedule Name for each flow task row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact schedule name value attached to each flow task record.
- Interpretation: The provider supplies
schedule_nameat flow task granularity in the format stated by its description; omitted or redacted content remains unknown.
Type
Type
flow_tasks.typeType carries the source state or classification named Type for each flow task row. It preserves the provider’s current classification of this record.- Enables: separate flow task records by the exact provider-reported type value when describing their recorded state.
- Interpretation: The provider supplies
typeper flow task record using its own state vocabulary; unknown and missing values must remain distinct.
Flows
Flows
flowsFlows contain Tableau Prep flows.- Enables: catalog Tableau Prep flows by project and owner.
- Scope: Reads the records that changed since the previous sync from
GET /api/3.29/sites/{siteId}/flows. Results are limited to objects returned for the authenticated Tableau site; identifiers and view metadata do not establish effective access.
Created At
Created At
flows.createdAtCreated At carries the source date or timestamp named Created At for each flow row. It anchors the named event or boundary on the record’s timeline.- Enables: place flow records on a timeline by created at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
createdAtper flow record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Description
Description
flows.descriptionDescription carries the source-authored value named Description for each flow row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact description value attached to each flow record.
- Interpretation: The provider supplies
descriptionat flow granularity in the format stated by its description; omitted or redacted content remains unknown.
ID
ID
flows.idID identifies Tableau LUID. It is the record key, so rows with the same value describe the same record.- Enables: identify each flow record across syncs.
- Interpretation: The provider supplies
idat one value per flow record, and it is the record key. Tableau identifiers and view metadata do not prove effective access.
Name
Name
flows.nameName carries the source-authored value named Name for each flow row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact name value attached to each flow record.
- Interpretation: The provider supplies
nameat flow granularity in the format stated by its description; omitted or redacted content remains unknown.
Owner
Owner
flows.ownerOwner. The user who owns the flow, as Tableau’s nested owner element.- Enables: Attribute each flow to its owner (
owner.idtousers.id). - Interpretation: For source permissions, the owner reads the flow. Parable does not read Tableau’s permission rules for a flow yet, so no other member reads it, except readers with All data access.
ID
ID
flows.owner.idID. Tableau’s LUID of the user who owns the flow.- Enables: Connect each flow to its owner’s row in
users(users.id). - Interpretation: Tableau returns the owner as a nested
ownerelement with anid. The value is in the same namespace asusers.id.
Name
Name
flows.owner.nameName. The Tableau user name of the flow’s owner, when Tableau returns it.- Enables: Show who owns each flow without a join to
users. - Interpretation: A user name can change. Use
owner.idto identify the owner.
Project ID
Project ID
flows.project_idProject ID carries the source identifier named Project ID for each flow row. It is needed to resolve references that repeat the same provider identifier.- Enables: match flow records to provider records that carry the same project ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
project_idas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access.
Project Name
Project Name
flows.project_nameProject Name carries the source-authored value named Project Name for each flow row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact project name value attached to each flow record.
- Interpretation: The provider supplies
project_nameat flow granularity in the format stated by its description; omitted or redacted content remains unknown.
Updated At
Updated At
flows.updatedAtUpdated At carries the source date or timestamp named Updated At for each flow row. It anchors the named event or boundary on the record’s timeline.- Enables: place flow records on a timeline by updated at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
updatedAtper flow record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Group Users
Group Users
group_usersGroup Users contain users that belong to a Tableau group.- Enables: map site accounts to a specific Tableau group.
- Scope: Reads every record from
GET /api/3.29/sites/{siteId}/groups/{group_id}/userson each sync. Results are limited to objects returned for the authenticated Tableau site; identifiers and view metadata do not establish effective access. With source permissions on, each row makes the user a member of the group, and only readers with All data access read this stream.
Auth Setting
Auth Setting
group_users.authSettingAuth Setting carries the source access or role value named Auth Setting for each group user row. It documents the access-related value reported for this object or membership.- Enables: describe the provider-reported auth setting attached to each group user record.
- Interpretation: The provider supplies
authSettingat group user granularity. For Tableau, this metadata does not prove effective access.
Group ID
Group ID
group_users.group_idGroup ID identifies the LUID of the parent group, which Parable copies from that record. It is needed to resolve references that repeat the same provider identifier.- Enables: match group user records to provider records that carry the same group ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
group_idas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access.
ID
ID
group_users.idID. Tableau’s LUID for the user who belongs to the group.- Enables: Connect each group membership to the member’s Tableau account through
group_users.id. - Interpretation: Tableau reports this value in its user namespace. The same value repeats once for every group the member belongs to, so it does not identify a row on its own.
Last Login
Last Login
group_users.lastLoginLast Login carries the source date or timestamp named Last Login for each group user row. It anchors the named event or boundary on the record’s timeline.- Enables: place group user records on a timeline by last login and select the records within an explicit reporting window.
- Interpretation: The provider supplies
lastLoginper group user record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Membership Key
Membership Key
group_users.membership_keyMembership Key. A key Parable builds from group_id and id, so each combination of those values has one key.- Enables: Identify each group membership on its own, so a member who belongs to several Tableau groups has one row per group.
- Interpretation: Parable calculates
membership_keywhen it reads the record. It identifies one group-to-member relationship, not the member or the group by itself, and is not a Tableau identifier. It is the record key.
Name
Name
group_users.nameName carries the source-authored value named Name for each group user row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact name value attached to each group user record.
- Interpretation: The provider supplies
nameat group user granularity in the format stated by its description; omitted or redacted content remains unknown.
Site Role
Site Role
group_users.siteRoleSite Role carries the source access or role value named Site Role for each group user row. It documents the access-related value reported for this object or membership.- Enables: describe the provider-reported site role attached to each group user record.
- Interpretation: The provider supplies
siteRoleat group user granularity. For Tableau, this metadata does not prove effective access.
Groups
Groups
groupsGroups contain Tableau site groups.- Enables: catalog groups defined on the configured Tableau site.
- Scope: Reads every record from
GET /api/3.29/sites/{siteId}/groupson each sync. Results are limited to objects returned for the authenticated Tableau site; identifiers and view metadata do not establish effective access. With source permissions on, each group is a principal, and only readers with All data access read this stream.
Domain Name
Domain Name
groups.domain_nameDomain Name carries the source-authored value named Domain Name for each group row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact domain name value attached to each group record.
- Interpretation: The provider supplies
domain_nameat group granularity in the format stated by its description; omitted or redacted content remains unknown.
ID
ID
groups.idID identifies Tableau LUID. It is the record key, so rows with the same value describe the same record.- Enables: identify each group record across syncs.
- Interpretation: The provider supplies
idat one value per group record, and it is the record key. Tableau identifiers and view metadata do not prove effective access.
Import Domain Name
Import Domain Name
groups.import_domainNameImport Domain Name carries the source-authored value named Import Domain Name for each group row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact import domain name value attached to each group record.
- Interpretation: The provider supplies
import_domainNameat group granularity in the format stated by its description; omitted or redacted content remains unknown.
Import Grant License Mode
Import Grant License Mode
groups.import_grantLicenseModeImport Grant License Mode carries the source access or role value named Import Grant License Mode for each group row. It documents the access-related value reported for this object or membership.- Enables: describe the provider-reported import grant license mode attached to each group record.
- Interpretation: The provider supplies
import_grantLicenseModeat group granularity. For Tableau, this metadata does not prove effective access.
Import Site Role
Import Site Role
groups.import_siteRoleImport Site Role carries the source access or role value named Import Site Role for each group row. It documents the access-related value reported for this object or membership.- Enables: describe the provider-reported import site role attached to each group record.
- Interpretation: The provider supplies
import_siteRoleat group granularity. For Tableau, this metadata does not prove effective access.
Name
Name
groups.nameName carries the source-authored value named Name for each group row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact name value attached to each group record.
- Interpretation: The provider supplies
nameat group granularity in the format stated by its description; omitted or redacted content remains unknown.
Jobs
Jobs
jobsJobs contain background jobs on the site.- Enables: track background jobs by provider-reported job type, status, priority, and created, started and ended times.
- Scope: Reads the records that changed since the previous sync from
GET /api/3.29/sites/{siteId}/jobs. Results are limited to objects returned for the authenticated Tableau site; identifiers and view metadata do not establish effective access.
Created At
Created At
jobs.createdAtCreated At carries the source date or timestamp named Created At for each job row. It anchors the named event or boundary on the record’s timeline.- Enables: place job records on a timeline by created at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
createdAtper job record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Ended At
Ended At
jobs.endedAtEnded At carries the time that Tableau reports for the end of each background job.- Enables: place job records on a timeline by ended at, and compare it with Started At to see how long a job ran.
- Interpretation: The provider supplies
endedAtper job record as a timestamp at the precision that the provider returns. A missing value means that the time was not reported.
ID
ID
jobs.idID is the record key for each job row. Rows with the same value describe the same record.- Enables: identify each job record across syncs.
- Interpretation: The provider supplies
idat one value per job record, and it is the record key. Tableau identifiers and view metadata do not prove effective access.
Job Type
Job Type
jobs.jobTypeJob Type carries the source state or classification named Job Type for each job row. It preserves the provider’s current classification of this record.- Enables: separate job records by the exact provider-reported job type value when describing their recorded state.
- Interpretation: The provider supplies
jobTypeper job record using its own state vocabulary; unknown and missing values must remain distinct.
Priority
Priority
jobs.priorityPriority carries the source state or classification named Priority for each job row.- Enables: separate job records by the exact provider-reported priority value when describing their recorded state.
- Interpretation: The provider supplies
priorityper job record as a number; unknown and missing values must remain distinct.
Started At
Started At
jobs.startedAtStarted At carries the source date or timestamp named Started At for each job row. It anchors the named event or boundary on the record’s timeline.- Enables: place job records on a timeline by started at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
startedAtper job record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Status
Status
jobs.statusStatus carries the source state or classification named Status for each job row. It preserves the provider’s current classification of this record.- Enables: separate job records by the exact provider-reported status value when describing their recorded state.
- Interpretation: The provider supplies
statusper job record using its own state vocabulary; unknown and missing values must remain distinct.
Projects
Projects
projectsProjects contain Tableau projects.- Enables: organize published Tableau content by project.
- Scope: Reads the records that changed since the previous sync from
GET /api/3.29/sites/{siteId}/projects. Results are limited to objects returned for the authenticated Tableau site; identifiers and view metadata do not establish effective access.
Content Permissions
Content Permissions
projects.contentPermissionsContent Permissions carries the source access or role value named Content Permissions for each project row. It documents the access-related value reported for this object or membership.- Enables: describe the provider-reported content permissions attached to each project record.
- Interpretation: The provider supplies
contentPermissionsat project granularity. For Tableau, this metadata does not prove effective access.
Created At
Created At
projects.createdAtCreated At carries the source date or timestamp named Created At for each project row. It anchors the named event or boundary on the record’s timeline.- Enables: place project records on a timeline by created at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
createdAtper project record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Description
Description
projects.descriptionDescription carries the source-authored value named Description for each project row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact description value attached to each project record.
- Interpretation: The provider supplies
descriptionat project granularity in the format stated by its description; omitted or redacted content remains unknown.
ID
ID
projects.idID identifies Tableau LUID. It is the record key, so rows with the same value describe the same record.- Enables: identify each project record across syncs.
- Interpretation: The provider supplies
idat one value per project record, and it is the record key. Tableau identifiers and view metadata do not prove effective access.
Name
Name
projects.nameName carries the source-authored value named Name for each project row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact name value attached to each project record.
- Interpretation: The provider supplies
nameat project granularity in the format stated by its description; omitted or redacted content remains unknown.
Owner
Owner
projects.ownerOwner. The user who owns the project, as Tableau’s nested owner element.- Enables: Attribute each project to its owner (
owner.idtousers.id). - Interpretation: For source permissions, the owner reads the project. Parable does not read Tableau’s permission rules for a project yet, so no other member reads it, except readers with All data access.
ID
ID
projects.owner.idID. Tableau’s LUID of the user who owns the project.- Enables: Connect each project to its owner’s row in
users(users.id). - Interpretation: Tableau returns the owner as a nested
ownerelement with anid. The value is in the same namespace asusers.id.
Parent Project ID
Parent Project ID
projects.parentProjectIdParent Project ID carries the source identifier named Parent Project ID for each project row. It is needed to resolve references that repeat the same provider identifier.- Enables: match project records to provider records that carry the same parent project ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
parentProjectIdas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access.
Top Level Project
Top Level Project
projects.topLevelProjectTop Level Project carries the source true-or-false flag named Top Level Project for each project row. It preserves the provider-reported yes-or-no condition for this record.- Enables: select project records for which the provider reports top level project as true or false.
- Interpretation: The provider supplies
topLevelProjectas a boolean per project record; false and missing are distinct when the field is optional.
Updated At
Updated At
projects.updatedAtUpdated At carries the source date or timestamp named Updated At for each project row. It anchors the named event or boundary on the record’s timeline.- Enables: place project records on a timeline by updated at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
updatedAtper project record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Writeable
Writeable
projects.writeableWriteable carries the source access or role value named Writeable for each project row. It documents the access-related value reported for this object or membership.- Enables: describe the provider-reported writeable attached to each project record.
- Interpretation: The provider supplies
writeableat project granularity. For Tableau, this metadata does not prove effective access.
Schedules
Schedules
schedulesSchedules contain server schedules (Tableau Server only; not available on Tableau Cloud).- Enables: review Tableau Server schedule cadence and next-run metadata.
- Scope: Reads every record from
GET /api/3.29/scheduleson each sync. This endpoint is Tableau Server-only; Tableau Cloud schedules are outside its scope.
Created At
Created At
schedules.createdAtCreated At carries the source date or timestamp named Created At for each schedule row. It anchors the named event or boundary on the record’s timeline.- Enables: place schedule records on a timeline by created at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
createdAtper schedule record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Execution Order
Execution Order
schedules.executionOrderExecution Order carries the source measure named Execution Order for each schedule row. It preserves the stated measure at this record’s granularity.- Enables: order or classify schedule records using the provider-defined execution order value.
- Interpretation: The provider supplies
executionOrderat schedule granularity as a provider-defined ordinal or planning value rather than elapsed time or money; zero and missing are not interchangeable.
Frequency
Frequency
schedules.frequencyFrequency carries the source period or schedule value named Frequency for each schedule row. It preserves the provider-defined period or schedule cadence for this record.- Enables: group schedule records by the provider-defined frequency period or schedule.
- Interpretation: The provider supplies
frequencyper schedule record using its own period or schedule vocabulary; it is not an elapsed-duration measurement.
ID
ID
schedules.idID identifies Tableau LUID. It is the record key, so rows with the same value describe the same record.- Enables: identify each schedule record across syncs.
- Interpretation: The provider supplies
idat one value per schedule record, and it is the record key. Tableau identifiers and view metadata do not prove effective access.
Name
Name
schedules.nameName carries the source-authored value named Name for each schedule row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact name value attached to each schedule record.
- Interpretation: The provider supplies
nameat schedule granularity in the format stated by its description; omitted or redacted content remains unknown.
Next Run At
Next Run At
schedules.nextRunAtNext Run At carries the source date or timestamp named Next Run At for each schedule row. It anchors the named event or boundary on the record’s timeline.- Enables: place schedule records on a timeline by next run at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
nextRunAtper schedule record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Priority
Priority
schedules.priorityPriority carries the source state or classification named Priority for each schedule row.- Enables: separate schedule records by the exact provider-reported priority value when describing their recorded state.
- Interpretation: The provider supplies
priorityper schedule record as a number; unknown and missing values must remain distinct.
State
State
schedules.stateState carries the source state or classification named State for each schedule row. It preserves the provider’s current classification of this record.- Enables: separate schedule records by the exact provider-reported state value when describing their recorded state.
- Interpretation: The provider supplies
stateper schedule record using its own state vocabulary; unknown and missing values must remain distinct.
Type
Type
schedules.typeType carries the source state or classification named Type for each schedule row. It preserves the provider’s current classification of this record.- Enables: separate schedule records by the exact provider-reported type value when describing their recorded state.
- Interpretation: The provider supplies
typeper schedule record using its own state vocabulary; unknown and missing values must remain distinct.
Updated At
Updated At
schedules.updatedAtUpdated At carries the source date or timestamp named Updated At for each schedule row. It anchors the named event or boundary on the record’s timeline.- Enables: place schedule records on a timeline by updated at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
updatedAtper schedule record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Subscriptions
Subscriptions
subscriptionsSubscriptions contain content subscriptions.- Enables: review content subscription recipients, schedules, and attachment options.
- Scope: Reads every record from
GET /api/3.29/sites/{siteId}/subscriptionson each sync. Results are limited to objects returned for the authenticated Tableau site; identifiers and view metadata do not establish effective access.
Attach Image
Attach Image
subscriptions.attachImageAttach Image carries the provider-reported attach image for each subscription record. It retains the exact provider location for the referenced resource.- Enables: open or trace the exact provider resource referenced by attach image on a subscription record.
- Interpretation: The provider supplies
attachImageas a URL or resource locator on each subscription record. It identifies a Tableau catalog location but does not prove who can open it.
Attach PDF
Attach PDF
subscriptions.attachPdfAttach PDF carries the source true-or-false flag named Attach PDF for each subscription row. It preserves the provider-reported yes-or-no condition for this record.- Enables: select subscription records for which the provider reports attach PDF as true or false.
- Interpretation: The provider supplies
attachPdfas a boolean per subscription record; false and missing are distinct when the field is optional.
Content ID
Content ID
subscriptions.content_idContent ID carries the source identifier named Content ID for each subscription row. It is needed to resolve references that repeat the same provider identifier.- Enables: match subscription records to provider records that carry the same content ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
content_idas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access.
Content Type
Content Type
subscriptions.content_typeContent Type carries the source state or classification named Content Type for each subscription row. It preserves the provider’s current classification of this record.- Enables: separate subscription records by the exact provider-reported content type value when describing their recorded state.
- Interpretation: The provider supplies
content_typeper subscription record using its own state vocabulary; unknown and missing values must remain distinct.
ID
ID
subscriptions.idID is the record key for each subscription row. Rows with the same value describe the same record.- Enables: identify each subscription record across syncs.
- Interpretation: The provider supplies
idat one value per subscription record, and it is the record key. Tableau identifiers and view metadata do not prove effective access.
Message
Message
subscriptions.messageMessage carries the source-authored value named Message for each subscription row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact message value attached to each subscription record.
- Interpretation: The provider supplies
messageat subscription granularity in the format stated by its description; omitted or redacted content remains unknown.
Schedule Frequency
Schedule Frequency
subscriptions.schedule_frequencySchedule Frequency carries the source period or schedule value named Schedule Frequency for each subscription row. It preserves the provider-defined period or schedule cadence for this record.- Enables: group subscription records by the provider-defined schedule frequency period or schedule.
- Interpretation: The provider supplies
schedule_frequencyper subscription record using its own period or schedule vocabulary; it is not an elapsed-duration measurement.
Schedule ID
Schedule ID
subscriptions.schedule_idSchedule ID carries the source identifier named Schedule ID for each subscription row. It is needed to resolve references that repeat the same provider identifier.- Enables: match subscription records to provider records that carry the same schedule ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
schedule_idas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access.
Schedule Name
Schedule Name
subscriptions.schedule_nameSchedule Name carries the source-authored value named Schedule Name for each subscription row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact schedule name value attached to each subscription record.
- Interpretation: The provider supplies
schedule_nameat subscription granularity in the format stated by its description; omitted or redacted content remains unknown.
Subject
Subject
subscriptions.subjectSubject carries the source-authored value named Subject for each subscription row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact subject value attached to each subscription record.
- Interpretation: The provider supplies
subjectat subscription granularity in the format stated by its description; omitted or redacted content remains unknown.
Suspended
Suspended
subscriptions.suspendedSuspended carries the source true-or-false flag named Suspended for each subscription row. It preserves the provider-reported yes-or-no condition for this record.- Enables: select subscription records for which the provider reports suspended as true or false.
- Interpretation: The provider supplies
suspendedas a boolean per subscription record; false and missing are distinct when the field is optional.
User
User
subscriptions.userUser. The user who receives the subscription, as Tableau’s nested user element.- Enables: Attribute each subscription to its recipient (
user.idtousers.id). - Interpretation: Tableau shows a user who is not an administrator only their own subscriptions. For source permissions, each subscription opens to its user only.
ID
ID
subscriptions.user.idID. Tableau’s LUID of the user who receives the subscription.- Enables: Connect each subscription to its user in
users(users.id). - Interpretation: The value is in the same namespace as
users.id.
Name
Name
subscriptions.user.nameName. The Tableau user name of the user who receives the subscription.- Enables: Show the recipient without a join to
users. - Interpretation: A user name can change. Use
user.idto identify the user.
User Workbooks
User Workbooks
user_workbooksUser Workbooks. One record for each licensed Tableau user and each workbook that the user owns or can view, as Tableau itself decides it.- Enables: With source permissions on, a Parable member reads each workbook, and its views, that Tableau lets their Tableau user open. Tableau’s answer already applies Deny rules, locked projects, owners, project leaders and site administrators. Only readers with All data access read this stream.
- Scope: Reads every record from
GET /api/3.29/sites/{siteId}/users/{user_id}/workbooks?ownedBy=falseonce for each user inuserswhose site role is notUnlicensed, on each sync. A site administrator credential reads the list of any user. A workbook absent from a later full read is no longer open to the user, and Parable marks the record deleted. Each sync sends at least one request for each licensed user.
Grant Key
Grant Key
user_workbooks.grant_keyGrant Key. A key Parable builds from user_id and id, so each user and workbook pair has one key.- Enables: Identify each user’s access to one workbook on its own, so a workbook that several users can open has one row for each user.
- Interpretation: Parable calculates
grant_keywhen it reads the record. It is not a Tableau identifier. It is the record key.
Workbook ID
Workbook ID
user_workbooks.idWorkbook ID. Tableau’s LUID of a workbook that the user owns or can view.- Enables: Connect each grant to its workbook in
workbooks(workbooks.id). - Interpretation: Tableau lists the workbook because the user has Read (view) access to it, or owns it. For source permissions, the workbook opens to the user, and so do its views.
Workbook Name
Workbook Name
user_workbooks.nameWorkbook Name. The name of the workbook that the user can open.- Enables: Read which workbooks each user can open without a join to
workbooks. - Interpretation: A workbook name can change. Use
idto identify the workbook.
User ID
User ID
user_workbooks.user_idUser ID. Tableau’s LUID of the user whose workbooks Parable read, which Parable copies from the parent users record.- Enables: Connect each grant to the user in
users(users.id). - Interpretation: The same user repeats once for each workbook that the user can open, so the value does not identify a row on its own. For source permissions, the row gives this user’s token to the workbook.
Users
Users
usersUsers contain Tableau site users.- Enables: inventory accounts returned for the configured Tableau site, and match each account to a Parable member by email for identity and source permissions.
- Scope: Reads every record from
GET /api/3.29/sites/{siteId}/users?fields=_default_,emailon each sync, inactive (Unlicensed) users included. Tableau lets only server and site administrators list users. With source permissions on, only readers with All data access read this stream.
Auth Setting
Auth Setting
users.authSettingAuth Setting carries the source access or role value named Auth Setting for each user row. It documents the access-related value reported for this object or membership.- Enables: describe the provider-reported auth setting attached to each user record.
- Interpretation: The provider supplies
authSettingat user granularity. For Tableau, this metadata does not prove effective access.
Email
users.emailEmail. The email address of the Tableau user. Parable asks for it with fields=_default_,email, because Tableau does not return it by default.- Enables: Match each Tableau user to a Parable member by email, so source permissions know which Tableau rows the member can open.
- Interpretation: Tableau can return no email for a user that has none, such as a local Tableau Server user. Such a user matches no member by email, so the member reads no Tableau row through that account.
External Auth User ID
External Auth User ID
users.externalAuthUserIdExternal Auth User ID carries the source identifier named External Auth User ID for each user row. It is needed to resolve references that repeat the same provider identifier.- Enables: match user records to provider records that carry the same external auth user ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
externalAuthUserIdas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access.
ID
ID
users.idID identifies Tableau LUID. Parable keeps it as text in Tableau’s form, so it equals activity_events.actorUserId, user_workbooks.user_id and the owner IDs of other streams. It is the record key, so rows with the same value describe the same record.- Enables: identify each user record across syncs, and match the account to a Parable member through identity.
- Interpretation: The provider supplies
idat one value per user record, and it is the record key. For source permissions, each user is a principal: the tokenuser:<id>opens the workbooks thatuser_workbookslists for the user, and the rows that the user owns.
Language
Language
users.languageLanguage carries the source location or localization value named Language for each user row. It preserves the geographic, locale, time-zone, or coordinate context represented by the field.- Enables: interpret dates, times, or localized text for users using the recorded language.
- Interpretation: The provider supplies
languageas location or localization context per user record; it does not establish a person’s real-time physical location.
Last Login
Last Login
users.lastLoginLast Login carries the source date or timestamp named Last Login for each user row. It anchors the named event or boundary on the record’s timeline.- Enables: place user records on a timeline by last login and select the records within an explicit reporting window.
- Interpretation: The provider supplies
lastLoginper user record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Locale
Locale
users.localeLocale carries the source location or localization value named Locale for each user row. It preserves the geographic, locale, time-zone, or coordinate context represented by the field.- Enables: interpret dates, times, or localized text for users using the recorded locale.
- Interpretation: The provider supplies
localeas location or localization context per user record; it does not establish a person’s real-time physical location.
Name
Name
users.nameName carries the source-authored value named Name for each user row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact name value attached to each user record.
- Interpretation: The provider supplies
nameat user granularity in the format stated by its description; omitted or redacted content remains unknown.
Site Role
Site Role
users.siteRoleSite Role carries the source access or role value named Site Role for each user row. It documents the access-related value reported for this object or membership.- Enables: describe the provider-reported site role attached to each user record.
- Interpretation: The provider supplies
siteRoleat user granularity. AnUnlicenseduser cannot sign in to Tableau. For source permissions, a user is active only with a licensed role:Creator,Explorer,ExplorerCanPublish,SiteAdministratorCreator,SiteAdministratorExplorer,ViewerorServerAdministrator.Unlicensed, any other value, or a missing value makes the user inactive, and an inactive user gives no token.
Views
Views
viewsViews contain Tableau views/dashboards on a site.- Enables: catalog site views and dashboards with their workbook and usage metadata.
- Scope: Reads the records that changed since the previous sync from
GET /api/3.29/sites/{siteId}/views. Results are limited to objects returned for the authenticated Tableau site; identifiers and view metadata do not establish effective access.
Content URL
Content URL
views.contentUrlContent URL carries the provider-reported content url for each view record. It retains the exact provider location for the referenced resource.- Enables: open or trace the exact provider resource referenced by content URL on a view record.
- Interpretation: The provider supplies
contentUrlas a URL or resource locator on each view record. It identifies a Tableau catalog location but does not prove who can open it. Tableau identifiers and view metadata do not prove effective access.
Created At
Created At
views.createdAtCreated At carries the source date or timestamp named Created At for each view row. It anchors the named event or boundary on the record’s timeline.- Enables: place view records on a timeline by created at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
createdAtper view record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported. Tableau identifiers and view metadata do not prove effective access.
ID
ID
views.idID identifies Tableau LUID. It is the record key, so rows with the same value describe the same record.- Enables: identify each view record across syncs.
- Interpretation: The provider supplies
idat one value per view record, and it is the record key. Tableau identifiers and view metadata do not prove effective access.
Name
Name
views.nameName carries the source-authored value named Name for each view row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact name value attached to each view record.
- Interpretation: The provider supplies
nameat view granularity in the format stated by its description; omitted or redacted content remains unknown. Tableau identifiers and view metadata do not prove effective access.
Owner
Owner
views.ownerOwner. The user who owns the view, as Tableau’s nested owner element.- Enables: Attribute each view to its owner (
owner.idtousers.id). - Interpretation: The owner of a view is the owner of its workbook. Source permissions read the workbook, not this field.
ID
ID
views.owner.idID. Tableau’s LUID of the user who owns the view.- Enables: Connect each view to its owner’s row in
users(users.id). - Interpretation: Tableau returns the owner as a nested
ownerelement with anid. The value is in the same namespace asusers.id.
Project ID
Project ID
views.project_idProject ID carries the source identifier named Project ID for each view row. It is needed to resolve references that repeat the same provider identifier.- Enables: match view records to provider records that carry the same project ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
project_idas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access.
Updated At
Updated At
views.updatedAtUpdated At carries the source date or timestamp named Updated At for each view row. It anchors the named event or boundary on the record’s timeline.- Enables: place view records on a timeline by updated at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
updatedAtper view record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported. Tableau identifiers and view metadata do not prove effective access.
Usage Total View Count
Usage Total View Count
views.usage_totalViewCountUsage Total View Count carries the source measure named Usage Total View Count for each view row. It preserves the stated measure at this record’s granularity.- Enables: measure the provider-reported usage total view count for each view record.
- Interpretation: The provider supplies
usage_totalViewCountat view granularity as a count at one value per record; zero and missing are not interchangeable. Tableau identifiers and view metadata do not prove effective access.
View URL Name
View URL Name
views.viewUrlNameView URL Name carries the provider-reported view url name for each view record. It retains the exact provider location for the referenced resource.- Enables: open or trace the exact provider resource referenced by view URL name on a view record.
- Interpretation: The provider supplies
viewUrlNameas a URL or resource locator on each view record. It identifies a Tableau catalog location but does not prove who can open it. Tableau identifiers and view metadata do not prove effective access.
Workbook
Workbook
views.workbookWorkbook. The workbook that holds the view, as Tableau’s nested workbook element.- Enables: Associate each view with its workbook (
workbook.idtoworkbooks.id). - Interpretation: For source permissions, a view inherits its workbook’s access: a member who can open the workbook reads its views. A view of a workbook with hidden tabs can have its own rules in Tableau. Parable does not read them, so the view follows its workbook.
ID
ID
views.workbook.idID. Tableau’s LUID of the workbook that holds the view.- Enables: Connect each view to its workbook in
workbooks(workbooks.id). - Interpretation: Every view belongs to one workbook.
Workbook Views
Workbook Views
workbook_viewsWorkbook Views contain views nested under a workbook (opt-in; site views is default).- Enables: enumerate the views nested under an opted-in workbook.
- Scope: Reads every record from
GET /api/3.29/sites/{siteId}/workbooks/{workbook_id}/viewson each sync. This child operation is opt-in and returns views for the selected parent workbook only.
Content URL
Content URL
workbook_views.contentUrlContent URL carries the provider-reported content url for each workbook view record. It retains the exact provider location for the referenced resource.- Enables: open or trace the exact provider resource referenced by content URL on a workbook view record.
- Interpretation: The provider supplies
contentUrlas a URL or resource locator on each workbook view record. It identifies a Tableau catalog location but does not prove who can open it. Tableau identifiers and view metadata do not prove effective access.
Created At
Created At
workbook_views.createdAtCreated At carries the source date or timestamp named Created At for each workbook view row. It anchors the named event or boundary on the record’s timeline.- Enables: place workbook view records on a timeline by created at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
createdAtper workbook view record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported. Tableau identifiers and view metadata do not prove effective access.
ID
ID
workbook_views.idID identifies Tableau LUID. It is the record key, so rows with the same value describe the same record.- Enables: identify each workbook view record across syncs.
- Interpretation: The provider supplies
idat one value per workbook view record, and it is the record key. Tableau identifiers and view metadata do not prove effective access.
Name
Name
workbook_views.nameName carries the source-authored value named Name for each workbook view row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact name value attached to each workbook view record.
- Interpretation: The provider supplies
nameat workbook view granularity in the format stated by its description; omitted or redacted content remains unknown. Tableau identifiers and view metadata do not prove effective access.
Updated At
Updated At
workbook_views.updatedAtUpdated At carries the source date or timestamp named Updated At for each workbook view row. It anchors the named event or boundary on the record’s timeline.- Enables: place workbook view records on a timeline by updated at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
updatedAtper workbook view record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported. Tableau identifiers and view metadata do not prove effective access.
Workbook ID
Workbook ID
workbook_views.workbook_idWorkbook ID carries the source identifier named Workbook ID for each workbook view row. It is needed to resolve references that repeat the same provider identifier.- Enables: match workbook view records to provider records that carry the same workbook ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
workbook_idas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access. For source permissions, the view inherits the access of this workbook.
Workbooks
Workbooks
workbooksWorkbooks contain published Tableau workbooks.- Enables: catalog published workbooks with their project, owner, size, and modification metadata.
- Scope: Reads the records that changed since the previous sync from
GET /api/3.29/sites/{siteId}/workbooks. With source permissions on, a member reads a workbook whenuser_workbookslists it for their Tableau user. A workbook that no user can open, or that Tableau deleted, opens only to readers with All data access.
Content URL
Content URL
workbooks.contentUrlContent URL carries the provider-reported content url for each workbook record. It retains the exact provider location for the referenced resource.- Enables: open or trace the exact provider resource referenced by content URL on a workbook record.
- Interpretation: The provider supplies
contentUrlas a URL or resource locator on each workbook record. It identifies a Tableau catalog location but does not prove who can open it.
Created At
Created At
workbooks.createdAtCreated At carries the source date or timestamp named Created At for each workbook row. It anchors the named event or boundary on the record’s timeline.- Enables: place workbook records on a timeline by created at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
createdAtper workbook record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Default View ID
Default View ID
workbooks.defaultViewIdDefault View ID carries the source identifier named Default View ID for each workbook row. It is needed to resolve references that repeat the same provider identifier.- Enables: match workbook records to provider records that carry the same default view ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
defaultViewIdas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access.
Description
Description
workbooks.descriptionDescription carries the source-authored value named Description for each workbook row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact description value attached to each workbook record.
- Interpretation: The provider supplies
descriptionat workbook granularity in the format stated by its description; omitted or redacted content remains unknown.
Encrypt Extracts
Encrypt Extracts
workbooks.encryptExtractsEncrypt Extracts carries the source true-or-false flag named Encrypt Extracts for each workbook row. It preserves the provider-reported yes-or-no condition for this record.- Enables: select workbook records for which the provider reports encrypt extracts as true or false.
- Interpretation: The provider supplies
encryptExtractsas a boolean per workbook record; false and missing are distinct when the field is optional.
ID
ID
workbooks.idID identifies Tableau LUID. It is the record key, so rows with the same value describe the same record.- Enables: identify each workbook record across syncs.
- Interpretation: The provider supplies
idat one value per workbook record, and it is the record key. Tableau identifiers and view metadata do not prove effective access.
Name
Name
workbooks.nameName carries the source-authored value named Name for each workbook row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact name value attached to each workbook record.
- Interpretation: The provider supplies
nameat workbook granularity in the format stated by its description; omitted or redacted content remains unknown.
Owner
Owner
workbooks.ownerOwner. The user who owns the workbook, as Tableau’s nested owner element.- Enables: Attribute each workbook to its owner (
owner.idtousers.id). - Interpretation: Source permissions do not read this field: Tableau’s own list in
user_workbooksalready gives the owner the workbook.
ID
ID
workbooks.owner.idID. Tableau’s LUID of the user who owns the workbook.- Enables: Connect each workbook to its owner’s row in
users(users.id). - Interpretation: Tableau returns the owner as a nested
ownerelement with anid. The value is in the same namespace asusers.id.
Name
Name
workbooks.owner.nameName. The Tableau user name of the workbook’s owner, when Tableau returns it.- Enables: Show who owns each workbook without a join to
users. - Interpretation: A user name can change. Use
owner.idto identify the owner.
Project ID
Project ID
workbooks.project_idProject ID carries the source identifier named Project ID for each workbook row. It is needed to resolve references that repeat the same provider identifier.- Enables: match workbook records to provider records that carry the same project ID, without assuming that this field alone makes every row unique.
- Interpretation: The provider supplies
project_idas a record-level identifier. It identifies Tableau catalog relationships and does not establish effective access. Tableau identifiers and view metadata do not prove effective access.
Project Name
Project Name
workbooks.project_nameProject Name carries the source-authored value named Project Name for each workbook row. It keeps the exact text, label, or authored value needed to interpret the record.- Enables: inspect the exact project name value attached to each workbook record.
- Interpretation: The provider supplies
project_nameat workbook granularity in the format stated by its description; omitted or redacted content remains unknown.
Show Tabs
Show Tabs
workbooks.showTabsShow Tabs carries the source true-or-false flag named Show Tabs for each workbook row. It preserves the provider-reported yes-or-no condition for this record.- Enables: select workbook records for which the provider reports show tabs as true or false.
- Interpretation: The provider supplies
showTabsas a boolean per workbook record; false and missing are distinct when the field is optional.
Size
Size
workbooks.sizeSize records Tableau’s numeric size attribute for the workbook. It preserves the source value even though this schema does not declare its unit.- Enables: compare workbook size values within exports that use the same Tableau definition and source configuration.
- Interpretation: The provider supplies
sizeas an integer with no unit documented here; do not assume bytes, row count, or another scale without provider context.
Updated At
Updated At
workbooks.updatedAtUpdated At carries the source date or timestamp named Updated At for each workbook row. It anchors the named event or boundary on the record’s timeline.- Enables: place workbook records on a timeline by updated at and select the records within an explicit reporting window.
- Interpretation: The provider supplies
updatedAtper workbook record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
Personal Access Token (recommended)
| Error | Meaning | Solution |
|---|---|---|
401 Unauthorized | Invalid PAT or expired session | Recreate PAT; confirm tokens are enabled |
403 Forbidden | Insufficient permissions | Use a Site Administrator PAT |
404 Site not found | Wrong site content URL | Fix Site Name (content URL slug, not display name) |
PATs disabled
Personal Access Tokens must be enabled by a server/site admin.Concurrent sign-in
Signing in again with the same PAT can invalidate the previous session. A Tableau sync reuses one signed-in session across its concurrent data streams; if multiple Parable connections use the same PAT, keep them on separate schedules or use a distinct PAT for each connection.Tableau REST API — Official API documentationConnected Apps (Direct Trust JWT)
| Error | Meaning | Solution |
|---|---|---|
401 Unauthorized on sign-in | Bad JWT claims/secret or disabled app | Regenerate secret; confirm sub email exists; confirm app is enabled |
403 Forbidden | Missing JWT scope or site role | Add required scp values; use a user with sufficient site role |
| Wrong site | contentUrl mismatch | Fix Site Name (content URL slug) |
Username and password (Tableau Server)
| Error | Meaning | Solution |
|---|---|---|
401 Unauthorized | Bad username/password or MFA challenge | Use PAT instead; confirm account is not MFA-gated |
403 Forbidden | Insufficient site role | Use a higher-privileged Server user |