Adaptors
Connect Anything.
First, it's important to note that OpenFn can connect to any system via HTTP, but our community has also built dozens of "adaptors" to save time & money while connecting to most commonly used digital public goods and key ICT4D systems.
You can even run web scraping or browser automation tools with OpenFn. See the FAQs and Generic Data Sources for more info on how to connect to systems without custom adaptors. It's almost like a universal translator... 🖖
What's an adaptor?
An adaptor is an open-source Javascript or Typescript module that provides OpenFn users with a clean set of helper functions that help communicate with a specific external system. In the past, we often referred to them as "language packages" and the two terms are sometimes used interchangeably, but the preferred way of communicating about adaptors is as follows:
- "What adaptor is that job using?" ("That job is using
language-dhis2
.") - "The DHIS2 adaptor is called
language-dhis2
." - "I don't have the right adaptor for this job, let me install it by
running
npm install @openfn/language-dhis2
.
In short, most adaptors follow the naming convention @openfn/language-xyz
.
Where to find them
asana (docs)
beyonic (docs)
bigquery (docs)
cartodb
commcare (docs)
common (docs)
dhis2 (docs)
dynamics (docs)
facebook (docs)
fhir (docs)
godata (docs)
googlesheets (docs)
http (docs)
khanacademy (docs)
kobotoolbox (docs)
magpi (docs)
mailchimp (docs)
mailgun (docs)
maximo (docs)
medicmobile (docs)
mogli (docs)
mongodb (docs)
mssql (docs)
mysql (docs)
nexmo (docs)
ocl (docs)
openfn (docs)
openhim
openmrs (docs)
postgresql (docs)
primero (docs)
progres (docs)
rapidpro (docs)
resourcemap (docs)
salesforce (docs)
sftp (docs)
smpp (docs)
surveycto (docs)
telerivet (docs)
template (docs)
twilio (docs)
vtiger (docs)
On the OpenFn platform
When creating or editing a job on platform, you can choose the adaptor to run the job. This way you "import" the needed operations. Simply open the dropdown list of adaptors, and click on one.

On npm
Most of our adaptors are also available on npmjs.
Install on platform via npm
When using platform
, you can install adaptors that are not part of the
recommended adaptors picklist directly from
npm.
To install from npm, click on the cloud download icon next to the adaptor
version picklist. In the Select Unreleased Adaptor dialog box, enter the
adaptor name
(e.g. dhis2
for language-dhis2
) and the corresponding
version number
(e.g. v2.3.4
), as listed on
npmjs, for the adaptor of your
choice. The platform will attempt to install the selected adaptor version it can
be used to run the specified job.
Note that, after this custom installation of the adaptor, platform
will not
add this adaptor version to the picklist of recommended adaptors in
JobStudio, but you are guaranteed that the
adaptor will be available to use in any of your jobs as long as you specify it
via the Select Unreleased Adaptor dialog.
Building and extending adaptors
The source code and technical documentation for developing or extending existing adaptors can be found on GitHub at www.github.com/OpenFn/adaptors.