Troubleshooting a Salesforce error for Tableau CRM deployments with WaveRecipe

Sam Eastwood on

Share with

LinkedIn
Twitter

Have you ever tried deploying Tableau CRM changes, specifically WaveRecipe metadata, and hit this error: A Recipe must specify a Dataflow? If so, you're in the right place. In this post, I'll explain what causes that particular Salesforce error message, and how you can resolve it.

Tableau CRM

What's Tableau CRM?

Many Salesforce teams use Tableau CRM (previously known as Einstein Analytics or Wave) to create custom dashboards and graphs which provide deeper insights into their data, allowing their companies to make faster and more informed decisions.

Tableau CRM settings are described by the underlying Wave metadata types, such as:

  • WaveXmd
  • WaveApplication
  • WaveDashboard
  • WaveDataflow
  • WaveDataset
  • WaveLens
  • WaveRecipe

These settings can be very complex, so you don't want to be copying over your changes manually between your Salesforce orgs. The good news is that you can retrieve and deploy these metadata types using Gearset.

Gearset's metadata filter

What's special about WaveRecipe?

The WaveRecipe metadata type essentially describes an algorithm - a set of steps (hence 'recipe'!) that can be applied to a data set, hopefully with a tasty outcome. Your WaveRecipes will be listed in Salesforce.

WaveRecipes listed in the Salesforce UI

Compared to other Wave metadata types, the WaveRecipe component is a little more difficult to deploy as it must be deployed with the associated WaveDataflow component. Attempting to deploy WaveRecipe without the WaveDataflow component leads to the Salesforce error: A Recipe must specify a Dataflow.

A Recipe must specify a Dataflow

Unfortunately, the missing WaveDataflow component can be elusive! It's generated automatically when a WaveRecipe is created but hidden in the Salesforce UI and so can't be viewed within your org. What's more, it isn't retrieved automatically along with your other WaveDataflow components (the ones you created in your org manually) when querying the Salesforce Metadata API.

How to deploy WaveRecipe successfully

This is where Gearset comes in! When WaveDataflow components are being retrieved, Gearset's intelligent comparison and deployment engine will make a special request for these hidden WaveDataflow components so you can successfully deploy your WaveRecipes.

So, as a user, what do you need to do? Let's walk through the steps of deploying a WaveRecipe from one org to another with Gearset:

  1. Select the source and target orgs for your comparison.

    Gearset's compare and deploy page
  2. Create a custom metadata filter which includes both WaveRecipe and WaveDataflow.

    Gearset's metadata filter
  3. Hit Compare now to run a comparison between your chosen source and target orgs.

  4. In the comparison results page, you should be able to see the WaveRecipe you want to deploy, plus its associated WaveDataflow, which will have the same name. Select both of these, click Next, and then Deploy.

    The comparison results page in Gearset
  5. Once the deployment has completed, your WaveRecipe will be visible in your target org!

    The deployment success page in Gearset

Try Gearset for your Tableau CRM needs!

If deploying Wave components is something you've struggled with before, why not try out Gearset? If you're not already a Gearset user, head on over here to start your free trial which gives you full access to all of Gearset's features for 30 days. We'd love to hear how you get on - contact us any time with the live chat!

Ready to get started with Gearset?