Skip to main content

#Tableau APIs & Embedding17 人がディスカッション中

Hi everyone

I was exploring how to use Tableau for HR and payroll analytics, especially for UAE-based businesses.

I came across a UAE gratuity computation API that calculates end-of-service benefits based on salary and years of service.

Now I’m curious has anyone here tried connecting such external APIs (like HR or financial calculators) directly into Tableau dashboards?

I’m thinking about using it for visualizing total gratuity liability per department or employee group, but I’m not sure what’s the best way Web Data Connector or Tableau Prep script?

Would love to know how others here have handled API-based data visualization in Tableau .

5 件の回答
  1. 9月15日 11:23

    I’ve worked with similar API-based data flows, and I’d probably use Tableau Prep to pull and clean the API data before bringing it into Tableau. That way, you can refresh the gratuity calculations regularly and build dashboards around departments, employee groups, or overall liability without making the workbook too complicated.

0/9000
Wascar Perez が「#Snowflake」で質問

Environment: Tableau Cloud, REST API 3.29, tableauserverclient (Python), Snowflake connection with authentication='oauth', oauth-config-id='default', server-oauth='server-custom'. 

 

ISSUE 

 

We publish workbooks via REST API/PAT in a CI/CD pipeline. We're trying to reproduce a connection state that Tableau Desktop can produce, but the REST API can't. 

 

Desktop-published state (Data Sources tab shows "Not embedded in connection"): 

auth_type='oauth' username='<user>' embed_password=False 

 

Our pipeline's state (REST API publish): 

auth_type='oauth' username='' embed_password=False 

 

The Desktop state results in viewers being prompted for their own credentials. Ours results in every viewer getting BadOAuthCredentials, since there's no username hint at all. 

 

WHAT WE TRIED 

 

Using Server.workbooks.update_connection() (PUT /workbooks/{id}/connections/{connectionId}), we tested every combination: 

 

1. embed_password=True + username -> credential embeds, all viewers connect silently as that one identity (no prompt). 

2. embed_password=False + blank username -> every viewer gets BadOAuthCredentials. 

3. embed_password=False + non-empty username (trying to match Desktop) -> the server silently discards the username; a follow-up GET always returns username=''. No error is returned, it just reverts. 

4. Re-embedding (embed_password=True) via update_connection without supplying a password fails outright with 404020: Resource Not Found ... This may be due to incorrect or missing credentials. There's no way to flip an OAuth connection back to embedded through this endpoint without a real credential, and OAuth connections have no password-style credential the API can supply. 

 

We confirmed #3 fails identically whether attempted via connections=[ConnectionCredentials(...)] at publish time, or via a separate post-publish update_connection call. Same result both ways. 

 

QUESTIONS 

 

1. Is there any documented REST API mechanism (any endpoint, any API version) to set an OAuth connection to embedPassword=false while preserving a non-empty userName hint, matching what Desktop produces? 

2. Is that "not embedded + username hint" state inherently tied to an interactive/vizportal-authenticated session (i.e. genuinely unreachable via PAT/REST), or is there an undocumented parameter/flow we're missing? 

3. Is per-viewer OAuth prompting for a Snowflake connection with oauth-config-id='default' expected to work at all when the workbook was published via REST API/PAT, or is this a Desktop-only capability? 

 

Happy to share full request/response payloads if that helps with diagnosis. 

 

#OAuth  #Tableau APIs & Embedding

 

#Tableau Cloud  #Tableau Server

 

 

#Snowflake

1 件の回答
  1. 9月14日 19:44

    Hi @Wascar Perez

     

    thanks for sharing the details with the community. 

    What I would try if I were in your shoes: set embed_password=True with your REST API pipeline as usual, then try to unset the embedded password with the VizPortal API. It is undocumented and unofficial, but you just need to trace your browser traffic with dev tools when using the Server UI then google the VizPortal API info a bit to see how to authenticate against it and you will figure it easily if you are a developer. 

    I checked on my sandbox. It is this endpoint:

    Hi thanks for sharing the details with the community.

0/9000

Hi All,

I am planning to create a chatbot kind of thing for tableau using rest api's and NLP to integrate into chatbot to answer end users questions to get some insights out of the data.

