Currency Management Application

An application that automates exchange rate maintenance for any Salesforce organization. This application is needed because Salesforce does not natively allow for any automated processes to be performed on the standard Currency objects.

Maintenance of exchange rates may be important for global enterprises that seek to align their CRM with their other systems & platforms, which may or may not be directly integrated with Salesforce. Administrators certainly have the authority to maintain currency data in Salesforce but the task may become monotonous over time and can be overlooked, which can cause discrepancies between the CRM and other systems that utilize exchange rates.

The Currency Management App keeps your Salesforce exchange rates up-to-date. So you don't have to think about it.

Our Exchange Rate Platforms

You've probably heard that the data in your CRM system is only as good as where you source that data from. So we give you options.

Third Party APIs

  • Currency Layer
    • 168 ISO Codes
    • Updated Hourly
    • Free & Paid versions
  • European Central Bank
    • 33 ISO Codes
    • Updated on Busines Days Only ~ 4PM CET
    • SSL/TLS
    • Free
  • Fixer.io
    • 170 ISO Codes
    • Updated Hourly
    • SSL/TLS
    • Free & Paid versions
  • Open Exchange Rates
    • 171 ISO Codes
    • Updated Hourly
    • Free & Paid versions
  • Xignite
    • 164 ISO Codes
    • Update frequency depends on subscription plan
    • Paid version only

There may be pros and cons to each one depending on your specific needs but that's why we give you options here. Don't see a vendor that you would really prefer to use. Let us know. We'll hook it up as fast as we can.


Rate Platform Configuration

The European Central Bank (ECB) requires no API key and is free to use.

Xignite requires an API key and has costs associated with it. Sign up directly with Xignite to get your API key.

Currency Layer & Open Exchange Rates have a free/developer API key, which we have already configured within the app. Select the "Currency Layer" OR "Open Exchange Rates" options for this version of their API.

If you have your own API key for either platform then be sure to choose the "Currency Layer (Key)" OR "Open Exchange Rates (Key)" values from the platform name list. This will display an "API Key" field in the page where you can populate your personal key.

Platform API Validation


After selecting the exchange rate platform you would prefer to use from the picklist, click the "Validate Platform" button. This will make an API callout to the selected platform and show you the exchange rates for all of the ISO Codes in your Salesforce Org.


We track two primary components for API suitability. First we need to make sure that the application can communicate with the platform API selection. Second, we need to make sure that the platform has exchange rates for all of the ISO codes you are using.

API Access Validation

The designation for whether or not the API even works is noted at the top right-hand side of the page. If the app can interact with the API then you will see the "API Access" designation in green. If there is an error you will see this designation in red.


ISO Code Validation

The "Your Currencies" section of the page identifies whether all of the ISO codes you are using can be found in the platform API response you selected. If there is a problem finding one or more of the ISO codes then this designation will be red. If everything looks good then the section will be green.


Make sure to validate that the exchange rate platform you have selected will truly work well for your organization. Both the "API Access" & "Your Currencies" sections of the page should be green. If they are not then you must either select another platform or troubleshoot further. Feel free to contact us with troubleshooting questions/issues.

Exchange Rate Update Schedule

Schedule the application to run when it makes the most sense for your business.

Choose how often you want your exchange rates updated and the exact time you prefer the updates to occur.

Frequency Options

Every Day
Monday - Sunday.
First Day of Every Month
The first day of the month regardless of the day of the week.
First Day of Every Quarter
The first day of the quarter regardless of the day of the week.
First Day of Every 6 Months
The first day of the 6 month period regardless of the day of the week.
Every Monday
Mondays Only.
Every Wednesday
Wednesdays Only.
Every Friday
Fridays Only.
Every Sunday
Sundays Only.
Last Day of Every Month
The last day of the month regardless of the day of the week.
Last Day of Every Quarter
The last day of the quarter regardless of the day of the week.
Last Day of Every 6 Months
The last day of the 6 month period regardless of the day of the week.
Every Weekday
Monday - Friday.
First Weekday of Every Month
The nearest weekday to the beginning of the month. For example, if the first day of the month is on a Saturday, the exchange rates will be updated on the following Monday or the third (3) day of the month.
First Weekday of Every Quarter
The nearest weekday to the beginning of the quarter.
First Weekday of Every 6 Months
The nearest weekday to the beginning of the 6 month period.
Every Tuesday
Tuesdays Only.
Every Thursday
Thursdays Only.
Every Saturday
Saturdays Only.
First Day of Every Month
The first day of the calendar month regardless of the day of the week.
Last Weekday of Every Month
The nearest weekday to the end of the month. For example, if the last day of the month is on a Sunday, the exchange rates will be updated on the previous Friday or three days before the last day of the month.
Last Weekday of Every Quarter
The nearest weekday to the end of the quarter.
Last Weekday of Every 6 Months
The nearest weekday to the end of the 6 month period.

