Live chat is a baseline for customer service, as well as connecting users of two-sided marketplaces, live auction sites, and social networks. And it’s easy to see why. The numbers show that customers prefer the convenience of live chat and that it increases customer satisfaction and retention:
- 41% of customers prefer live chat over phone support.
- 52% say they’d buy again from a company that offers live chat.
- 79% of businesses say implementing live chat has boosted customer loyalty and sales.
If you’re looking to implement live chat for your business, there are three main routes to choose from:
- Build your own live chat from scratch
- Buy in a ready made chat-as-a-service (CaaS) product
- Use a platform-as-a-service (PaaS) to create a tailored solution.
In this article, we’ll look at the pros and cons of each approach, as well as how to evaluate them. Then, we’ll finish up by considering what it takes to build a successful live chat experience.
Building a live chat system from scratch
The apparent control offered by building in-house can make it a tempting option. In an ideal world, your solution would be tailored precisely to your use case, integrated with your existing systems, and free of ongoing licensing fees.
However, the reality is often more challenging. First is the question of whether your engineering team has the realtime expertise and capacity necessary to deliver a DIY live chat build. Then there are the technology choices. Do you rely on a messaging protocol, such as WebSockets, MQTT, WebRTC, and XMPP or, instead, pull in a realtime library such as Socket.IO?
Then there’s all of the other infrastructure. How will you roll out and manage the global edge servers you need to give end users a responsive service? And then there are the complexities that come with all distributed systems, such as balancing the competing needs of availability and data consistency.
That’s not to say that building live chat from scratch is impossible. It’s just that you need to be absolutely certain that it’s worth the initial investment and ongoing cost. Let’s take a look at the advantages and disadvantages, to put it into context.
The pros of building a live chat system from scratch
The upsides of building your live chat system in-house mostly center on control and flexibility:
- Total control: Building in-house allows you to specify the solution that precisely meets your requirements. And if you have the engineering expertise and capacity to deliver it, you can take both the product and technical decisions to deliver the functionality you need.
- Choice of tech stack: With all of the choice on offer, including open source libraries and cloud based infrastructure, you can select the tooling that meets both your budget and your development team’s preferences.
- Potentially lower costs: Depending on the technology choices you make, you could save money on annual licensing fees needed to buy in a solution, with the trade-off that upfront engineering and ongoing infrastructure costs are likely to be higher.
The cons of building a live chat system from scratch
While the advantages of building a live chat system from scratch are evident, there are some challenges to consider:
- Build cost is usually higher than expected: The upfront cost of building an in-house solution, combined with ongoing maintenance and infrastructure expenses, often lead to a higher total cost of ownership than buying an existing system. Our research for the State of Serverless Websocket Infrastructure report shows that 69% of similar projects take at least three months to build and 93% require four or more engineers.
- Long term maintenance costs outstrip savings potential: Half of all self-built realtime data platforms cost $100K-$200K a year in maintenance costs, according to respondents of our State of Serverless Websocket Infrastructure report survey.
- Live chat is complex: Building realtime systems is specialized work that can seem deceptively straightforward to teams who have not tackled it previously. That makes it easy to underestimate the resources required. More than half of realtime projects cost more and take longer to build than planned.
- Responding to changing needs is hard: Not only is the up-front engineering work costly and often hard to forecast, so is adapting functionality to changing needs. In particular, live chat can be a route into realtime functionality for many organizations and the scope of business requirements can quickly expand to other use cases such as live video streaming, app state synchronization, data transfers, and more. Realtime systems are complex, involving many moving parts each with low tolerances for failure. Expanding a purpose built live chat system for more general realtime use cases could require substantial re-engineering.
Use a Chat-as-a-Service (CaaS)
One alternative to building your own live chat is to integrate a ready made chat solution. These CaaS products provide off-the-shelf live chat functionality, such as realtime messaging, chat history, integrations with other tools, and some level of flexibility over the chat experience.
However, just as with building your own live chat solution, there are advantages and disadvantages.
The pros of using a CaaS
The advantages of using a CaaS are pretty straightforward:
- Minimal engineering effort: Implementing a chat-as-a-service tool is relatively easy, usually relying on pre-built widgets or simple integrations with an API.
- Quick time to market: As a ready-made solution, a CaaS can give your app live chat features with a relatively short lead time.
- Low maintenance and roadmap investment: The CaaS provider takes care of keeping the service online as well as delivering new functionality.
- Low maintenance and roadmap investment: The CaaS provider takes care of keeping the service online as well as delivering new functionality.
The cons of using a CaaS
On the other hand, chat-as-a-service can be quite limiting.
- Little to no control over features: The solution you can implement is decided by the functionality provided by the CaaS vendor, which might not match your users’ needs.
- Fees can mount up: As an end to end solution, CaaS products come with higher ongoing licensing costs and are likely to increase as your user base grows.
- Quality of service may be restricted: A chat-as-a-service provider’s focus may be on customers whose QoS expectations are lower than yours.
- Limited integrations: The scope for working with data and functionality in your existing suite of tools will be limited according to what the CaaS vendor has enabled.
- Only offers chat: As a specialized tool, CaaS offers chat functionality only and would require you to buy in other tools should you want to deliver other realtime features, such as multiplayer collaboration or data broadcast.
If all you ever want is a quick and easy chat solution on your website, for example, and you’re comfortable with the potential for higher fees as time goes on, then chat-as-a-service can be a good option.
Use a Platform-as-a-Service (PaaS)
There is a third way, though, that gives you control of the experience and fast time to market. Using a platform-as-a-service (PaaS), such as Ably, lets you rely on the realtime expertise and infrastructure of a service provider, while tailoring the live chat solution to your specific needs.
The pros of using a PaaS
Building your live chat in-house but supported by a realtime PaaS gives you several advantages, including:
- Feature flexibility: A PaaS gives you the building blocks to create the functionality your end users need, with few restrictions on the shape of your implementation.
- Fast time to market: Free from the need to build intricate realtime infrastructure, your engineering team will be able to deliver your app’s core functionality with fewer roadblocks and frustrations.
- Guaranteed performance and security: With an expert realtime team and global infrastructure backing it, a PaaS gives you levels of performance and security that are hard to obtain with either self-built solutions or off the shelf CaaS products.
- Simple integration: A well designed PaaS will offer SDKs for all major languages and frameworks, cutting the time that it takes to integrate with your existing tech stack.
The cons of using a PaaS
As with any technology choice, there are potential downsides to working with a realtime PaaS:
- Roadmap is somewhat in the vendor’s hands: You’ll need to be confident that the realtime PaaS you select has a vision that aligns with the functionality you’ll need over the coming years. Doing research upfront can help you to make the right choice.
- Less developed platforms offer fewer integrations: Much of the benefit of a realtime PaaS is in how well it integrates with your existing technology stack. That means you’ll need to find a PaaS that works well with your existing tooling and has a track record of increasing its integrations footprint.
- Moving between vendors: The work required to integrate with a realtime PaaS is substantially lower than building from scratch. However, depending on the vendor, and the programming languages, frameworks, and tooling they offer, you might find it harder to move to a different solution later on. This is something you can check with each provider and factor into the buying selection process.
Requirements for a successful live chat
Regardless of whether you build your own live chat app in house or you rely on a PaaS or CaaS, there are certain foundational elements that you’ll need to deliver in order to create a successful experience.
The foundations of a successful live chat
WhatsApp and Facebook Messenger, amongst others, have set the bar for what end users expect from live chat. When building your live chat you’ll need to meet those expectations by delivering on these foundational features.
- Low latency: Realtime chat sets a baseline of interactivity that can only be realized when there is minimal delay between a message being sent and then received by other participants. That depends on using low latency protocols, such as WebSockets, and having a global network of servers that are geographically close to end users.
- Guaranteed delivery: Each message must get to its destination in the correct order and on time. Even at smaller scales, that requires significant engineering effort to deliver reliably and without the possibility of confusion caused by missed, duplicated, or unexpected messages.
- Scalability: Increased uptake of your live chat should be reason to celebrate, rather than causing concern over how to serve the expanded user base. A Pub/Sub messaging architecture separates communication and business logic, providing the basis you need to scale on demand.
- Elasticity: High performing, resource efficient, chat applications maintain a consistent user experience regardless of usage patterns and traffic spikes. They automatically react to changes in demand, elastically scaling to handle unpredictable and fluctuating numbers of concurrent users.
- Reliability: Live chat must be available around the clock. As well as elasticity, this requires built-in redundancy to enable the system to route around outages and network issues.
- Rich features: Chat is now a rich media experience, with emojis, reaction GIFs, and the ability to share files between users. The underlying platform should support non-text communication with all the same delivery and scaling guarantees.
- Integrations: Your live chat solution should seamlessly integrate with the other tools in your tech-stack, otherwise you risk substantial engineering requirements in order to integrate new services into your infrastructure.
- Data governance: How data is gathered, stored, processed, and disposed of. Data policies also set out who can access what kinds of data and what kinds of data are under governance.
- Chat moderation: The process of monitoring and controlling user-generated messages and content. To meet trust and safety commitments around chat, integrated moderation is essential to ensure all user-generated content is in compliance with your terms of use.
- Frontend UI: Ready-made UI design theme components, such as colors and fonts, which can be customized to suit your brand. This enables an easy and fast integration of standard chat features into new or existing client apps.
How easily you can deliver those features varies depending on whether you’re building in-house from scratch, relying on a CaaS, or building using a PaaS.
Build from scratch | Using a CaaS | Using a PaaS | |
---|---|---|---|
Low latency | Requires substantial engineering effort and infrastructure investment. | Depends largely on the quality of the vendor’s infrastructure. | Low latency infrastructure is a fundamental feature of a high quality PaaS and takes no extra effort to implement. |
Guaranteed delivery | Guaranteed delivery is a major distributed systems engineering problem that is hard to get right. | Guarantees depend on the vendor - not all CaaS providers have message delivery guarantees. | Guarantees depend on the vendor - not all PaaS providers have data integrity (message delivery) guarantees. |
Scalability | Engineering a scalable system can be difficult but open source tooling such as Kafka or RabbitMQ can help. | Not all CaaS providers are set up for scale, so it’s important to create proofs of concept that put that to the test. | Most realtime PaaS providers are designed from the ground up to scale. |
Elasticity | Anticipating unpredictable and fluctuating numbers of users is complex, as is building systems that mitigate them. | Not all CaaS providers are set up for elastic scaling. Researching how they manage surges should be part of the buying selection process. | A robust PaaS will provide a highly elastic infrastructure so your app is never short on capacity. |
Reliability | Anticipating failure modes is a specialized engineering job, as is building systems that mitigate them. | CaaS systems are often built for ease of integration rather than reliability. Most only have three (99.9%) to four-nines (99.99%) reliability. | A well architectured PaaS guarantees high availability(five-nines SLA), has coverage over several regions with hundreds of points of presence (PoPs), is able to support multi-region data replication, and can provide active traffic management. |
Rich features | Once you have the infrastructure to handle a realtime chat application, you then have to start building in features. | A CaaS should support rich media out of the box. Though for other custom features, you may run into trouble if the CaaS doesn’t support it. | PaaS solutions give you the tools to build rich features into your messaging experience. |
Integrations | Requires substantial engineering effort to integrate new services into your infrastructure. | CaaS products often neglect backend integrations. The onus is on the customer to carry out the work. | PaaS solutions often support multiple integrations, meaning they fit easily into an existing tech stack. |
Data governance | You’re required to work through what, how, when, and where data is stored. In addition, you must ensure it meets compliance requirements, which takes time and might require external audits. | A CaaS will typically have its own data storage for you to use. You have no control over how it is gathered and stored. Instead, you have to trust the provider to store data securely and in compliance with relevant regulations. | PaaS providers typically don’t store data. This means customers can maintain control. They will have options for short term message persistence, so that messages can be retrieved in the event of disconnects. |
Chat moderation | It’s on you to do the work to find and integrate a moderation solution. | With CaaS you are typically limited to using their own moderation software or using their preferred third party moderation software. You can’t easily plugin your own moderation software of choice. | PaaS providers will either support integrations with a moderation provider (typically just one preferred partner), Alternatively, they'll provide best practice guidance on how to integrate your provider of choice - ‘Bring your own moderator’. |
Frontend UI | You need to build UI design theme components from scratch. | Some CaaS providers provide UI kits. This is great if you want to get something up and running quickly, but not so good if you want to display some ‘unique’ elements or adhere fully to your brand guidelines. | PaaS providers will either have their own basic set of UI components you can use or will recommend UI providers. Essentially you can create yourself or select a provider that best meets your needs. |
The features needed for live chat
On top of those foundations you can build the features that end users will expect from live chat. At its most basic, you’ll need to provide authentication so that users can log in and assume different roles within the context of your service. For example, in a live auction site each live chat participant could be a seller, a buyer, or both, and each linked to their history within the platform. Once logged in, chat users will expect quick access to their contacts and message history in order to start and continue conversations.
Going beyond the basics, you’ll need to enable users to edit and delete messages, as well as tag other users in order to alert them. Similarly, integrating with device or browser’s native notifications will make sure that chat participants stay informed of updates even when their attention isn’t on the chat.
And for a richer chat experience, your users will expect features such as message reactions, video calling, file sharing, read receipts, and presence indicators.
For more on the features needed for live chat, see our ultimate list (complete with examples).
Get started with live chat from Ably
Developing with Ably’s realtime PaaS gives you the scope to deliver precisely the functionality you need backed by global infrastructure and specialist expertise.
With Ably you can:
- Deliver live chat faster: Ably’s realtime APIs, and SDKs for common languages, can help you build up to three times faster.
- Build the features you need: Ably’s rich chat features provide the tooling to create channels, direct messages, reactions, push notifications, authentication, and more.
- Guarantee high quality user experience: Each message arrives on time, and in the right order, every time.
- Scale and without risking uptime: With a global edge network, Ably gives you the low latency infrastructure to server users everywhere and at any scale, all with a guaranteed 99.999% uptime SLA.
Join the likes of HubSpot and Toyota in choosing Ably. Start with a free developer account and begin building today.