Getting started

To start the Message Flow Designer, go to your service panels and select Message Flows (1) in the menu. Next click Open Designer (2).

Now you end up in the Message Flow Designer.

  • Area 1 contains the properties of the current flow. you can edit the name and description of the current flow. You can also configure a test account.
  • Area 2 is the design area.
  • Area 3 is the list of modules (boxes) you can drag & drop onto the design area.
  • Area 4 is the minimap. It allows you to keep the oversight on large or complex message flow designs
  • Area 5 (on top) contains buttons to manage your message flows, or try them out

We start by designing the flow pictured on the right:

  • Start a new message flow by clicking New in area 5.
  • Drag & drop a Start, Text line and two End modules from area 3 to the design area 2. Add the question “Please enter your name.” in the Message field of your text line module.
  • Choose an id for the Text line module and for the End modules. This will be used for interpreting the results of a message flow.
  • Connect the start box outlet to the Text line box inlet. Connect the red and green outlet to your end modules.
  • In area 1 give the flow a name, and enter your personal rogerthat account.
  • Hit Save and click Try. The message flow will be launched to your phone. You can walk through the various steps. Note: you might first receive a connection request from the service. Accept it on your phone, then click Try again.

Examples

We begin with describing three message flow designs.


Example flow “menu”

The flow begins at Start. First a message is sent to the user:

  • The identifier “menu” is used to track to which message a user answers.
  • The message is shown to the user, possibly with appropriate branding.
  • Three buttons are added to the message.
    • The first button will be visualized with the text “I need support”; when the user clicks it, it will be reported as “support”. Moreover, the subflow with name “help” will start (see below).
    • The second button will be visualized with the text “I want to buy something”; when the user clicks it, it will be reported as “buy”. Moreover, the subflow with name “buy” will start (see below).
    • The third button will be visualized with the text “No thanks”; when the user clicks it, it will be reported as “exit”. The message flow will end and the results will be sent to the service that launched this message flow.

In this flow definition, we see four types of blue boxes, which we call “modules”:

  • A Start module identifies where the communication flow starts.
  • A Message module is a simple message with response buttons. Users can click one single button. The choice of button determines how the message flow continues.
  • A Message flow module is a reference to another message flow definition. This is useful to organize your message flows. Warning: circular dependencies between message flows are currently not allowed.
  • An End module indicates that the flow finishes here. There can be more than one End module. They each have a different identifier, which can be interpreted as the “result” of the message flow. This way the software processing the message flow can find out through which end result the user finished his message flow.

Example flow “help”

This flow starts with a Text line element, which will render as a form allowing one line of text input, with a green and a red button.

  • The green outlet is the “Positive button”. By default it has the label “Submit”
  • The red outlet is the “Negative button”. By default it has the label “Cancel”

Example flow “buy”

This flow is launched.


Reference

Overview

A message flow is an interconnected set of modules which represent messages, forms, subflows, start or end nodes. One message at a time is sent to the user. The flow continues depending on his responses. The following module types are supported:

  • Start: the flow begins here
  • End: end point of your message flow.
  • Message: a multiple-choice message with text and buttons
  • Text line: one line of text input
  • Text block: multiline text input
  • Text autocomplete: one line of text input, with automatic autocomplete suggestions
  • Single select: option list with single selection
  • Multi select: option list with multi selection
  • Single slider: slider to input a numeric value between two bounds
  • Range slider: slider to input a range of numeric values
  • Message flow: a subflow that will be included in this flow

If a message flow violates one of the following constraints, it will not be possible to launch this message flow, or one of its parent flows.

  • There must be exactly one start module
  • There must be one or more end modules, each having a different id
  • All inlets and outlets must be wired
  • From every module, there must be a path to an end module (or to a subflow)
  • It is allowed to draw loops inside one message flow, as long as it is possible to escape the loops and reach an end module (or a subflow)
  • It is not allowed to draw loops between message flows for example message flow A calls message flow B which at one point calls message flow A again
  • Every module must have a different id
  • Every module must be valid by itself. The conditions for this depend on the type of module

Module type “Start”

There must be exactly one Start module in your message flow design. This is where the message flow will start when launched.

Module type “End”

A message flow ends at an End module. You can include multiple End modules, each having a different identifier. This helps you to process the responses of a message flow since you know in which End state the message flow finished.

In case you use subflows (see below), it is not mandatory to have an End module on your design.

Module type “Message”

A simple message, which can contain buttons or a Rogerthat button. Buttons are outlets at the bottom of the message module. The Rogerthat button, also known as the Dismiss button, is visualized as an outlet on the right of the module box.

In the button action field one can include telephony, http, https, email or geographic links. More information is available at the API reference.


Module type “Text line”

One single line of text input. Reference documentation:


Module type “Text block”

One box of text input. Reference documentation:


Module type “Text autocomplete”

One single line of text input with autocompletion suggestions. Reference documentation:


Module type “Single select”

Select one entry from a predefined list (similar to a so-called “radio” input). Reference documentation:


Module type “Multi select”

Select multiple entries from a predefined list. Reference documentation:


Module type “Single slider”

Select numeric value using a slider. Reference documentation:


Module type “Range slider”

Select a range of numeric values using a double slider. Reference documentation:


Module type “Message flow”

The organization of large and complex message flows can be simplified using the concept of a subflow. One flow can include a number of subflows. See the example flow “menu” on top of this page for an elaborated example.

One word of caution: you cannot use subflows in a circular way for example flow A uses flow B uses flow C uses flow A. You will not be able to execute the flows used in such a circular relatiopn.