Timing Options

The Hour options are provided in a universal 24 hour format. Minute options are in a universal 60 minute format.

  • Early Hour Options
    • 00 = 12:00 am
    • 01 = 1:00 am
    • 02 = 2:00 am
    • 03 = 3:00 am
    • 04 = 4:00 am
    • 05 = 5:00 am
    • 06 = 6:00 am
    • 07 = 7:00 am
    • 08 = 8:00 am
    • 09 = 9:00 am
    • 10 = 10:00 am
    • 11 = 11:00 am
  • Late Hour Options
    • 12 = 12:00 pm
    • 13 = 1:00 pm
    • 14 = 2:00 pm
    • 15 = 3:00 pm
    • 16 = 4:00 pm
    • 17 = 5:00 pm
    • 18 = 6:00 pm
    • 19 = 7:00 pm
    • 20 = 8:00 pm
    • 21 = 9:00 pm
    • 22 = 10:00 pm
    • 23 = 11:00 pm

All times (formatting and locale) are based upon the person configuring the application.

Example. To update the exchange rates at 5:30pm every day you would select "Every Day" from the frequency picklist, "17" from the Hour picklist & "30" from the minute picklist.
Caution. The scheduler can only add the job to the batch Apex queue at the specified time you have configured. Salesforce platform processing may cause the batch to begin later than the scheduled time.

Notification Settings

Email notifications can be configured so that multiple email addresses are notified when the process fails or succeeds (or both).

Attribute Definition
Success If checked and the application successfully updates all exchange rates then an email will be sent to the address listed in the "Email Address" field.
Failure If checked and the application fails to update all exchange rates then an email will be sent to the address listed in the "Email Address" field.
Email Address One or more email addresses that will receive notifications from the Currency Management Application. Multiple emails should be separated by a semicolon (;).

Audit Log Tracking

All API interactions are tracked so that you can see what is changing and when it is happening.


Column Definition
Platform The third party exchange rate vendor from which the exchange rate was retrieved.
Currencies The number of ISO currencies that were updated during application processing.
Date The date/time that the application was run.
Duration The amount of time that it took to process the logic from start to finish in the format hours : minutes : seconds.
Status The result of the processing logic.
  • Queued: Awaiting processing.
  • Pending: Currently being processed.
  • Error: Something is wrong.
  • Failed: Some exchange rates were not updated/inserted to Salesforce.
  • Success: All exchange rates were updated/inserted to Salesforce.

Log Removal Settings

Audit logs are not meant to be kept forever. The application will remove logs after they have been in the system for a period of time that has been configured by you.

By default the application will keep log records for one year.

Retry Settings

The best made plans can sometimes fail. Automated technology solutions are no exception.

Any number of things may happen and cause the exchange rates to not process as expected. Don't worry though. We've anticipated this and the applications is setup to re-process exchange rates that fail for up to five hours from the scheduled start time.

By default the application will attempt to process failures for up to 2 hours. Feel free to change this setting as you see fit.

Should the application have some unprocessed ISO codes after the time span has been exceeded, a link reading "Re-Run" will be displayed within the logs area of the display. Click the link to re-process failed rates.

The application does not grab new exchange rates from the vendor API each time it re-processes a failure. It uses the original exchange rate API results to ensure that the exchange rates for all your ISO codes are consistent for the date & time that they were retrieved.

Open Authorization

Salesforce prevents updating the standard and dated exchange rates from Apex directly. Therefore, we rely on a webserver to handle all the exchange rate processing with your Salesforce organization.

Conceptually, it is pretty simple:

  • A batch job is kicked off within your Salesforce org
  • Your Salesforce org sends a request to our web server to update your exchange rates
  • Our webserver pushes those updates to Salesforce on your behalf

It's that last bullet that makes things tricky. Salesforce simply will not let us push exchange rates to your org without your consent. OAuth 2.0 is how you provide that consent and it is trusted by Salesforce.

Unless the User that authorized the application is Inactive, there is no need to re-authorize the Currency Management Application. Only one authorization is required for the entire company.