Sharing Connect for Life distribution modules

Hello Community!

I would like to share with you some of the modules we’ve made for Connect for Life distribution. They ware made for CfL, but with some effort they could be used by any OpenMRS distribution.

I would like to know what do you think about them, are these interesting for you, would it be something that you could use in your distributions, maybe even something which could be included in the OpenMRS Ref app?

We really would like to make them as easy to integrate as possible.

SMS module

It is mostly an API module, which can connect to most SMS/WhatsApp/… service providers. We’ve been using it to send SMS and WhatsApp messages over world-wide providers like, and local providers like Rwanda’s based

It provides a layer between between OpenMRS modules and service provider API. You would write your code against SMS module, and later when deploying a distribution, you would configure SMS to talk with a provider. The configuration can be changed during runtime, you can switch provider without code modifications or system restarts. The solution is contained within-in the module.

Sources: GitHub - johnsonandjohnson/openmrs-module-sms: Module for OpenMRS to allow the integration with the API of SMS providers. Enables sending outgoing messages, as well as to receive inbound messages.


Messages module

The intention of the messages module is to facilitate building Message Services within OpenMRS. A message service is something like Visit Reminder, Welcome message sent for every new Patient, Health Tips sent every week for some period, Pill Reminders etc

The module combines Java utilities to configure such services and UI to fine-tune them.

Sources: GitHub - johnsonandjohnson/openmrs-module-messages: Module for OpenMRS to allow receiving messages like call or sms, from a health facility. Messages will be delivered directly to patients and the health facility will be able to schedule the messages.

ETL Lite module

The ETL Lite module allows to connect OpenMRS to any external DB for data pulling. It uses Velocity scripts to transform and load data into OpenMRS. Allows to schedule the “pull” for periodic synchronization. We’ve been using it to pull patients and their planned visits from a 3rd party system.

Sources: GitHub - johnsonandjohnson/openmrs-module-etllite: Module for OpenMRS to allow Extract, Transform and Load (ETL) functionalities. It is needed to extract data from relational databases, transform it using Velocity templates, and then load it into an OpenMRS system using the application provided Spring services.


cc: @jslawinski @druchniewicz


Hey @pwargulak, thanks for sharing. I’m interested in integrating the SMS module into O3 and have been through the docs shared. Is there a way to access this UI on dev3? If not, how can I have it running, maybe locally, or a link? For more context, I think testing the actual module before implementation is crucial. Thanks
cc @jslawinski @druchniewicz

Hi @jexsie The SMS is deployed in CfL demo - use admin/Admin123 - the server resets every 24hrs so you can play with it.

If you would like to test this end-to-end, with actual message going to a phone I suggest configuring Vonage Whatsapp Sandbox, in short:

  1. Create free account at:
  2. In Developer Tools section, in Messages sandbox, start WhatsApp sandbox.
  3. Scan the QR code using your phone or sand the message to Sandbox - it registers your number for 24hrs and confirms that you agree to receive messages from the Sandbox.
  4. Go to SMS module, Settings and Import provided template (json).
  5. Click Add Configuration
    1. Template - Vonage Sandbox Example 1 - the one from attached json snippet.
    2. Max retries = 0, Split message=“Msg $m of $t”, footer=…, Exclude footer = checked
    3. username=API key from vonage account
    4. password=API Secret from vonage account
    5. from=Whats app sandbox number without ‘+’

vonage-sandbox.json.txt (1.6 KB)

1 Like

Thanks alot @pwargulak

Hey @pwargulak, I am provided with a curl command as shown below after registering my number on whatsapp, can’t really see the json format.

Thanks again

Thanks a lot @pwargulak for sharing the resources. I am having some issues while I try to do the setup as mentioned by you, I am facing some error. Will you please tell me what is the correct way to add a recipients phone number in the attached screenshot?

Remove the quotes

Thank you for your help, but I have already attempted different approaches with and without quotation marks, and the problem persists. If the solution worked for you, could you please share a screenshot of the format that you used to input the details?

Hello @piyushmishra1416

There is a bug in latest release of SMS module, if possible use version from the latest main branch.

We’ve also updated our demo.

Thanks a lot @pwargulak. The updated demo works fine.