Skip to main content

#Tableau APIs & Embedding16 discussing

I'm trying to work with the component embed for the component, but when the component first loads, i get the error: 

A src needs to be set on the tableau-viz element. Skipping rendering. 

 

But once the source is set, it never tries to re-render the element, if there a function I can call to rerender the element once the src has changed on the page? 

 

#Tableau APIs & Embedding

1 answer
  1. Today, 2:20 PM

    @Eric Guerin

     

    Hi, It seems you are trying to render the tableau-viz component without a src, and then you are trying to change the src. 

     

    What if you try to give first a src, that will render the iframe child object, and all the related code, and then you change the src. 

     

    If you are able to share your full code, we may have a better way to assist you.  

     

    If this post resolves the question, would you be so kind to "Accept this Answer"?. This will help other users find the same answer/resolution and help community keep track of answered questions. Thank you. 

     

    Regards, 

     

    Diego Martinez 

    Tableau Visionary and Tableau Ambassador 

0/9000

Hi everyone/DataFam 

Embedded a Tableau view (dashboard) into my org's Salesforce environment using LWC Seamless Auth method to enable the embedding. 

Tableau dashboard successfully displays on the Salesforce Lightning page and in Salesforce App. Both locations include the Tableau toolbar which is needed for Exporting to Image/PDF/PowerPoint. However I want to disable Refresh/Undo/Redo buttons from the Tableau toolbar. Is this possible, or perhaps do I need to change my approach somewhere? 

 

Reason I want to disable the refresh button is an automated filter is applied when the dashboard loads in Salesforce which filters the dashboard to the Salesforce record dashboard is being viewed from. Unfortunately the refresh button overrides the filter, causing the dashboard to become unfiltered to all records. 

 

#Tableau  #Tableau APIs & Embedding  #Export

1 answer
  1. Yesterday, 1:45 PM

    @Benjamin Peters

     

    Hi, according to my experience the answer is no. 

     

    The embed docs does not include anything about this: 

    https://help.tableau.com/current/api/embedding_api/en-us/docs/embedding_api_configure.html#add-iframe-attributes

     

     

    Also, the iframe attributes also do not state a parameter for that: 

    https://help.tableau.com/current/pro/desktop/en-us/embed_list.htm#URL_params

     

     

    The only option would be to remove the toolbar completely. 

     

    Would you explain how are you filtering the records? Maybe you can use Tableau Claims definition to pass attributes from the user, to the JWT generated by Salesforce, and then use it in Tableau Classic with the USERATTRIBUTEINCLUDES('state', [State/Province]) 

    https://help.tableau.com/current/online/en-us/lwc_uaf.htm

     

     

    If this post resolves the question, would you be so kind to "Accept this Answer"?. This will help other users find the same answer/resolution and help community keep track of answered questions. Thank you. 

     

    Regards, 

     

    Diego Martinez 

    Tableau Visionary and Tableau Ambassador 

0/9000

I would like to filter on a workbook and get all field names, regardless of field type (if the field is a calculation, get the formula too). The following GraphQL query doesn't work, but it is my best shot.

query bestattempt {

fields {

downstreamWorkbooks(filter: {name: "Random WB name"}) {

name

}

name

... on CalculatedField {

formula

}

}

}

4 answers
  1. Jun 8, 2021, 12:08 AM

    Hi Caleb, try this:

    query workbookFields {

    workbooks(filter: {name: "testjuly19"}) {

    name

    sheets {

    name

    sheetFieldInstances {

    name

    ... on CalculatedField {

    formula

    }

    }

    }

    }

    }

    Use "datasourceFields" if you also want to include fields that were used in calculations but not actually on the worksheets.

    -Keshia

0/9000

TDX Session Resources: Build Trusted AI in Tableau with MCP and Agentforce 360 

 

Hey DataFam and Trailblazers! 

Ready to level up your MCP skills? 

 

Join @Justin Craycraft and me at TDX26 to learn what Tableau MCP is, how it works, and how it works with LangGraph and Agentforce. We'll cover best practices for all three and share a look at what's coming next 

 

Build Trusted AI in Tableau with MCP and Agentforce 360 

🗓️ Thursday, April 16th at 1:30 PM PDT 

 

Resources

#Tableau APIs & Embedding

0/9000

Hello Dear Community members,

I am newbie to Tableau, I am trying to learn how I can embed https://sample-website.com/#/home not the views pages in my website. I found share button in report/views but looking to show all the home icons in my website. Respective to what role or permission the user has the default home page / landing page icons should also be visible and they can traverse the respective reports.

 

