Skip to main content

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. 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.

An adaptor sits between the OpenFn platform (ie, app.openfn.org) and some backing service or system (e.g., DHIS2, Salesforce, Postgres).

Its job is to provide a clean, high-level JavaScript interface to uses writing workflows in OpenFn. Users who write OpenFn job code are usually inexperienced programmers, and rarely experts in all the systems that a workflow has to connect with. A good adaptor will make that user's journey easier.

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.

Adaptors vs. Workflows

Adaptors are reusable components that make connecting with a specific app easier, whereas Workflows are the project-specific processes that you want to automate. OpenFn users will always leverage Adaptors to better understand how to work with specific APIs, to access Adaptor helper functions (or "shortcuts") to more quickly build Workflows, and to handle authenticatio. See the below diagram.

workflows-adaptors-compare

Where to find adaptors

Here's a list of the 60 publicly supported OpenFn adaptors. Note that only some have been migrated to our new and have their docs sites served here. For the rest, you can view the docs and source by clicking into the adaptor and choosing your version.

asana (docs)
The current API docs, changelog, and developer readme for asana are available here. You can view the source & documentation via these links:
azure-storage (docs)
The current API docs, changelog, and developer readme for azure-storage are available here. You can view the source & documentation via these links:
beyonic (docs)
The current API docs, changelog, and developer readme for beyonic are available here. You can view the source & documentation via these links:
bigquery (docs)
The current API docs, changelog, and developer readme for bigquery are available here. You can view the source & documentation via these links:
cartodb (docs)
The current API docs, changelog, and developer readme for cartodb are available here. You can view the source & documentation via these links:
cht (docs)
The current API docs, changelog, and developer readme for cht are available here. You can view the source & documentation via these links:
collections (docs)
The current API docs, changelog, and developer readme for collections are available here. You can view the source & documentation via these links:
commcare (docs)
common (docs)
dhis2 (docs)
dynamics (docs)
The current API docs, changelog, and developer readme for dynamics are available here. You can view the source & documentation via these links:
facebook (docs)
The current API docs, changelog, and developer readme for facebook are available here. You can view the source & documentation via these links:
fhir (docs)
The current API docs, changelog, and developer readme for fhir are available here. You can view the source & documentation via these links:
fhir-fr (docs)
The current API docs, changelog, and developer readme for fhir-fr are available here. You can view the source & documentation via these links:
fhir-jembi
This adaptor hasn't been migrated yet, but it still works just fine and you can view the source & documentation via these links:
fhir-ndr-et (docs)
The current API docs, changelog, and developer readme for fhir-ndr-et are available here. You can view the source & documentation via these links:
godata (docs)
The current API docs, changelog, and developer readme for godata are available here. You can view the source & documentation via these links:
googlehealthcare (docs)
The current API docs, changelog, and developer readme for googlehealthcare are available here. You can view the source & documentation via these links:
googlesheets (docs)
The current API docs, changelog, and developer readme for googlesheets are available here. You can view the source & documentation via these links:
hive (docs)
The current API docs, changelog, and developer readme for hive are available here. You can view the source & documentation via these links:
http (docs)
khanacademy (docs)
The current API docs, changelog, and developer readme for khanacademy are available here. You can view the source & documentation via these links:
kobotoolbox (docs)
The current API docs, changelog, and developer readme for kobotoolbox are available here. You can view the source & documentation via these links:
magpi (docs)
The current API docs, changelog, and developer readme for magpi are available here. You can view the source & documentation via these links:
mailchimp (docs)
The current API docs, changelog, and developer readme for mailchimp are available here. You can view the source & documentation via these links:
mailgun (docs)
The current API docs, changelog, and developer readme for mailgun are available here. You can view the source & documentation via these links:
maximo (docs)
The current API docs, changelog, and developer readme for maximo are available here. You can view the source & documentation via these links:
medicmobile (docs)
The current API docs, changelog, and developer readme for medicmobile are available here. You can view the source & documentation via these links:
mogli (docs)
The current API docs, changelog, and developer readme for mogli are available here. You can view the source & documentation via these links:
mojatax (docs)
The current API docs, changelog, and developer readme for mojatax are available here. You can view the source & documentation via these links:
mongodb (docs)
The current API docs, changelog, and developer readme for mongodb are available here. You can view the source & documentation via these links:
msgraph (docs)
The current API docs, changelog, and developer readme for msgraph are available here. You can view the source & documentation via these links:
mssql (docs)
mysql (docs)
nexmo (docs)
The current API docs, changelog, and developer readme for nexmo are available here. You can view the source & documentation via these links:
ocl (docs)
odk (docs)
The current API docs, changelog, and developer readme for odk are available here. You can view the source & documentation via these links:
openfn (docs)
openhim (docs)
The current API docs, changelog, and developer readme for openhim are available here. You can view the source & documentation via these links:
openimis (docs)
The current API docs, changelog, and developer readme for openimis are available here. You can view the source & documentation via these links:
openlmis (docs)
The current API docs, changelog, and developer readme for openlmis are available here. You can view the source & documentation via these links:
openmrs (docs)
openspp (docs)
The current API docs, changelog, and developer readme for openspp are available here. You can view the source & documentation via these links:
postgresql (docs)
primero (docs)
progres (docs)
The current API docs, changelog, and developer readme for progres are available here. You can view the source & documentation via these links:
rapidpro (docs)
The current API docs, changelog, and developer readme for rapidpro are available here. You can view the source & documentation via these links:
redis (docs)
The current API docs, changelog, and developer readme for redis are available here. You can view the source & documentation via these links:
resourcemap (docs)
The current API docs, changelog, and developer readme for resourcemap are available here. You can view the source & documentation via these links:
salesforce (docs)
satusehat (docs)
The current API docs, changelog, and developer readme for satusehat are available here. You can view the source & documentation via these links:
sftp (docs)
smpp (docs)
The current API docs, changelog, and developer readme for smpp are available here. You can view the source & documentation via these links:
surveycto (docs)
The current API docs, changelog, and developer readme for surveycto are available here. You can view the source & documentation via these links:
telerivet (docs)
The current API docs, changelog, and developer readme for telerivet are available here. You can view the source & documentation via these links:
template
This adaptor hasn't been migrated yet, but it still works just fine and you can view the source & documentation via these links:
testing (docs)
The current API docs, changelog, and developer readme for testing are available here. You can view the source & documentation via these links:
twilio (docs)
The current API docs, changelog, and developer readme for twilio are available here. You can view the source & documentation via these links:
vtiger (docs)
The current API docs, changelog, and developer readme for vtiger are available here. You can view the source & documentation via these links:
zoho (docs)
The current API docs, changelog, and developer readme for zoho are available here. You can view the source & documentation via these links:

On OpenFn

When creating or editing a job step, 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.com.

Adaptors list in npm

Don't see an adaptor for your app?

Explore our "universal" adaptors that support a wide variety of protocols, such as:

Or build your own (see below)!

Building and extending adaptors

See the Github Adaptors wiki for the technical guide to developing adaptors.

Adaptors' source code and technical documentation for developing or extending existing adaptors can be found on this linked repository: https://github.com/OpenFn/adaptors

Questions or Adaptor Requests?

Head to community.openfn.org to collaborate with others or to provide adaptors feedback.