“Catch-All” Trigger: Handling Messages That Don’t Match Any Keywords

The catch-all trigger starts a flow when RapidPro.app receives an “uncaught” message—one that doesn’t match any keyword triggers—so you can route unexpected input to a helpful fallback like a menu, FAQ, or human handoff, optionally restricting the behavior by channel and/or contact groups.

Set up a catch-all trigger in a few steps

If you just need the essentials, follow this:

  1. Confirm you have at least one keyword trigger (catch-all only runs after keywords fail)
  2. Go to Triggers and click + New Trigger
  3. Select Start a flow after receiving a message that doesn’t match any keywords
  4. Choose the fallback flow and review optional channel and group restrictions
  5. Save and test with a real message that matches no keywords

You’re done. Messages that don’t match any keywords can now be routed to a safe fallback flow instead of being ignored.

Step-by-Step Process

1
Understand how the catch-all trigger is evaluated

RapidPro.app evaluates catch-all triggers only after keyword triggers have been checked.

  1. RapidPro first checks keyword triggers.
  2. If no keyword matches, the catch-all trigger is evaluated.
  3. If configured, the selected flow is started.
⚙️
Note: Order matters. This trigger only fires after all keyword triggers fail.

💡
Tip: Use this as a safety net so contacts are never left without a response when they miss or forget keywords.

2
Create a new catch-all trigger

  1. Go to the Triggers tab.
  2. Click + New Trigger.

[CAPTURE: Triggers page showing “+ New Trigger”.]

3
Select the “doesn’t match any keywords” trigger type

  1. Select Start a flow after receiving a message that doesn’t match any keywords.

[CAPTURE: New Trigger options with “Start a flow after receiving a message that doesn’t match any keywords” highlighted.]

4
Configure the fallback behavior

Select the flow to start

  1. Choose the flow that should handle uncaught messages.

Common choices include a main menu, a Help/FAQ flow, or a human handoff flow.

[CAPTURE: Flow selection dropdown showing a selected flow.]

Optional: Restrict by channel

You can limit the trigger to a specific channel (for example, SMS or Telegram).

  • If no channel is selected, the trigger applies to all channels.
  • If a channel is selected, it only applies to messages received on that channel.

[CAPTURE: Channel dropdown with “None” vs a specific channel selected.]

💡
Tip: Use channel-specific catch-alls if SMS users need a different fallback than Telegram users.

Optional: Include or exclude groups

You may restrict the trigger to only certain groups, or exclude certain groups. If left empty, it applies to all contacts.

[CAPTURE: Group include/exclude selector.]

⚠️
Warning: Group filters can prevent expected behavior. Contacts outside included groups (or inside excluded groups) will not trigger the flow.

5
Save, activate, and test

  1. Click New Trigger to save.
  2. Confirm it appears in your list of active triggers.
  3. Send a message that doesn’t match any keyword and confirm the fallback flow starts.

[CAPTURE: Active triggers list showing the catch-all trigger.]

💡
Tip: Always test last by sending a real uncaught message and confirming the fallback flow starts.

6
Example use case

Example: A message arrives on the Twilio SMS channel, doesn’t match any keyword triggers, and RapidPro.app starts the “Registration” flow.
This helps guide users who misspell or forget keywords.

Common Issues & Quick Fixes

Problem: The catch-all trigger never fires.

Fix: Confirm at least one keyword trigger exists, verify the message truly doesn’t match any keyword, and check whether channel restrictions prevent the trigger from applying.

Problem: The catch-all starts when it shouldn’t.

Fix: Review keyword triggers for overlaps and confirm keyword spelling and matching options are configured correctly.

Problem: The catch-all causes loops.

Fix: Avoid sending contacts back into the same catch-all condition. Route contacts to a menu or human handoff so the flow guides them forward instead of repeating the same message.