Action Flows

What is an Action Flow?

Action flows are for managing conversations when Ezra is asking the questions. This can be used for capturing customer information, as Ezra walks the user through the required steps. It can also be used to help Ezra understand what the user is asking, for example if the utterance is incomplete or the user needs help in phrasing.

How do I create an Action Flow?

Action Flows can be constructed and viewed via the navigation menu on the left hand side of your page. You might create an Action Flow because you need Ezra to collect details from a customer or member of staff, or ask a user for more information.

Begin by clicking Add New, which will conjure up a new highlighted section at the top of the list. Any empty Action Flows are shown highlighted. Click on the blank space underneath Name and Description to fulfil those fields.

Click Edit to begin creating your action flow. You can later delete an Action Flow if necessary, by clicking on the “X” symbol next to Edit.

step 1

Action Flows are made up of Nodes, of which there are five types:

  • Branching: asks a question and expects the user to respond. This is usually a ‘yes’ or ‘no’ answer question, but you can also point a user along multiple options if you like. Branching nodes don’t store any knowledge or inputs for use in the rest of the conversation, they are used to redirect.


  • Form: is used when you want to capture user inputs to drive the solution or end goal of the Action Flow. It does this by using tokens to store information for use through the whole conversation. Some examples may be: for when you want the Action Flow to capture customer information to complete an actual form, where the form nodes capture a different value such as name, address, phone, et cetera. This captured info can also be used to populate a query you can run later in the Action Flow, like through an Action node.

    Every form has two segments:

    1. The prompt - which is what Ezra will ask the user.

    2. The user actions - where you can enter the values that are required to capture from the user.

    These can be listed manually by creating a label and subsequent pattern (list of items), or populated by a table in the back end and brought through to the label/patterns using Regex or tokens. Each label/pattern combination should result in one piece of information captured.

Ezra Form Node

  • In Sequence: is a node that doesn’t effect the user during the action flow. Ezra utilises In Sequence nodes to push a previous utterance/answer through to the next stage. It is also a way of breaking up an answer that is a large amount of text, into smaller separate speech bubbles.

  • Action: allows you to run a SQL script that can reference variables and form fields from the action flow. This node has three main segments, similar to the Knowledge Base in regards to resource/query/context, with effectively the same method of populating it. This node is expected to return a single row; however can branch the flow if either no results or multiple results are returned.

Ezra Action Node

Here you can see the data captured in previous forms being brought through into the query as tokens. These tokens will now inform the variables that the query will use to pull back the response. The response template itself is where you craft the answer phrasing and how the query response is displayed, again matching the same function as the Knowledge Base.

Within the free text field of nodes – Action nodes in particular – the “moustache” tokens, {{ }} , can specify which ‘dictionary’ the words can come from.

In every Form node, the text patterns are a regular expression with a capture block. What they capture from the user is available in subsequent nodes; the keys being the name of the text pattern. Note that if the same text pattern is used multiple times, the final result will be the last text captured by that pattern. Only keys are used with the Action Flow Dictionary, there are no categories or aliases.

Here are the keys used within Action Flow nodes:

{{key:frompayload}} : specifies that the value is from the payload dictionary (those captured in local Form nodes)

{{key:frominternalstate}} : specifies the value is from the global variable dictionary

{{key:fromresult}} : specifies it is a value from a selected column in the most recently run database query.

These keys also have smaller and more sensible aliases respectively:




End: Defines a final prompt to the user, and an exit for the flow. This can also fill in the Action Flow Results table from the Formatted Block section. An End node can also pass the last response of the user out of the Action Flow, and straight into the normal Question/Answering section of Ezra. It does this by adding a ‘Default End’ with no prompt and passing ‘active’ for any unconnected outports to the Default End when the flow is processed.

You may use this is when the Action Flow is clarifying the action of a user.

For example: say the user is trying to use Ezra to look for a colleague’s work hours, but hasn’t phrased the question well enough for Ezra to understand. Ezra can then use an Action Flow that prompts the user into asking the question correctly in an end node, so the next response/question from the user actually queries the full database like a normal question and answer, and is not confined within the Action Flow. The user, however, will not know the difference.



On the left hand side of your page, you can click a node type to begin your Action Flow.

step 2

The above is an example of a completed Action Flow. Yours will be blank to begin with.

A node is surrounded by blue circles that are called outports. These tell the Ezra where to take the conversation according to how the user has responded. Branches are formed between nodes through outports. You can assign these by simply clicking and dragging these connectors to the node you want. Keep in mind that multiple connectors can go into the same node, but outports cannot have more than one connector coming out of them.

Ezra v1.5 includes the ability to pan and zoom around the window as your Action Flow grows more complex. If you pan too far away from the start of your flow, click Reorient Panel on the left of your screen.

step 4

Click on a node to edit it.

How do I remove a node?

Holding down shift and clicking on the desired node will delete it.