---
schema_version: "1"
id: c03406c94e2c5d333b3aabbffe6025e4cc0f04bbac47428713fc40a86309631d
title: Configure the Dataflow Through the Definition File
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/analytics/264-0-0/bi_integrate_workflow_configure.md
canonical_url: https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_workflow_configure.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: bdc5ce3d71c969513cccb14187cfce41d09665ed09269a1c8ebbacef1cec93c3
description: You can configure the dataflow by adding transformations directly to the dataflow definition file.
products:
  - CRM Analytics
  - Cross Cloud
release: "264"
---
# Configure the Dataflow Through the Definition File

You can configure the dataflow by adding transformations directly to the dataflow definition file.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in Salesforce Classic and Lightning Experience.</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available with CRM Analytics, which is available for an extra cost in <strong>Enterprise</strong>, <strong>Performance</strong>, and <strong>Unlimited</strong> Editions. Also available in <strong>Developer</strong> Edition.</td></tr></tbody></table>

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small permission">
        <colgroup>
          <col style="width:50%">
          <col style="width:50%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="colgroup" class="slds-cell-wrap" colspan="2" style="text-align:center;vertical-align:top;" id="d195228e47">User Permissions
              Needed</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d195228e47 ">To edit the dataflow definition file:</td>
            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d195228e47 ">Edit CRM Analytics Dataflows</td>
          </tr>
        </tbody>
      </table>

A _dataflow definition file_ is a JSON file that contains transformations that represent the dataflow logic. The dataflow definition file must be saved with UTF-8 encoding.

Before you can configure a dataflow to process external data, you must [upload the external data to CRM Analytics](https://help.salesforce.com/s/articleView?id=analytics.bi_dataset_create.htm&release=264.0.0&type=5 "You can upload external data in a .csv format through the user interface. When you upload a .csv file, CRM Analytics infers the metadata about each column in the .csv file. Metadata describes the structure of the data in the file, like the data type, precision, and scale. If you upload a .csv from the user interface, CRM Analytics automatically generates the metadata, which you can preview and change.").

1. In CRM Analytics, click the gear icon (![Gear icon](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_dataflowmanager_gear_icon.png)) and then click **Data Manager**.
2. Click **Open Data Manager (Legacy)**.
3. Click the **Dataflows & Recipes** tab.
4. Download the existing dataflow definition file by clicking **Download** in the actions menu.
    
    ![The Dataflow view shows details about the dataflow, such as the schedule, user who runs the dataflow job, and statuses and error messages for the last 10 jobs.](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_workflow_actions_list.png)
5. Make a backup copy of the existing dataflow definition file before you modify it.
    
    CRM Analytics doesn’t retain previous versions of the file. If you make a mistake, you can upload the previous version to roll back your changes.
6. Add each transformation as a node in the dataflow definition file, using a JSON editor.
    
    For example, based on the design in the previous step[previous step](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_dataflow_design.htm&release=264.0.0&type=5 "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."), you can add the following transformation nodes:
    
    ```
    {
       "Extract_Opportunities": {
          "action": "sfdcDigest",
          "parameters": {
             "object": "Opportunity",
             "fields": [
                { "name": "Id" },
                { "name": "Name" },
                { "name": "Amount" },
                { "name": "StageName" },
                { "name": "CloseDate" },
                { "name": "AccountId" },
                { "name": "OwnerId" }
             ]
          }
       },
       "Extract_AccountDetails": {
          "action": "sfdcDigest",
          "parameters": {
             "object": "Account",
             "fields": [
                { "name": "Id" },
                { "name": "Name" }
             ]
          }
       },
       "Transform_Augment_OpportunitiesWithAccountDetails": {
          "action": "augment",
          "parameters": {
             "left": "Extract_Opportunities",
             "left_key": [ "AccountId" ],
             "relationship": "OpptyAcct",
             "right": "Extract_AccountDetails",
             "right_key": [ "Id" ],
             "right_select": [
                "Name"
             ]
          }
       },
       "Transform_Filter_Opportunities": {
          "action": "filter",
          "parameters": {
             "filter": "StageName:EQ:Closed Won",
             "source": "Transform_Augment_OpportunitiesWithAccountDetails"
          }
       },
       "Register_Dataset_WonOpportunities": {
          "action": "sfdcRegister",
          "parameters": {
             "alias": "WonOpportunities",
             "name": "WonOpportunities",
             "source": "Transform_Filter_Opportunities" 
          }
       }
    }
    ```
    
    See [Transformations for CRM Analytics Dataflows](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_tranformation_overview.htm&release=264.0.0&type=5 "A transformation refers to the manipulation of data. You can add transformations to a dataflow to extract data from Salesforce objects or datasets, transform datasets that contain Salesforce or external data, and register datasets.") for more about each transformation and its JSON.
    
    ![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 The JSON keys and values are case-sensitive. Each bolded key in the example JSON is the node name for a transformation. Each node contains an action value, which identifies the transformation type. The order in which you add the transformations to the dataflow definition file doesn’t matter. CRM Analytics determines the order in which to process the transformations by traversing the dataflow to determine the dependencies among them.
    
    ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-analytics-bi-264-0-0-production-enus/ec791473-f5b4-4f64-a656-9104f455d966/images/icon_important.png)
    
    Important Node names must be unique in a dataflow definition file, and can’t contain space or tab characters. Consider that node names are not treated as case sensitive, so names such as “Extract\_Opportunities” and “extract\_opportunities” aren’t unique in the same definition file.
7. Before you save the dataflow definition file, use a JSON validation tool to verify that the JSON is valid.
    
    An error occurs if you try to upload the dataflow definition file with invalid JSON. You can find JSON validation tools on the internet.
8. Save the dataflow definition file with UTF-8 encoding, and then close the file.
9. In the Dataflow view of the Monitor tab, click **Upload** from the action menu to upload the updated dataflow definition file.
    
    ![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
    
    - Uploading the dataflow definition file doesn’t affect any running dataflow jobs and doesn’t automatically start the dataflow job.
    - The maximum length of a dataflow definition file is 1,000,000 characters.

You can now start the dataflow on demand or wait for it to run on the schedule. Users can’t query the registered dataset until the dataflow runs.

To create dataflows, you must have Data Sync enabled. If your org’s first license was provisioned before the Winter ’20 release, you can manually enable Data Sync.