The definitive guide to in-app chat

The definitive guide to in-app chat

Integrating an in-app chat feature with your mobile app could help you greatly improve users’ experiences.

In-app chat comes in various forms, each of which solves particular problems for the user. The most widely used types of chat are:

  • Live chat. The user messages with a human customer support agent.
  • Chatbot. The user communicates with a chatbot software which sends human-like messages. In some cases the bot is A.I.-powered.
  • User-to-user chat. App users can message with other app users.
  • Data capture. Using a chat-like interface for capturing information can be more human, especially if natural language processing is utilised.

All of these types of chat are packaged in an instant messaging (IM)-style interface – something essentially similar to the familiar messaging interfaces of Messenger and WhatsApp.

A really good in-app chat feature can answer users’ questions, solve problems, and perhaps even replicate the customer experience of being served via helpline or in-person.


How to add chat functionality to your app

Before we talk about how chat can assist app users, let’s quickly go through how chat features can be added to your app in the first place.

It’s likely that you and your developers will integrate chat with your app via an API or SDK (or some combination of APIs and SDKs).

  • An API is a programming interface which enables your app to communicate with an external program – in this case, a cloud-based chat program operated by a third-party service provider. Adding the API enables you (and your users) to use the chat program as an integrated feature of your app.
  • An SDK is a package of code which automates communication between an app and APIs. Chat SDKs generally give you a more ‘off-the-shelf’ chat functionality that requires relatively little work for integration with your app, but which may be less customisable than an API-only integration.

APIs and SDKs each have their advantages. An API will give you complete control over the UI, whereas using a pre-built SDK requires less work on your part.

Some well-financed app owners choose the alternative route of building their own, bespoke chat functionality for their app (sometimes in the form of an API). It can take a lot of time, money and expertise to create an in-app chat that’s anywhere near as effective as the leading APIs and SDKs – especially so given that you’ll need to code for multiple operating systems (especially Android, iOS and web). The plus side to building your own chat feature is that you’ll have full control and ownership of the chat functionality, without dependency upon a third-party API or SDK.

Here at The Distance we have our own in-app chat module which allows us to develop bespoke messaging solutions at a fraction of the usual cost. Using open source technology and best practices from the established providers, it can offer a best-of-both solution.

“We opted to have The Distance develop a custom 1-2-1 messaging feature in our dating app because the development costs almost matched one month’s licence fee for the 3rd party we were previously using” – ShowReel App

Providing customer-support in-app

Customer support is a key use case for in-app chat. The customer opens a dialogue via the app’s chat interface, which initiates a live chat conversation with one of your support agents (or potentially with a chatbot – more on those later).

There are lots of problems that customers might use a chat feature to solve, including:

  • Requesting action by the customer service team to resolve an issue.
  • Reporting an unsatisfactory experience.
  • Making a booking.
  • Asking a question about a product or service.

Many queries can be answered quickly and effectively via live chat. This creates good customer experiences, leading to improved app retention and higher review scores in the app store(s).

One of the key user-side benefits of live chat is that the user typically doesn’t have to wait to “speak” to someone, and they can casually engage with the chat while multitasking. The anonymity of the communication method is reassuring for some users – perhaps especially for privacy-minded Brits!

For most app owners, at least some of the customer queries you receive will be complaints. Setting up a private, in-app communication channel means fewer grumbling app users will voice their queries in public places, such as on your social media profiles.

Some popular options to add customer support live chat to your app via API/SDK integration include:

  • Zendesk Chat API: This API is used together with the Zendesk Chat SDK v2 (for iOS or for Android) to enable your app users to instant message with your support agents in-app. Another Zendesk API, the ‘Real Time Chat API’, can be used in conjunction with the Chat API to provide in-depth monitoring and analytics for your chat activity. The additional Real Time Chat API is only available to Enterprise subscribers.
  • Zendesk Support SDK: This simpler alternative to live chat is worth knowing about – especially if your users tend not to require an immediate response to their queries. Zendesk’s Support SDK enables users to send a query to your support team via a messaging interface, and receive a response after the team has had time to review the message. Users are able to add attachments to their messages, and they can also browse a searchable library of your Help resources.
  • Zoho Mobilisten SDK: Ideal for ecommerce brands, this chat SDK enables customers to chat to your support agents from any screen of your app. It also features an in-chat knowledge base to help answer customer questions, and a chatbot that can interact with users outside of office hours.
  • Intercom: Part of the Intercom Business Messenger customer support platform, Intercom’s Live Chat can be integrated with your app using a selection of APIs and SDKs. Notable features include the capability for support agents to schedule conversations with the customer for later times/dates, and chat histories accessible to both the user and the support agent.


