A Flatfile plugin for currency conversion using Open Exchange Rates API
| Install | npm i @flatfile/plugin-convert-currency | 
|---|---|
| Source: | View source | 
| Package: | @flatfile/plugin-convert-currency 0 installs | 
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.