---
schema_version: "1"
id: 494ae109c84e3e95817721251672365dcd92f525ef739eee54d8c3543b8c5c28
title: Plan the Dataflow
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/analytics/264-0-0/bi_integrate_dataflow_design.md
canonical_url: https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_dataflow_design.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: d4dd4bf61013c9b5aa1d843e49dc8b1c74eb9990de1e4cc0db78053288dbb571
description: Before you start creating the dataflow, think about the dataflow design. Consider what data to make available for queries, where to extract the data from, and whether you must transform the extracted data to get the data you want.
products:
  - CRM Analytics
  - Cross Cloud
release: "264"
---
# Plan the Dataflow

Before you start creating the dataflow, think about the dataflow design. Consider what data to make available for queries, where to extract the data from, and whether you must transform the extracted data to get the data you want.

To illustrate some key design decisions, let’s consider an example. In this example, the goal is to create a dataset called “Won Opportunities.” The dataset contains opportunity details, including the account name for each opportunity.

To create this dataset, design this dataflow.

![The dataflow extracts and joins data from Opportunity and Account, filters the records, and registers the resulting dataset.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-analytics-bi-264-0-0-production-enus/ec791473-f5b4-4f64-a656-9104f455d966/bi/images/bi/bi_integrate_Opportunity-Account_dataflow_design.png)

The dataflow extracts opportunity data from the Opportunity object and extracts the account name from the Account object. For each extracted object, the dataflow creates a dataset.

The dataflow then transforms the datasets created from the extracted data. First, the dataflow joins the opportunity and account data into a new dataset. Next, the dataflow filters the records based on the opportunity stage so that the dataset contains only won opportunities. Each time the dataflow transforms a dataset, it creates a dataset.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-analytics-bi-264-0-0-production-enus/ec791473-f5b4-4f64-a656-9104f455d966/images/icon_note.png)

Note If you want to flatten your hierarchy, do so before you join datasets. In this example that requirement means flattening the Account dataset before joining the Opportunity dataset. If you flatten after the join, the transformation doesn't create the flatten hierarchy data you expect.

Finally, because you want users to be able to query won opportunities only, you configure the dataflow to register the final dataset only. However, if you wanted, you could register any dataset created by the dataflow and register as many datasets as you like.