Embedding Tableau Server into a web application or even a piece of packaged software requires some knowledge and few occasional tricks.
Methods of Embedding into a web page
- Direct iframe with :embed parameter
- Simple JS API embedding (from the Share menu)
- Replace most toolbar actions with UI in the web page (using the methods that start with show on the Viz class)
- Toolbar may be hidden for aesthetic reasons, or to deal with special permissions combinations
- Hide the standard tabs and implement your own custom tab designs
- Embed more than one workbook in a page
- Set Parameters and Filters Programmatically
- Set Filters and Parameters prior to page load
- Store user preferences and apply them across separate workbooks
- Use your own UI for filters
- Enables passing additional fields from the web application to a Stored Procedure
- Event listeners allow for two-way interactions
- Using a selection in a worksheet to change a parameter. Ex. A radius distance calculator from a selected point
- Interactivity between multiple distinct workbooks all embedded in a single page
- Write-back to database
Web Application Integration
Securely Enabling Web Edit
If there is one quirk to Tableau Server that requires the most consideration, it is the fact that Download and Save As are a single, merged permission. However, a user must have Save As permissions to use Web Edit. If you want your users to use web edit, but not download workbooks, you have to either hide the toolbar, or do some unsupported modification of the CSS files in the vizqlserver directories.
For those who haven’t hacked Tableau Server before, there are actually two pieces: Vizqlserver handles everything about the viz, and vizportal handles all of the UI all around the viz. More easy to remember: if you still see it when you are embedding, it is vizqlserver, otherwise it’s vizportal.
There are CSS files that determine the look and feel of both of these; and with some simple modifications, it is possible to create an environment that allows web edit without download. However, these are unsupported changes and they affect everything on the Server, so you need to take that into account before recommending them or putting the solutions in place.
The following articles walk through all of the options for customizing so that a user can use Web Edit but not Download:
- CSS Magic Tricks with Embedded Tableau Server Views
- Disabling Browser and Apache Caches to See Changes to Tableau Server
Modifying Web Edit Behavior
By default, Web Edit will pop up into its own window. Even if you’ve changed the look and feel enough so that matches your application, this still might be undesirable and is a bit unpredictable in the user experience. With more effort and care, embedding Web Edit in an iframe (any web application) is possible.
Replicating Tableau Server UI Functionality in your portal
The Tableau Server REST API allows for many methods of querying and can be used to create a user-specific listing of content available for any user.
If you need more information than is available via the REST API, it is possible to gain access to the Search Server (Solr) which powers the quick search in the Tableau Server UI.
Redirecting Scheduled E-mails to Embedded Views
Scheduled e-mails link to non-embedded views by default. You can build out a listener location to redirect any incoming user to the appropriate page that embeds that view
Modifying the Tableau Server UI and other automatic features
Some customers expose the standard Tableau Server UI, but have additional requirements for security reasons. The following resources show how to remove some unwanted links and limit down functionality. Particularly if you are syncing information from other systems, you may want to lock down the user from making changes to their passwords.
- Hiding Tableau Server UI (vizportal) Elements
- Redirecting away from Tableau Server signin page
- Forcing Password Security
Embedding Into a Packaged Application
Tableau Server views can also be embedded into a packaged, distribution and installed application. You still need the Tableau Server up and running, and the view will be showed through a “web browser part” in the application.
Embedding into C# Application, Part 1
Embedding into a C# Application, Part 2
Embedding into an iOS Mobile App (coming soon)
Embedding into SharePoint using Active Directory
You have provided an excellent article.It helps a lot to the users.I came to know new things here.Thank you for sharing.
Hello. Is it possible to use Tableau for the complete website experience? What I mean: the data team has created screens for executive sessions, and as a Designer, I’ve been asked to add better navigation, homepage, category landing pages, etc. Is it possible to build “traditional” web pages in Tableau, and add custom CSS overrides to pages? Thank you!
Unfortunately, modifying the Tableau Server UI is unsupported/not recommended. Best practice would be to create a simple web application and leverage the REST API/JS API to call the Tableau Server for those elements. This way you have full control over the environment and can present the content in whatever look and feel you want.