Channel Talk team features and customer DB
At Channel Talk, a customer support service, I built the screens for teams alone, a feature that assignment, mentions, the support bot, and marketing automation all use, and improved bulk customer data handling.
1,000Records one bulk action can handle, five times the earlier 200
- 2021.11 ~ 2022.09
- Channel Corporation
- Frontend for team features and customer DB

Core value
Managers can now be grouped into teams, so one mention calls the whole team and a chat can go to a team, and operators no longer wait at the screen for a large download to finish.
Outcomes
- Built the frontend for creating, listing, mentioning, and searching teams on my own
- Added team conditions to assignment, the support bot, and marketing automation
- Raised the limit for one bulk action on customer data from 200 to 1,000 records
- Search results share as a single link and stay put after going back
Tech stack
Context
I worked on the chat team at Channel Talk, a customer support SaaS. For teams to collaborate, the editor needed team and member mentions with automatic chat assignment. Search and insertion had to stay smooth even with many members, and search had to support conditions that combine team name and affiliation. For operators handling large volumes of customer data, the problems were throughput and sharing search state.
Decisions and implementation
- Team mention and auto-assignment editor: In the ProseMirror editor, I assembled team and member mentions, a popover UI, and a virtualized list using a composition pattern, so even large member lists rendered without stutter.
- I built autocomplete on an expression search that combines team name and affiliation conditions, which removed the limits of plain name matching.
- I established code review and Gherkin BDD test conventions on the team, and Playwright multi-browser E2E tests checked the editor for regressions automatically on every deploy.
- Customer DB bulk actions and search: I raised the bulk action limit fivefold, from 200 to 1,000 items. Download progress was tracked in real time over WebSocket, with a DM sent automatically when the download finished.
- I made URL SearchParams the single source of truth (SSOT) for search state, so combined filters and sorting, restoring state on back navigation, and sharing results by URL all followed it.


