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
    • 31 ISO Codes
    • Updated daily ~ 4PM CET
    • SSL/TLS
    • Free
  • Open Exchange Rates
    • 171 ISO Codes
    • Updated Hourly
    • Free & Paid versions
  • Xignite
    • 164 ISO Codes
    • Update frequency depends on subscription plan
    • Paid version only
  • Yahoo! YQL
    • 167 ISO Codes
    • Has had outages as recently as August 2017
    • Free

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

Fixer & Yahoo require no API keys and are 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.
Every Monday
Mondays Only.
Every Wednesday
Wednesdays Only.
Every Friday
Fridays Only.
Every Sunday
Sundays Only.
Every Weekday
Monday - Friday.
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.

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).

Attribuite 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
ISO The currency that was modified.
New Rate The value to which the exchange rate was set.
Effective Date The date in which the exchange rate takes effect. Applies to dated currencies only.
Type The Salesforce object that was updated.
  • CurrencyType: Standard currencies.
  • DatedConversionRate: Dated exchange rates.
Source The platform from which the exchange rate was retrieved.
Status The result of the request.
  • Queued: Awaiting processing.
  • Pending: Currently being processed.
  • Error: Something is wrong. See the "Details" value for further information.
  • Failed: Exchange rate was not updated/inserted to Salesforce.
  • Success: Exchange rate was updated/inserted to Salesforce.
Date The date/time that the log record was created.

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.

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.