How to move Bulk Reports and Dashboard to another folder using Metadata API



We know how to change reports and dashboard folder manually. That’s very easy. But that would not work in case of bulk amount of reports and dashboard folder migration from one folder to another. That will be time taking. There are ways to do bulk reports or dashboards migration.

Example of Reports Migration:

In below example we are using Workbench to move bulk reports. Also this process can be follow using ANT migration tool or direct access to Metadata API.

Here we have two reports Account Status and Opportunity Creator in My Reports folder. We need to move these two to Test User Report folder. 

Reports

Follow below steps to migrate these reports.

Step-1:

Create an xml file with below content and named it as members.xml.

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">     <types>       
<name>Report</name>        <members>My_Reports/Account_Status</members>       

<members>My_Reports/Opportunity_Creator</members>    
 </types>
<version>49.0</version>
</Package>

Within <members> tag write your <folder API name>/<report or dashboard API name>

Step-2:

Login to workbench. Click on Metadata Types and Components under info menu. Choose Report and see the current structure of report folder by expanding Components.

Step-3:

Click on Retrieve option under migration menu. Upload the members.xml file to Unpackaged Manifest. Click on Next.

Step-4: Click on Retrieve.

Step-5: Then click on Download Zip File.

Step-6: Extract the Zip file. In that unpackaged folder, under reports folder do rename of it’s sub folder name from My_Reports to Test_User_Report.

Step-7: Now edit package.xml in that unpackaged folder. Replace My_Reports to Test_User_Report in <members> tag. Then zip the unpackaged folder again.

Within <members> tag replace the current folder name to destination folder API name.

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">     <types>
<name>Report</name>
        <members>Test_User_Report/Account_Status</members>  
<members>Test_User_Report/Opportunity_Creator</members>
</types>    
<version>49.0</version>
</Package>

Step-8: Click on Deploy under migration menu. Click choose file and upload this zip. Click on Next.Then click on Deploy. You can see the status as Succeeded in next page. Below image showing the final result now. Both reports are migrated to Test User Report Folder.

The same process can be applied for dashboard migration also.

Click here to view more Salesforce blog post.