← All workOracle / Low-code platform

Visual Flow Designer

Low/No code solution for platform users to authorize chat bots
Overview
Have you talked a chat bot during online shopping? Oracle Digital Assistant (ODA) is a platform where business users create chat bots like that. ODA has been using YAML (a mark up language) to configure conversation flows for chat bots. When I joined ODA, I was excited to ideate and design the visual flow designer to replace YAML editing. When I joined, Oracle was still using the old design system which is expected to be changed in a few months. It took more than 2 years to actually ship this feature, with countless shiftings back and forth working with design system designers, PMs and engineers.
My Contributions
I have been the main UX designer for Visual Flow Designer throughout the process with a lot of support from my manager, engineers, and PMs. Oracle's design system supports me with the VxD of nodes and links. Contribution highlights:
  • Ideation
  • Interaction design
  • Information Architecture
  • UX Research
Timeline
2019.09 - Present
TOOLS
Sketch, Figma
Design Challenge
How might we empower customers without coding knowledge to design conversations in a modular, simple, intuitive way?

Our goal for this project is to build a visual authoring system that customers without coding language can use to design conversations.
Meanwhile, all our backend functions were created in the context of YAML. This brings the biggest constraint of my design: I need to design the visual authoring system without altering too much of the backend functions.

Why a New Authoring System

Conversation's Construct
When I joined the team, I delved into ODA's instance and sketched a quick object relations diagram:
Object Relations
Business users aim to build functional skills. In order to make a skill functional, they need to design conversations.

Because of conversation's complexity, ODA has been using YAML as the configuration language for users to design conversations:
YAMLexample
Customers
ODA's mission is to help business users create channel specific chat bots that can interact with their end users. I created the following persona to capture our users' characteristics:
PersonaUser groupsCollaborations
We aim to empower PMs and Conversation Designers to use ODA so that they can collaborate organically on our product.
Iteration Journey
IterationMap
I created the above map to help PMs and engineers understand why we decided to pivot at each stage and our vision in the future. While YAML is the most powerful configuration approach, it's the hardest to use. Before I joined, PM teams partnered with developers and implemented Conversation Designer, an easy-to-use tool that cannot handle complex conversations. After I joined, I drove the team to build this consensus:
The new authoring system needs to strike a balance between ease-of-use and functions.

Early Design and Research

This stage is dedicated to exploring off-roadmap ideas. I sketched the following to address 3 "Next Gen" scenarios:
  • Auto Adding Skills
  • Manually Adding Tasks
  • Export
AuthoringExpMap
Low-fi Design

Diagram Node Inspector

To inspect each conversation unit of the diagram, we narrowed down to 2 ways: Zoom vs Side Panel.
Floating
SidePanel
I suggest not committing to either yet since both have their values:
  • The Zoom model's guides the user to the properties of conversation unit more naturally (with a zoom-in animation ), yet prevents the user seeing more context (more nodes) around the selected node.
  • The Side Panel model doesn't create much visual transition, yet it shows more context without moving elements around and is easier to scale.

Midfi Design Exploration

Diagram Interaction Model
My manager and I then brainstormed with our PMs in a meeting room: how might we create a diagram that helps the end users view payslip (a use case that our user provided)?
I created some midfi design addressing multiple interactions. The following is one example from a wide range of interactions I explored.
addnew1
addnew2
addnew3
addnew4
addnew5
addnew6
addnew7
addnew8
addnew9
addnew10
addnew11

Hi-fi Design Iterations

Users Feedback
We showed a deck with hifi design to some internal users and got the following feedback:
View Complete DECK

1. Extra Click

After creating a new state, the user needs an extra click on "Component" to edit the actual content for non-virtual components.

We should make the "Component" selected by default when a state is created.

example

2. Separated

The variable configuration is separated from the flow design experience. If a user wants to select a variable for a state, and the desired variable doesn't exist yet, the user needs leave the page and go to "Configuration."

We should allow the user to create on-demand variables inside the flow experience.

example2Example3

3. Map Intent

Intent Mapping is hidden in "Main Flow - Events - Intent Events." Mapping an intent to a flow is a very common behavior when a user creates a flow.

We should allow the user to select an intent when they create a flow.

Map1Map2

4. Hidden

1. The simplified virtual components are too hidden within the component pickers. The user needs to click the navigation back and forth to find the desired component.
2. The context of where the user is adding the state is also hidden behind the component picker dialog.
‍
For MVP, at least we should surface the 3 virtual components to the top level.

example4example4 2

5.  Primary and Secondary Text

Originally, we have the state type as primary, and state name as secondary following design system's guidance. However, the same type of state might occur multiple times in a row in the context of ODA's diagraming. Node type as the primary text doesn't inform the user which state it is in a diagram. Therefore, I switched them as following:
NodeIteration
View full design process

Reflections

Currently the engineers are implementing my design and hopefully it can ship by the end of this year. The whole process is like a marathon with many ups and downs. Some lessons I learned:

  • Be strategic. I documented and shared a variety of design solutions with stakeholders, helping them making decisions, yet I'm not part of the planning process when some decisions are made by PMs. In this project, I was not able to impact some of the decisions because I knew them too late. I need to be in the strategic room in order to understand the whole context.
  • Involve engineers early. We spent too much time on the blue-sky design instead of investigating what the legacy backend supports, dreaming that they would let go some of the legacies and build new ones. We should involve them early and see what's feasible within the timeline, and create a long-term and short term goals to kick-off design.
  • We definitely need more user research data. Currently, most of the users sessions are more like demo/walkthrough instead of structured usability testing. I've only talked to 3 out of 700+ customers. We need to recruit users based on user types, and use user data to inform design decisions. Fortunately, PMs heard me and will release a LA (Limited Availability) release before MVP. I made a user research proposal:
View RESEARCH PROPOSAL

NEXT PROJECT

PEFA Assessment