String. Type of the event for which communication channels are configured. For Liveboard schedule event, set the parameter value as LIVEBOARD_SCHEDULE.
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:
|
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
| Parameter | Description | |
|---|---|---|
| Array of strings. Sets default preferences for all Orgs in the instance. You must specify the following parameters: | |
| ||
| Array of strings. Communication channel for the event type specified in the request. Valid values are:
To create a webhook channel for the Liveboard schedule event, specify | |
| 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: | |
| String. Name or ID of the Org. | |
| 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.
| |
| String. Type of operation. The following options are available:
| |
| 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 | |
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
| Parameter | Description |
|---|---|
| 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. |
| Array of strings. To filter API response by Org-specific overrides, specify the following parameters:
|
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
| Parameter | Description |
|---|---|
| String. Name of the webhook. |
| String. Description text for the webhook |
| 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. |
| A JSON map of key-value pairs of parameters to add as a GET query params in the webhook URL. |
| Array of strings. List of events to subscribe to. Specify the event as |
| Defines authentication method and credentials that ThoughtSpot will use when sending HTTP requests to the webhook endpoint. Specify the authentication type.
|
| 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.
|
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
| Parameter | Description |
|---|---|
| String. ID or name of the Org. |
| String. ID or name of the webhook. |
| String. Type of webhook event to filter by. For Liveboard schedule events, specify |
Pagination settings | If fetching multiple records, specify the following parameters to paginate API response:
|
| Enables sorting of the API response by a specific field in ascending or descending order. Specify the |
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 theLIVEBOARD_SCHEDULEevent. -
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.
| Parameter | Description |
|---|---|
| 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.
| 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 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 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 WebhookTargetObjectInfo 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 the external users who are configured as subscribers of the Liveboard schedule notifications and recipients of the webhook payload. For more information, 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, 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, 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. The schedule notification 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 the ThoughtSpot user 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 |
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.