Webhooks for Liveboard schedule events <sup class="beta betaBackground">Beta</sup>

Webhooks for Liveboard schedule events Beta

To provide flexibility and programmatic control for users who want to customize notifications and automate workflows based on Liveboard scheduling events, ThoughtSpot provides the ability to configure a webhook communication channel. By configuring a webhook, users can send notifications automatically to a target application whenever a scheduled Liveboard job is triggered in ThoughtSpot.

Webhook support for Liveboard schedule events is available only on ThoughtSpot Cloud instances running 10.14.0.cl or later. This feature is currently in beta and is not enabled by default. To enable this feature on your instance, contact ThoughtSpot Support.

OverviewπŸ”—

If you have scheduled a Liveboard job to receive a daily report via email, you can configure ThoughtSpot to send the report directly to a webhook endpoint and create your own custom emails or workflow.

To automate sending scheduled Liveboard notifications to a webhook endpoint, the following configuration is required:

  • Ensure that "webhook" is selected as a communication channel for your Org or at the cluster level for all Orgs on your instance.
    Use the following REST APIs to set and view communication channel preferences:

    • POST /api/rest/2.0/system/preferences/communication-channels/configure

    • POST /api/rest/2.0/system/preferences/communication-channels/search

  • A webhook for the Liveboard schedule event to enable programmatic communication between the target application and ThoughtSpot.
    To create and manage webhook APIs, use the following APIs:

    • POST /api/rest/2.0/webhooks/create

    • POST /api/rest/2.0/webhooks/delete

    • POST /api/rest/2.0/webhooks/search

    • POST /api/rest/2.0/webhooks/{webhook_identifier}/update

Note

In the current release:

  • REST APIs support webhook channel configuration for LIVEBOARD_SCHEDULE events only.

  • You can configure only one webhook for the Liveboard schedule event per Org.

Get startedπŸ”—

The webhooks setup for Liveboard Schedule events involves the following steps:

Before you beginπŸ”—

Check your application environment for the following prerequisites:

  • Ensure that you have access to a ThoughtSpot instance with the required permissions to set communication channel preferences, create and manage webhooks, and schedule Liveboard jobs.
    If your instance has Role-based Access Control (RBAC) enabled, you need the following privileges:

    • APPLICATION_ADMINISTRATION (Can Manage Application settings) to create and view communication channels.

    • CAN_MANAGE_WEBHOOKS (Can manage webhooks) to create and manage webhooks.

  • Ensure that the REST APIs for setting communication channel preference and configuring webhooks are enabled on your instance. If the APIs are not available on your instance, contact ThoughtSpot Support.

  • To allow outbound traffic from the ThoughtSpot to the webhook endpoint, add the webhook destination URL to the CSP connect-src allowlist in ThoughtSpot.

  • Ensure that your destination application has a callback URL to accept HTTP POST requests from ThoughtSpot.

  • If you plan to use OAuth authentication, make sure you have the OAuth credentials and authorization URL of your application.

  • If you plan to use an API key for authentication, ensure that you have a valid API key.

Configure a webhook communication channelπŸ”—

To create a webhook communication channel for the Liveboard Schedule event, use the channel preference REST API.

Create a webhook communication channelπŸ”—

To create the webhook communication channel and set messaging preferences, send a POST request to the /api/rest/2.0/system/preferences/communication-channels/configure API endpoint. You can set preferences at the cluster level for all Orgs or at the Org level. When both are configured, the preferences set at the Org level take precedence.

Request parameters
ParameterDescription

cluster_preferences

Array of strings. Sets default preferences for all Orgs in the instance. You must specify the following parameters:

event_type

String. Type of the event for which communication channels are configured. For Liveboard schedule event, set the parameter value as LIVEBOARD_SCHEDULE.

channels

Array of strings. Communication channel for the event type specified in the request. Valid values are:

  • EMAIL

  • WEBHOOK

To create a webhook channel for the Liveboard schedule event, specify WEBHOOK.

org_preferences

Array of strings. By default, preferences configured at the cluster level will apply to all Orgs in the instance. To override the default preferences for your Org, set the Org-specific preferences:

org_identifier

String. Name or ID of the Org.

preferences

