A Flatfile plugin for currency conversion using Open Exchange Rates API
npm i @flatfile/plugin-convert-currency
This plugin implements a currency converter for Flatfile using the Open Exchange Rates API. It allows automatic conversion of currency amounts in your Flatfile sheets, with support for historical exchange rates.
Event Type: listener.on('commit:created')
Supported Field Types: string
, number
sheetSlug
- string
- (required)The slug of the sheet where the plugin should operate.
sourceCurrency
- string
- (required)The source currency code (e.g., "USD").
targetCurrency
- string
- (required)The target currency code (e.g., "EUR").
amountField
- string
- (required)The field name containing the amount to be converted.
dateField
- string
- (optional)The field name containing the date for historical rates.
convertedAmountField
- string
- (required)The field name where the converted amount will be stored.
exchangeRateField
- string
- (optional)The field name where the exchange rate will be stored.
conversionDateField
- string
- (optional)The field name where the conversion date will be stored.
Environment Variables
Add the following environment variables to your space:
OPENEXCHANGERATES_API_KEY
- Your Open Exchange Rates API keyinstall
npm install @flatfile/plugin-convert-currency
import
import { FlatfileListener } from "@flatfile/listener";
import { currencyConverterPlugin } from "@flatfile/plugin-convert-currency";
listener.js
const listener = new FlatfileListener();
listener.use(
currencyConverterPlugin({
sheetSlug: "transactions",
sourceCurrency: "USD",
targetCurrency: "EUR",
amountField: "amount",
dateField: "transactionDate",
convertedAmountField: "amountInEUR",
exchangeRateField: "exchangeRate",
conversionDateField: "conversionDate",
})
);
This example sets up a currency conversion plugin for the "transactions" sheet. It will automatically convert amounts from USD to EUR for each record in the sheet.
import { FlatfileListener } from "@flatfile/listener";
import { currencyConverterPlugin } from "@flatfile/plugin-convert-currency";
export default function (listener: FlatfileListener) {
listener.use(
currencyConverterPlugin({
sheetSlug: "transactions",
sourceCurrency: "USD",
targetCurrency: "EUR",
amountField: "amount",
dateField: "transactionDate",
convertedAmountField: "amountInEUR",
exchangeRateField: "exchangeRate",
conversionDateField: "conversionDate",
})
);
listener.on("job:ready", async (event) => {
const { jobId, workbookId } = event.context;
await event.actions.updateJob(jobId, {
status: "complete",
info: "Currency conversion complete",
});
});
}
In this example, the plugin will:
autoConvert
is true:
The job:ready
event listener is used to mark the job as complete after the conversion process.
Note: This plugin requires an active subscription to the Open Exchange Rates API.