Invite anyone to a channel in Zoom Team Chat by sharing a link or QR code
Context
Zoom Team Chat is a workplace messaging app that competes with Slack and Microsoft Teams. Initially aimed at enterprise customers, Team Chat contains numerous barriers to collaboration with external users. 
As part of a broader initiative on external collaboration, I was tasked with improving the invite and join experiences.
Product strategy
🪴 Grow user base
Increase adoption and stickiness of Team Chat as a central communication hub of Zoom Workplace.
🚀 Easier than competitors
Compete with Slack and Teams by making it easy to connect with external users.
👥 Small business
Expand beyond enterprise customers and appeal to SMBs by embracing a more open "community" model.
💼 Embrace hybrid work
Align with customers by embracing experiences for hybrid and in-person work.
Problems
🧩 Fragmentation 
Invite links were only available on mobile, and the join experience varied across platforms.
😶‍🌫️ Hidden logic
External users couldn't use channel links, and there was no explanation for why.
📆 Expiration
Links were generated for every user and automatically expired after 30 days, making them unreliable for later reference and hindering the potential for community growth. 
📵 No QR code
Unlike competitors, Zoom did not allow users to scan a QR code to join a channel.
Competitors 
Before defining our goals, I took a deeper look at our main competitors.
I learned that most competing chat apps provide an easy method of inviting external users via link. Additionally, most support a separate URL for permanent reference.
Based on this, our team agreed to maintain the existing channel link while improving the invite link experience. 
Slack
Slack
Teams
Teams
Discord
Discord
Diving deep
Next, I broke down our experience product to better understand user problems and prioritize the most important issues to solve. It became apparent that our solution would span numerous personas and touchpoints throughout Team Chat.
Weighted priorities
Weighted priorities
Use cases
Use cases
Mapping the product
Mapping the product
Public/private settings
Public/private settings
Goals
🚀 Frictionless
Every channel should have a single, persistent invite link that any member can share. The join experience should be consistent no matter the method or platform used.
📸 QR code
Let users join the channel by scanning a QR code.
🛡️ Owner control
The channel owner controls who can join, and they can manually reset the link and QR code if required. 
🔗 Keep channel link
The existing channel link is widely used and consistent with competing products.
Solution across five experiences
Our product spanned five experiences and three unique personas. I tackled each of these experiences individually while considering the broader end-to-end user experience. 
1. Owner sets channel permissions
First, I needed to include controls for how invite links and QR codes were used in channels. I worked closely with my PM partner, advocating for following existing channel permissions wherever possible. 
More complex solutions were scrapped in favor of a simpler approach. The final design added only a pair of checkboxes in the "External users" section, plus a few tweaks to formatting and content. 
While this solution appears simple, the back-end logic and interaction with other settings were extremely complicated and required several weeks of review to pin down. 
Reference sheet: setting interactions
2. Member shares the invite link
Next, I set about reorganizing the "About channel" page to create a stronger distinction between both links. I explored several variations of this layout, reviewing them with fellow designers before settling on a final solution. 
First, I moved the invite link to the membership section to reinforce its primary use of adding new members.
Next, I moved the channel link underneath the channel name and description, reinforcing it as a permanent fixture of the channel. 
After this, I recognized an opportunity to add section headers to better clarify the groups. 
Finally, I replaced the custom share sheet with a native iOS/Android share sheet, enabling more flexible sharing options tailored to each member. Our engineering team also appreciated the added efficiency of using a native component. 
3. Show and scan QR code
The next requirement was to implement a channel QR code.
Thankfully, I previously worked on Zoom's personal QR code feature. This familiarity allowed me to quickly adapt the existing design to a channel use case by replicating the location of the QR code icon and modifying the resulting bottom sheet.
Scan the QR code and send a request to join
4. Join via link or QR code
The next step was to improve the join flows so that all invitees could join seamlessly. Numerous issues existed with these flows, including inconsistency between desktop and mobile, unnecessary steps, and confusing copy.
To resolve the issues above, I mapped out all scenarios across desktop and mobile, including flows for the QR code, consolidated unnecessary steps, and ensured each flow provided a consistent experience.
Happy path: external user joining via link
This is the typical path for an external user. 
5. Channel owner approves 
As the last step, the channel owner must approve when external users join. This solution had already been designed for Team Chat, so I merely had to factor the step into my flows.
Video: key flows
In preparation for our leadership review, I built prototypes of key flows in Figma and then assembled them into a brief video using iMovie. 
What I learned 
This project challenged my ability to think broadly across multiple surfaces and personas. It was a highly ambiguous project with little support from research or data, involving numerous stakeholders with strong opinions. Instead, I relied on my intuition, a deep discovery process, and competitive analysis to justify my decisions and align with PMs, engineers, and leadership. 
There were some things I could have done better. Given the breadth of the work and aggressive timeline, I overlooked a few minor details. For example, in the interest of time and maintaining consistency, I copied the QR code sheet from my prior work, changing only necessary details. Our leaders challenged why the blue scan button was present, and I was not prepared with a strong justification. This experience reminded me to sweat over the details—never assume a design is acceptable because it's been done elsewhere— and always prepare for leadership reviews by providing a strong justification for every decision.

More Projects

Back to Top