Array of strings. Define the following parameters to set communication channel preferences for the Org. If the preferences are not set, the Org will inherit the default preferences applied at the cluster level.

  • event_type
    String. Type of the event for which communication channels are configured. For Liveboard schedule event, set the parameter value as LIVEBOARD_SCHEDULE.

  • channels
    Array of strings. Communication channel for the event type specified in the request. Valid values are:

    • EMAIL

    • WEBHOOK

    To set up a webhook channel for the Liveboard schedule event, specify WEBHOOK.

operation

String. Type of operation. The following options are available:

  • REPLACE - To replace default preferences.

  • RESET - To restore default preferences. For reset operation, you’ll also need to specify the event type. Note that this operation will remove any Org-specific overrides and restores the default preferences configured at the cluster level.

reset_events

Array of strings. For RESET operations, specify the event type to reset. Note that the reset operation removes Org-specific configuration for the events specified in reset_events.

Example request

The following example shows the request body for setting a communication channel preference at the cluster level.

curl -X POST \
  --url 'https://{ThoughtSpot-Host}/api/rest/2.0/system/preferences/communication-channels/configure'  \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {AUTH_TOKEN}' \
  --data-raw '{
  "cluster_preferences": [
    {
      "event_type": "LIVEBOARD_SCHEDULE",
      "channels": [
        "WEBHOOK"
      ]
    }
  ]
}'

The following example shows the request body for setting a communication channel preference at the Org level.

curl -X POST \
  --url 'https://{ThoughtSpot-Host}/api/rest/2.0/system/preferences/communication-channels/configure'  \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {AUTH_TOKEN}' \
  --data-raw '{
  "org_preferences": [
    {
      "org_identifier": "testOrg1",
      "operation": "REPLACE",
      "preferences": [
        {
          "event_type": "LIVEBOARD_SCHEDULE",
          "channels": [
            "WEBHOOK"
          ]
        }
      ]
    }
  ]
}'
API response

If the request is successful, the API returns a 204 response.

View the communication channel preferencesπŸ”—

To review and audit the communication channel preferences set on your instance, send a POST request to the /api/rest/2.0/system/preferences/communication-channels/search API endpoint.

Request parameters
ParameterDescription

cluster_preferences
Optional

Array of strings. To filter API response by event type, specify the event type for which the communication channel preference is set at the cluster level.

org_preferences
Optional

Array of strings. To filter API response by Org-specific overrides, specify the following parameters:

  • org_identifier
    String. Name or ID of the Org.

  • event_types
    Array of strings. Event types to search for. To get channel preferences for Liveboard schedule events, specify LIVEBOARD_SCHEDULE.

Example request

The following request fetches channel preferences configured for the Liveboard schedule event at the cluster level:

curl -X POST \
  --url 'https://{ThoughtSpot-Host}/api/rest/2.0/system/preferences/communication-channels/search'  \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {AUTH_TOKEN}' \
  --data-raw '{
  "cluster_preferences": [
    "LIVEBOARD_SCHEDULE"
  ]
}'

The following request fetches channel preferences configured for the Liveboard schedule event at the Org level:

curl -X POST \
  --url 'https://{ThoughtSpot-Host}/api/rest/2.0/system/preferences/communication-channels/search'  \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {AUTH_TOKEN}' \
  --data-raw '{
  "org_preferences": [
    {
      "org_identifier": "testOrg1",
      "event_types": [
        "LIVEBOARD_SCHEDULE"
      ]
    }
  ]
}'
Example response

If the request is successful, the API returns the channel preference details.

The following example shows the communication preferences configured for the specified event type at the cluster level:

{
  "cluster_preferences": [],
  "org_preferences": [
    {
      "org": {
        "id": "0",
        "name": "Primary"
      },
      "preferences": []
    },
    {
      "org": {
        "id": "1532970882",
        "name": "testOrg"
      },
      "preferences": [
        {
          "event_type": "LIVEBOARD_SCHEDULE",
          "channels": [
            "EMAIL",
            "WEBHOOK"
          ]
        }
      ]
    },
    {
      "org": {
        "id": "2100019165",
        "name": "testOrg1"
      },
      "preferences": [
        {
          "event_type": "LIVEBOARD_SCHEDULE",
          "channels": [
            "WEBHOOK"
          ]
        }
      ]
    }
  ]
}

