How to monitor the level of user engagement in RapidPro

April 13, 2016


When sending out polls in RapidPro, it may be useful to keep track of who is participating and who is not. In Uganda for example, the U-Report team wanted 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.


An easy way to keep track of user engagement is to add a contact field that acts as a counter at the end of each poll (i.e. flow) that keeps track of participation. This post explains how to do that.


Set up a contact field as a counter

The first thing you need to do is to create a new contact field and set its value. In this example we call the new contact field “engagement counter”. If you add this counter in the registration flow, you set the counter value as 0:



For the contacts that are registered already, you can use this action at the end of the first next poll and set its value as 1.


Start counting

Once the counter is set, you can start adding to it each time a user completes a flow. At the end of each flow, add an action that increases the engagement counter value by 1. This can be done as follows:


The counter can now keep track of how the number of times each contact participates in polls. Note that this counter will only measure the engagement level moving forward, so it won’t count participation in the polls prior to setting up the counter.


The engagement will now allow us to target contacts based on their participation. To do this we can use dynamic groups to group contacts by looking at the value of the engagement counter.


Last participation date

Besides using the engagement counter, you may want to add another action at the end of each poll to record the date of last participation. This will help you filter when someone last participated in a flow. This could look like:



There are 3 flows which you can download and import into your account that illustrate the above:

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


In case of questions or comments, please let us know!