In this section
See also: Known Issues
March 2023
Tableau Embedding API library: tableau.embedding.3.5.0.js
Available on Tableau Server, Tableau Cloud, Tableau Public, and from the Tableau CDN. See Access the Embedding API.
About this release:
Added support for <tableau-ask-data>
web component with Connected App support. See Embed Ask Data.
Deprecated the getSummaryDataAsync()
method. Use the Worksheet.getSummaryDataReaderAsync method instead.
Added a helper function to DataTableReader
for developers who want to handle the data all at once (with a 4 million row limit). See the getAllPagesAsync()
method.
Adds support for passing user attributes from a JSON Web Token (JWT) when authorizing access to embedded content using Tableau Connected Apps. See Control and Customize Data Access Using User Attributes.
Doc update: added topic Use Parameters in Embedded Views
Doc update: MarksInfo
type and color are not implemented.
December 2022
Tableau Embedding API library: tableau.embedding.3.4.0.js
Available on Tableau Server, Tableau Cloud, Tableau Public, and from the Tableau CDN. See Access the Embedding API.
About this release:
Adds support for annotating marks added with Worksheet.annotateMarkAsync.
Adds support for getting all annotations on a worksheet with Worksheet.getAnnotationsAsync.
Adds support for removing annotations with Worksheet.removeAnnotationAsync.
Adds support for DataTableReader to support pagination. Created with Worksheet.getSummaryDataReaderAsync, Worksheet.getUnderlyingTableDataReaderAsync, and DataSource.getLogicalTableDataReaderAsync. For more information, see Get Data from the View.
October 2022
Tableau Embedding API library: tableau.embedding.3.3.0.js
Available on Tableau Server, Tableau Cloud, Tableau Public, and from the Tableau CDN. See Access the Embedding API.
About this release:
Adds support for hierarchical filters.
Adds support to initialize custom views.
Prevents the view from reloading after a web component dimension change.
Defines the default size of the view based on the content area specified by the enclosing HTML element.
Implements size for SheetInfo
, Worksheet
, Dashboard
, and DashboardObject
.
Adds support for adding event listeners directly on <tableau-viz>
web component.
Uses the default dimensions if either the width/height is not defined on the web component
Implements the Workbook.getCustomViewsAsync()
, Workbook.showCustomViewAsync()
, Workbook.removeCustomViewAsync()
, Workbook.saveCustomViewAsync()
and
Workbook.setActiveCustomViewAsDefaultAsync()
methods.
Implements the CustomView.saveAsync()
method.
Adds support for initializing story points.
Fixes timing issues with FirstInteractive
and FirstVizSizeKnown
events.
Adds support for handling custom view events: CustomViewRemoved
, CustomViewSaved
, and CustomViewSetDefault
.
Implements the StoryPointSwitch
event.
Adds support for resizing an iframe
based on when first sheet size is known.
Supports dynamic resizing of the view based on browser viewport changes.
Implements the Story.activateStoryPointAsync()
, Workbook.activateNextStoryPointAsync()
,
Workbook.activatePreviousStoryPointAsync()
, Workbook.revertStoryPointAsync()
methods.
Implements the Sheet.changeSizeAsync()
method.
Implements the Viz.getCurrentSrcAsync()
method for both the TableauViz
and TableauAuthoringViz
objects.
Implements the Viz.displayDialogAsync(TableauDialogType.Share)
.
June 2022
Tableau Embedding API library: tableau.embedding.3.2.0.js
Available on Tableau Server, Tableau Cloud, Tableau Public, and from the Tableau CDN. See Access the Embedding API.
About this release:
You can insert or remove custom context menus into Uber tooltip on the viz. See
appendContextMenuAsync
, removeContextMenuAsync
, Ubertip
and ContextMenuOptions
, and the
CustomMarkContextMenuEvent
event.
If you add custom context menu items to the Uber tooltip (Worksheet.appendContextMenuAsync()
), you can customize the menu heading and add a tooltip description. By default, the heading for the custom menu item is Embedded. To rename the heading and add a tooltip description, call the Worksheet.renameContextMenuAsync()
method.
Introduced TableauAuthoringViz
(<tableau-authoring-viz>
custom element) that exposes
functionality to embed an authoring viz. See Embedded Web Authoring.
Added the ability to hide edit button and suppress default edit behavior for TableauViz
and
TableauAuthoringViz
Added the ability to hide edit in desktop button for TableauAuthoringViz
Added the ability to hide close button for TableauAuthoringViz
Added functionality to handle WorkbookPublished
, WorkbookPublishedAs
, WorkbookReadyToClose
,
EditButtonClicked
, and EditInDesktopButtonClicked
events.
Added the ability to automatically parse and switch to the correct mode when you set the src
attribute in the <tableau-viz>
or <tableau-authoring-viz>
web component.
For example, when using a <tableau-viz>
element, you can pass in an authoring URL and it will
automatically get converted to a viewing URL (https://tableau.com/authoring/workbook/sheet
is
converted to https://tableau.com/views/workbook/sheet
).
This works in reverse as well: passing in a viewing URL into a <tableau-authoring-viz>
will automatically convert the URL into an authoring URL.
Having this automatic conversion is great for the user because they can use the same URL for both viewing and authoring modes without having to worry about getting it right.
In the past, users could pass in an authoring URL into
<tableau-viz>
and it would actually display correctly in authoring mode. Now it will still
display correctly, but it will automatically be in viewing mode. - One additional thing to
note… the URL parsing also handles #/views
, which was problematic in the past. Basically,
the code is more forgiving now and you can just copy and paste a URL from the browser’s address
bar and use it for embedding. This addresses a constant customer complaint that the URL had to
be “just right” in order to work in the past.
More support for Tableau events, so now you can create actions based on more interactions. This release adds support for the following events:
ToolbarStateChanged
UrlAction
TabSwitched
ParameterChanged
This release adds support for Tableau parameters. You can now set parameters by adding <viz-parameter>
components to the <tableau-viz>
web component. The parameter settings take effect at start up. Additionally, the library now supports the methods Workbook.getParametersAsync()
and Workbook.changeParameterValueAsync()
.
Increased options for exporting from Tableau. You can now call Viz.exportImageAsync()
to export images, and call Viz.displayDialogAsync()
method to display one of the export dialogs based on the TableauDialogType
parameter (TableauDialogType.ExportPDF
, TableauDialogType.ExportPowerPoint
, TableauDialogType.ExportData
, TableauDialogType.ExportCrossTab
, TableauDialogType.ExportWorkbook
).
Added support for the Workbook.activateSheetAsync()
method.
Added support for the Workbook.revertAllAsync()
method.
Added support for Filter.getAppliedWorksheets()
and Filter.setAppliedWorksheets()
methods.
Added support for Dashboard.getFiltersAsync()
and Dashboard.applyDashboardFilterAsync()
methods.
Added support for Worksheet.applyRelativeDateFilterAsync()
method.
Added support for the Viz.addFilter()
method, used to apply a filter during initialization. This is the JavaScript equivalent of applying a <viz-filter>
component to the <tableau-viz>
web component.
March 2022
Tableau Embedding API library: tableau.embedding.3.1.0.js
Available on Tableau Server, Tableau Cloud, Tableau Public, and from the Tableau CDN. See Access the Embedding API.
About this release:
You can now use JavaScript to embed a Tableau view. See Use JavaScript to initialize the API and embed the view.
The Embedding API v3 library is packaged as an ES6 module.
In this release, enums are now exposed and available in the library. For example, you can now use FilterUpdateType.Replace
instead of the string literal "replace"
. The use of enums is strongly encouraged as it eliminates potential coding errors caused by typos.
You can now refresh data (refreshDataAsync
) on the Viz object.
You can now redo (redoAsync
), undo (undoAsync
)and revert all changes (revertAllAsync
) on the Viz object.
You can check the Viz object to see whether or not automatic updates are paused (using the automaticUpdatesArePaused
property), and you can now pause (pauseAutomaticUpdatesAsync
), resume (resumeAutomaticUpdatesAsync
), and toggle (toggleAutomaticUpdatesAsync
) automatic updates.
You can select marks in the worksheet, see selectMarksByValueAsync.
You can now access the Sheet
and SheetInfo
properties, url
and isHidden
.
December 2021
tableau.embedding.3.0.0.js
Initial release of the Embedding API v3.
About this release:
Introduces the <TableauViz>
custom web component that provides all of functionality needed for JavaScript v1 customers (that is, anyone who uses the Embed Code feature on Tableau Server and Tableau Cloud) to migrate to using the Embedding API v3.
This release of the Embedding API v3 provides access to some filtering and get data functionality. See API Reference documentation for the list of methods and properties supported. See Add Filtering.
This release of the Embedding API v3 enables listening to four events: firstvizsizeknown
, firstinteractive
, markselectionchanged
, filterchanged
. See the API Reference and Add Events for more details.
The Embedding API v3 supports connected apps and external authorization servers (EAS) as additional ways to authenticate. See Authorization and Embedded Views. For details about setting up these methods, see Register EAS to Enable SSO for Embedded Content (Linux) or Register EAS to Enable SSO for Embedded Content (Windows), and Configure Tableau Connected Apps to Enable SSO for Embedded Content for more information.
For this release, you need to use the string literal values ("replace"
, "add"
, "all"
, "remove"
), instead of the FilterUpdateType
enumerations (for example, FilterUpdateType.Replace
).
For this release, you need to use the string literal values for the TableauEventType
. For example, instead of using the enum TableauEventType.MarkSelectionChanged
, you need to use "markselectionchanged"
when you add or remove the event listener.