The role of chatbots in customer service chat

Some app owners add a chatbot to answer user queries via their in-app live chat. These bots can play various customer support roles, including:

  • Chatbot first; human support agent second. The chatbot tries to resolve the user’s query, and/or collects relatively basic information from the user, before a human agent gets involved. If the chatbot can’t fully resolve the query, a human agent takes over from where the bot left off.
  • Out-of-hours chatbot. Human agents are available for live chat during office hours. Out-of-hours, a chatbot tries to resolve the user’s query, or suggests alternative times or methods for the user to contact a human agent.
  • Chatbot only. The live chat has no human agents. It attempts to resolve all issues using a chatbot. This option may save on staffing costs, but it carries a high risk of some users leaving the chat without resolving their issue.

A well-prepared chatbot can quickly and effectively solve an app user’s query, sometimes without the need for real-time input from a human support agent. In some cases, many customers seem to prefer using a chatbot to interacting with a human – especially in the case of straightforward requests.

Using bots to answer user support questions

A customer service chatbot can be your first point of contact between the user and the information they require.

There are a few different ways of doing this, but most app owners use an approach along these lines:

  1. Chat session opens.
  2. Chatbot asks a series of screening questions to establish basic facts about the user/case.
  3. The user is invited to ask their specific question.
  4. User enters a question.
  5. The chatbot checks the input against a database of information, and retrieves the most suitable response.
  6. The chatbot responds.
  7. If the user is satisfied, the chat can be ended; if the user is not satisfied, the bot can raise a ticket on the company’s support system, or direct the user to an alternative contact method, e.g. a human support agent enters the chat.

The exact form of this process will depend on the nature of your relationship to the customer, and the types of knowledge that your agents will need to share.

Where A.I. comes in

The best customer support chatbots typically use A.I. to some extent. These A.I.s are often equipped with natural language processing (NLP), a technology which helps them to understand language in a humanlike way. This can help the bot to better understand inputs  from a diverse cohort of users, who might use a wide range of words or phrases to say the same thing.

IBM estimates that using a chatbot equipped with AI can resolve up to 80% of routine user questions, without the need for intervention by a human agent.

Many popular chat APIs/SDKs can tap into A.I. chatbot capabilities. This is true of the Zendesk, Zoho and Intercom chat integrations we mentioned previously.

In 2023, the soaring popularity of ChatGPT led many businesses to wonder whether that particular A.I. could be used for customer service. While ChatGPT is undoubtedly impressive, it is unlikely to solve customer problems as effectively as other A.I. chatbots trained specifically for customer service. As Ajay Agarwal, an A.I. expert at the University of Toronto, told Forbes:

“ChatGPT is very good for coming up with new things that don’t follow a predefined script. It’s great for being creative. It’s great for asking a range of questions, but you can never count on the answer. […] Companies wouldn’t ever want that as how they are responding in their customer service office.”

Even if a bot has dazzling A.I., there will always be cases where a human support agent is needed to resolve an app user’s query. So, if you’re going to use a chatbot, be sure to back that up with a process to solve problems manually. Using bots to enable customer actionsAnother use of chatbots is to help the user perform actions in-app. In this use case, it’s common for the chatbot to respond to specific user inputs (or timed events) by sending the user a ‘rich message’, which includes elements such as images, or buttons which allow the user to trigger actions. Depending on which button(s) the user presses within the chat, different actions can be triggered. 

The Facebook Marketplace chatbot sends an automated rich message that gives the customer a series of options to configure their product listing. Implementing a chatbot in this way helps the app owner to keep the user on-track to successfully complete a process.


The screenshot to the right shows an interaction between a user and a chatbot representing the personal care brand L’Oreal. The user is guided through a series of questions in order to arrive at the ideal, personalised product recommendations. It’s a process that builds on the traditional face-to-face interactions that the customer might otherwise have had with a brand representative over a real-world beauty counter.

