Initial Research
Before start working on anything, it is necessary to understand the feature in and out. It helps to empathize with users and deciding the scope of the product.
The initial process starts with talking to people, how they communicate with other team members on Flock and why there is a need for mailing lists.
Understanding Flock Communication
In Flock, people communicate with others through two ways, either one on one chat or in a channel. Channels on Flock is where the real magic happens! Team members use channels for departments, small teams, and projects to keep everyone in the loop.
Understanding Mailing list
A mailing list is a list of emails and names of individuals to send emails to many recipients.
​
In organizations; people use mailing list in different departments for different purposes. This includes HR, IT, Admins for the announcement. Teams use for project discussions. Sales and marketing for sending emails to target users.
Need of mailing lists
From past many decades, people use emails as a primary source of official communication, but in past few years, the trend has changed. Now people communicate more on chat platforms like Slack, Hangout chats, Flock, etc.
Still, emails have advantages over chat, and people prefer emails for essential communication. Due to the nature of chats and limitations, mailing lists are still popular and important part of any organization.
Work | Annie Support Chat

Annie - Flock Support Chat
Helping users by Bot
Goal
When we make large products, resolving users queries and doubts becomes harder. In Flock, we were facing the same issue and loosing out the short-term retention of the users. While other teams were working on other metrics, our goal was to improve the short-term retention by providing some Flock Support.
Problem Identification
Looking at the user retention numbers, we found that many of the users were dropping in the first week. To identify the actual problem we talked to few of our dropped users and analyzed. The main pain point for initial users was that they were not able to talk to anyone, as they were the only users in the team. Along with that, there was no one to answer their questions as they were overwhelmed with the features.
Existing solutions
In Flock, there were existing options which were not doing great as per the expectations. For instance; Flock Assistant, Flock Bot, Coach marks and Contact support, etc.

By user study conducted by UX Researcher, we started writing job stories for our users.
Users and Job Stories
Prakhar Srivastav
Product Manager
Use Gmail
When I am looking for a communication tool for my team for the first time, I want to know the features and how to use them, so I can make a proper decision whether I should invite others team members to use the tool or not.
Nitish Das
Startup enthusiast
Use Gmail & Whatsapp
When I signup in Flock for the first time to see how this works, I want someone to give answers to all of my product related queries, so I can easily learn about the feature and onboard other team members.
Proposed Options
There were following different proposals that we came up with. We measured each option with different parameters like time, convenience, accuracy, engagement, experience, and satisfaction.
Contact Support
Contact support is an option where user can contact Flochad k support through mail along with the session logs. Flock already had contact support option, which we could improve.
FAQ’s
Creating FAQ app inside Flock was another option, where we could answer most frequently asked question and option to ask questions.
Automated Bot
Real-time automated chatbot was an option where the user can talk to bot and bot will give the answer to all the related queries.
Support Chat
Another option was to provide real-time support chat where user can talk to some real person and get all the queries done.


Support Chat
We decided to provide support chat to the users. We were thinking to create a platform for support agents which will be linked to the support bot in Flock. To see the possibility and feasibility, we made initial mocks for support platform and the workflow of support system.
Support Chat Flow

Annie Support Chat Mocks
Pending Chats:
Whenever a user sends a message to support bot, it creates a new ticket in the system and shows in pending chat, until an agent accepts the chat.
All agents can see these chats, anyone can accept or close the chat.
User Info:
Agents can see user details on the right side. This info helps agents to know more about the user. Info required to show was User Info (Name, Email, GUID, Phone Number), Profile Info (User Role, Title, Department), Platform Info (Client, Client Version), Geographic Info (Language, Location, Time Zone), Team Info (Team Name, Team URL, Team Size, Active Users).

My Chats:
Whenever any agent accepts a chat, it moves from pending to his “My chats.” My chats are the ongoing conversation between users and agent.​

Closed Chats:
When users queries get resolved by agents, they close the ticket. All closed tickets show in closed chats.

Start new chat:
There are many incidents when the agent initiates the conversation with the user, for instance; If a user posts something on social media or any external platform, agents have to connect with the user.
Search user with the email address:
Agents can search any user by email address to initiate a new chat.


