You are here:
Why Should I Use Recipes Instead of Dataflows?
Recipes and dataflows both prepare data. Compared to dataflows, recipes are newer and are recommended for functionality and ease of use. Recipes allow you to preview the data as you transform it, while dataflows only show your node schema. For example, recipes have more join types and transformations with built-in machine learning - such as Predict Missing Values and Detect Sentiment - that aren’t available in dataflows. Recipes can also aggregate data to a higher level.
Recipes and dataflows aren’t mutually exclusive. You can use both to meet more complex data preparation requirements. For example, you can use a dataflow to generate an intermediate dataset, and then use that dataset as the source for a recipe to perform additional transformations.
Recipes
Recipes are great for Salesforce admins and data experts who want to preview and transform data.
With a recipe you can:
- Work in an easy-to-use graphical interface.
- Preview your data and how it changes as you apply each transformation.
- Quickly remove columns or change column labels.
- Analyze the quality of your data with column profiles.
- Aggregate and join data.
- Use built-in machine learning such as detect sentiment, data clustering, and time series forecasting.
- Bucket values without having to write complex SAQL expressions.
- Create calculated columns with a visual formula builder.
- Use a point-and-click interface to easily transform values to ensure data consistency. For example, you can bucket, trim, split, and replace values without a formula.
- See the history of all your changes, and back up or move forward to replay it.
- Push your prepared data to other systems with output connectors.
When you make a direct data reference in a recipe, no data is stored in CRM Analytics. When a recipe uses direct data, a query gets the current data. In Data Manager, SFDC_Local connections represent data stored in CRM Analytics. Therefore, a direct data reference isn’t included in SFDC_Local connections.
When a recipe runs, the last run datetime for the SFDC_Local objects that it uses aren’t updated. If a recipe runs using SFDC_Local data, the recipe uses the data saved in the object during the last sync. Therefore, schedule the local object to sync before the recipe runs, for example, by using event scheduling.
Dataflows
Dataflows are great for CRM Analytics developers who prefer to work in a visual editor and, if necessary, JSON.
With a dataflow you can:
- Design complex data preparation flows with the visual Dataflow Editor.
- Edit the underlying JSON for finer control.
- Perform calculations across rows to derive new data for trending analysis.
- Apply complex filters.
The end-of-life date for dataflows hasn’t been set yet. You can continue to use dataflows if they’re effective and don’t require any of the advanced recipe features. If you’re starting a new data prep process, consider using recipes first.
Transformation Comparison at a Glance
Still unsure which tool to choose? Use this table to compare which transformations are available in recipes and dataflows.
| Feature | Recipe | Dataflow |
|---|---|---|
| Aggregate |
|
|
| Append |
|
|
| Bucket |
|
(computeExpression transformation) |
| Calculate Expressions (across rows) |
(Formula transformation) |
(computeRelative transformation) |
| Calculate Expressions (same row) |
(Formula transformation) |
(computeExpression transformation) |
| Cluster |
|
|
| Convert Column Types |
|
|
| Date and Time |
|
|
| Delta |
|
|
| Detect Sentiment |
|
|
| Drop Columns |
|
(sliceDataset transformation) |
| Edit (Column) Attributes |
|
|
| Extract Date Component |
|
|
| Extract Dataset Data |
(Input node) |
(edgemart transformation) |
| Extract Salesforce Data |
(Input node) |
(sfdcDigest transformation) |
| Extract Synced Data |
(Input node) |
(digest transformation) |
| Filter |
|
|
| Flatten Hierarchies |
|
|
| Format Dates |
|
|
| Join |
|
|
| Lookup |
|
(augment transformation) |
| Predict Missing Values |
|
|
| Predict Values |
|
(prediction transformation) |
| Profile Column |
|
|
| Split |
|
|
| Time Series Forecasting |
|
|
| Update Values |
(update node) |
(update transformation) |