The L’Oreal chatbot was created by EBM – a chatbot expert that we’ll discuss again in the next section of this article.


Utilising chat to humanise a user interface and increase engagement

A chatbot can be used in place of traditional data input methods (such as submission forms and fields) to humanise an app’s user interface (UI) and make it more engaging. Using a chatbot in this way means that the UI dynamically interacts with the user, rather than passively receiving information. We’ve personally witnessed how this approach can lead to improved engagement and task completion among app users – especially in ‘enterprise apps’ used by employees.

For example, working with chatbot experts EBM, we implemented an in-app chatbot for the employee health management app GoodShape. The chatbot asks the employees who use the app questions such as “When did you start your absence?”, “How long will you be off work?”, and  “What are your most noticeable symptoms?”. From the employee’s perspective, it’s likely much more approachable to answer these questions individually than it would be to fill in an extensive form.



In some cases, an employer would be using this approach to replace an existing policy of having their employees call in via phone or VoIP and answer questions to explain their absence. Switching to the chatbot-led approach saves HR time and makes the interaction less intense for the employee.


Adding user-to-user chat to your app

Some apps benefit from adding a user-to-user chat functionality, allowing two or more users to message one another in-app.

Common examples include marketplace apps where users may need to discuss a transaction, social or dating apps such as ShowReel (quoted above), or internal-use corporate apps where team members might want to ask each other questions.

Much like customer support live chat, user-to-user chat can be integrated into an app via API/SDK. One excellent provider in this space is Twilio Conversations.


Behind-the-scenes process

Whether your chat feature will use human agents, chatbots or both, you’ll need to put in-place several behind the scenes processes and resources, in order to make the feature effective.


Support tickets

From the start of a customer support interaction to the resolution, all of your communications with an individual customer can be treated as a ‘support ticket’.

You’ll need to have a system for managing each customer service case as a ticket, which records the entire interaction between yourselves and the user.

Some in-app chat integrations come as part of a platform that also features a ticketing system – for example, Zendesk and Zoho.

Ticketing requires the processing of user data, so you’ll need to be mindful of data privacy and security requirements in your implementation of this system.

Decision tree/hierarchy of information

In the customer support process, agents (whether human or chatbot) should source their responses from a knowledge base of information which has been prepared and cleared for sharing with customers.

On the agent’s side, it’s good practice to organise this information hierarchically, in a ‘decision tree’ structure. When the user asks a question, the agent chooses the most relevant branch of knowledge in the structure, and then finds further questions or detailed information relating to the query. This structure helps support agents to deal with a wide range of scenarios, including complicated tickets which a bot was unable to resolve.

In-app customer support chats often use a chatbot to progress the user to a certain point in the decision tree structure, and then hand over to a human agent.


Analytics and reporting

Live chat and chatbots platforms can provide valuable insights into customer behaviour, preferences and interactions. By reviewing this data, businesses can make informed decisions to improve customer support, enhance the user experience and optimise chatbot performance. It’s therefore crucial that you have the analytics and reporting tools and processes in place to effectively capture and make the most of these data-driven insights.

These user insights can aid in tailoring personalised experiences, which in turn can boost customer loyalty and increase engagement. Based on user preferences and in-app interaction history, agents and chatbots can suggest relevant products, services or content. This can help users discover new items or information tailored to their interests.

Reporting also allows for monitoring your chatbot efficiency and identifying any potential issues in real-time, ensuring prompt resolution and minimising negative impacts on user experience.

Overall, leveraging analytics and reporting is crucial for maximising the potential of live chat and chatbot systems, leading to better user engagement, increased customer satisfaction and optimised business outcomes.



Most in-app chat feature require staffing – for example:

  • Customer support agents to chat with users and solve their problems.
  • Customer support managers (especially important for large-scale operations).
  • Knowledge workers to manage the information used in customer support chats.
  • Development capacity to maintain and update the feature.
  • Moderators (required for user-to-user chat).

These requirements can be met by dedicated roles within your team, although in a smaller customer service operation it may be possible for team members to take on some of these responsibilities within a broader role. Some companies take the alternative route of outsourcing customer support work to an agency.


Fancy a chat about chat? Talk to our team to identify whether in-app chat could be the right option for your app.