Major Challenge - Tech Effort
Should we put that much effort, or think creative?
Developing a full-fledged support system is not one night task. When we completed our initial mocks, we discussed this with the devs. Involving developers in initial product development phase is essential. It helps to understand the technical complexity of any feature and the effort to build.
While discussing with the developers, we understood the level of complexity and effort it will take to build. It would have taken around 4-5 months tech effort of 3-4 developers to create this support chat platform. It was a lot of effort.
Due to this, we had to come up with something which can solve the problem in minimal effort. We decided to utilize the existing app ecosystem to build a solution.
Connecting Users to Agents through bots
We have already defined the user side behavior and experience. We decided to replace the support chat platform with a Flock support team in Flock messenger itself.
The primary challenge was to establishing communication between two teams. We utilized the Flock platform capabilities to do so. We created a Bot system where Flock agents can talk to any user through bots. Through webhooks, bots can communicate between teams.
Stakeholders Interactions:
There were multiple stakeholders and bots which interact differently with each others.​
User:
A user can be any person with GUID in any Flock team. User can send message to Flock support bot only.
Agents:
Agents are support users in Flock support team. Agents will get the tickets form Annie support bot, they can accept or close the tickets. Once ticket accepted, agents can send message to Dummy user bot in channel.
Flock Support Bot:
Flock support bot is a bot available to all Flock teams for all the users. A user sends a message to Flock support bot as he cannot send a message to the agent in another team. When its a new message it sends the message to Annie support bot and create a new ticket. Once an agent accepts the ticket, it sends the message to Dummy user bot.
Annie Support Bot:
Annie support bot is a bot install only in Flock Support team. Whenever any user sends a message to Flock support bot, Annie support bot creates a ticket and send the message to all agents in Flock support team.
Dummy User Bot:
Whenever any user accepts a ticket, it creates a channel between that agent and a dummy user bot in it. Whatever agent send a message with / command, dummy user bot listen to it and send to Flock support bot. Then Flock support bot sends it to the user.

Flow with multiple users and agents

T-1 : Team 1 (Team ABC)
U-A : User from team 1
T-2 : Team 2 (Team XYZ)
U-X : User from team 2
T-3 : Team 3 (Flock support team)
A-1 : Agent 1
A-2: Agent 2
B-1 Flock Support Bot
B-2 Annie Support Bot
UB-A Dummy User Bot of U-A
UB-X Dummy User Bot of U-X
Information Architecture

Automated message form Flock Support to team creator:
Whenever a user onboard to the Flock, we send an automated message from Flock support to user. This message is to initiate some conversation and to help him set up the team.

The user can reply to this message to initiate some conversation, whenever a user sends a message to Flock Support, it creates a new ticket in Flock support team.

Ticket creation :
Whenever a fresh ticket get created in Flock support team, Annie support bot sends a message to all the agents on the team.
​
The message will include the username and team in the message body. GUID and the actual message will reflect in attachment along with status. Message attachment bar shows in green to indicate its an open ticket. any agent can accept the ticket by clicking on Accept Chat message attachment button.
Message Body:
<user_name> from <team_name> sent a message.
Attachment Body:
GUID - <user_guid>
Message - <actual message>
<Status>
Attachment Button:
Accept Chat

Accepting ticket:
When any of the agents accept the chat, the status will get updated in the attachment. This change will reflect to all the agents.

Channel creation with Dummy user bot:
As soon as agent accepts the chat, it will create a channel for the conversation. It will add the agent and Dummy user bot in this channel. Channel name will have <user_name> from <team_name>. This will be a dedicated place for an agent to talk to the user. Agent can add other agents to this channel to have conversation.

Using / command to send message:
Because it is a channel and agent has to send the message to bot, there should be some command for dummy user bot to understand that agent is talking to bot.
When agent sends a normal message in channel it will send in channel but the bot will not listen to it. This helps agents to discuss something between other agents without letting the bot know. When an agent wants to send a message to user they use /s command. Using /s command will send that message to summy user bot and send to the Flock support bot in other teams which sends the same to the user.


Message action button to send message, image or file:
There is another way to send a message to the user through message action button. There is one message action button “Send to user” this can send a normal message to the user without using any command.
This message action button is really helpful to send an image or file to the user. An agent can send an image to channel and then through the message action button, he can send it to the user.

Close ticket:
An agent can close any ticket by using /close command in the channel. This will simply close the ticket and agent will leave the channel. After this, if the user sends any message to Flock support, it will create a new ticket.

Initiate conversation from agent:
There are many situations when agents needs to initiate conversation with users. At this condition agents can initiate chat with user through user’s GUID. Aget has to type start<GUID> to start the conversation. Once user enter the command with user’s GUID, it will create a channel with him and dummy user bot.
