Flows are made of nodes and connections. There are several different types of nodes with different properties.
Flow control nodes
These nodes are not displayed to the user and the user does not interact with them. They instead control how the assistant moves through the flow.
The start node indicates where the flow begins.
Every flow has exactly one start node which is created automatically and cannot be edited or deleted.
An end node indicates that a particular path in a flow has come to an end. Once the assistant reaches an end node, it will prompt the user for feedback and then display the end node's summary text as a final message to the user. This completes the conversation, though users can choose to restart from the beginning if they need help with something else.
To avoid any surprises or undefined behavior, we recommend ensuring that every path through your flow eventually terminates in an end node. Avoid leaving dangling connectors.
Restart nodes send the assistant back to the start node, just like starting a brand new conversation.
Note that if you instead want to send the user to a specific earlier part of the flow, you can instead connect to that previous part of the flow instead of using a restart node. This can be done with a direct connection or with a jump.
For example, when the user has received an answer from a FAQ and indicates they have another question, the flow can connect to a jump leading back to the main FAQ list.
A jump is a shortcut that allows the assistant to go directly from one part of the flow to another. For example, if a flow has multiple largely-separate sections for FAQs and troubleshooting, any nodes that connect between the sections can connect via jumps.
When following a jump, the assistant's behavior is the same as if it were following a normal connection between the two nodes, but using jumps can keep the canvas much cleaner and more readable. Jumps are labeled so you can get a good sense of where each path is going without needing to clutter the canvas with a lot of criss-crossing connection lines.
Additionally, you can right-click a jump to be taken to its target, so you can easily get to the relevant part of the flow wherever it is on the canvas.
Finally, multiple jumps can all go to the same target, so portions of a flow can easily be reused without drawing a large number of connections to the same point.
When you create a jump, you must specify whether to use an existing target or create a new one. If you use an existing target, you will only create a new jump start that leads to that same target. If you create a new one, you will create a matching jump start and target. You can then create new jump starts that reuse that new target.
While you can create arbitrary jumps and targets, there are also a few special jump targets that are built-in:
You can also manually create "Success" jumps from any node or answer that should be considered as resolving the user's issue, such as a message node answering a FAQ question.
Out of solutions
New flows are created with a single "Out of solutions" jump target that cannot be edited or removed. This target is jumped to when the user has rejected all solutions or indicated that live support has not solved their problem and the flow does not have any more solutions to present.
You can also manually create "Out of solutions" jumps to from any node or answer that should be considered as the assistant running out of solutions.
Escalate from menu
One of the options available to the user in the assistant menu is "Escalate." If the user picks this option and there is an "Escalate from menu" jump target on the canvas, the assistant will jump to it.
Flows are not automatically created with "Escalate from menu" targets but one can be added to the canvas.
Notes have no effect on flow behavior and are simply for adding text-based notes to the canvas to help keep the flow readable. For more information, see Understand canvas notes.
User interaction nodes
A symptom node represents an observable problem a user might encounter with a product.
Symptoms are presented to the user as questions with two answers. One answer reflects the "working" state, indicating that this problem is not present, and one reflects the "faulty" state, indicating that this problem is present.
Note that symptoms are named as positive statements that reflect the faulty state rather than as questions - for example, you may have a symptom that asks the user "Is there light from the lamp?" but the name of the symptom is "There is no light from the lamp." This is because in some circumstances, users are prompted to select from a list of symptoms; in these cases the positive statement is more clear. For more on this, see Understand search and Working with backtracks and choice lists - What is a choice list?.
For more on working with symptoms, see Working with symptoms and solutions.
A solution node represents instructions for a potential fix to a user's problem.
Solutions are presented to the user as instructions followed by a prompt for the user to indicate whether the solution solved the problem.
For more on working with solutions, see Working with symptoms and solutions.
A choice list node allows users to choose between several symptoms at once instead of needing to answer symptom questions one after another.
Any backtrack that leads to symptoms can be right-clicked and turned into a choice list. Choice lists can also be right-clicked and converted back to backtracks.
For more on working with choice lists, see Working with backtracks and choice lists - What is a choice list?.
Question nodes are for asking the user a question with multiple possible answers. These nodes are created with two default responses, "Yes" and "No", but any number of responses can be configured with any desired text.
Questions are useful for giving the user multiple alternatives and are the primary way a flow steers the user toward the information they need. For example, your flow might start with a question node asking what the user needs, with one of the responses being "I have a technical question". That response could then lead to another question node asking what the user's question is about, with your FAQ questions as responses. Each of those responses could lead to another question node with that FAQ category's questions as its responses.
Message nodes are for conveying information to the user and requesting acknowledgment. These nodes are created with one default response, "Continue", but any number of responses can be configured with any desired text.
Message nodes are useful for providing information to the user, such as in answer to a user's question. For example, if your flow includes a FAQ, the answers can be presented as message nodes. Alternately, they can be used to step the user through a defined process. For example, you could instruct the user how to perform a factory reset on their device by using a series of message nodes.
Live support nodes allow users to connect with your support agents. When the assistant enters a live support node, the user's conversation enters the agent dashboard queue where it can be picked up by an agent who can then assist the user via live chat. For more information on the agent dashboard's capabilities, see Intro to the agent dashboard.
When the support agent ends the live chat, they are prompted to indicate whether the issue has been resolved. The assistant then proceeds in the flow based on the support agent's response.
Search nodes allow users to enter free text to search the flow for the information they need. The user can describe their problem in their own words and the assistant will display the best available matches from all searchable nodes in the entire flow. Clicking on a match will take the user directly to that node.
Commonly-used nodes can also be presented as shortcuts on the search node before the user has even entered any text.
See Understand search for more.
Set form data
Set form data nodes are not displayed to the user, but allow the assistant to store or overwrite data associated with the conversation.
For example, you may need users to provide their email for certain workflows but then need to prevent it from being stored in the conversation transcript. After using the email, you can overwrite it with a set form data node so that only a generic value will be stored in the transcript.
See Understand form data for more.
Form data condition
Form data condition nodes allow you to branch a flow based on data associated with the conversation.
For example, you may wish to route users to different live support agent groups based on their region. If their region has been specified in a form, a form data condition can then check this data and then connect to the appropriate live support node.
See Understand form data for more.
Time slot condition nodes allow you to branch a flow based on the current time.
For example, you may only offer live support during business hours. You could have a time slot condition node connect to a live support node during business hours and to a contact form during other times.
External script nodes allow you to set form data based on the output of an external script.
External script functionality is currently experimental. To work with external script nodes, please reach out to your Mavenoid representative.
See Understand form data for more.
External ticket nodes create a ticket in an external ticketing system if you have an active integration. The ticket is populated using the current conversation transcript and any associated form data.
See Understand help desk integration for more on this subject.