---
schema_version: "1"
id: 27429337db6e9046f6e2a46732ce829dd16ee760324ef253613948247ee19b57
title: sfdcDigest Transformation
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/analytics/264-0-0/bi_integrate_salesforce_extract_transformation.md
canonical_url: https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_salesforce_extract_transformation.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 9b4a27d77903cc1acababd24f11f2b071369b688e301b9b977ce65b1c210b480
description: phThe sfdcDigest transformation generates a dataset based on data that it extracts from a Salesforce object. You specify the Salesforce object and fields from which to extract data. You can choose to exclude particular fields that contain sensitive information or that aren’t relevant for analysis.
products:
  - CRM Analytics
  - Cross Cloud
release: "264"
---
# sfdcDigest Transformation

phThe sfdcDigest transformation generates a dataset based on data that it extracts from a Salesforce object. You specify the Salesforce object and fields from which to extract data. You can choose to exclude particular fields that contain sensitive information or that aren’t relevant for analysis.

![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 To access data in a Salesforce object in a Data Prep recipe, see [Input Node: Add Data to the Recipe](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_recipe_add_input_data.htm&release=264.0.0&type=5 "Although you choose input data when you create a recipe, if needed, you can add more data to an existing recipe. In CRM Analytics, Data Prep shows a separate Input node for each set of data that you add to the recipe."). To do it in a Data Prep Classic recipe, see [Create a Recipe with Data Prep Classic](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_data_prep_start_recipe_dataset.htm&release=264.0.0&type=5 "Use a Data Prep Classic recipe to transform data before loading it into a dataset. Only Government Cloud users can create recipes with Data Prep Classic. All other users, including those using Government Cloud Plus, must use Data Prep to create recipes.").

When you upload the dataflow definition file, CRM Analytics validates access to Salesforce objects and fields based on the user profile of the Integration User. If the user profile does not have read access to a field or object, the upload fails.

At run time, CRM Analytics runs the dataflow as the Integration User. Again, CRM Analytics validates access to the objects and fields based on the profile of the Integration User. For example, if the dataflow tries to extract data from a custom field on which the Integration User does not have read access, the dataflow job fails.

![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 Integration User is a preconfigured user that is created when CRM Analytics is enabled in your organization. If you or the Integration User need permission on a Salesforce object or field, ask the administrator to grant access.

For more information about preconfigured users in CRM Analytics, see the CRM Analytics Security Implementation Guide.

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

Example

Let’s look at an example. You want to create a dataset that contains all opportunities from the Opportunity object.

You create the following dataflow definition.

```
{    
   "Extract_Opportunities": {        
      "action": "sfdcDigest",        
      "parameters": {            
         "object": "Opportunity",
         "fields": [                
            { "name": "Id" },                
            { "name": "Name" },
            { "name": "Amount" },
            { "name": "StageName" },                
            { "name": "CloseDate" },
            { "name": "AccountId" },
            { "name": "OwnerId" },
            { "name": "OpportunitySupportTeamMembers__c" }
         ]  
      }    
   },    
   "Register_Opportunities_Dataset": {        
      "action": "sfdcRegister",        
      "parameters": {            
         "alias": "Opportunities",            
         "name": "Opportunities",            
         "source": "Extract_Opportunities"        
      }    
   }
}
```

## Considerations When Using the sfdcDigest Transformation

- Consider dataset storage limits when extracting data. For example, a dataset can contain a maximum of 5,000 (including up to 1,000 date fields) fields, so be selective when choosing fields. See [CRM Analytics Limits](https://help.salesforce.com/apex/HTViewHelpDoc?id=bi_limits.htm&language=en_US).
- The sfdcDigest transformation runs a SOQL query to extract data from a Salesforce object, and so is subject to SOQL limits. If the query exceeds any of these limits, it returns no results or cause the dataflow job to fail. For example, The length of the SOQL query cannot exceed 100,000 characters. To reduce the SOQL query length, consider breaking up the extract into two or more sfdcDigest transformations and then use the augment transformation to combine the results. For example, you create one sfdcDigest transformation to extract half of the fields and create another sfdcDigest transformation to extract the remaining fields. See [SOQL and SOSL Limits](https://developer.salesforce.com/docs/atlas.en-us.salesforce_app_limits_cheatsheet.meta/salesforce_app_limits_cheatsheet/salesforce_app_limits_platform_soslsoql.htm).
- The sfdcDigest transformation can extract data from Salesforce Big Objects, but incremental extract isn’t supported and filtering is possible only on primary key fields.

- **[Filtering Records Extracted from a Salesforce Object](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_salesforce_extract_transformation_filters.htm&release=264.0.0&type=5)**  
    Add a filter to the sfdcDigest Transformation transformation to extract a subset of all records from a Salesforce object. You can filter records to reduce the number of extracted and processed records, exclude records that contain irrelevant or sensitive data, and increase dataflow performance.
- **[Overriding Salesforce Field Metadata](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_salesforce_extract_transformation_override_metadata.htm&release=264.0.0&type=5)**  
    You can override the field metadata that the sfdcDigest transformation extracts from a Salesforce object to make the data appear differently in a dataset. For example, CRM Analytics can add a default value to records that have missing values for a field.
- **[Salesforce Big Object Support in CRM Analytics](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_salesforce_extract_transformation_big_objects.htm&release=264.0.0&type=5)**  
    The sfdcDigest transformation can extract data from standard and custom big objects in Salesforce, with or without data sync enabled. Consider these limitations for big objects before you configure extraction.
- **[Unsupported Salesforce Objects and Fields in CRM Analytics](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_salesforce_extract_transformation_unsupported_objects_fields.htm&release=264.0.0&type=5)**  
    The sfdcDigest transformation and data sync can’t extract data from all Salesforce objects and fields. Before configuring extraction and sync, review the unsupported objects and fields.
- **[sfdcDigest Parameters](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_salesforce_extract_transformation_operation.htm&release=264.0.0&type=5)**  
    When you define an sfdcDigest transformation, you set the action attribute to `sfdcDigest` and specify the parameters for the object and fields that you want to extract. Optionally, you can also specify parameters to filter the records extracted from the Salesforce object.