Tutorial - Create a flow for troubleshooting
This tutorial will step you through building a simple flow for troubleshooting a digital clock, introducing you to several of Mavenoid's useful capabilities along the way. It is expected to take about 15-30 minutes.
You will need:
- An account with the "modify flows" permission.
Create a new flow
- Navigate to the assistant builder by clicking the hamburger menu in the top left and selecting "Assistant builder".
- Click the "CREATE A FLOW" button. This will be in the center of the left pane if you don't have any flows; otherwise it will be in the top right.
- Choose to start from a template.
- In the future, you may wish to start from one of the populated templates. For the purposes of this tutorial, you should start from from scratch. Select "Blank" on the top of the list and click "CREATE FLOW" in the bottom right.
- Your new flow is created.
- Click the settings icon in the canvas toolbar to open the flow settings panel.
- Name your flow as desired. This guide will use the name "Digital clock".
You now have a new flow ready for building.
What flows start with
Your brand-new flow already has a few automatically-created nodes.
- Start node. This indicates where the flow begins. Whatever you connect to the start node will be the first thing the assistant shows to the user. (You can learn more at Understand the types of nodes - Start.)
- Success jump target. This determines what the assistant should do once the user indicates the flow has solved their problem. You can disregard it for now. (You can learn more at Understand the types of nodes - Success.)
- Out of solutions jump target. This determines what the assistant should do once the user indicates that none of the flow's solutions solve their problem. You can disregard it for now. (You can learn more at Understand the types of nodes - Out of solutions.)
Navigate the canvas
As you add nodes to the flow, you may need to reposition them or change your view.
- You can move nodes by clicking and dragging them around the canvas.
- You can pan around the canvas by clicking and dragging the background.
- You can zoom in or out using the mouse wheel.
Start building
By adding nodes, you can control what the assistant will show to the user.
Add a starting question
Flows can provide users with different content depending on their needs. In this case, you can start by asking the user if they need help with their clock.
- Click on the small circle on the right side of the start node. This circle is called a connector, and clicking on it will allow you to create and connect a new node.
- In the flyout menu, select "Question".
- A question node will be added to the canvas and the edit panel will be opened.
- Enter the question "Is there a problem with your clock?"
Preview the node
Whenever you are editing a node, you can preview it to see what it will look like in the assistant.
- Find the eye icon to the left of the edit panel's title bar.
- Click the eye icon to open the node preview.
Any time you want to see how a node will be displayed to users in the assistant, you can use this method to preview it.
Add a symptom
If the user answers "Yes" to the question "Is there a problem with your clock?" the flow should then try to determine what's wrong with the clock. This can be done using symptoms. Symptoms are slightly more complicated than questions, but for troubleshooting can be far more useful.
- Click the small circular connector on the right side of the "Yes" option on the question node.
- In the flyout menu, click "Symptom".
- A symptom will be added to the canvas and the edit panel will be opened.
- Enter "Display flashing "12:00"" for the symptom description.
- Enter "Is the display flashing "12:00"?" for the question to user.
This symptom now represents a yes-or-no question that will be asked to users. You can preview it to see what it will look like in the assistant.
One important thing to understand is the "Working" and "Faulty" indicators next to the answers. The user's answer to a symptom's question indicates whether that particular symptom is in the "faulty" state, meaning that problem is in fact present and needs to be dealt with, or in the "working" state, meaning that problem is not present and doesn't apply.
In this particular case, a "Yes" answer indicates that the display is flashing and thus the symptom is in the faulty state, while a "No" answer indicates that the display is not flashing and the symptom is in the working state. In other cases, the faulty and working answers might be the opposite order. You can swap them by clicking on the "Working" and "Faulty" arrows.
When adding symptoms to the canvas, make sure to correctly specify which answers are "working" and which are "faulty".
Add a solution
If the user answers "Yes" to the question "Is the display flashing "12:00?"" then they can fix the problem by setting the time on the clock. Using a solution, you can have the assistant instruct the user to do this.
- Click the connector on the right side of the "Display flashing "12:00"" symptom.
- In the flyout menu, click "Solution".
- A solution will be added to the canvas and the edit panel will be opened.
- Enter "Set the time" for the solution description. This will be shown to the user in the assistant.
Your flow can now solve one of the problems that can occur with a digital clock.
Preview the flow
In addition to previewing individual nodes, you can preview the overall flow to see how it behaves based on the user's responses.
- Find the eye icon in the canvas toolbar.
- Click the eye icon.
- The assistant will open on the canvas, starting with the question "Is there a problem with your clock?"
- Click "Yes" to be taken to the "Display flashing "12:00"" symptom.
- Click "Yes" to indicate the symptom is in the faulty state and be taken to the "Set the time" solution.
Once you're on the solution, you can click "Problem solved" to be taken to the success jump target or "Problem is still there" to be taken to the out of solutions jump target. Right now they both have default behavior so there is no difference between them.
As you add more content to your flow, you can preview it at any time to ensure it behaves as intended.
Expand the flow
Right now the flow can only handle one problem, which isn't very useful. By adding more symptoms and solutions, you can expand the flow to handle more.
As you add more to the flow, recall that you can click and drag nodes to reposition them on the canvas. You may need to do this to keep the flow readable as you proceed.
Add a second symptom
- Click the connector on the right side of the "Yes" option on the question node.
- In the flyout menu, click "Symptom".
- A symptom will be added to the canvas and the edit panel will be opened.
- Enter "Display not on" as the symptom description.
- Enter "Is the display on?" as the question to user.
- For this symptom, a "Yes" means the device is working while a "No" means it is faulty, so click the "Working" left arrow next to answer 1 so that answer 1 is marked "Working" and answer 2 is marked "Faulty".
You might also have noticed that a new icon has automatically been added to the canvas.
This is called a backtrack. It appears automatically whenever multiple symptoms or multiple solutions are connected to the same node. This is because when the user rejects a symptom by giving the "working" answer instead of the "faulty" answer or when the user rejects a solution by clicking "Problem is still there", the assistant will step back in the flow to the nearest backtrack and then move forward to the next symptom or solution if there are still any it hasn't tried.
There are some other things you can do with backtracks, but those will come later.
Add a third symptom
- Click the connector on the right side of the backtrack.
- In the flyout menu, click "Symptom".
- A symptom will be added to the canvas and the edit panel will be opened.
- Enter "Display flickering" as the symptom description.
- Enter "Is the display flickering?" as the question to user.
In this case, a "Yes" indicates the device is faulty while a "No" indicates that is working, so there is no need to change the "working" and "faulty" answers from their default.
Add more solutions
The flow can now recognize three different problems, but it only has a solution for one of them. Adding more solutions for the new symptoms can fix that.
- Click the connector on the right side of the "Display not on" symptom.
- In the flyout menu, click "Solution".
- A solution will be added to the canvas and the edit panel will be opened.
- Enter "Plug in the clock" for the solution description.
- Again click the connector on the right side of the "Display not on" symptom.
- In the flyout menu, click "Solution".
- A solution will be added to the canvas and the edit panel will be opened.
- Enter "Confirm outlet is powered" for the solution description.
Again, a backtrack is automatically created. This time it's connected to the "Display not on" symptom because that symptom now has multiple solutions connected to it.
In this case, it applies if a user reaches one of these two solutions and clicks "Problem is still there." The assistant will step back to this backtrack and then forward to the next solution.
- Click the connector on the right side of the "Display flickering" symptom.
- In the flyout menu, click "Solution".
- A solution will be added to the canvas and the edit panel will be opened.
- Enter "Check that the plug is connected firmly" for the solution description.
Another way to add a node
One other solution that might be necessary is having the clock repaired or replaced. But this could be a solution to multiple different symptoms.
- Double-click on an open spot on the canvas background.
- In the flyout menu, click "Solution".
- A solution will be added to the canvas and the edit panel will be opened.
- Enter "Repair or replace" for the solution description.
You can always add nodes to the canvas by double-clicking if you don't want to create them directly connected to another node. You will then have to manually connect the node, however.
- Click and drag from the connector on the backtrack next to the "Display not on" symptom to the connector on the left side of the "Repair or replace" solution to connect them.
- Click and drag from the connector on the right side of the "Display flickering" symptom to the connector on the left side of the "Repair or replace" solution to connect them as well.
- You may want to reposition the nodes for greater readability, but their connections should look like this:
If you haven't previewed the flow in a while, this might be a good time to do so. You can see how the assistant behaves based on how you respond to the various symptoms and solutions.
Improve how options are shown to the user
There are a couple of ways in which we can improve how the user is prompted with symptoms and solutions.
Set manual ordering for solutions
For the "Display not on" symptom, it's probably best to suggest that the user plug in the clock before suggesting that they confirm the outlet is powered, and repairing or replacing the clock should probably be a last resort. It's possible to guarantee the solutions are shown to the user in this order.
- Click the backtrack next to the "Display not on" symptom to open its edit panel.
- Drag the "Plug in the clock" branch to the "Check First" slot.
- Drag the "Confirm outlet is powered" branch to the "Check First" slot under the "Plug in the clock" branch.
- Drag the "Repair or replace" branch to the "Check Last" slot.
Now when the user reaches this part of the flow, the assistant will offer the solutions in the listed order instead of leaving it up to the AI to decide.
Use a choice list
At the beginning of the flow, after answering that they have a problem with their clock, the user currently has to be shown each symptom in turn and answer yes or no. It might be easier to have them choose their problem from a list.
- Right-click the backtrack next to the "Is there a problem with your clock?" question.
- In the flyout menu, click "Change to Choice List".
- Click the new choice list icon to open its edit panel.
- Enter "What problem does your clock have?" as the question.
Now when the user reaches this point in the flow, instead of seeing each symptom in turn, they will see a single list of options to choose from. You can see what this looks like by previewing the node.
Note that the choices use the description of each symptom rather than its question. This is one of the reasons it's important to provide both values. A short description of the problem is a more clear label for an option in a list of choices, while a yes-or-no question is a more clear way to prompt the user for an individual symptom.