StarHash Documentation

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.

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 1 or 2.
  • Text: the label shown to the customer.
  • A target menu: the next screen shown when the customer chooses that option.

Example:

KeyTextNext step
1Check balanceBalance menu
2Buy airtimeAirtime menu
0ExitGoodbye 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.

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.

On this page