Using Dynamic Groups for targeted communication

Feb. 24, 2016

In RapidPro we can easily organize our contacts using the “add to group” feature. When we register contacts we can put them in groups depending on for instance age, gender, location, profession, etc. Having contacts in groups allows us to target a specific audience when we send out a message or poll.

However, using the group feature has its limitations if we want to reach out to a group with multiple characteristics. For example, let’s say we’re interested in sending a message to contacts who are female, aged between 15 and 18, and who live in Kampala district. So, how to go about that?

The solution is actually quite simple: make use of dynamic groups. Dynamic groups allow you to efficiently sort contacts into groups via the contacts tab by entering a query that filters contacts by contact field value. Below are a few steps that explain how to create dynamic groups based on the criteria set in the above example.

Enter our query into the search bar in the top right corner of the contacts tab. In this case: gender=female AND (age>=15 and age<=18) AND district=Kampala:

query box

Once we enter the query, RapidPro will return a list of the contacts that match it. In this example we found 2 contacts that match the query:

Return Query

We can now save this new group by clicking the "Save as Group" button underneath the search bar:



Once a dynamic group is saved, the applied query will appear beneath the group name when clicked:

group name


Once a dynamic group is saved, any new contacts that match the applied query will be automatically placed in that group. 

Other Queries

To look for contacts whose engagement is unknown we can use this query:

engagement counter.png

To look for contacts whose channel is unknown we can use this query:


You can  save these contacts in a group and pull them through a flow to obtain the channels used. We can create a simple flow that looks like this:


These steps can be repeated to create dynamic groups based on any criteria you want.

Now, it's up to you to try this out! And please share your experiences on the RapidPro user forum :)