Simple Currency Exchange Rate 

Updater For Zoho CRM

Installation Steps

1. Before you install the extension, ensure that you have enabled multi-currency support in your Zoho CRM system. To check or enable this, go to Settings and search for Currencies. Your currencies page should look something like this:

      2. Now you can return to the marketplace and install the Simple Currency Exchange Rate Updater for Zoho CRM. You will see a page like this:

Just agree to the terms of service and authorize the extension to process the required data. Rest assured, we only require access to your currencies data and your Zoho organization ID. We do not process any personal data whatsoever.

3. Click 'Install Now' and you will be asked to choose your plan. Feel free to choose the 10-day free trial if you're not yet ready to commit:

4. The extension will now be installed and in the final step, you will be asked to grant the specific permissions mentioned above:

If you choose not to do so, be sure to uninstall it from your extensions list.

5. That's it! You will see a confirmation page and if you return to your currencies setting, you will see that the exchange rates have been updated. Your exchange rates will be updated automatically at around 1am daily.

 Frequently Asked Questions:

Q. Where do the exchange rates come from?

A. We get all our rates from (formerly Transferwise). The rates are mid-market rates. If you have an account, you can actually buy or sell the currencies at that rate. You will just pay a small fee per transaction. If you don't yet have an account, check it out, you might save a lot of money!


Q. How often are the rates updated?

A. We update the exchange rates on our servers every hour. By default, the extension runs once each day and retrieves the latest exchange rates from our servers when it runs. That means that the rates you see in your CRM system will be at most 25 hours old by default. See below for ways to reduce the age of your exchange rates.


Q. Can I change the frequency of the exchange rate updates?

A. Yes you can. The extension includes a Schedule (search in Settings) which runs daily. The way Zoho CRM works, you can't change the frequency of that schedule, but you can disable it and add a new one. Please contact [email protected] for detailed instructions. The extension is not intended to provide real-time data, so please don't use it for your day-trader side-gig :D.


Q. Can I initiate an update of my exchange rates manually?

A. Yes you can. Find the schedule called 'Daily Exchange Rate Update' by searching for 'Schedules' in your settings. Hover over 'Next Run' and a 'Run Now' link will appear. Click it to update the exchange rates immediately. You can only use this button twice a day, so use sparingly!


Q. Can I 'adjust' the exchange rates according to my specific needs (e.g. add or subtract a percentage or fixed amount)?

A. Yes you can but we recognize that there are many different ways in which you may want to do so - not necessarily the same across all modules in your CRM system. Please contact us at [email protected] for help with implementing your specific requirements.

 Advanced Options

If you just want your exchange rates kept up to date daily, no configuration is necessary. However, the extension provides several Deluge functions which allow for the support of a wide range of advanced currency-related use cases. Some common use cases are outlined below to illustrate the possibilities. If you are not familiar with Zoho CRM configuration and Deluge, please contact [email protected] for assistance.

Custom Schedule

Requirement: I want my exchange rates to be updated more or less frequently than daily.


Solution: You can create your own custom schedule in your Zoho CRM system. Simply create your own function to be run by the schedule and paste this content into the function body:


Convert between foreign currency and home currency amounts

Requirement: I want to know the current value of a foreign currency amount. With the standard Zoho CRM the exchange rate is set when a record is created and cannot be changed. For many use cases this is the right behavior, but in some cases, for example high value Deals with long sales cycles or long-term investments, you may also want to know the current value in your home currency of a foreign currency amount, or vice-versa.


Solution: The extension provides functions to convert to and from your home currency and foreign currencies:

// Assuming your home currency is GBP
homeAmount = currencies.convertToHomeCurrency(string fromCurrency, float amount);
// e.g.sterlingAmount=currencies.convertToHomeCurrency("USD",20000); 
foreignAmount = currencies.convertFromHomeCurrency(string toCurrency, float amount);
// e.g. dollarAmount=currencies.convertFromHomeCurrency("USD",20000); 

 Adjust the buying/selling price to reflect my forex transaction costs 

Requirement: I want to adjust the rates I use for certain modules to reflect the cost of the foreign exchange transaction. e.g. I want the value of future Deals in foreign currency to be reduced by 5% or the cost of purchasing stock in foreign currency to be increased by $20.


Solution: The extension provides Deluge functions to get the current exchange rates from the system. You can use those rates anywhere you can call a Deluge function, e.g. in workflows, schedules and standalone functions. That means you can do whatever you like to the exchange rate and save the adjusted amount in fields in your modules.

Returns a map with the exchange rate values of all of the currencies configured for your CRM:

eurRate = currencies.getCurrentRate("EUR");
//eurRate = 1.15101

Access the current exchange rates for all my configured currencies 

Requirement: I want to use the current exchange rates for all of my configured currencies in a function, workflow or schedule.

Solution: Zoho CRM does not provide an easy way to access the currently configured exchange rates from Deluge, but the extension provides a function to do just that.

currentRates = currencies.getCurrentRates();
//currentRates: {"GBP":1,"EUR":1.15101,"USD":1.37895,"CHF":1.27175}
eurRate = currentRates.get("EUR");
//eurRate = 1.15101

 I already have a Wise Account. How much will it cost me to convert currency ?

Requirement: I already have a Wise account. I know that Wise offers a single exchange rate (the mid-market rate) for transactions between any currency pair - whether I'm buying or selling. I also know that I will pay Wise a small fee for each transaction. What are the actual net amounts of currency I need to perform a transaction?

Example 1:

I am holding a sufficient amount of USD in my Wise account and I need to pay a European supplier an amount of €1,000 for goods received.

resp = currencies.getSourceAmount("USD","EUR",1000);
info resp; // 1221.05

The response tells you that you need $1,221.78 to buy €1,000. That is the net amount of USD you will pay, including Wise fees.

Example 2:

I am forecasting a Deal worth €10,000 from a European customer. I will receive the funds into my Wise EUR balance and I want to know how many US Dollars I will receive when I convert those funds into US Dollars.

resp = currencies.getTargetAmount("EUR","USD",10000);
info resp; //12045.33

The response tells you that you will receive $12,045.33 for the €10,000 you get paid. That is the net amount of USD you will receive after the Wise fee has been paid.


Example 3:


I now know how to get the net amounts for currency transactions,but how do I know how much I'll be paying Wise for the transaction fee?


Use the getWiseFee function to just get the Wise fee.

The getWiseFee function has four parameters. All four parameters must be specified:


source currency symbol (string e.g. "USD")

target currency symbol (string e.g. "EUR")

source currency amount (float e.g. 100 or null if you specify the target currency)

target currency amount (float e.g. 1000 or null if you specify the source currency)


The response is always returned in terms of the source currency

resp = currencies.getWiseFee("EUR","USD",null,10000);
info resp;//34.95 amount in EUR
resp = currencies.getWiseFee("USD","EUR",1000,null);
info resp; //10.41 amount in USD