USSD Menu Configuration

When there are no Handlers in the Configuration section, the order of the Menu Sets is important as the first menu to be rendered to the User will be the first Menu Set on the GLU console.

Display menu rules using Menu Handlers

The ‘Show Menu Manager’ can also be used independently of the Menu Language function. In the example below, the menu in question will only be visible if the value of the ‘maxLoanable’ parameter is ‘Greater than or Equal’ to 10000.

Understanding Prompts

A prompt is created in order to prompt the user for something and to trigger a transaction in the associated Integration Engine.

In order to do this, the ‘Transaction Code‘ field must be populated with an Transaction Code configured in the Integration Builder. This essentially enables the Menu to hand-off the call to the Integration Engine to make the call to another system to verify the balance. The handoff happens after all prompt parameters are worked through.

A prompt must always be configured and followed by a result screen or another prompt.

Prompt Parameters

As per the screenshot below there are various options for prompt parameters:

  • Text, Float and Integer: Allows you to set a specific parameter value, it also validation options such as ‘Required’, length validations etc
  • Drop Down: Enables you to define in the ‘Default’ field a list of options (one under the next) for the User to select from
  • Hidden: Will retrieve values from message payload without actually prompting the User to enter anything
  • Confirmation: Allows you to return options to confirm a selection e.g. with a YES / NO. When using confirmation, the FIRST option is seen as the success, and the SECOND the failure. So ensure that the correct values are entered into the list box. See example below of the confirmation:

Prompt Logic

Once the prompt is triggered, the prompt will first work through all the parameters. At the end of the parameter list, the integration engine transaction will be triggered. If the integration engine returns a ‘Successful’ response template, the user will follow onto the next item in the configuration (either a result screen, handler or another prompt).

If the integration engine returns a ‘failure’ response template, the error message setup on the prompt configuration will be displayed.

Prompt Handlers

Displaying Items in an Array

Dependency: In the related GLU Integration, create an orchestration in the Transaction, which retrieves the list of information that creates the array. EXAMPLE: Loan[]

In the USSD configuration:

  1. Create a PROMPT to trigger the related integration in order to retrieve the array.
  2. Add a second PROMPT and add a parameter – Type = Dropdown. This is to display the list to the customer. Add the following syntax in the “Default” section : ${arrayname.arrayattributename}
  3. Add a second parameter – Type = hidden. In the default section – add ${arrayname}[${firstparametername}].(array_attribute_you_want_to_pass_into_transaction) This would take the attribute value that you require and pass it into the transaction.

Seeing an example for products: First param would be name = productSelect : ${products.productName} (display the list of ‘productName’ value in the array ‘products’)

USSD States

USSD States are worth explaining at this point. The diagram below describes three USSD states that should be understood along with the interplay between these states. Menus and Sub-Menu’s constitute one state, Prompts requiring some User Input (a confirmation or data capture) or the processing of some metadata like a MSISDN into the integration engine are the second USSD state and the third is the Result that is returned via the USSD Gateway to the User.

So as an example if after presenting the Main Menu the user then selects Menu 2 which comes in on the Inbound Request, the ${result} that is returned will be the next sub-menus associated with the main menu option 2.

Was this article helpful?

Related Articles

Fill the form and we’ll contact you shortly

    I agree with

    We uses cookies to make your experience on this website better. Learn more
    Accept cookies