Flock Threads

UI/UX

Overview

Flock is an online collaboration and messaging platform that solves workplace communication needs. Flock has a powerful suite of business collaboration tools which enhance user productivity.

Go ahead, ask questions and dig deeper, have side conversations, or go on a tangent without interrupting the flow of conversation! Discussions can evolve, branch off, new topics are introduced or old ones resurface. Threads helps connect related messages, make it easier to follow and manage variety of conversations

Role & Responsibility

Started from research, conceptualising the flows to creating the visual design and communicating the interaction to developers.

Problem

People tend to have multiple related topics in a single channel. It’s really difficult to keep up with the timeline-based linear nature of a large or very active group chat. Most of the times you have to interrupt the current conversation flow in order to reply to a previous message, pivoting the conversation back to a previous context.

The most common reasons for this, amongst others, are fast message flows and delayed responses. Users can’t be checking in on group chats all day long. Overlapping conversations in a single channel results into disorganisation of the information and losing the context of the discussion.

User Interviews

sers are profiled based on their department and roles. We conducted customer and market research to drive our planning phase. The key insights defined the launch version of the product

User Stories

After understanding their actions, feelings, pain points and desired outcomes we went ahead to write the user stories

1. When a designer wants to discuss about Design updates in a channel while the project manager is taking updates on other tasks, user want to start a new thread so that conversations don't get mixed up

2. When a manager is away for a while and lot of discussion has happened in a channel, user wants to see the entire discussions pertaining to a specific topic together to avoid parsing through hundreds of unrelated messages

Key Insights

In order to provide an effective solution we first tried to understand how users currently address this problem and how do they generally interact with channel messages. If the user wants to reply to something that’s missed on a group chat, he has only the following ways

Reply out of context

The task is done, not a problem if it’s not a serious thread. The recipient isn’t notified about the particular reply. The chat conversation context is broken.

User Reactions

Instant and faster then text message. The recipient isn’t notified. Reactions do not help further engagement due to their curt nature.

User Mentions

Fast, can mention multiple people. Engaging as the recipient gets notified. Message still interrupts the conversation flow.

Direct Messages

Engaging, recipient is notified. group conversation is broken, as it moves to personal environment and the group members will miss it.

Risk

Emails have threaded conversations, one of the binding feature to users which is preventing them to let go of emails even while using enterprise based chat messaging platforms. While trying to bring the benefits of threaded conversations to chat platform the risk was to disrupt the casual chat room vibe.

Goal

Discuss divergent yet essential thought processes in a single channel without distracting the channel’s audience. Overlapping conversations in a channel, yet organised information
Grouping these messages to allow users to easily get back to discussions around a thread at a later time, preserving meaningful context.
Decluttering the main conversation but improving the consumption of threads within the channel

Discovery

Having defined the area we had to focus on, we moved on to ideation. Starting with competitive and functionality analysis.

We checked other apps and platforms with similar functionality for insights into common patterns to understand user’s mental model - Slack, Flockdock, Google Chat, Microsoft Teams, Facebook Workplace etc. and prepared moodboards to explore creative ways to solve the existing problems.

Criteria Slack Teams GChat Flowdock
Model

Sidebar

Inline

Inline

Inline Hashatags

Where?

Groups + DMs

Groups Only

Groups + DMs

Groups Only

New Message Positioning

Thread remains at the same position, New messages highlighted in the global view

Moves the entire thread to the end of conversation

Move the entire thread to the end of conversation. Different views for all members.

Last message displayed in the main conversation, at the end of the scroll.

Notification Triggers

New Thread notification
separate from message notification

New message
notification received for new thread

New message
notification received for new thread

New message
notification received for new thread

Dedicated Hook

Yes. The last interacted threads are shown at the top.

No

No

No

Proposed Models

Keeping in mind the tech constraints, user pain points and the established mental models we proposed four different approached. Weighing the pros and cons of all the different models, the sidebar model was selected

Sidebar Inline Hashtags Modal
Pros

-A dedicated hook that doesn’t block main chat.
-Can be used as global view for all threads.
-Less loading time.
-Visibility not lost on new messages added to same thread.

- Threads weaved in with conversations, context retained
-Intuitive, users likely to use more often
-Can see few replies upfront.
-Same view for Messages and Threads

-Encourages topic based conversations
-Sidebar and inline both views possible, context not lost

-Less dev effort,
-No elaborate UX journey

Cons

-Context lost when some members reply to thread and some send new messages.
- Have to go to a different view to read the threads. Sync lost.

-Visibility lost when new messages added to exisiting thread.
-Buggy and slower due to long message attachments
-Message Ordering issues

- Added effort to add hashtags, remember them

- Blocks the main chat view, entirely new screen to view threads.
-Members will have to wait for all the messages to load and scroll through the modal.

Mitigations

- Less probability of missing new thread messages
-Users can read the thread and conversation at the same time.

-High probability of messages being lost due, if notification is missed.

- Can automate them for quick replies and exhaust them after a certain time interval.

-Not user friendly, if slow and members forced to scroll.

Wireframing

High fidelity wireframes were made to resolve the existing problems. Building on the analogy of an open room conversation, when three people are talking forming an group in a room full of people, there may be lot of people around who may or may not pay heed to the conversation between the three people. Threads functioned in the same way, they provide a dedicate sidetrack to the main conversation chat which people can consciously take a call whether they want to participate.

1. Threads app added as a pre installed app, to ensure high discoverability.

2. Users were allowed to convert any existing message into a thread.‘Start a thread’ message action button given high prominence over other buttons, to entice users into creating threads.

3. Sidebar opened for creation of a thread, showing the original message on which thread was started. Message input field at the bottom of the screen to reply to the thread. Checkbox to duplicate the reply in the main chat conversation checked by default.

4. The original message attachment updated to reflect the total reply count, this action link could be used to view the entire thread in the sidebar.

5. If the reply was duplicated to the main conversation, it was displayed along with the original message and CTA to open the thread on the sidebar. If the reply was not duplicated to the main conversation then Sender Visible Messages were sent to the participants to notify them of the activity in the thread. It displayed the reply along with original message and CTA buttons to open the thread in the sidebar or disable the notifications for the particular thread.

User Testing

To validate the use cases and the improvements, we conducted multiple rounds of user testing with a dozen of participants on functional prototypes. We recorded their responses and compared the data. With each round of testing there was one thing that worked perfectly, we took each nugget that worked right and modified the design to what it is currently.

Visual Design

Deriving from the usability test, peer reviews we made the UI design

1. Message Input field made floating to ensure it’s not missed and to increase visibility. Input field made to stick to the bottom of the screen only when threads become scrollable. Checkbox to duplicate the reply in the main chat conversation unchecked by default to declutter the main chat

2. Added option to attach files and images. Dragging and dropping attachments was enabled for the desktop client.

3. Added support for mentioning users and looping in new people. Easy to jump into any thread and mentioning new people to get their inputs.

3. New replies on original message represented in rollup to discover other participants. Easy to grasp. Also added a tag in case of new unread messages. This acted as a subtle nudge for the users to visit the threaded conversation.

4. Bot message was sent 24 hours later for summarising all the channel threads. Showing the original message on which thread is started along with the reply count.