The following example shows the preferences returned for a specific Org:

{
  "cluster_preferences": [],
  "org_preferences": [
    {
      "org": {
        "id": "2100019165",
        "name": "testOrg1"
      },
      "preferences": [
        {
          "event_type": "LIVEBOARD_SCHEDULE",
          "channels": [
            "WEBHOOK"
          ]
        }
      ]
    }
  ]
}

Configure a webhookπŸ”—

To configure webhooks for the Liveboard schedule event, use the webhook REST API.

Create a webhookπŸ”—

To create a webhook for the Liveboard schedule event, send a POST request to the /api/rest/2.0/webhooks/create API endpoint. ThoughtSpot allows only one webhook per Org.

Request parameters
ParameterDescription

name

String. Name of the webhook.

description
Optional

String. Description text for the webhook

url

String. The fully qualified URL of the listening endpoint where the webhook payload will be sent. The webhook endpoint to which you want to send notifications.

url_params

A JSON map of key-value pairs of parameters to add as a GET query params in the webhook URL.

events

Array of strings. List of events to subscribe to. Specify the event as LIVEBOARD_SCHEDULE.

authentication

Defines authentication method and credentials that ThoughtSpot will use when sending HTTP requests to the webhook endpoint.

Specify the authentication type.

  • API_KEY
    API key to authorize the payload requests. Specify the API key to use in the X-API-Key request header.

  • BASIC_AUTH
    Authentication methods with username and password.

  • BEARER_TOKEN
    Authentication token to authenticate and authorize requests.

  • OAUTH2
    OAuth credentials to authorize API requests. Specify client ID, client secret key, and authorization URL. If the registered webhook has Oauth authentication enabled, Authorization: Bearer <access-token> is sent in the request header.

signature_verification
Optional

Signature verification parameters for the webhook endpoint to verify the authenticity of incoming requests. This typically involves ThoughtSpot signing the webhook payload with a secret, and your webhook endpoint validating this signature using the shared secret.

If using signature verification, specify the following parameters.

  • type
    Signature verification type. Supported type is HMAC_SHA256, which uses Hash-based Message Authentication Code (HMAC) algorithm with the SHA-256 hash function to generate a cryptographic signature for webhook payloads. When configured, ThoughtSpot will sign the webhook payload using a shared secret and the HMAC_SHA256 algorithm. Your receiving endpoint should use the same secret and algorithm to compute the HMAC of the received payload and compare it to the signature sent by ThoughtSpot.

  • header
    HTTP header where the signature is sent.

  • algorithm
    Hash algorithm used for signature verification.

  • secret
    Shared secret used for HMAC signature generation.

Example request

The following example shows the request body for creating a webhook:

curl -X POST \
  --url 'https://{ThoughtSpot-Host}/api/rest/2.0/webhooks/create'  \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {AUTH_TOKEN}' \
  --data-raw '{
  "name": "webhook-lb-event",
  "url": "https://webhook.site/6643eba5-9d3e-42a1-85e0-bb686ba1524d",
  "events": [
    "LIVEBOARD_SCHEDULE"
  ],
  "authentication": {
    "BEARER_TOKEN": "Bearer {AUTH_TOKEN}"
  }
  "description": "Webhook for Liveboard schedule"
}'
Example response

If the webhook creation is successful, the API returns the following response:

{
  "id": "873dd4e2-6493-490d-a649-ba9ea66b11f5",
  "name": "webhook-lb-event",
  "description": "Webhook for Liveboard schedule",
  "org": {
    "id": "2100019165",
    "name": "testOrg1"
  },
  "url": "https://webhook.site/6643eba5-9d3e-42a1-85e0-bb686ba1524d",
  "url_params": null,
  "events": [
    "LIVEBOARD_SCHEDULE"
  ],
  "authentication": BEARER_TOKEN,
  "signature_verification": null,
  "creation_time_in_millis": 1761050197164,
  "modification_time_in_millis": 1761050197164,
  "created_by": {
    "id": "08c6b203-ff6e-4ed8-b923-35ebbbfef27b",
    "name": "UserA@thoughtspot.com"
  },
  "last_modified_by": null
}

