UNICEF LACRO (Latin America and Caribbean Region) has found that there is a fundamental imbalance in the supply and demand of quality mental health care for children and adolescents across its region. Investments in mental health prevention and promotion among this population group remain low, while a rapid increase in internet access and smartphone penetration across this region has opened up important opportunities to expand the delivery of mental health and psycho-social support (MHPSS) interventions for affected groups. Hence, UNICEF LACRO has undertaken efforts to advance MHPSS services through digital platforms in the region through the inception of a unified content management system.

UCMS (Unified Content Management System), as its name states, is a content management system (CMS) for managing and adapting MHPSS content to various communications tools such as RapidPro and IoGT (Internet of Good Things. It allows for content to be created and edited for the aforementioned platforms with emphasis on accessibility in mind. As such, the vision of UCMS is to have a focal point act as a central hub (a one-point-stop) for users who need to access and manage content for multiple distinct platforms. Thus, having a central repository of thematic content (themes) to document and disseminate MHPSS interventions in the region ready for use. At its current iteration, UCMS provides compatibility with RapidPro and IoGT, two popular platforms used by UNICEF.

In this article, I will give an overview of the work done to achieve said compatibility with the aforementioned platforms. Specifically, I will explore how the UCMS provides ways to work with RapidPro in flow creation; and how it helps create multi-language content for IoGT.

Key Abbreviations

MHPSS = Mental Health and Psycho-social Support

CMS = Content Management System

UCMS = Unified Content Management System

IoGT = Internet of Good Things

LACRO = Latin America and Caribbean Region

Why RapidPro?

RapidPro is an open-source platform developed by Nyaruka that allows users to visually build the workflow logic for running mobile-based services. Apart from managing contacts, analyzing data graphically, and connectivity capabilities with multiple outside messaging channels (such as SMS, voice, USSD, and social media), what RapidPro does best is giving its users a graphical user interface (GUI) to create the logic or “flows” for messages.

Known as the “flow editor”, the graphical interface provides the user a with drag-and-drop functionality to intuitively map messaging flows in order to communicate and conduct surveys without the need for human interventions. This facilitates the creation of message logic ranging from standard to much more complex structures. Figure 1 shows the flow editor in action.

RapidPro Flow Editor With Nodes
Figure 1: RapidPro Flow editor with nodes from a sample flow

The open-source code base for RapidPro can be found in its official Github Repository; and instructions to set up a test environment can be found in our official guide.

Why UCMS for RapidPro?

The flow editor in RapidPro is a powerful tool, and is adept at what it does. It gives the user a plethora of options to choose from when building a flow. However, being spoiled for choice may not always be a good thing, as it tends to overwhelm a lesser experienced user. In order to address this scenario, UCMS provides the users with a simpler template interface to create flows without having to touch the flow editor.

The purpose of this UCMS feature is to make flow creation more accessible for less experienced users while maintaining the same intuitive logic building process. The interface (UI) aims to strip away the extra features of the flow editor. By taking away these additional options and giving a template view, it removes anything that may distract or overwhelm the user, and allow them to solely concentrate on creating the messages to be sent. Figure 2 shows a typical flow creating interface as available in the UCMS.

UCMS Flow Editor Template View
Figure 2: UCMS Flow editor utilizing a template view

The system takes into account the fact that not all messages in a flow is going to be linear (it seldom is), as shown in Figure 2. Eventually, users will require branching and routing mechanism available in RapidPro’s flow editor as seen in Figure 1. UCMS addresses this feature by using the “optional” and ” sub-message” functionality. Hence, users can create flows to be as simple or as complex as needed.

How does UCMS work with RapidPro

Each message flow at its core is a JSON file that holds its logic. It is the content of the JSON file that the flow editor in RapidPro translate to show all the graphical nodes and routing. The code below shows a snippet of the JSON file for the sample flow shown in Figure 1.

. . .

          "actions": [
              "text": "I'm sorry, I didn't understand that. Is your water filter still working?  Answer with Yes or No.",
              "type": "send_msg",
              "uuid": "d6709116-5a32-4631-a63c-e8987a495a74"
          "exits": [
              "destination_uuid": "5451daa8-0a80-484e-85c4-1951a3ca04fb",
              "uuid": "562af829-a820-4a0c-9952-269fd16e3555"
          "uuid": "1fca0757-221f-4eaf-948c-a2fa5a175c46"
          "exits": [
              "destination_uuid": "a8cbd08f-402f-4894-8e71-0d8d3fcce63e",
              "uuid": "e1d386e8-66b7-4c3d-8d36-9287f0a0d913"
              "destination_uuid": "e858cf58-6e37-4087-9948-80f28c8578a1",
              "uuid": "c121c94f-f591-4006-92de-12ab16abae43"
              "destination_uuid": "1fca0757-221f-4eaf-948c-a2fa5a175c46",
              "uuid": "7a4e05b4-0571-45b6-90dc-2c8a41c6312b"
          "router": {
            "cases": [
                "arguments": [
                  "Yes Yep Y Ya"
                "category_uuid": "9a896f6e-397d-447c-b0b7-85e4050dfcfd",
                "type": "has_any_word",
                "uuid": "69d48465-f9a0-4d88-b809-700dd1943ae7"

. . .

The purpose of the UCMS here is two-fold. First, it is to create the flow using the template view. The second is to export the flow in a JSON format that is acceptable in RapidPro. Hence, users are able to create and export the flows they create. The system translates the flow into a JSON file format that RapidPro can accept. Once exported, users get to download a .json file which they can import into their RapidPro workspace.

The neat part about all of this is that if further editing is required that could not have been done in the UCMS, users can edit them in the flow editor in RapidPro once imported. This eliminates the hassle of using the flow editor in the initial stages. Only the most complex tasks should be handled in the editor. Thus, it makes it more accessible for all users.

Why IoGT?

Internet of Good Things (IoGT) is a content-serving initiative led by UNICEF to bridge the digital divide in societies. The aim of IoGT is to make life-saving and life-improving information available for free. Partnerships with mobile network operators make this possible. Through IoGT, communities receive quality content directly on their mobile phones readily, free of data charges.

As a content serving platform, IoGT uses Wagtail as a headless CMS for it’s back-end. Wagtail provides all content management, from page creation to translation, article creation and publication, and user management in its system. IoGT is open-source and more details can be found in its official repository.

Why UCMS for IoGT?

The main idea behind IoGT is to make information readily available. Which means that breaking the language barrier is a major concern here. So, all the articles and content kept in an IoGT instance eventually requires it to be available in multiple languages. To do this, each article must have a page created for it in the CMS. The user needs to do this for every required language. For example, if an article needs to be available in English, French, and Spanish, then it would require three pages in the CMS. After creating these pages, the user needs to create and post the article in each page. Afterwards, the articles’ translations in the required languages can be typed in or uploaded (as PO files) for each page.

Being a headless CMS, Wagtail allows data to be displayed via API. However, there is no way to push data from outside into the system. This poses some challenges when trying to deal with large amounts of data dynamically. Additionally, translating an article for and in each individual pages can be cumbersome. Moreover, navigating through the pages can be a daunting task for most users not accustomed to the system.

UCMS addresses these challenges by making it possible to translate articles through its own system. Implementing RESTFUL API for IoGT Wagtail, pushing content directly to IoGT also becomes possible.

How does UCMS work with IoGT

In UCMS, we have developed custom RESTFUL APIs to make pushing data possible. The system pulls any article from the IoGT platform for translation purposes. Once pulled, users can translate it to whatever language they prefer using the UCMS editor. Afterwards, users can directly push the translations to IoGT from the system. The APIs use the page ID to correctly push the translations.

UCMS utilizes DeepL API services for translating content automatically. However, there may be cases where the translations are not accurate. In such cases, users can directly intervene in the translation editor. Hence, users can then change parts of the translation to best fit for accuracy.

Just as in the case with RapidPro, this serves two purposes. Firstly, it allows the user to do everything from a central point. Automatic translations also reduce the amount of work the user needs to do to translate an article. Plus, user gets full freedom to edit translations as required. Of course, admins have to privilege to check articles. This is to ensure that users do not push translations with defects.

Secondly, UCMS provides an intuitive interface for users to work with. By only giving the editing options, the system prevents the user from having to navigate complex paths. Hence, users can easily create articles, and translate them from the same view. Figure 3 shows the UI that the UCMS employs. The emphasis is to provide users with a friendly UI and navigation system compared to Wagtail.

UCMS Translation UI for IOGT
Figure 3: UCMS Translation UI for IoGT

Once users save the translations, Admins can check the files for any wrong translation. If approved, users are able to directly push the articles directly from UCMS.


The aim of this article is to shed some light on the unique functionalities of UCMS. Ease of access is the name of the game, and UCMS exists to do exactly that. Most users struggle when dealing with a new system or technology. In order to facilitate accessibility, the team developed UCMS with intuition in mind. Thus, the key aspects of this UCMS platform is to create flows for RapidPro without the use of the flow editor; as well as help users push translation directly to the IoGT platform.

With its user-friendly UI, and functional features, UCMS successfully acts as a focal point for managing content for establish platforms such as RapidPro and IoGT.

Read More

Discover a wealth of relevant topics that matter to you and your interests.

RapidPro Offline Surveyor

Comprehensive Guide on Using RapidPro Offline Surveyor with Mobile App

This page was last edited on 16 December 2023, at 10:06 pm