Thanks in advance. I know Tableau gurus will help on this.

 

Regards

Pradeep

1 answer
  1. Apr 8, 2021, 7:36 PM

    Hi there,

    here is the Tableau Embedded Playbook.

    Full documentation on how you can ebbed your dashboards in a website.

    Here are few samples on how the variables for embedding can be changed (based on your shared code).

    Here are the parameters for embed code.

    For your example you need to embed this code:

    <param name='toolbar' value='yes'/>

    Values might be: yes; no; top

     

    Not sure you can display them based on user access. But, if the website js can recognize the user you can programmatically change the value to 'yes' from 'no'.

     

    Let me know if this was helpful and mark the answer.

    thanks

    Adrian

0/9000
1 answer
0/9000

We're building a TACO 3.0 EPS connector for a multi-region SaaS platform, Endpoint central Cloud, where both the OAuth authorization server, and the  API server,  varies by region (e.g. accounts.zoho.com, accounts.zoho.in, accounts.zoho.eu). We need the OAuth URLs to be dynamic — exactly like the built-in OneDrive connector's "OAuth Instance URL" prompt.    {instanceUrl} in oauth-config.xml only resolves via TCD's <show-instance-url-prompt>. EPS connectors can't use TCD because the manifest schema enforces xs:choice between connection-fields and connection-dialog, and EPS requires connection-fields.    We tried multiple workaround — setting instanceUrl as a connection field (passed in attrs but ignored by OAuth service), defaultInstanceUrl (not used as fallback), requiredAuthAttrs, server-oauth field — none resolve the {instanceUrl} placeholder.    Due to this, we are unable to build a multi region connector, and are forced to build per region connector.    Environment: Tableau 2026.1, TACO Toolkit 2.2.0   

1 answer
  1. Mar 26, 7:33 PM

    Hi @Raghul Kumar

     

     

    I asked Claude and asked it again to verify the answer. So, please, review it with caution as AI answers might sound confident but can be wrong.   

     

    This is what

    Claude.ai

    came up with:  

     

    Title:

    TACO 3.0 EPS Connector: Dynamic OAuth Instance URLs per Region – Known Limitation 

    Body:

     

    I’ve researched this thoroughly and want to share findings that may help others facing the same constraint. 

    The Problem (Confirmed)

     

    You’ve correctly identified a hard architectural limitation in TACO 3.0 EPS connectors: EPS-based OAuth connectors have a dependency on Tableau OAuth support and cannot run with the EPS standalone server

    Tableau. More critically, EPS connectors cannot prompt for region-specific OAuth endpoints dynamically

    , unlike built-in connectors like OneDrive. 

    Why Your Workarounds Failed

     

    The root cause is the schema constraint between TCD (Tableau Connector Dialog) and EPS:

    • TCD-based plugins can use <show-instance-url-prompt> to collect dynamic OAuth endpoints from users at connection time. This is how OneDrive and SharePoint Online connectors prompt users with an “OAuth Instance URL” dialog to enter tenant-specific or custom connection endpoints Tableau.
    • EPS connectors (TACO 3.0) use connector.json without dialog support—only stateless field submission. The EPS server only tests EPS connector logic and doesn’t consume TACO infrastructure files like manifest.xml Tableau.

    Setting {instanceUrl} or {region} in oauth-config.xml doesn’t work because those placeholders are resolved only within TCD’s connection-dialog context, which EPS cannot access. 

    Known Community Request

     

    This exact scenario was raised as a feature request: Databricks requested SDK support for multiple OAuth endpoints per connector, proposing dynamic loading of oauth-config.xml based on detected cloud provider

    GitHub. See: https://github.com/tableau/connector-plugin-sdk/issues/705

     

    Status:

    Still open as of 2025

    with no EPS-specific solution. 

    Practical Workarounds

     

    1.

    Multi-Config Approach (EPS-viable but not elegant):

     

    Create separate oauth-config.xml files per region (e.g., oauth-config-us.xml, oauth-config-eu.xml, oauth-config-in.xml) in your connector. Add logic in your app UI to present a region dropdown, then conditionally load the matching config. This requires connector regeneration per region but keeps EPS architecture intact. 

    2.

    Switch to TCD (Plugin SDK):

     

    If your use case allows, migrate to the standard Tableau Connector Plugin SDK (ODBC/JDBC-based) instead of TACO/EPS. This gives you full connection-dialog support and the ability to prompt for dynamic OAuth endpoints. See:

    https://tableau.github.io/connector-plugin-sdk/docs/oauth-dev

     

    3.

    Escalate with Salesforce:

     

    If your SaaS supports this requirement, file a feature request directly with Tableau/Salesforce to extend EPS OAuth to support dynamic instance URLs. Reference Issue #705. 

    References

     

    TACO Toolkit Documentation (EPS constraints):

    https://help.tableau.com/current/api/webdataconnector/en-us/docs/wdc_create_oauth_connector.html

     

    OneDrive Dynamic OAuth Endpoints:

    https://help.tableau.com/current/pro/desktop/en-us/examples_onedrive.htm

     

    Connector SDK OAuth Reference:

    https://tableau.github.io/connector-plugin-sdk/docs/oauth