View webhook propertiesπŸ”—

To view the properties of a webhook or get a list of webhooks configured on your ThoughtSpot instance, send a POST request to the /api/rest/2.0/webhooks/search API endpoint.

To get specific information, define the following parameters. If the API request is sent without any parameters in the request body, ThoughtSpot returns the webhooks configured for the Org contexts in ThoughtSpot.

Request parameters
ParameterDescription

org_identifier
Optional

String. ID or name of the Org.

webhook_identifier
Optional

String. ID or name of the webhook.

event_type
Optional

String. Type of webhook event to filter by. For Liveboard schedule events, specify LIVEBOARD_SCHEDULE.

Pagination settings

If fetching multiple records, specify the following parameters to paginate API response:

  • record_offset
    Integer. Specifies the starting point (index) from which records should be returned. Default is 0.

  • record_size
    Integer. Specifies the number of records to return in the response. Default is 50.

sort_options
Optional

Enables sorting of the API response by a specific field in ascending or descending order. Specify the field_name and define the desired sort order.

Example request

The following example shows the request body to fetch webhook properties:

curl -X POST \
  --url 'https://{ThoughtSpot-Host}/api/rest/2.0/webhooks/search'  \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {AUTH_TOKEN}' \
  --data-raw '{
  "record_offset": 0,
  "record_size": 50,
  "org_identifier": "testOrg1",
  "event_type": "LIVEBOARD_SCHEDULE"
}'
Example response

If the API request is successful, ThoughtSpot returns the webhook configuration details:

{
  "webhooks": [
    {
      "id": "873dd4e2-6493-490d-a649-ba9ea66b11f5",
      "name": "webhook-lb-event",
      "description": "Webhook for Liveboard schedule",
      "org": {
        "id": "2100019165",
        "name": "testOrg1"
      },
      "url": "https://webhook.site/view/6643eba5-9d3e-42a1-85e0-bb686ba1524d/29c02fc2-c1c6-4b20-8d62-e8d51cf8dfb3",
      "url_params": null,
      "events": [
        "LIVEBOARD_SCHEDULE"
      ],
      "authentication": null,
      "signature_verification": null,
      "creation_time_in_millis": 1761050197164,
      "modification_time_in_millis": 1761051944507,
      "created_by": {
        "id": "08c6b203-ff6e-4ed8-b923-35ebbbfef27b",
        "name": "UserA@thoughtspot.com"
      },
      "last_modified_by": {
        "id": "08c6b203-ff6e-4ed8-b923-35ebbbfef27b",
        "name": "UserA@thoughtspot.com"
      }
    }
  ],
  "pagination": {
    "record_offset": 0,
    "record_size": 50,
    "total_count": 1,
    "has_more": false
  }
}

Update the properties of a webhookπŸ”—

To update the name, description text, endpoint URL, or the authentication settings of a webhook object, send a POST request to the /api/rest/2.0/webhooks/{webhook_identifier}/update API endpoint.

Request parameters

Specify the webhook_identifier and pass it as a path parameter in the request URL.

The API operation allows you to update the following webhook properties:

  • name
    Name of the webhook.

  • description
    Description text of the webhook.

  • url
    The URL of the webhook endpoint.

  • url_params
    Query parameters to append to the endpoint URL.

  • events
    Events subscribed to the webhook. In the current release, ThoughtSpot supports only the LIVEBOARD_SCHEDULE event.

  • authentication
    Authentication method and credentials that ThoughtSpot will use when sending HTTP requests to the webhook endpoint

  • signature_verification
    Signature verification parameters for the webhook endpoint to verify the authenticity of incoming requests.

Example request

The following example shows the request body for updating the name, description text, and endpoint URL of a webhook object:

curl -X POST \
  --url 'https://{ThoughtSpot-Host}/api/rest/2.0/webhooks/webhook-lb-test/update'  \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {AUTH_TOKEN}' \
  --data-raw '{
  "name": "webhook-lb-event",
  "description": "Webhook for Liveboard schedule event",
  "url": "https://webhook.site/6643eba5-9d3e-42a1-85e0-bb686ba1524d/2e5251b2-8274-41f6-80a0-1b82854df31f",
  "events": [
    "LIVEBOARD_SCHEDULE"
  ]
}'
Example response

