Changing the Flow Based on a Users's Choice
Sometimes you need to ask the user a question and change the flow of the guide based on the answer that the user provides. The answer does not necessarily have to be something in the UI of the application. It can be something specific to what the user wants to do now.
A good example of this is creating a troubleshooting guide or, as some call it, a diagnostics guide.
You have probably already been on one of these phone calls with a customer support representative (CSR). You explain the problem to the CSR and in return s/he asks you a list of questions. Each question depends on the answer you gave to the one before it. At the end of these questions, hopefully, your problem is solved.
A troubleshooting/diagnostics' guide can be of tremendous help to either party here:
- If you didn't have to call anyone to ask these questions you'd be happy to service yourself!
- If the CSR did NOT have to read this list of questions from a printed document or worse her/his torn notebook, the service would be much quicker and less prone to error.
Actual Use Case
Let's see this in action with an real life scenario, "smartphone battery does not charge".
This would be the document your CSR will be reading from:
- CSR: Is the wall socket providing power? Try connecting the charger to a another socket that you know for certain works. For example, a socket you have a working lamp connected to.
- You (option 1): I changed the socket and it works! --> FINISH
- You (option 2): Still nothing --> GOTO 4
- CSR: Are you charging from a USB port on a computer?
- You (option 1): No --> GOTO 7
- You (option 2): Yes --> GOTO 8
- CSR: Contact your service provider. The phone may be damaged.
- CSR: ensure that the computer is turned on. Some computers provide no USB power when they’re turned off.
- You (option 1): I turned on my computer and it works! --> FINISH
- You (option 2): Still nothing --> GOTO 7
The Guided Learning Way - Session Variables
Guided Learning allows you to ask the user a question inside a tooltip; It saves the user's answer and allows you to change the flow of the guide accordingly using Branches. Read more in our Branches article.

The tooltip above consolidates the 3 steps in our list into a single tooltip. To configure the possible answers we will need to click on the session variables button and configure each answer as can be seen in the image below.

Notice that all answers should have the same value (e.g. q1) set as the Variable Name.
What we need to do next is to alter the guide flow based on the answer that the user clicks on. To do this we will setup a branch to jump to the relevant step. In our example, if the user click Yes! we should end the guide; Guided Learning will default to going to the following question hence we do not need to creating any additional settings for the case that the user selected Still Nothing

The above outlines the condition that needs to be added to the branch.