7–8 min read
Contacts
Updated on: 05/01/2026
Change a contact’s status from a flow in a few steps
If you just need the essentials, follow this:
- Add an Update Contact action to your flow
- Set Status to Active, Stopped, Blocked, or Archived
- Use Stopped for opt-outs (and expect reactivation on inbound messages)
- Use Blocked for abuse/spam to suppress automation
- Use Archived to prepare contacts for deletion (deletion is manual)
- Test carefully before using status changes at scale
You’re done. Your flow can now manage opt-outs, abuse, and cleanup without manual contact-by-contact updates.
Step-by-Step Process
You can update a contact’s status automatically inside a flow using the Update Contact action.
Contact status affects whether a contact can receive outgoing messages, whether they can send incoming messages, and their group membership.
This is useful for managing opt-outs, spam, inactive users, and database cleanup without manual intervention.
Active
- Can receive outgoing messages
- Can send incoming messages
- Remains in groups
This is the normal state for contacts who are interacting with your workspace.
Stopped
- Removed from all groups
- Cannot receive outgoing messages
- Can still send incoming messages
Stopped contacts are typically contacts who have opted out. If a stopped contact sends an incoming message, they will automatically become Active again
unless the channel provider (for example, Twilio) still considers them opted out.
Blocked
- Removed from all groups
- Cannot receive outgoing messages
- Incoming messages are ignored / archived
Blocked contacts are useful for handling spam, abusive or offensive behavior, and unwanted automated traffic.
Blocked contacts remain in the workspace but are effectively ignored.
Archived
- Removed from all groups
- Ignored permanently
- Ready for deletion
A contact must be Archived before it can be deleted. Archiving is commonly used to prepare large groups of contacts for bulk deletion.
- Open or create a flow.
- Add an Update Contact action.
- In Select what to update, choose Status.
- Select the new status: Active, Stopped, Blocked, or Archived.
- Save and test the flow.
[CAPTURE: Flow editor showing an “Update Contact” action.]
[CAPTURE: Update Contact dialog showing Status selected with options.]
Automatic opt-outs (channel-managed)
Some channels (for example, Twilio) have built-in opt-out keywords. When a contact sends one of these keywords, they are automatically set to Stopped,
removed from all groups, and you cannot send them outbound messages. They can opt back in using the provider’s re-subscribe keywords, but they will not be
automatically re-added to groups.
Manual opt-outs (flow-managed)
If your channel does not support automatic opt-outs, use a flow to detect an opt-out keyword and update the contact’s status to Stopped.
Any time the contact sends a message again, they will become Active unless the provider still enforces an opt-out.
[CAPTURE: Flow showing keyword detection followed by Update Contact → Status = Stopped.]
Blocking can also be automated in flows, for example when a flow detects abusive or unwanted language.
Example use case
- A contact sends abusive or unwanted language.
- A Wait for Response or Split by Expression detects specific words.
- The flow updates the contact’s status to Blocked.
[CAPTURE: Flow showing abusive-language detection followed by Update Contact → Status = Blocked.]
This is especially useful when keywords are published publicly (websites, posters, ads) and you want to protect agents and systems from abuse.
What you can’t do in a flow
Contacts cannot be deleted directly in a flow. If you need deletion, update the contact’s status to Archived, then delete from the Contacts tab.
Best practices
- Use Stopped for opt-outs
- Use Blocked for abuse or spam
- Use Archived for cleanup and deletion workflows
- Always test status-changing flows carefully to avoid accidental bulk changes
Common Issues & Quick Fixes
Problem: I updated a contact to Stopped, but they became Active again.
Fix: This is expected if the contact sends an incoming message. RapidPro reactivates them unless the channel provider still enforces an opt-out.
Problem: I blocked a contact, but they keep sending messages.
Fix: This is expected. Blocked contacts can send messages, but all incoming messages are ignored/archived and do not trigger flows.
Problem: I can’t delete a contact in a flow.
Fix: Archive the contact in the flow, then delete from the Contacts tab (deletion can’t be automated directly in flows).