2 件の回答
  1. 2025年7月8日 13:53

    @raju Prasad​ 

    Hi, maybe you can take a look of:

    https://www.youtube.com/watch?v=2sPJfxeoJ90

    https://github.com/TheInformationLab/tableau_langchain_starter_kit

    https://python.langchain.com/docs/integrations/tools/tableau/

     

    If this post resolves the question, would you be so kind to "Select as Best"?. 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 Forums Ambassador

0/9000

Hello Salesforce Developer Community,

We are optimizing background listener stability and webhook handling when syncing lead payloads into Salesforce CRM endpoints.

Technical Setup:

  • Our integration layer at Frontline Sales Consultancy (flsc.co.uk) triggers automated sales notifications and syncs inbound lead pipelines via Salesforce REST Webhooks.
  • Listener sockets are configured using TLS 1.3 encryption over secure HTTPS.

The Issue:

  1. Under high concurrent transaction spikes, external POST webhook listeners occasionally hit HTTP 504 gateway timeout thresholds before acknowledging payload completion.
  2. Direct REST API calls to the org endpoints resolve normally under 150ms.
  3. Are there recommended Apex asynchronous queueable job patterns or buffer queue settings to optimize inbound payload ingestion without dropping connection sockets?

Any advice on managing high-volume asynchronous API triggers would be appreciated!

Thanks!  

 

#Salesforce Developer  #Tableau APIs & Embedding  #Integration

1 件の回答
  1. 8月26日 17:03

    Hey Tony, 

     

    The core fix here is architectural: your Apex REST endpoint should do almost nothing synchronously. Right now, if your handler is doing lead validation, dedup logic, or DML inline before returning a response, that's what's blowing past the 504 threshold under load, real business logic execution easily drifts past 2-3 seconds, which the gateway treats as a dropped connection. 

     

    Recommended pattern: 

    1. Inbound Apex REST method only: validates the payload/signature, publishes a Platform Event with the raw data, and returns HTTP 200 immediately. Nothing else happens in that thread. 

    2. A separate Platform Event trigger picks up the event asynchronously, does your actual business validation, then enqueues a Queueable job (implementing Queueable, Database.AllowsCallouts if you need outbound calls) to do the real processing/DML. 

    3. Cap callouts below Salesforce's 100-per-transaction limit, chain overflow records to a new Queueable automatically rather than dropping them. 

    4. If Apex's async queue itself hits a capacity rejection under heavy concurrent load, catch that exception and fall back to a Scheduled job (e.g., retry in ~20 seconds) so nothing gets silently dropped. 

     

    This decouples network response time from your actual processing time entirely, so gateway timeouts stop being a factor regardless of how complex the downstream logic is. Your observation that direct REST calls resolve under 150ms but webhooks spike under concurrency confirms it's specifically the synchronous processing inside the handler causing the bottleneck, not the API layer itself. 

     

    Also worth adding: idempotency (dedupe on a unique payload ID) since Platform Events and async retries can occasionally redeliver, and Named Credentials for any outbound calls so secrets stay out of code.

