Adding menus and collecting customer input
Add menus and menu options in a workflow.
Menus are the screens customers see during a USSD session. Each menu should give customers enough information to choose what to do next, while staying short enough to read on a mobile screen.
Use this guide when you are building the flow of screens inside a workflow.
Menu types
Starhash supports static and dynamic menu behaviour.
Static menus have options that are defined when the workflow is built. Use a static menu when the choices are known ahead of time, such as:
- Check balance
- Buy airtime
- Speak to an agent
Dynamic menus fetch their options from an external API at runtime. Use a dynamic menu when the choices depend on customer data or another system, such as:
- A list of customer accounts
- Available products
- Active applications
Add a menu
In the workflow builder, add a new menu from the current screen or canvas.
For each menu, define:
- Title: an internal name for the menu.
- Prompt: the text shown to the customer.
- Description: an optional internal note.
- Type: static or dynamic.
- Terminal state: whether the menu ends the session.
The title helps editors understand the workflow. The prompt is what the customer sees.
Write clear menu prompts
USSD screens should be direct and compact.
Good prompts:
- Welcome to Starhash. Select an option:
- Enter your account number.
- Your request has been received.
Avoid long explanations. If a customer must enter a value, tell them exactly what is expected.
Add static options
Static menu options are fixed choices on a menu.
Each option has:
- A key: the value the customer enters, such as
1or2. - Text: the label shown to the customer.
- A target menu: the next screen shown when the customer chooses that option.
Example:
| Key | Text | Next step |
|---|---|---|
| 1 | Check balance | Balance menu |
| 2 | Buy airtime | Airtime menu |
| 0 | Exit | Goodbye screen |
Keep option keys unique within the same menu.
Collect customer input
Customer input is captured when the customer chooses an option or enters a value.
For option menus, the selected option determines the next screen. For input-style screens, the entered value can be used later in the session, such as in a request to another system.
Use clear prompts when collecting input:
- Enter your ID number.
- Enter amount.
- Enter recipient mobile number.
If the workflow depends on a particular input format, explain that format in the prompt.
Configure dynamic menus
Dynamic menus use a request source and a template.
The request source describes how Starhash should fetch data from another service. It can include:
- URL
- Method
- Headers
- Parameters
- Body
The template maps the response into menu options. It tells Starhash where to find the list of items and which fields should become the option value and label.
Use the dynamic source test tool to preview generated options before publishing.
Use terminal screens
A terminal screen ends the USSD session.
Use terminal screens for:
- Confirmation messages
- Error messages
- Exit screens
- Completed requests
Terminal screen prompts should tell the customer what happened and whether any further action is needed.
Menu checklist
Before testing, check that:
- The first menu is connected.
- Every static option has a useful label.
- Option keys are unique on each menu.
- Every non-terminal option routes somewhere.
- Terminal screens are marked as terminal.
- Dynamic menus return the expected option labels and values.