If the API request is successful, the API returns a 204 response code indicating a successful operation.

Delete a webhookπŸ”—

To delete a webhook, send a POST request to the /api/rest/2.0/webhooks/delete endpoint.

Request parameters

Specify the name or ID of the webhook to delete.

ParameterDescription

webhook_identifiers

Array of strings. ID of name of the webhooks to delete.

Example request
curl -X POST \
  --url 'https://{ThoughtSpot-Host}/api/rest/2.0/webhooks/delete'  \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {AUTH_TOKEN}' \
  --data-raw '{
  "webhook_identifiers": [
    "webhook-lb-test"
  ]
}'
Example response

If the API request is successful, the webhook is deleted, and the API returns the details of the deleted webhook in the response body.

{
  "deleted_count": 1,
  "failed_count": 0,
  "deleted_webhooks": [
    {
      "id": "45fe7810-3239-4761-94fd-04c017df29c4",
      "name": "webhook-test",
      "description": "Webhook for testing purposes",
      "org": {
        "id": "1574427524",
        "name": "testOrg2025"
      },
      "url": "https://webhook.site/6643eba5-9d3e-42a1-85e0-bb686ba1524d/2e5251b2-8274-41f6-80a0-1b82854df31f",
      "url_params": null,
      "events": [
        "LIVEBOARD_SCHEDULE"
      ],
      "authentication": null,
      "signature_verification": null,
      "creation_time_in_millis": 1761184185887,
      "modification_time_in_millis": 1761184185887,
      "created_by": {
        "id": "08c6b203-ff6e-4ed8-b923-35ebbbfef27b",
        "name": "UserA@thoughtspot.com"
      },
      "last_modified_by": null
    }
  ],
  "failed_webhooks": []
}

Verify the webhook payloadπŸ”—

After a webhook channel is configured for Liveboard schedule events and a webhook is created for these events at the Org level, it’s applied to all Liveboard schedules in an Org.

When a Liveboard schedule event is triggered based on the conditions defined in the schedule, the webhook sends the payload with the following schema to the configured endpoint. Based on the Liveboard job settings, the payload includes metadata properties such as webhook communication channel ID, recipient details, Liveboard schedule details, event properties, and a link to the Liveboard.

For testing purposes, you can use a URL from the Webhook site as a webhook endpoint and check the payload when the Liveboard schedule event is triggered.

Contents of the webhook playloadπŸ”—

The Webhook payload uses a specific schema structure that determines the contents of the payload delivered to the webhook endpoint. The payload contains metadata about the event, the source, the actor, the target object, and event-specific data. The payload is typically sent as a form field named payload in a multipart/form-data request, with optional file attachments.

For more information about the schema structure, refer to the following sections.

WebhookResponse

The WebhookResponse schema defines the standard response from webhook endpoints, confirming the webhook receipt and processing status.

FieldTypeDescriptionRequired?

status

string

Status of the webhook payload processing.

Yes

message

string

Message text about the result. For example, Webhook received successfully.

Yes

time

string

Timestamp when the response was generated.

Yes

WebhookPayload

The WebhookPayload schema defines the structure for webhook event notifications, including event metadata, source, actor, target object, and event-specific data.

FieldTypeDescriptionRequired?

eventId

string

ID of each webhook event. For example, n.820c00f9-d7ef-48e9-ab08-2ec1a48de0ab.

Yes

timestamp

string

Timestamp of when the event occurred.

Yes

eventType

string

Type of event that triggered the webhook payload. For example, LIVEBOARD_SCHEDULE.

Yes

schemaVersion

string

Schema version.

Yes

source

object

Source endpoint that triggered the event. Includes the parameters defined in the WebhookSourceInfo schema.

Yes

actor

object

Actor that initiated the event. For more information, see WebhookActorInfo.

Yes

metadataObject

object

Metadata object details. For more information, see WebhookTargetObjectInfo.

Yes

data

object

Data specific to the Liveboard schedule event. For more information, see LiveboardScheduleData.

Yes

WebhookSourceInfo

The WebhookSourceInfo schema defines the properties of source application instance that triggered the webhook event.

