Building a Robust SaaS Widget for Exceptional Customer Support
Project Type
Web App -Widget
Tech Stack


ABOUT THE CLIENT
SaaS Company Offering Customer-centric SolutionsTheir specialty lies in offering innovative solutions that cater to the unique needs of businesses across various industries. The company operates on a global scale.
OVERVIEW
A SaaS Widget for Exceptional Customer SupportThe client wanted us to create a widget for customers to communicate with service agents through various channels, such as text and video. They wanted the app to be dependable and robust enough to surpass industry benchmarks.Key Objectives to AchieveCreate a software-as-a-service (SaaS) suite for customer support.Build an iframe widget capable of being placed on any site using a few lines of JavaScript.Flow similar to Intercom, and customers could interact with this widget to contact support
1 Millionconcurrent user capacity
5000+ Hrsof potential development time savings
30 Minsintegration and installation of widget

BUSINESS REQUIREMENT
Stable iframe Widget With Multimedia FeaturesThe widget needed to deliver a good user experience and enable agents to interact with customers effortlessly.Key Features to BuildAllow customers to communicate with agents through text and video.Enable multi-person video chat capabilities with a dynamic layout.Have Integrated screen-sharing features with real-time notifications for events and status.
Product Design




CHALLENGES IN EXECUTION & SOLUTIONS
Notification Issues and Reloading
The client did not have an RT solution during the initial development phase. This prevented us from showing call notifications when a user-initiated call started.
The widget reloaded every time a user navigated to a different page. This feature was critical, as it meant losing priceless interaction information if reloads happened before conversation closure.
PROJECT EXECUTION
Agile Development. Time and Material Method. Strict Quality Tests.
Our team utilized a Time and Material engagement model to foster better collaboration. Additionally, we prioritized quality assessment (QA) at every stage of the development process, with a dedicated QA check for most steps.
Features BuiltA widget for communication with agents via various channelsVideo/voice call integration using 100msScreen share integrationMulti-person video chat with a dynamic layoutNotifications flow for real-time events, calls, and status updatesReal-time event for call notification and call statusPIP flow for video/voice call when not present in video call screen
Our team utilized a Time and Material engagement model to foster better collaboration. Additionally, we prioritized quality assessment (QA) at every stage of the development process, with a dedicated QA check for most steps.
Features BuiltA widget for communication with agents via various channelsVideo/voice call integration using 100msScreen share integrationMulti-person video chat with a dynamic layoutNotifications flow for real-time events, calls, and status updatesReal-time event for call notification and call statusPIP flow for video/voice call when not present in video call screen
Development MilestoneMethodology Used
Execution Journey
Have Integrated screen-sharing features with real-time notifications for events and status.
Development Milestone
Agile for fast and stable project delivery and shipping timelines
Methodology Used
Time and Material (T&M) for better flexibility and collaboration
RESULTS
Interactive Widget with Optimized User FlowThe project was completed within the designated timelines, and all the features planned were deployed within a short turnaround window. Implementation of the project went smoothly, and the client had no problem adopting it into their workflow.
1 Millionconcurrent user capacity
5000+ Hrsof potential development time savings
30 Minsintegration and installation of widget
Case Studies.
More from our engineering portfolio.
We used only those third-party solutions that did not break security rules. For example, we encrypted the redux store using MMKV storage.
We cached all the call data and reinitiated the call every time the widget gets re-rendered. This ensured the conversation flow was intact even when navigating multiple pages.



