Dashboard Migration- QuickSight API

Successfully Migrated QuickSight Dashboard page to Another Dashboard via API – Final Steps & Learnings

While working on migrating a QuickSight dashboard, I encountered several challenges and had to go through multiple debugging steps to get it right. After experimenting with different approaches, I successfully migrated the dashboard using the API method.

In this post, I’m sharing my final conclusions and step-by-step process so that anyone facing a similar issue can find a complete solution in one place. I hope this helps the community, and I’d love to hear your thoughts or alternative approaches!

  1. Ensure the dataset with all the calculated fields exists in the target dashboard.
  2. Export the source analysis definition:
    aws quicksight describe-analysis-definition --aws-account-id YOUR_ACCOUNT_ID --analysis-id SOURCE_ANALYSIS_ID --region YOUR_REGION >> source_analysis.json
  3. Export the destination analysis definition:
    aws quicksight describe-analysis-definition --aws-account-id YOUR_ACCOUNT_ID --analysis-id DESTINATION_ANALYSIS_ID --region YOUR_REGION >> destination_analysis.json
  4. Modify destination_analysis.json:
    -Copy destination_analysis.json to destination_analysis_updated.json.
    -Remove these fields:
     “Status”
     “AnalysisId”
     “Name”
     “ResourceStatus”
    -Ensure required datasets from source_analysis.json exist in “DataSetIdentifierDeclarations”, and add them if missing.
    -Copy the “Sheets” section from source_analysis.json and append it to “Sheets” in destination_analysis_updated.json.
    -Copy “FilterGroups” from source_analysis.json to destination_analysis_updated.json.
    -Copy “ParameterDeclarations” from source_analysis.json to destination_analysis_updated.json.
    -Remove “RequestId” from destination_analysis_updated.json.
  5. Create a new analysis with the updated JSON:
    aws quicksight create-analysis --aws-account-id YOUR_ACCOUNT_ID --analysis-id NEW_ANALYSIS_ID --name NEW_ANALYSIS_NAME --cli-input-json file://destination_analysis_updated.json
  6. Check if the creation was successful:
    aws quicksight describe-analysis --aws-account-id YOUR_ACCOUNT_ID --analysis-id NEW_ANALYSIS_ID
  7. Verify the new analysis in QuickSight and share it:
    -Go to QuickSight Console → Admin → Assets.
    -Locate the new analysis and share it with the admin or security group.
    -Test the new analysis to confirm everything is working.
    Done!
2 Likes

Hi @Asfak,
Thank you for taking the time to break this all down and share with the community! I will mark your post as a solution so that it stays in the library for others to find when searching but will leave open for the next couple days in case any other community members would like to comment!