Webhooks Events and Payloads


In this topic:

Trigger Events

Note: Starting in Tableau 2020.3, the `event` attribute of your webhook is the preferred place to specify the triggering event. `webhook-source` can also be used or omitted, as long as there is no conflict between the event described in the two elements.   

The following events are supported:

event Name webhook-source Name resource Name
AdminPromoted webhook-event-user-promoted-admin USER
AdminDemoted webhook-event-user-demoted-admin USER
DatasourceUpdated webhook-source-event-datasource-updated DATASOURCE
DatasourceCreated webhook-source-event-datasource-created DATASOURCE
DatasourceDeleted webhook-source-event-datasource-deleted DATASOURCE
DatasourceRefreshStarted webhook-source-event-datasource-refresh-started EXTRACTS
DatasourceRefreshSucceeded webhook-source-event-datasource-refresh-succeeded EXTRACTS
DatasourceRefreshFailed webhook-source-event-datasource-refresh-failed EXTRACTS
LabelCreated webhook-source-event-label-created DATASOURCE/WORKBOOK
LabelUpdated webhook-source-event-label-updated DATASOURCE/WORKBOOK
LabelDeleted webhook-source-event-label-LabelDeleted DATASOURCE/WORKBOOK
SiteCreated webhook-source-event-site-created SITE
SiteUpdated webhook-source-event-site-updated SITE
SiteDeleted webhook-source-event-site-deleted SITE
UserDeleted webhook-source-event-user-deleted USER
ViewDeleted webhook-source-event-view-deleted VIEW
WorkbookUpdated webhook-source-event-workbook-updated WORKBOOK
WorkbookCreated webhook-source-event-workbook-created WORKBOOK
WorkbookDeleted webhook-source-event-workbook-deleted WORKBOOK
WorkbookRefreshStarted webhook-source-event-workbook-refresh-started EXTRACTS
WorkbookRefreshSucceeded webhook-source-event-workbook-refresh-succeeded EXTRACTS
WorkbookRefreshFailed webhook-source-event-workbook-refresh-failed EXTRACTS

Version Notes

  • The AdminPromoted and AdminDemoted events are available when connecting to Tableau Cloud and Tableau Server 2021.1 and later.  These events currently only work when updating the user from or to a Site Administrator role. These events do not work to update a user from or to a Server Adminsitrator role.
  • LabelCreated, LabelUpdated, and LabelDeleted events are available in REST API version 3.16 and when connecting to Tableau Cloud Currently not supported when connecting to Tableau Server.  

Tableau Webhooks Behavior

  • In some cases, a Tableau event may cause more than one webhook request to be sent to the destination URL server. We recommend that you parse incoming webhook requests to filter duplicates. The JSON payloads of duplicate requests will be identical.

  • When a server that has been sent a webhook request does not reply with a HTTP success code, the webhook will retry the request three times with diminishing frequency. (A HTTP success code is defined as any number in the 2xx range.)

    If it still fails after a total of four attempts (fist attempt and 3 retries), the webhook will no longer retry. This is counted as 1 delivery attempt failure. If the same HTTP Post is made again and has a total of 4 such delivery attempt failures, the webhook is automatically disabled and the Webhook owner will be notified using the email address of the account owner on Tableau Server. Any successful attempts will automatically reset the delivery count. A disabled webhook can be manually re-enabled using the Update a Webhook REST Endpoint. This auto-disable behavior is only seen when connecting to Tableau Server version 2021.1.

Payloads  

When one of the subscribed events fires, a JSON payload is sent to the URL that is configured. The payloads are the same format for all events but the content in the fields varies based on the event type.

Example Payloads  

Here are a few examples of the payloads and what information is included:

DatasourceCreated:

{
  "resource":"DATASOURCE",

  "event_type":"DatasourceCreated",

  "resource_name":"My Datasource",

  "site_luid":"8b2a95d8-52b9-40a4-8712-cd6da771bd1b",

  "resource_luid":"99",

  "created_at":"2018-11-15T17:14:45Z"
}
Field Description
resource  “DATASOURCE”
event_type  Type of event that occurred.
resource_name  Name of the datasource in question.
site_luid  LUID for the site that contains the datasource.
resource_luid  The datasource LUID.
created_at The time stamp of when the datasource was created.

Datasource extract refresh:

{
  "resource":"EXTRACTS",

  "event_type":"DatasourceRefreshStarted",

  "resource_name":"My Datasource",

  "site_luid":"8b2a95d8-52b9-40a4-8712-cd6da771bd1b",

  "resource_luid":"99",

  "created_at":"2018-11-15T17:14:45Z"
}
Field Description
resource  “EXTRACTS”
event_type  Type of extract refresh event that occurred.
resource_name  Name of the datasource in question.
site_luid  LUID for the site that contains the datasource.
resource_luid  The datasource LUID.
created_at The time stamp of when the extract refresh job was created.

Workbook created:


{
  "resource":"WORKBOOK",

  "event_type":"WorkbookCreated",

  "resource_name":"My Workbook",

  "site_luid":"8b2a95d8-52b9-40a4-8712-cd6da771bd1b",

  "resource_luid":"99",

  "created_at":"2018-11-15T17:14:45Z"

}
Field  Description 
resource  “WORKBOOK”
event_type  Type of event that occurred.
resource_name  Name of the workbook in question.
site_luid  LUID for the site that contains the workbook.
resource_luid  The workbook LUID.
created_at The time stamp of when the workbook was created.

Workbook extract refresh started:

{
  "resource":"EXTRACTS",

  "event_type":"WorkbookRefreshStarted",

  "resource_name":"My Workbook",

  "site_luid":"8b2a95d8-52b9-40a4-8712-cd6da771bd1b",

  "resource_luid":"99",

  "created_at":"2018-11-15T17:14:45Z"

}
Field  Description 
resource  “EXTRACTS”
event_type  Type of event that occurred.
resource_name  Name of the workbook in question.
site_luid  LUID for the site that contains the workbook.
resource_luid  The workbook LUID.
created_at The time stamp of when the extract refresh job was created.

User Admin Promoted:

{
  "resource":"USER",

  "event_type":"AdminPromoted",

  "resource_name":"Test user",

  "site_luid":"8b2a95d8-52b9-40a4-8712-cd6da771bd1b",

  "resource_luid":"25",

  "created_at":"2018-11-15T17:14:45Z"

}

Field  Description
resource  “USER”
event_type  Type of event that occurred.
resource_name  Name of the user.
site_luid  LUID for the site that the user has permissions to.
resource_luid  The user LUID.
created_at The time stamp of when the user was created.

Label Created for datasource:

{
  "resource":"DATASOURCE",

  "event_type":"LabelUpdated",

  "resource_name":"My Datasource",

  "site_luid":"8b2a95d8-52b9-40a4-8712-cd6da771bd1b",

  "resource_luid":"12ab34cd-56ef-78ab-90cd-12ef34ab56cd",

  "created_at":"2022-05-15T17:14:45Z"
}
Field  Description
resource  DATASOURCE
event_type  Type of event that occurred.
resource_name  Name of the asset in question.
site_luid  LUID for the site that contains the asset.
resource_luid  The asset LUID.
created_at The time stamp of when the label was created.