FieldTypeDescriptionRequired?

applicationName

string

Application name. For example, ThoughtSpot.

Yes

applicationUrl

string

The URL of the ThoughtSpot application instance.

Yes

instanceId

string

ID of the ThoughtSpot instance that triggered the payload.

Yes

orgId

string

ID of the Org context in ThoughtSpot from which the event payload is triggered.

Yes

WebhookActorInfo

The WebhookActorInfo schema defines the properties of the entity that initiated the event.

FieldTypeDescriptionRequired?

actorType

string

Initiator of the event such as the API client or user. The default actor type is SYSTEM.

Yes

id

string

Unique identifier such as GUID or object ID).For system-generated responses, the id will be set as null.

No

name

string

Name of the actor that initiated the event. For system-generated responses, the name will be set as null.

No

email

string

Email of the actor that initiated the event. For system-generated responses, the name will be set as null.

No

WebhookTargetObjectInfo

The WebhookTargetObjectInfo schema defines the object for which the event is generated.

FieldTypeDescriptionRequired?

objectType

string

Type of object. For Liveboard schedule events, the object will be LIVEBOARD.

Yes

id

string

Unique identifier of the Liveboard.

Yes

name

string

Name of the Liveboard.

Yes

url

string

Link to the object in the ThoughtSpot application.

No

LiveboardScheduleData

The WebhookTargetObjectInfo schema defines event-specific data for Liveboard schedule events, including schedule details, recipients, and additional context.

FieldTypeDescriptionRequired

scheduleDetails

object

Details of the Liveboard schedule that triggered the event. This includes the schedule ID, object type, and output format. For more information, see ScheduleDetails.

Yes

recipients

array

Details of the ThoughtSpot users, groups, and email addresses of the external users who are configured as subscribers of the Liveboard schedule notifications and recipients of the webhook payload. For more information, RecipientInfo.

Yes

viewInfo

object

Information about the Liveboard view. Applicable if the Liveboard Schedule event is triggered for a personalized view of the Liveboard. For more information, ViewInfo.

No

aiHighlights

string

AI Highlights information. Applicable if AI highlights feature is enabled for the visualizations on the Liveboard.

No

msgUniqueId

string

Unique message identifier. Unique ID of the webhook payload message. This ID can be used for traceability and deduplication on the receiving end.

No

channelID

string

The communication channel ID used for event dissemination.

No

channelType

string

Type of the communication channel. The channel type used for webhook payloads is webhook.

No

communicationType

string

Type of the messaging event. For Liveboard schedule events, the communication type will be LiveboardSchedules.

No

ScheduleDetails

The ScheduleDetails schema defines the properties of the schedule that triggered the event, metadata, author, and export request.

FieldTypeDescriptionRequired?

scheduleId

string

ID of the Liveboard schedule.

Yes

name

string

Name of the Liveboard schedule.

Yes

creationTime

string

Timestamp of when the schedule was created.

No

description

string

Description of the schedule.

No

authorId

string

ID of the user that scheduled the Liveboard job.

No

viewInfo

object

Information about the Liveboard view. Applicable if the Liveboard Schedule event is triggered for a personalized view of the Liveboard. For more information, ViewInfo.

No

userIds

array

IDs of the ThoughtSpot users that are subscribed to the scheduled Liveboard notifications.

No

groupIds

array

IDs of the ThoughtSpot groups that are subscribed to the scheduled Liveboard notifications.

No

runId

string

Schedule run ID of the Liveboard job.

No

exportRequest

object

Details of the file export request. If the scheduled notification includes PDF attachment, the exportRequest includes details of the Liveboard and PDF page attributes.

No

fileFormat

string

File format for export. The schedule notification generally include PDF attachments.

No

status

string

Status of the schedule.

No

emailIds

array

Email IDs of users subscribed to Liveboard job schedule.

No

RecipientInfo

The RecipientInfo schema defines the object properties of the recipients of the scheduled notifications.

FieldTypeDescriptionRequired?

type

string

Type of recipient. Valid types are:

  • USER - For ThoughtSpot users

  • EXTERNAL_EMAIL - For external recipients

Yes

id

string

