USSD Funnels Guide

All suggested CleverTap funnels for the Uganda USSD service (*284*300#). Each funnel includes the exact steps, filters, and the product question it answers.

February 2026 Uganda 8 Events 11 Funnels

How to Read This Guide

Each funnel card shows:

Must Have Essential for launch — set up in CleverTap immediately Should Have Important for optimization — set up within first week Nice to Have Deeper insights — set up once baseline data exists

Step colors: cherry = entry point, aqua = user action, mauve = decision point, lime = goal/success.
All funnels use a 30-minute conversion window (USSD sessions are short-lived).

Core Repayment Funnels
1. Overall Repayment Funnel
How many users who start a session with an active loan end up making a successful payment?
Must Have
Session Start
BE_USSD_SESSION_START
status = loan_found
Balance Viewed
BE_USSD_BALANCE_VIEWED
Repayment Confirmed
BE_USSD_REPAYMENT_CONFIRMED
Repayment Success
BE_USSD_REPAYMENT_RESULT
status = success
Key question: What is our overall USSD-to-repayment conversion rate? Where is the biggest drop-off?
2. Full Repayment Funnel
Conversion for users who choose to pay their entire outstanding balance. This is the shortest path — no amount entry step.
Must Have
Session Start
BE_USSD_SESSION_START
status = loan_found
Balance Viewed
BE_USSD_BALANCE_VIEWED
Full Confirmed
BE_USSD_REPAYMENT_CONFIRMED
payment_type = full
Success
BE_USSD_REPAYMENT_RESULT
status = success
Key question: What % of users choose full repayment, and what is the success rate? (Expect higher conversion than partial — fewer steps.)
3. Partial Repayment Funnel
Conversion for users who enter a custom amount. Has an extra step (amount entry) which is a friction point — compare drop-off vs full repayment.
Must Have
Session Start
BE_USSD_SESSION_START
status = loan_found
Balance Viewed
BE_USSD_BALANCE_VIEWED
Amount Entered
BE_USSD_AMOUNT_ENTERED
valid = true
Partial Confirmed
BE_USSD_REPAYMENT_CONFIRMED
payment_type = partial
Success
BE_USSD_REPAYMENT_RESULT
status = success
Key question: How much does the extra "enter amount" step hurt conversion vs full repayment? Is the amount entry UX causing drop-off?
Repayment Drop-off & Failure Analysis
4. Cancellation Funnel
Track where users bail out. Users who see the confirmation screen but choose to cancel instead of confirming.
Should Have
Balance Viewed
BE_USSD_BALANCE_VIEWED
Repayment Confirmed
BE_USSD_REPAYMENT_CONFIRMED
vs
Cancelled
BE_USSD_REPAYMENT_CANCELLED
Key question: What % of users reach the confirmation screen but cancel? Are amounts too high? Is the confirmation wording unclear?
5. Repayment Failure Analysis
Of users who confirm repayment, how many fail? Group by error_code to find the most common failure reasons.
Should Have
Repayment Confirmed
BE_USSD_REPAYMENT_CONFIRMED
Success
BE_USSD_REPAYMENT_RESULT
status = success
vs
Failed
BE_USSD_REPAYMENT_RESULT
status = fail
Key question: What is our payment success rate? Which error codes are most frequent? Are failures concentrated on certain users or times of day?
6. Invalid Amount Entry Rate
How often do users type invalid amounts (non-numeric, too low, exceeding balance)? Indicates UX friction in the partial repayment flow.
Should Have
Balance Viewed
BE_USSD_BALANCE_VIEWED
Invalid Amount
BE_USSD_AMOUNT_ENTERED
valid = false
then
Valid Amount
BE_USSD_AMOUNT_ENTERED
valid = true
Key question: What % of amount entries are invalid? Do users recover (retry with valid amount) or abandon? Should we show clearer validation hints?
Registration & Onboarding Funnels
7. Registration → Repayment Funnel
Users who start without a payment method: do they successfully register their MoMo wallet AND complete a repayment in the same session?
Must Have
Session Start
BE_USSD_SESSION_START
status = no_payment_method
Registration OK
BE_USSD_REGISTRATION
status = success
Balance Viewed
BE_USSD_BALANCE_VIEWED
Repayment Success
BE_USSD_REPAYMENT_RESULT
status = success
Key question: Is inline registration effective? Or do users drop off after registering (too many steps in one session)?
8. Registration Success vs Failure
Of users prompted to register their MoMo number, how many succeed vs fail? Failures indicate the number validation or verification process has issues.
Should Have
Session Start
BE_USSD_SESSION_START
status = no_payment_method
Registration Success
BE_USSD_REGISTRATION
status = success
vs
Registration Failed
BE_USSD_REGISTRATION
status = fail
Key question: What is the registration success rate? If low, is it a UX issue (users entering wrong format) or a backend issue (verification failures)?
Unregistered User Acquisition
9. Unregistered User Engagement
When someone who isn't a Fido user dials the USSD code, they see a menu with 3 options. Which option do they pick? Do they engage at all?
Must Have
Session Start
BE_USSD_SESSION_START
status = unregistered
Menu Selection
BE_USSD_UNREGISTERED_MENU

Group by the choice property to see the split:

📲
Choice 1
Download the app
📞
Choice 2
Contact support
🔔
Choice 3
Request callback
Key question: Which CTA resonates most? Is USSD driving app downloads? Should we change the menu order or wording?
10. USSD-to-App Conversion (Cross-Platform)
Of unregistered users who chose "Download app" and received the SMS link, how many actually signed up? Requires joining USSD events with app signup events by phone number.
Nice to Have
Unregistered Menu
BE_USSD_UNREGISTERED_MENU
choice = 1 (download)
SMS Sent
(SMS delivery log)
App Signup
App signup event
same phone number
Key question: Is USSD an effective acquisition channel? What is the SMS-to-signup conversion? (Requires cross-platform identity matching by phone.)
Overall Channel Health
11. Session Outcome Distribution
Not a traditional funnel — a segmentation of ALL session starts by their status. Gives a bird's-eye view of who is using the USSD channel and what they encounter.
Must Have

Create as a pie chart / bar chart in CleverTap, not a funnel. Event: BE_USSD_SESSION_START, grouped by status.

loan_found
Happy path
unregistered
Not a user
no_payment_method
Needs registration
no_active_loan
No outstanding loan
blocked
Account blocked
kyc_not_verified
KYC incomplete
error
Technical failure
Key question: What % of USSD traffic is actually repayment-eligible? How much is unregistered users discovering the code? Are error rates acceptable?

Summary — All 11 Funnels at a Glance

# Funnel Steps Priority Answers
1 Overall Repayment Session → Balance → Confirm → Success Must End-to-end conversion rate
2 Full Repayment Session → Balance → Confirm (full) → Success Must Full repayment adoption & success
3 Partial Repayment Session → Balance → Amount → Confirm (partial) → Success Must Amount entry friction & conversion
4 Cancellation Balance → Confirmed vs Cancelled Should Why users bail at confirmation
5 Repayment Failure Confirmed → Success vs Fail (by error_code) Should Payment success rate & error patterns
6 Invalid Amount Entry Balance → Invalid → Valid recovery Should Amount input UX quality
7 Registration → Repayment Session (no PMT) → Register → Balance → Success Must Inline registration effectiveness
8 Registration Success/Fail Session (no PMT) → Success vs Fail Should Registration pass rate
9 Unregistered Engagement Session (unregistered) → Menu choice Must Which CTA works for non-users
10 USSD-to-App Conversion Menu (download) → SMS → App signup Nice USSD as acquisition channel
11 Session Outcome Distribution All sessions grouped by status (chart) Must Channel health & traffic mix

CleverTap Setup Notes

1
Conversion Window
Use 30 minutes for all USSD funnels. Sessions timeout after 5 minutes, but allow buffer for retry flows.
2
Identity Resolution
Events use user_id when known, phone_number when not (unregistered users). CleverTap should resolve both to the same profile once the user signs up.
3
Event Naming
All events use the BE_USSD_ prefix. They appear under this prefix in CleverTap's event list.
4
Pipeline
ussd-service → SNS topic → events-service → CleverTap. Events arrive in near real-time (seconds).
5
Full vs Partial Comparison
Set up funnels 2 and 3 side by side to compare conversion rates. The key delta is the amount entry step — if partial drops off significantly more, consider UX improvements (e.g., suggested amounts).