Quick Sight dashboard Snapshot API

I have a use case where I need to send ~37 project-specific reports and email each project’s POC automatically. We planned to use dashboard snap job api for the getting the dashboard snapshot. However, I encountered below error :


aws: [ERROR]: An error occurred (AccessDeniedException) when calling the StartDashboardSnapshotJob operation: IdentityStore not found or unauthorized for account XX. Verify IdentityStore exists and credentials have proper permissions.

Sharing the json and command used :

{
“AwsAccountId”: “XX”,
“DashboardId”: “XX”,
“SnapshotJobId”: “job-001”,
“UserConfiguration”: {
{
“AnonymousUsers”: [
{}
]
}},
“SnapshotConfiguration”: {
“FileGroups”: [
{
“Files”: [
{
“SheetSelections”: [
{
“SheetId”: “XX”,
“SelectionScope”: “ALL_VISUALS”
}
],
“FormatType”: “PDF”
}
]
}
],
“DestinationConfiguration”: {
“S3Destinations”: [
{
“BucketConfiguration”: {
“BucketName”: “xx”,
“BucketPrefix”: “xx”,
“BucketRegion”: “xx”
}
}
]
},
“Parameters”: {
“StringParameters”: [
{
“Name”: “Account”,
“Values”: [“xx”]
}
]
}
}
}

aws quicksight start-dashboard-snapshot-job --cli-input-json file://snapshot.json

Is it mandatory to have pixel perfect add on added to utilize the ‘start-dashboard-snapshot-job’ API?

Hello Bhavya,

Yes ! Exporting CSV, Excel, or Pixel Perfect PDF reports requires Pixel Perfect Report Add-on.

FYI,

In addition , Since you’re using AnonymousUsers in your configuration, session capacity pricing must be active.

Hope this helps.

Cheers,

Deep

Do we have anyway other than Pixel perfect reports to email dashboard snapshots to multiple users?

Yes !

Email Reports from Interactive Dashboard Sheets

In Amazon QuickSight Enterprise Edition, you can email reports from any sheet in a dashboard — not just pixel-perfect report sheets. This includes interactive dashboard sheets as well. You can configure schedules that define when to send them, what content to include, and who receives the emai.

Users need to be registered users in Quick.

Snapshot Export APIs (For Non-QuickSight / Anonymous Users)

QuickSight provides Snapshot Export APIs that allow you to programmatically generate and deliver dashboard snapshots to users who are not registered in QuickSight (anonymous/non-QuickSight users). The key APIs are :

  • StartDashboardSnapshotJob – Initiates a snapshot export job
  • DescribeDashboardSnapshotJob – Checks the status of the job
  • DescribeDashboardSnapshotJobResult – Retrieves the result

These APIs support exporting:

  • PDF format – for pixel-perfect report sheets
  • CSV and Excel formats – for data from tables and pivot tables
Method Registered Users Anonymous Users Notes
Pixel Perfect Report Scheduling :white_check_mark: :cross_mark: Built-in email scheduling with RLS support
Interactive Sheet Email Reports :white_check_mark: :cross_mark: Schedule emails from any dashboard sheet
Snapshot Export APIs :white_check_mark: :white_check_mark: Programmatic; requires custom app to handle email delivery

you may need to apply RLS /CLS in your dataset, to make sure user see only thoes data relevant to them.

Hope this helps.

Cheers,

Deep

This is confusing, I did try the StartDashboardSnapshotJob.

  1. I was not able to do it for registered users , here is the error encountered.

aws: [ERROR]: An error occurred (ParamValidation): Parameter validation failed:
Unknown parameter in UserConfiguration: “RegisteredUsers”, must be one of: AnonymousUsers

  1. I tried using with null anonymous user as provided in my previous message.

Error encountered : aws: [ERROR]: An error occurred (AccessDeniedException) when calling the StartDashboardSnapshotJob operation: IdentityStore not found or unauthorized for account XX. Verify IdentityStore exists and credentials have proper permissions.

  1. Scheduling via dashboard is restricted to 5 schedules only, has this changed?

I have 37 project specific reports which needs to go out to users who are not registered in Quicksight.

Let me know if I can achieve the above goal without the Pixel perfect add on.

Hi, Is there an update around this ask?