6 Replies Latest reply on Feb 19, 2018 11:34 PM by Craig Andrew

    Add a custom button to Tableau Server (10.4) Ribbon

    Craig Andrew

      Hi Tableau Community,


      I have done plenty googling into my problem and have yet to find an answer specific to my problem.


      The Problem:

      1. Add a custom button on the existing Tableau Server Ribbon (similar to the favourites button). Is this even possible? Essentially, I would need to edit Tableau's source HTML code to add a button? Is this allowed?

      2. The button on the ribbon needs to display a search box (just like the one shown below for favourites). The functionality of this search box must allow a User to input freetext and upon submission of this request a custom developed API must trigger a call to an external database and return a string to Tableau that will be displayed below where the User has inputted their search.This API I am not worried about because I know this part can be done with Tableau Javascript API's.

      The reason I want this search functionality to live on the existing ribbon is because this search needs to be available regardless of what dashboard the user is viewing.


      I hope I have painted a clear picture into what I require.


      Thanks in advance,


        • 1. Re: Add a custom button to Tableau Server (10.4) Ribbon
          Jeff Strauss

          Hi Craig.  There are perhaps multiple methods of getting this done.



          1. The hacky way (which I have not explored) of adding a button to the Tableau vanilla html page.  While this may be possible, it's def not supportable by Tableau, and it has potential to break when doing upgrades.

          2. Develop a custom portal in the app of your choice (i.e. node.js, .net, java) that interfaces to the Tableau Server via the rest api and javascript api.  Within here, you can pass common parameters (i.e. region) from your portal to whatever dashboards are setup to take it in as a filter.  And the dashboards that aren't setup to take it in as a filter will just ignore the parameter.  There are many posts as to how to do this if you google "tableau custom portal".




          Does this help?

          1 of 1 people found this helpful
          • 2. Re: Add a custom button to Tableau Server (10.4) Ribbon
            Donna Coles

            Hi craig

            I'm probably missing something, but doesn't the existing search function almost do what you want.... it's not quite the same UI, but it allows a free text search of any content on the server from anywhere on server and returns results below where you've searched without taking you away from where you started...


            • 3. Re: Add a custom button to Tableau Server (10.4) Ribbon
              Craig Andrew

              Hi Jeff,


              Thanks for your response. Your point 1 is exactly what I want to investigate. My Client is aware that Tableau does not support this but they want to investigate if they can change the vanilla HTML and add in their own flair of functionality. Do you know anyone who can assist with this?


              Kind Regards,

              • 4. Re: Add a custom button to Tableau Server (10.4) Ribbon
                Toby Erkson

                I can pretty much guarantee that you won't find anyone who has made such a modification and you will be on your own in building it.  It will invalidate support from Tableau and chances are extremely good that it will break upon the next major version change.  In other words, I recommend you let your customer know it can't be done without a lot of work and, more expensively, more maintenance and testing upon every version change.


                I agree with Donna, what's exactly wrong with the built-in search?

                1 of 1 people found this helpful
                • 5. Re: Add a custom button to Tableau Server (10.4) Ribbon
                  Jeff Strauss

                  As Donna and Toby say, this is totally unsupported, and it will likely break upon upgrading Tableau Server.  But to clarify, are you looking for more than a search?  what you're looking for is a global filter to be applied onto any dashboard that the user chooses from the portal?


                  If so, this kind of modification to the portal hasn't been successfully accomplished, or at least hasn't been talked about at all within this forum community.  There is a thread here to change cosmetically the color of the top bar (Re: Changing color top bar tableau server ), and if you want to put in the effort, maybe there are other similar .html or .js files that can be modified, but it becomes off the grid at this point.

                  • 6. Re: Add a custom button to Tableau Server (10.4) Ribbon
                    Craig Andrew

                    Hi Toby,


                    Thank you for your response. I now have enough evidence to revert back to my client and advise them accordingly. I do have some other workaround solutions that I will propose to them. However, because they were so clear on what they wanted, I thought it best to investigate what was possible and attempt to push the boundaries.


                    Just an FYI on why the generic Search would not work for me. I need to be able to search for a Measure Name while viewing any Dashboard within my Server environment. Tableau Server does not allow you to search at this low level of detail. When I search for the measure name, I need to return a meaningful description of this measure. The Measure Name in a unique code that is conformed together to have a friendly meaning. i.e. AC NS TY means Actual Net Sales This Year.


                    Hence my original idea to create a new button on the Tableau Server Ribbon that would trigger an API call to the third party application that stores each Measure and its meaningful description. The API call would need to match what is being inputted in the newly created search dialog box and return a meaningful name that it can match on.


                    Another challenge I face, is that we are connecting to an SSAS Cube and there are over 5000 Measures that the Users see. So because we connect to a Cube, Tableau (and any other BI Tool for that matter) has limited functionality. For instance, I cannot change the Alias for each Measure. I cannot Blend in the Meaningful Name data and match it to each Measure because it is a 1:1 relationship.


                    So my workaround solution is to extract the Meaningful Name data, create a pretty Tableau Dashboard, Publish to wherever it will be most used, and assist the Users with some change management and help them understand that they will see new Measure Names and that it might be overwhelming at first but over time they will recognise the Measure Name quite easily.


                    I hope this clarifies and provides additional context as to what I was asking.

                    Thank you all for your help and input. I really appreciate it. Donna Coles Jeff Strauss


                    Kindest regards,