Logic diamonds, also known as decision diamonds, are a commonly used element in flowcharts to indicate decision points in a conversation. While they can be useful for mapping out different conversation paths, they have several disadvantages that can make them less than ideal for conversational design.
One of the main drawbacks of using logic diamonds is that they can be difficult to read and follow, especially when multiple decision points are involved. As a result, designers may struggle to identify and address potential issues with the conversation flow, leading to a frustrating and confusing user experience.
Another limitation of logic diamonds is that they are static and inflexible. Expected user input is typically narrow in scope and doesn't encompass all possible user responses, resulting in poor assistant coverage. User data or variables that dictate the assistant's behaviour when choosing a path from a logic diamond are also stubbed
For example, in the diagram above, "logged in" is a state represented by a logic diamond, and the assistant will select a pathway depending on the state value. However, this format can be very ambiguous to other designers or developers; what variables are used to determine whether the user is logged in? when do we capture the user's email before this logic step?
In short, a logic diamond is a good first step in representing a series of potential paths, but cannot closely model an assistant's actual logic.
Voiceflow's Condition Step
In contrast, Voiceflow's Condition Steps offer a more dynamic and flexible approach to logic and decision-making within a conversational interface. This is because instead of vague statements alluding to the condition(s) required to progress through a specific path, Voiceflow condition steps very clearly define the variables and their necessary values.
In the above screenshot, the first flowchart has been transformed to a Voiceflow project, where the variables logged_in and user_email are used as working variables to decide the logic of the flow.
For the purposes of a prototype, Condition labels can also be solely used to indicate the necessary constraints needed, without indicating the variables. Actions on a Condition step also enable you to avoid excessive arrow-drawing and instead clearly mark the corresponding step after a condition is fulfilled.
The Power of Real Variables in Condition Steps
By explicitly defining user attributes that are evaluated in order to decide from a possibility of multiple conversational pathways, conversation designers can create more robust, comprehensive logic flows with predictable outcomes clearly defined through the use of if conditions.
- There is greater transparency regarding the user attributes that matter to each decision tree when conversation designers coordinate handoff with the development team. As opposed to potentially ambiguous user states, designers can clearly define the values needed and developers can accurately replicate the design flows from the built-in documentation
- If designing for a one-click platform, like WhatsApp and SMS, conversation designers can build complex logic statements in Voiceflow without a single line of code, enabling them to have greater agency over the direction of their designs.