0/9000

Hi. I am working on using RestAPI to connect to the Tableau Cloud Activity Logs. I want to use this to monitor the Events 

However, although I can see the files, I am not able to download any of the json files to read the contents 

Can someone help with what would be the endpoints to do this? 

Specifically we are trying to use this to monitor Bridge status 

Thanks 

 

#Tableau APIs & Embedding  #RestAPI

1 answer
0/9000

I have the Tableau API doc but I  am not succeeding in making a successful API call using python.   Can someone jump start me  and give me an example on any API python sample code ? 

 

#Tableau APIs & Embedding

4 answers
  1. Mar 17, 7:59 PM

    @Sami Ahmad

     

    Hi, you may use:

    import jwt

    import tableauserverclient as TSC

    import datetime

    import uuid

    Client_id = "f27a043b-c771-4b18-a1a1-007e120293a3"

    SecretValue = "nijAJ5p"

    SecretID = "aaa0e3"

    siteId = ''

    token = jwt.encode(

    {

    "iss": Client_id,

    "exp": datetime.datetime.utcnow() + datetime.timedelta(minutes=10),

    "jti": str(uuid.uuid4()),

    "aud": "AHMADSA",

    "sub": "dmartinez@modux.co",

    "scp": ["tableau:content:read","tableau:workbooks:*","tableau:projects:*","tableau:datasources:*"]

    },

    SecretValue,

    algorithm="HS256",

    headers={

    'kid': SecretID,

    'iss': Client_id

    }

    )

    print(token)

    server = TSC.Server('https://tableau-qa.park-edw.com')

    tab_auth = TSC.JWTAuth(token,site_id=siteId)

    with server.auth.sign_in(tab_auth):

    print("signed in")

    workbooks, paginator = server.workbooks.get()

    for wb in workbooks:

    print(wb.name)

     

    Basically you need the tableau:content:read in the scopes: 

    https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_workbooks_and_views.htm#query_workbooks_for_site

     

    And in the auth object site_id=siteId

     

    If this post resolves the question, would you be so kind to "Accept this Answer"?. This will help other users find the same answer/resolution and help community keep track of answered questions. Thank you. 

     

    Regards, 

     

    Diego Martinez 

    Tableau Visionary and Tableau Ambassador 

0/9000

Hello Team,

I am currently working on an automation process using PowerShell and Alteryx to manage user access on our Tableau Server.

My goal is to automate the deletion of Personal Access Tokens (PATs) and Connected Clients for specific users.

1. Personal Access Token Deletion

 

 I tried using the following Tableau REST API endpoint to delete a PAT:

DELETE /api/{api-version}/sites/{site-luid}/users/{user-luid}/personal-access-tokens/{pat-name} 

 However, the API is not working as expected, and the token is not getting deleted through my automation scripts (PowerShell / Alteryx).

2. Session / Connected Client Deletion

 

 I also tried using the session deletion endpoint:

https://your-server/api/{api-version}/sessions/{session-id}

 

 Based on the documentation, it seemed that this could also help invalidate sessions or connected clients. However, this approach is also not working in my case. 

 

Please suggest if it is possible or not. 

 

#Tableau APIs & Embedding

1 answer
  1. Mar 13, 8:46 PM

    @Bhavesh Dave

     

    Hi, the method is not supported in Tableau Server:

    Hi, the method is not supported in Tableau Server: If this post resolves the question, would you be so kind to

     

    https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_authentication.htm#revoke_personal_access_token

     

     

    If this post resolves the question, would you be so kind to "Accept this Answer"?. This will help other users find the same answer/resolution and help community keep track of answered questions. Thank you. 

     

    Regards, 

     

    Diego Martinez 

    Tableau Visionary and Tableau Ambassador 

0/9000