6–8 min read
Channels
Updated on: 22/12/2025
Control which channel messages use
If you just need the essentials, follow this quick path:
- Understand RapidPro.app’s default channel matching rules
- Set a preferred channel using Update the Contact → Channel
- Switch the preferred channel later (via contact action or user choice)
- Validate behavior (multi-channel test + edge cases)
This keeps delivery consistent when you have multiple numbers, multiple channel types, or throughput constraints.
Step-by-Step Process
Before you override anything, it helps to know how RapidPro.app chooses a channel automatically.
Rule 1 — Last channel used wins (same channel type)
If you have multiple channels of the same type (example: two SMS numbers), the channel the contact last interacted with is prioritized.
Rule 2 — “Lock-in” can happen under specific conditions
A contact can become “locked” to a specific channel (meaning they’ll only receive messages from that channel) when:
- You have multiple channels of the same type
- The contact’s address type priority matches that channel type (example: phone number for SMS channels)
- The contact initiates contact via an incoming message
Rule 3 — If the contact never interacted, prefix overlap is used
If the contact has never messaged any of your channels, RapidPro.app may choose the channel whose number has the largest prefix overlap with the contact’s phone number.
Example:
Channels: +2505661212 and +2505551212
Contact: +2505661231
✅ RapidPro.app selects +2505661212 because the prefix overlap is greater.
Rule 4 — Carrier-based routing when possible
In many cases, RapidPro.app can detect a contact’s carrier and prioritize channels accordingly, but this depends on carrier behavior and isn’t guaranteed.
[CAPTURE: A workspace Channels list showing multiple channels of the same type (e.g., two SMS numbers) and/or multiple channel types (SMS + Telegram).]
If you want to assign or switch a contact’s preferred channel without waiting for an incoming message, set it explicitly in a flow.
- Open your flow in the flow editor.
- Add an Update the Contact action.
- In the fields list, choose Channel.
- Select the channel you want (it appears in a dropdown list).
- Save the node.
[CAPTURE: Update the Contact action showing “Channel” selected with a channel dropdown.]
Once you can set the channel in a flow, you can design “routing rules” based on user preference, geography, or capacity.
- Switch between channels of the same type (example: SMS number A → SMS number B)
- Switch between different types (example: SMS → Telegram bot)
- Assign Android channels based on prefix overlap, group membership, or throughput constraints
- Route by number type (example: toll-free vs. standard)
- Assign by country/area code using a split + Update Contact
Example (user chooses Telegram): If a contact replies “Telegram”, your flow can update Channel to your Telegram channel name—making Telegram their preferred channel going forward.
[CAPTURE: Flow snippet: Wait for Response (“SMS”/“Telegram”) → Split → Update Contact (Channel=Telegram).]
After you set a preferred channel, RapidPro.app keeps using it until one of these happens:
- The contact sends a message to a different channel (which may change the “last channel used” priority), or
- Another flow updates Channel again via Update the Contact.
[CAPTURE: Contact profile showing the selected Channel/preferred channel value (or equivalent contact routing indicator).]
- Pick a test contact who has multiple reachable addresses (example: phone + Telegram).
- Run a flow that sets Channel to a specific channel.
- Send a follow-up message and confirm it delivers via the chosen channel.
- Repeat by switching the channel again (or having the contact message a different channel) and confirm the change.
[CAPTURE: Simulator run (or message logs) showing delivery via the selected channel after Update Contact.]
Common Issues & Quick Fixes
Messages are sending from the “wrong” channel
Problem: A contact receives messages from a different channel than expected.
Fix:
- Check whether the contact recently messaged a different channel (last-interaction priority).
- Add a flow step: Update the Contact → Channel to explicitly set the preferred channel.
The channel I need isn’t available in the dropdown
Problem: You can’t select the desired channel in Update Contact.
Fix:
- Confirm the channel is added and enabled in Workspace Settings → Channels.
- Check your permissions (Admin access may be required to manage channels).
Contacts stay stuck on one channel forever
Problem: The contact keeps receiving messages via the same channel.
Fix:
- This can be expected once a preferred channel is set.
- To switch, either wait for the contact to message another channel, or run another flow step that updates Channel again.