0/9000
5 件の回答
  1. 8月25日 9:51

    Hi Raju, 

      

     Recently we have built a Tableau Dashboard Extension that adds a chat panel right inside the dashboard — so instead of eyeballing charts, users can just ask questions in plain English ("what drove the drop in Q2 expenses?", "compare loan fees to expense spend") and get grounded, numeric answers. 

    How it works: 

    • One lightweight local/hosted backend serves multiple dashboards at once — the model automatically figures out which dataset(s) a question is about, and can even blend two datasets in one answer.
    • Every answer is computed by the LLM writing read-only SQL against a real snapshot database (using Tableau's own Hyper engine) — not hallucinated numbers, not a live query against the workbook. This keeps answers fast, accurate, and safe even on 10M+ row extracts.
    • Each dataset ships with auto-generated reference docs (a description + data glossary) so the model understands field meanings, grain, and caveats before answering.
    • An admin flow can onboard a brand-new Tableau Cloud workbook automatically: pull it via the REST API, extract the embedded data, and have the LLM draft the descriptive docs itself.
    • Row-level-security workbooks are auto-detected and blocked from onboarding unless explicitly overridden, so a shared snapshot never leaks restricted rows.

    Please upvote this response if this will be helpful to you. 

     

    Regards 

    Rajneesh

0/9000
1 件の回答
0/9000

I have roughly 120 data sources that use a connector to link directly to my data warehouse. I'm changing the password for the user that is used with this connector, but I'm trying to find an alternative to opening each data source in the Tableau Cloud IT, update the password, and republish. Is there any way to do this with the Tableau REST API? If so, how? 

 

#Tableau APIs & Embedding

5 件の回答
  1. 8月5日 11:05

    Hi @Nate Laning Yes, but not by directly updating the embedded password through the Tableau REST API. The recommended approach is to use the Update Data Source Connection REST API endpoint to update the connection credentials for each published data source. You can automate this by writing a script that authenticates to Tableau Cloud, retrieves the list of data sources, and updates the username and password for each connection. If all data sources use the same credentials, this is much faster than manually republishing every data source.

0/9000
Umesh Chorge が「#Tableau Server」で質問

I updated the Athena DB connection credentials (username/password) in a Tableau workbook, and the extract refresh was working successfully after the update.

After around 5 days, I performed a web edit on the dashboard and made some changes. During this process:

  • Tableau did not prompt for credentials
  • While republishing, only the “Embed credentials” option was available

However, after republishing the workbook, the scheduled extract job started failing with an incorrect username/password error.

This is confusing because the credentials were already updated earlier and were working fine before the web edit.

 

My queries:

  • Why is Tableau not asking for credentials during web edit or republish?
  • Does web edit/republish overwrite or remove previously saved credentials?
  • Why would the extract fail with incorrect credentials even though they were updated earlier?
  • Is there any known limitation or behavior with Athena connections in such scenarios?
  • does role affect?

#Tableau Server  #Tableau Public  #Tableau Desktop & Web Authoring  #Tableau Cloud  #Tableau  #Tableau APIs & Embedding  #Tableau Community Updates

8 件の回答
  1. 6月12日 7:25

    Hi @Umesh Chorge

     

    dealing with WebEditing and credentials can be a bit unstable. I've seen a lot of instances over the years were credentials for some mysterious reasons were not committed or using old ones or using credentials from another tenants while the Analysts were working daily on multiples tenants.  

    This is one example: 

    https://help.salesforce.com/s/issue?id=a02Ka00000lYbc8IAC

     

    As you seem to work with embedded data source directly in the workbook, as Diego said in his earlier post, use published data sources. To keep your datasource stable and modify your workbook content irrelevant of Athena connections even in WebEdit. 

    And ideally you modify your published data sources using Tableau Desktop if you can.

0/9000

Our requirement is:

  • The dashboard (or extract) should refresh only when the latest data for the same day is available at backend DB (for example, based on the presence of a success file or updated data in the source).
  • If the updated new data is not yet available, the refresh should not RUN but instead wait and retry in the next cycle.

We would like to understand:

  1. Is it possible in Tableau Server to trigger refreshes based on a success file or data availability check?
  2. What are the recommended approaches to avoid unnecessary refresh failures when the source data is delayed?
  3. Any guidance, best practices, or implementation examples would be highly appreciated.

#Tableau Desktop & Web Authoring  #Tableau Public  #Tableau Server  #Tableau Cloud  #Tableau  #Tableau APIs & Embedding

5 件の回答
  1. 7月23日 15:09

    This latest response is unfortunately a ChatGPT post. Based on the number of responses overnight and through today, the effort might even be automated. We have a BAN on any A.I. posts due to the high error rate.  So, we're considering these posts as spam. Apologies for any inconvenience this may have caused.

0/9000

Hi, 

When i am developing the Tableau App or Get the data form Different Data Base firttime i connect and enter our credentials  and after that we save the application in my local System or Server System. But when i am opening or any chnage required in our dashboard Tableau need credential every time . It is not good or not manageble. Please give the permanent soultion because of In Qlik Sense ,Power BI they no need to many times input they enter first time and save in its repository. 

 

 

 

#Tableau APIs & Embedding

3 件の回答
  1. 7月16日 18:11

    Apart from what Diego Detailed,  Tableau Desktop can also save credentials in many scenarios. For supported database connectors, selecting "Embed Password" (or "Save Password") allows the workbook to reconnect without prompting every time. 

0/9000