RapidPro Flow Repository

This page is meant to provide an overview of flows that are worth sharing for reuse and adaptation. The flows are grouped based on functionality or module. The plan is that more and more flows will be added as they become available. If you have ideas or suggestions or if you have an interesting flow you’d like to share, please let us know!

Some flows listed below are project specific (e.g. U-Report) but they can be easily modified and used for other initiatives.

You can download the flows you’re interested in (json files) and import them into your account. As you will see, notes are added in the flows to explain the different parts and functions.


Registration flow in English

This flow is the most recent flow used to register new U-Reporters. Make sure you modify it to reflect your needs and check if all works well before using it! A blog post is available which will take you through all the basics and steps.

Download flow here.

Registration flow in French

This flow is the most recent flow used to register new U-Reporters in French. Make sure you modify it to reflect your needs and check if all works well before using it! 
Download here. 

Download flow here.

Opt-out Menu

This flow can be used for U-Reporters to opt out from U-Report but can be modified for other use cases

Download flow here.

Add contacts to groups by channels used to trigger flow

This flow illustrates how to use Split by expression to create groups based on channels used for triggering a flow. For example, if someone used Twitter to trigger the flow, we can add them to the Twitter group.

Download flow here.

Join Group Chat in RapidPro

This flow is to illustrate how a contact can join a group chat within RapidPro. The trigger in this example is "joinchat".

Download flow here.

Registration of contacts by someone else

This example contains 2 flows which are use to register a pregnant mother by community health worker:

1. The first is used by the CHW to capture the details of the pregnant mother

2. The second uses the details captured by the first flow to create a contact profile for the mother and to welcome her.

These flows can be modified and used for other similar use cases.

Download flow here.

Calculating Pregnancy Due Date

This flow can be used to calculate the due date of a pregnant mother based on number of weeks since last menses. It can be modified to serve other purposes as well.

Download flow here.

Help Menu

This flow can be triggered by a contact to get more information about a certain initiative. In this example a (potential) U-Reporters can trigger this flow to get more information onU-Report, how to join, the website or how to opt out.

Download flow here.

Engagement Counter
These flows can be used to keep track of who is participating and who is not. They can be used for example to monitor the level of engagement among U-Reporters to allow for targeted polling, to identify most active (or inactive) U-Reporters, and to reduce their overall SMS costs. More information can be found in this blog post.

Download flows here:

Adding the counter in the registration flow and set value as 0

Adding counter in 1st poll and set value as 1

Adding counter in subsequent polls to keep track of participation

Reporting / Monitoring

Limiting each contact to a single take

This is to show how we can use an additional contact field to keep track on who has already participated in a survey in order to avoid people participating more than once.

Download flow here.

Split by flow field to combine 2 responses

This flow illustrates how a decision can be made within flow by combining two previous responses

Download flow here.

Using webhook to compare entry with a predefined list of names

This flow is to show how a webhook can be used to compare an entry with a list of predefined words outside RapidPro. In this example we ask a user to give us a name of a hospital which is then compared with an official list outside RapidPro. See this blog post with instruction on how to create such a flow.

Download flow here.

Using SMS structured form

This flow illustrates how to collect multiple pieces of info using the Split by message form functionality. An enumerator can for instance submit the name of a school, number of students and number of teachers in 1 SMS message. For more information on this see this blog post.

Download flow here.

This flow shows how to use structured form to collect multiple data points in one SMS. The response should be submitted in such a way that RapidPro “knows” how to interpret the information. In this case, the first number represents the number of girls, and the second number represents the number of boys. The numbers are separated by a period (.). For more information on this see this blog post.

Download flow here.

Limit number of wrong responses in a flow

This flow is to show how you can limit the number of wrong responses to a question. In this example, we ask for age as a number. If the response is not a number, we set a counter for the number of retries.

Download flow here.

Structured form with split steps to calculate and store sum and percentages

This flow is taken from TracPro and can be used to collect data and make additional calculations based on the incoming info.

Download flow here.

Case Management

Label messages for follow up

This flow is to illustrate how to label or tag messages. This allows us to easily filter messages under Messages for further follow up.

Download flow here.

Auto response for unsolicited messages

This flow can be used to send automatic replies to unsolicited messages. The flow should be triggered by  a catch-all trigger.

Download flow here. A video on how to use this is here.


Data Management

Surface Channels

This simple flow can be used to add a contact field which contains info on which channel was used last by contacts

Download flow here.

Contact management

This flow allows a user to check if contact fields are known and if not questions to get the required info are asked.

Download flow here.

Check if todays is a weekday

This flow can be used to check if today is a weekday or weekend. This can be used for example to avoid flows being sent out during the weekend.

Download flow here.