IDs of the ThoughtSpot user and groups that are subscribed to the Liveboard schedule.

No

name

string

Name of the recipient.

No

email

string

Email address of the recipient.

Yes

locale

string

Locale of the recipient. For example, en_US.

No

ViewInfo

The ViewInfo schema defines properties of the Liveboard view for which the event is generated.

FieldTypeDescriptionRequired?

viewId

string

ID of the Liveboard personalized view.

Yes

viewName

string

Name of the Liveboard personalized view.

Yes

JSON payload exampleπŸ”—

{
  "eventId": "n.18bd8bd5-dee3-4d5c-918e-aec3ba1a090f",
  "timestamp": "2025-08-29T09:25:32Z",
  "eventType": "LIVEBOARD_SCHEDULE",
  "schemaVersion": "1.0",
  "source": {
    "applicationName": "ThoughtSpot",
    "applicationUrl": "https://my.thoughtspot.cloud",
    "instanceId": "3d85f2fe-8489-11f0-bdf8-5ba90",
    "orgId": "2100019165"
  },
  "actor": {
    "actorType": "SYSTEM"
  },
  "metadataObject": {
    "objectType": "LIVEBOARD",
    "id": "c30a0d49-5747-475d-8985-e975b1c2cf6d",
    "name": "Sample Liveboard (View: sample view name)",
    "url": "https://my.thoughtspot.cloud/?utm_source=scheduled-pinboard&utm_medium=email#/pinboard/c30a0d49-5747-475d-8985-e975b1c2cf6d?view=a8118b21-4581-4315-8833-39b2aa5be542"
  },
  "data": {
    "scheduleDetails": {
      "scheduleId": "cffddca8-d4fc-4575-b8ec-a50e696ccdfc",
      "name": "Sample Liveboard",
      "creationTime": "2025-08-29T07:52:23Z",
      "description": "Daily sales performance report",
      "authorId": "59481331-ee53-42be-a548-bd87be6ddd4a",
      "viewInfo": {
        "viewId": "a8118b21-4581-4315-8833-39b2aa5be542",
        "viewName": "sample view name"
      },
      "userIds": ["59481331-ee53-42be-a548-bd87be6ddd4a"],
      "groupIds": [],
      "runId": "29001ffd-6a84-45cd-a957-621fce89afc6",
      "exportRequest": {
        "object_type": "LIVEBOARD",
        "pdf_params": {
          "orientation": "LANDSCAPE",
          "page_size": "A4"
        },
        "liveboard_params": {
          "layout_type": "VISUALIZATION",
          "personalised_view_id": "a8118b21-4581-4315-8833-39b2aa5be542",
          "liveboard_viz_selection": {
            "complete_liveboard": false,
            "included_viz_id": [
              "efe80e30-ca82-4b83-a9c0-7371be45d3e6",
              "957c9e37-0352-40ca-8d07-fb056a91332d"
            ]
          },
          "print_document_params": {
            "include_cover_page": true,
            "include_filter_page": true,
            "pageFooterParams": {
              "include_logo": true,
              "include_page_number": true,
              "text": "footer"
            }
          },
          "visualization_format_options": {
            "truncate_tables": true
          }
        },
        "request_type": "SCHEDULE"
      },
      "fileFormat": "pdf",
      "status": "SCHEDULED",
      "emailIds": []
    },
    "recipients": [
      {
        "type": "USER",
        "id": "user-123",
        "name": "John Doe",
        "email": "john@company.com",
        "locale": "en_US"
      }
    ],
    "viewInfo": {
      "viewId": "a8118b21-4581-4315-8833-39b2aa5be542",
      "viewName": "sample view name"
    },
    "aiHighlights": "Sales increased by 15% compared to last quarter",
    "msgUniqueId": "2f31df6a-2623-4953-a9bb-5af9b2922474",
    "channelID": "6dfa4d82-fdc8-4d5b-8294-a5de0dd5ede1",
    "channelType": "webhook",
    "communicationType": "LiveboardSchedules"
  }
}

File attachmentsπŸ”—

The payload also includes file attachments in the file format specified in the Liveboard schedule. The file format can be PDF, CSV, or XLSX.

Β© 2025 ThoughtSpot Inc. All Rights Reserved.