{
"eventId": "n.18bd8bd5-dee3-4d5c-918e-aec3ba1a090f",
"timestamp": "2026-02-26T09:25:32Z",
"eventType": "LIVEBOARD_SCHEDULE",
"schemaVersion": "1.0",
"source": {
"applicationName": "ThoughtSpot",
"applicationUrl": "https://your-cluster.thoughtspot.cloud",
"instanceId": "your-instance-id",
"orgId": "0"
},
"actor": {
"actorType": "SYSTEM"
},
"metadataObject": {
"objectType": "LIVEBOARD",
"id": "c30a0d49-5747-475d-8985-e975b1c2cf6d",
"name": "Sales Dashboard",
"url": "https://your-cluster.thoughtspot.cloud/#/pinboard/c30a0d49-5747-475d-8985-e975b1c2cf6d"
},
"data": {
"scheduleDetails": {
"scheduleId": "cffddca8-d4fc-4575-b8ec-a50e696ccdfc",
"name": "Daily Sales Report",
"creationTime": "2026-02-26T07:52:23Z",
"description": "Daily report",
"authorId": "59481331-ee53-42be-a548-bd87be6ddd4a",
"userIds": ["59481331-ee53-42be-a548-bd87be6ddd4a"],
"groupIds": [],
"runId": "29001ffd-6a84-45cd-a957-621fce89afc6",
"exportRequest": {
"object_type": "LIVEBOARD",
"request_type": "SCHEDULE"
},
"fileFormat": "pdf",
"status": "SCHEDULED",
"emailIds": []
},
"recipients": [
{
"type": "USER",
"id": "59481331-ee53-42be-a548-bd87be6ddd4a",
"name": "John Doe",
"email": "john@company.com",
"locale": "en_US"
}
],
"aiHighlights": "",
"msgUniqueId": "2f31df6a-2623-4953-a9bb-5af9b2922474",
"channelID": "6dfa4d82-fdc8-4d5b-8294-a5de0dd5ede1",
"channelType": "webhook",
"communicationType": "LiveboardSchedules"
}
}
Webhook payload for Liveboard events
The payload contains metadata about the event, the source, the actor, the target object, and event-specific data.
Payload example for S3 storage destination🔗
When the schedule is configured with an S3 destination, ThoughtSpot delivers the exported file directly to S3, and the webhook payload only contains metadata JSON and the S3 object URL location. The JSON metadata includes the event type, object type, schedule name, recipients, and format.
The supported file formats for webhook delivery are PDF, CSV, and XLSX.
The following content in the file attachment indicates successful delivery to the S3 storage destination:
{
"files": [
{
"filename": "sales_report.pdf",
"contentType": "application/pdf",
"size": 1024000,
"provider": "AWS_S3",
"bucketName": "my-webhook-files",
"region": "us-west-2",
"objectKey": "thoughtspot-webhooks/cluster-abc/user-123/org-0/liveboard/sales_report.pdf",
"uploadStatus": "SUCCESS"
},
{
"filename": "sales_data.csv",
"contentType": "text/csv",
"size": 512000,
"provider": "AWS_S3",
"bucketName": "my-webhook-files",
"region": "us-west-2",
"objectKey": "thoughtspot-webhooks/cluster-abc/user-123/org-0/liveboard/sales_data.csv",
"uploadStatus": "SUCCESS"
}
]
}
The following examples show a failed delivery of file attachments due to access denied errors:
{
"files": [
{
"filename": "sales_report.pdf",
"contentType": "application/pdf",
"size": 1024000,
"provider": "AWS_S3",
"bucketName": "my-webhook-files",
"region": "us-west-2",
"objectKey": "thoughtspot-webhooks/cluster-abc/user-123/org-0/liveboard/sales_report.pdf",
"uploadStatus": "SUCCESS"
},
{
"filename": "sales_data.csv",
"contentType": "text/csv",
"size": 512000,
"provider": "AWS_S3",
"uploadStatus": "FAILED",
"errorMessage": "Failed to upload to S3: AccessDenied: Access Denied"
}
]
}
{
"files": [
{
"filename": "sales_report.pdf",
"contentType": "application/pdf",
"size": 1024000,
"provider": "AWS_S3",
"uploadStatus": "FAILED",
"errorMessage": "Failed to assume role: AccessDenied"
}
],
"error": "all file uploads failed (1 files): Failed to assume role: AccessDenied"
}
{
"files": [],
"error": "cloud storage upload failed: failed to create cloud storage service: Unable to assume role. Verify roleArn, trust policy, externalId, and region."
}
For information about resolving access denied errors, refer to the Troubleshooting instructions.
Payload for other webhook endpoints🔗
For other webhook destinations, ThoughtSpot sends a multipart/form-data payload and metadata JSON. The file attachments are included as one part of the multipart request body. Your receiver must parse the multipart/form-data payload to extract the actual file content from the request body.
The supported attachment file formats for webhook delivery are PDF, CSV, and XLSX.
Content-Type: multipart/form-data; boundary=------------------------boundary123
--------------------------boundary123
Content-Disposition: form-data; name="payload"
Content-Type: application/json
{
"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"
}
}
--------------------------boundary123
Content-Disposition: form-data; name="file"; filename="sales_report.pdf"
Content-Type: application/pdf
<binary pdf bytes here>
--------------------------boundary123--
Webhook payload structure and schema🔗
The webhook payload uses a specific schema structure that determines the contents of the payload delivered to the webhook endpoint.
WebhookResponse🔗
The WebhookResponse schema defines the standard response from webhook endpoints, confirming the webhook receipt and processing status.
| Field | Type | Description | Required? |
|---|---|---|---|
| string | Status of the webhook payload processing. | Yes |
| string | Message text about the result. For example, | Yes |
| 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.
| Field | Type | Description | Required? |
|---|---|---|---|
| string | ID of each webhook event. For example, | Yes |
| string | Timestamp of when the event occurred. | Yes |
| string | Type of event that triggered the webhook payload. For example, | Yes |
| string | Schema version. | Yes |
| object | Source endpoint that triggered the event. Includes the parameters defined in the WebhookSourceInfo schema. | Yes |
| object | Actor that initiated the event. For more information, see WebhookActorInfo. | Yes |
| object | Metadata object details. For more information, see WebhookTargetObjectInfo. | Yes |
| object | Data specific to the Liveboard schedule event. For more information, see LiveboardScheduleData. | Yes |
WebhookSourceInfo🔗
The WebhookSourceInfo schema defines the properties of the source application instance that triggered the webhook event.
| Field | Type | Description | Required? |
|---|---|---|---|
| string | Application name. For example, ThoughtSpot. | Yes |
| string | The URL of the ThoughtSpot application instance. | Yes |
| string | ID of the ThoughtSpot instance that triggered the payload. | Yes |
| 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.
| Field | Type | Description | Required? |
|---|---|---|---|
| string | Initiator of the event such as the API client or user. The default actor type is | Yes |
| string | Unique identifier, such as a GUID or object ID. For system-generated responses, the | No |
| string | Name of the actor that initiated the event. For system-generated responses, the | No |
| string | Email of the actor that initiated the event. For system-generated responses, the | No |
WebhookTargetObjectInfo🔗
The WebhookTargetObjectInfo schema defines the object for which the event is generated.
| Field | Type | Description | Required? |
|---|---|---|---|
| string | Type of object. For Liveboard schedule events, the object will be | Yes |
| string | Unique identifier of the Liveboard. | Yes |
| string | Name of the Liveboard. | Yes |
| string | Link to the object in the ThoughtSpot application. | No |
LiveboardScheduleData🔗
The LiveboardScheduleData schema defines event-specific data for Liveboard schedule events, including schedule details, recipients, and additional context.
| Field | Type | Description | Required? |
|---|---|---|---|
| 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 |
| array | Details of the ThoughtSpot users, groups, and email addresses of external users configured as subscribers to Liveboard schedule notifications and recipients of the webhook payload. For more information, see RecipientInfo. | Yes |
| object | Information about the Liveboard view. Applicable if the Liveboard schedule event is triggered for a personalized view of the Liveboard. For more information, see ViewInfo. | No |
| string | AI Highlights information. Applicable if AI highlights feature is enabled for the visualizations on the Liveboard. | No |
| 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 |
| string | The communication channel ID used for event dissemination. | No |
| string | Type of the communication channel. The channel type used for webhook payloads is | No |
| string | Type of the messaging event. For Liveboard schedule events, the communication type will be | No |
ScheduleDetails🔗
The ScheduleDetails schema defines the properties of the schedule that triggered the event, metadata, author, and export request.
| Field | Type | Description | Required? |
|---|---|---|---|
| string | ID of the Liveboard schedule. | Yes |
| string | Name of the Liveboard schedule. | Yes |
| string | Timestamp of when the schedule was created. | No |
| string | Description of the schedule. | No |
| string | ID of the user that scheduled the Liveboard job. | No |
| object | Information about the Liveboard view. Applicable if the Liveboard schedule event is triggered for a personalized view of the Liveboard. For more information, see ViewInfo. | No |
| array | IDs of the ThoughtSpot users that are subscribed to the scheduled Liveboard notifications. | No |
| array | IDs of the ThoughtSpot groups that are subscribed to the scheduled Liveboard notifications. | No |
| string | Schedule run ID of the Liveboard job. | No |
| object | Details of the file export request. If the scheduled notification includes PDF attachment, the | No |
| string | File format for export. Schedule notifications generally include PDF attachments. | No |
| string | Status of the schedule. | No |
| 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.
| Field | Type | Description | Required? |
|---|---|---|---|
| string | Type of recipient. Valid types are:
| Yes |
| string | IDs of ThoughtSpot users and groups that are subscribed to the Liveboard schedule. | No |
| string | Name of the recipient. | No |
| string | Email address of the recipient. | Yes |
| string | Locale of the recipient. For example, | No |
ViewInfo🔗
The ViewInfo schema defines properties of the Liveboard view for which the event is generated.
| Field | Type | Description | Required? |
|---|---|---|---|
| string | ID of the Liveboard personalized view. | Yes |
| string | Name of the Liveboard personalized view. | Yes |