Multi-Currency Set Up


This page covers:


Salesforce’s Multi-Currency Feature

This section will give you guidance to set up Salesforce's Multi-Currency feature in your org, specifically after installing and configuring Amp Impact in your Salesforce system.

This solution might not hit all the requirements for your organization so discuss alternative solutions with your Solutions Architect before enabling Salesforce’s Multi-Currency feature in your system.


Step 1: Enable and Set Up Multiple Currencies in your Salesforce System

Enable multi-currency in your system through the Company Information section in the Setup interface.

Also, review the steps here on how to activate and deactivate different currencies.


Step 2: Create a Custom Currency Code Field on Objects with Financial Information & Field Sets

For any object(s) where users will enter or modify financial information via a field set (e.g. the Add New Disbursement pop-up, the Budget Excel Upload, etc.), create a custom currency code field on that object.

  1. Navigate to the “Object Manager” from the Setup interface.

  2. Open the Amp Impact object (e.g. Disbursement, Financial) where you’ll track financial information using input currency fields using a field set.

  3. Here is an example of a picklist field that you can create:

    1. Label: Currency Code

    2. API Name: CustomISOCode__c

    3. Field Type: Picklist

    4. Picklist Values: Currency picklist value set

  4. Add this new picklist field to the relevant field sets where currency fields will be filled out, for example:

    1. ampi__Financial__c: BUDGET_EXCEL_COLUMNS

    2. ampi__Disbursement__c: ADD_EDIT_POPUP

It is recommended to only have active picklist values in this picklist value set that match the active currencies from Step 1.


Step 3: Create a Process that Updates Currency Code & Currency Value(s)

For each object on which the custom currency code field was added, use Process Builder to create a process that updates CurrencyISOCode and retains the entered currency value.

The process below is an example that syncs CurrencyISOCode with the custom currency code field and ensures the currency value remains accurate (i.e. not updated when CurrencyISOCode is updated). This only occurs when a new Disbursement is created with a currency besides the default currency. This process can be modified based on use case, and similar processes can be built on other Amp objects that track financial data through field sets.

Create the Process

  1. Open the Setup Interface and find “Process Builder”.

  2. Click “New” to create a new Process.

  3. Set the Process Name and API Name.

  4. Select “A record changes” for when the process starts.

  5. Click “Save”.

Select the Object and Event to Start the Process

  1. In the Process Builder, click “Add Object”.

  2. In the menu that opens, select the Disbursement object.

  3. Select “only when a record is created” to start the process.

  4. Click “Save”.

Set the Criteria to Run the Process

  1. In the Process Builder, click Add Criteria.

  2. Name the Criteria.

  3. Select “Conditions are met” as the criteria for executing the actions.

  4. Set a condition that the custom currency code field is not blank.

    1. Select the custom currency code field created in Step 2, and click “Choose”.

    2. Select “Does not equal” as the operator.

    3. Select “Global Constant” as the type.

    4. Select “$GlobalConstant.Null” as the value.

  5. Set a condition that the custom currency code field is different from the system’s default currency.

    1. Select the custom currency code field created in Step 2, and click Choose.

    2. Select “Does not equal” as the operator.

    3. Select “Field Reference” as the type.

    4. Select the standard Currency ISO Code field, and click Choose.

  6. Select “All of the conditions are met (AND)” for the conditions.

  7. Click “Save”.

Add a Record Update Action to the Process

  1. Click “Add Action” under Immediate Actions.

  2. Select “Update Records” under Action Type and click Save.

  3. Name the Action.

  4. Select “Select the ampi__Disbursement__c record that started your process”, and click Choose.

  5. Select “No criteria—just update the records!”

  6. Set the fields and values to update:

    1. Create field update to sync currency codes.

      1. Select “Currency ISO Code” as the field.

      2. Select “Field Reference” as the type.

      3. Select the custom currency code field created in Step 2 as the value, and click Choose.

    2. Click “Add Row”.

    3. Create a field update to ensure that the entered disbursement value does not get converted when Currency ISO Code is updated.

      1. Select “Amount” as the field.

      2. Select “Field Reference” as the type.

      3. Select the same Amount field as the value, and click Choose.

    4. Click “Save”.

Activate the Process

  1. Click “Activate in the top right for the process to be used.

  2. Confirm Activation in the popup.


Step 4: Update the Validation Rule on Disbursement (optional)

This step is only necessary if (a) multi-currency is being used on the Disbursement object and (b) the validation rule Disbursement_Amt_Less_Than_Funding_Amt is active.

  1. Open Setup.

  2. Open Object Manager.

  3. Open the Disbursement object.

  4. Click “Validation Rules” in the menu to view existing validation rules on Disbursement.

  5. Open the validation rule: Disbursement_Amt_Less_Than_Funding_Amt.

    1. If the validation rule is active:

      1. Click “Edit”.

      2. Uncheck the Active checkbox.

      3. Click “Save”.

  6. Click “Clone”.

  7. Change the Name of the cloned validation rule.

  8. In the Error Condition Formula, paste this formula over the existing formula:

9. Customize the error message as needed.

10. Click “Save”.