Working with multiple currencies in Dynamics 365 CE, you might have the need to update the currency exchange rates on a regular basis. There are custom solutions and even a XrmToolBox plugin to do the job but let’s keep it simple and just do it with Flow.

Here is the overview of the flow:

First I initialize a variable of the type Float, since the Exchange Rate field in Dynamics 365 is a decimal number. Then I call the webservice for the exchange rates against the base currency Euro:
http://www.floatrates.com/daily/eur.json

Next I get all currency records from Dynamics 365 except the one for Euro (EUR) since that’s our base currency. Then for each record I get the details and set the Exchange Rate variable with the value from the respons (JSON) of the webservice:
float(body(‘HTTP_Get_Exchange_Rates’)?[body(‘Get_Currency_record’)?[‘isocurrencycode’]]?[‘rate’])

Last I update the currency record with the new exchange rate.

That’s all.

Credits to Pieter Veenstra who’s blog post Microsoft Flow – HTTP – calling webservices, XML vs JSON helped me with just doing the right thing. Cheers, gast!