7–8 min read
Contacts
Updated on: 05/01/2026
Place contacts in “Stopped” (and handle opt-ins) in a few steps
If you just need the essentials, follow this:
- Understand what Stopped means: no outbound, inbound allowed, groups removed
- Use channel-managed opt-outs when available (provider keywords like STOP/UNSUBSCRIBE)
- If not available, build flow-managed opt-out handling and set Status = Stopped
- Plan re-subscription: inbound messages can reactivate contacts, but groups won’t be restored automatically
- Use an opt-in flow to confirm intent and re-add contacts to the right groups
You’re done. You can now manage opt-outs safely while respecting user choice and channel rules.
Step-by-Step Process
Depending on the channel type (for example, Twilio), contacts may be automatically placed in the Stopped folder when they opt out of receiving messages.
Stopped contacts are:
- removed from all groups
- unable to receive outbound messages
- still able to send inbound messages to opt back in
Using the Stopped status is a best practice for managing opt-outs while respecting user choice.
Some channels provide built-in opt-out keywords (such as STOP, NO, UNSUBSCRIBE).
When a contact sends one of these keywords:
- RapidPro automatically sets their status to Stopped
- the contact is removed from all groups
- outbound messaging to that contact is disabled
[CAPTURE: Contacts tab showing a contact in the “Stopped” folder.]
If your channel does not support automatic opt-out keywords, you should build opt-out handling directly into your flows.
This is considered best practice.
Example: Opt-out from a newsletter flow
- Ask for confirmation: Send a message such as “Do you want to continue receiving our newsletter? Reply YES or NO.”
- Detect the opt-out response: Use Wait for Response with rules to detect an opt-out keyword such as NO.
- Update contact status to Stopped: Use Update Contact to set Status = Stopped.
[CAPTURE: Flow message asking “Do you want to continue receiving our newsletter? Reply YES or NO.”]
[CAPTURE: Wait for Response node with a rule matching “NO”.]
[CAPTURE: Update Contact action with Status set to Stopped.]
Once updated, the contact is placed in the Stopped folder, removed from all groups, and will no longer receive messages.
Unlike Blocked contacts, Stopped contacts can opt back in.
If a stopped contact sends an inbound message:
- they are automatically changed back to Active
- they are not automatically re-added to groups
[CAPTURE: Contact moving from Stopped back to Active after sending a message.]
| Status | Can receive messages | Can send messages | Can auto-reactivate | Typical use |
|---|---|---|---|---|
| Stopped | ❌ No | ✅ Yes | ✅ Yes | Opt-outs |
| Blocked | ❌ No | ❌ Ignored | ❌ No | Abuse / spam |
Best practices
- Use Stopped for user opt-outs
- Use Blocked for abuse or spam
- Always confirm re-subscription before re-adding to groups
- Keep opt-out logic explicit in flows when channels don’t support it
Common Issues & Quick Fixes
Problem: A stopped contact became active again.
Fix: This is expected if the contact sends an inbound message. RapidPro reactivates them unless the channel provider still enforces an opt-out.
Problem: A stopped contact is still not receiving messages.
Fix: Confirm the channel re-subscribe keywords were used (if channel-managed) and use a flow to re-add the contact to the correct groups if your program depends on group membership.
