Error: "Entity type 'WaveDashboard' is not available in this organization"
We were getting this error while retrieving WaveDashboard using Workbench. WaveDashboard is also known as Einstein Analytics/ CRM Analytics dashboards.
Check the following points to remediate this problem.
#1 Permission set assignment:
Einstein Analytics Platform User
Einstein Analytics Platform Admin (Only for admin)
#2 Enable Analytics CRM
#3 Validate Package.xml
What the error means
The Metadata API returns this message when your org does not have the feature behind the metadata type, or when your user is not allowed to use it. WaveDashboard is the type for CRM Analytics (earlier called Einstein Analytics or Tableau CRM) dashboards, so the org needs CRM Analytics, and your user needs access to it.
Checks to run, in order
The feature is enabled. In Setup, open Analytics and complete the Getting Started step to enable CRM Analytics. Without a CRM Analytics license in the org, the type does not exist.
The user has the license and permissions. Assign the CRM Analytics Platform permission set license and a permission set such as the Einstein Analytics Platform User, or Admin if you manage the setup. Sign out and in again after the assignment.
The package.xml is valid. The name must be exactly WaveDashboard. If a wildcard does not return anything, list the dashboards by their API names.
The org is the right one. A sandbox may not have CRM Analytics enabled even when production does. Check the org you are connected to.
The API version supports the type. Use a recent version in the version tag.
Retrieve with the CLI
sf project retrieve start --metadata WaveDashboard
Replace the word with WaveDashboard:YourDashboardApiName to retrieve one dashboard.
FAQ
Does the same message appear for other types? Yes. Types such as WaveDataset, WaveApplication and other feature-based types fail in the same way when the feature is not enabled.
Why does it work in Workbench for another user? Access is checked for the user who logs in, so make sure you use the same user, or one with the permission set.