Skip to content
Try for free

ThingsBoard Cloud

Choose your data region

Your data stays in the region you choose, for residency and compliance. No credit card required.

Rather run it yourself? Install on your own servers

Generate Dashboard Report

Use this node to capture a screenshot of a ThingsBoard dashboard using a headless browser and save it as a blob entity — for example, generating a PDF or PNG snapshot of a live dashboard to attach to an email report, or archiving a visual record of device state at the time of an alarm.

  • Use system reports server — when enabled, uses the system-configured reports server endpoint. When disabled, specify a Reports server endpoint URL directly in this node.
  • Use report config from message — when enabled, reads the report configuration from the incoming message data under the reportConfig key.
Field Description
baseUrl Base URL of the ThingsBoard instance
dashboardId UUID of the dashboard to capture
timezone Timezone for rendering time-based widgets
namePattern File name pattern for the saved blob
userId UUID of the user whose session is used to render the dashboard
type Output format: PDF, PNG, or JPEG
  1. Load the report configuration from message data or static settings.
  2. Submit the dashboard capture request to the reports server.
  3. Save the screenshot as a blob entity.
  4. Append the blob ID to message metadata under the attachments key.
  5. Route via Success.
  6. On error (invalid config, server unreachable, capture failure, user not found): route via Failure.
Connection Condition
Success Screenshot captured and saved; blob ID appended to attachments metadata key.
Failure Invalid config, reports server unreachable, capture failed, user not found, or unexpected error.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "TbGenerateDashboardReportNodeConfiguration",
"type": "object",
"additionalProperties": false,
"properties": {
"useSystemReportsServer": { "type": "boolean" },
"reportsServerEndpointUrl": { "type": "string" },
"useReportConfigFromMessage": { "type": "boolean" },
"reportConfig": {
"type": "object",
"properties": {
"baseUrl": { "type": "string" },
"dashboardId": { "type": "string" },
"timezone": { "type": "string" },
"namePattern": { "type": "string" },
"userId": { "type": "string" },
"type": { "type": "string", "enum": ["PDF", "PNG", "JPEG"] }
}
}
}
}