NewDash Dots are hereMini apps in Dash, with payments built inLearn more

Products · Developer guides

Developer Guides

How a USSD flow runs, what a page can read, and where to find the flow format, expressions, templates and the Exchange API.

These guides cover the flow JSON in detail. If you haven't built a flow yet, start with Getting Started.

How a Flow Runs

When a subscriber dials your code, Monime shows the first page of your flow. Each time the subscriber answers, Monime checks the answer, saves it, runs the page's on_done, and shows the next page.

Pages run in the order you list them. A page can change that order:

  • on_done.next_page jumps to another page.
  • An exchange action or a dynamic page asks your server which page comes next.
  • options.skip passes over a page.

The flow ends when:

  • a display page is shown
  • a page with options.terminal finishes
  • your server's exchange response stops the flow
  • the subscriber answers no to a yes or no prompt that has an exit_message
  • the subscriber hangs up, or the session times out

Payments are built in. A collect_payment page charges the subscriber's mobile money in the session, with no payment integration of your own.

What a Page Can Read

WriteTo read
$(page.ID.value)An earlier answer
$(session.KEY)The subscriber's number and network
$(data.KEY)Data your server sent for this page
$(sc.KEY)A value saved earlier in this session
$(rc.KEY)A value saved for this subscriber on an earlier visit

See Variables for the details, and Expressions for comparisons and functions.

Next Steps