---
schema_version: "1"
id: c08d32108b96333afa5e0ee2c58cdacf8dd5404ee010d37c59e028124a47df31
title: Preserve Original Currency Values for Salesforce Direct Data
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/analytics/264-0-0/bi_integrate_recipe_direct_data_preserve_currency.md
canonical_url: https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_recipe_direct_data_preserve_currency.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 7ac9c429c824c6a471e82a7552b1d38828a3521a1a2f8fd7969c2deab1f9b313
description: By default, all currency fields are converted to the default org currency on all data syncs. With Salesforce direct data objects, use the preserveCurrencyFields in your recipe JSON to specify which fields you want to preserve the original currency value for on data sync. This process allows you to use unconverted currencies in some workflows and converted currencies in others, even within the same Salesforce direct data object.
products:
  - CRM Analytics
  - Cross Cloud
release: "264"
---
# Preserve Original Currency Values for Salesforce Direct Data

By default, all currency fields are converted to the default org currency on all data syncs. With Salesforce direct data objects, use the `preserveCurrencyFields` in your recipe JSON to specify which fields you want to preserve the original currency value for on data sync. This process allows you to use unconverted currencies in some workflows and converted currencies in others, even within the same Salesforce direct data object.

Preserving currency values provides your users with the option to access both raw and converted currency values. You maintain data integrity by retrieving the original currency values as stored in Salesforce and enable your users to perform currency conversion within CRM Analytics using the retrieved exchange rates.

![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

Use of `preserveCurrencyFields` is only supported for Salesforce direct data objects and requires a full sync.

1. In Data Manager, click **Recipes**.
2. Click the recipe you want to edit or create a new recipe.
3. For the input node, select a Salesforce direct data object.
    
    In the Location column, Salesforce direct data is distinguished by a gray Salesforce cloud icon.
    
    ![Selecting a Salesforce direct data object for the input node.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-analytics-bi-264-0-0-production-enus/ec791473-f5b4-4f64-a656-9104f455d966/bi/images/bi/bi_direct_data_input_node_selection.png)
4. Once your input node is defined, download the recipe JSON to edit and update the `preserveCurrencyFields` for that node.
    
    ![The download action for a recipe.](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_recipe_download.png)
5. Open the recipe JSON file in an editor.
    
    Example JSON for a recipe input node:
    
    ```json
    "LOAD_DATASET0": {
        "action": "load",
        "parameters": {
           "dataset": {
             "connectionName": "SFDC_LOCAL",
             "label": "Sy_Currency__c",
             "sourceObjectName": "Sy_Currency__c",
             "type": "connectedDataset"
           },
           "fields": [
             "Id",
             "OwnerId",
             "IsDeleted",
             "Name",
             "CurrencyIsoCode",
             "CreatedDate",
             "CreatedById",
             "LastModifiedDate",
             "LastModifiedById",
             "Cost__c"
           ],
           "preserveCurrencyFields": [],
           "sampleDetails": {
             "sortBy": [],
             "type": "TopN"
           }
        },
        "sources": []
    }
    ```
6. Add one or more currency fields to the `preserveCurrencyFields` object.
    
    Example JSON with a currency field, `Cost__c`, added to the `preserveCurrencyFields` object:
    
    ```json
    "LOAD_DATASET0": {
         "action": "load",
         "parameters": {
           "dataset": {
             "connectionName": "SFDC_LOCAL",
             "label": "Sy_Currency__c",
             "sourceObjectName": "Sy_Currency__c",
             "type": "connectedDataset"
           },
           "fields": [
             "Id",
             "OwnerId",
             "IsDeleted",
             "Name",
             "CurrencyIsoCode",
             "CreatedDate",
             "CreatedById",
             "LastModifiedDate",
             "LastModifiedById",
             "Cost__c"
           ],
           "preserveCurrencyFields": [
             "Cost__c"       
           ],
           "sampleDetails": {
             "sortBy": [],
             "type": "TopN"
           }
         },
         "sources": []
         }
    ```
7. Save the recipe JSON file and upload it to your recipe.
    
    ![The upload action for a recipe.](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_recipe_upload.png)
8. Complete your recipe and click **Save and Run**.

Considerations

- Be careful with recipe aggregations and don’t aggregate across different currencies.
- Using this feature introduces performance overhead due to a full data sync on each job. However, this impact is limited to objects where preserved values are needed. Other objects can still use the faster data syncs.
- Recipes involving multiple objects require extra attention to ensure related data sources stay in sync.