On-demand services: A guide to implementing chat
For on-demand companies, the necessity for in-app communication is more apparent than ever before. In an ideal situation, the ondemand experience requires little communication. There’s no waiting, no mistakes on an order, no software or technical issues, no traffic, no miscommunication – essentially zero friction. But, when the on-demand experience isn’t ideal, in-app chat provides a convenient and easy way to coordinate or communicate transparently. If anything goes wrong, customer, driver, or vendor support is a tap and message away.
Chat and messaging in on-demand applications is not only a crucial way to provide a better user and communication experience, but it’s also proven to improve the bottom-line. It increases total bookings by reducing cancellations, it supports other growth metrics by increasing customer engagement in the app, and decreases the need for omnichannel communication, like SMS, e-mail, or calls. Whether the on-demand service is ride-hailing, food delivery, or a digital wallet, your app can optimize communication by creating a direct messaging channel between the driver and rider or delivery-person and customer.
This Chat Implementation Guide for On-demand Companies serves as a comprehensive handbook that offers best-practices and step-by-step advice about how to implement chat into your on-demand application. This guide underlines the strategy for launching in-app chat, for measuring success, for planning the feature roadmap, and provides a sample chat flow for on-demand transactions.
As the most scalable and complete chat service that can be fully customized, Sendbird empowers businesses to accelerate delivery of a top-notch in-app chat experience, optimize your service using user behaviour data, and solve real business problems with real time communication, that directly contributes to increasing GTV.
A perfect on-demand post-purchase experience is seamless. When logistics don’t go perfectly, Sendbird offers your users and supply-chain the ability to communicate now.
Three goals for in-app messaging in your on-demand service
1. Connect both sides of your on-demand platform, both drivers and users, to increase transactions, to facilitate both private and secure engagement across your service portfolio and empower them to make informed decisions about their transactions.
2. Reduce booking cancellations by optimizing user engagement within your app, where there’s the optimal context for making decisions valuable to your service. This directly increases gross transaction value (GTV).
3. Use chat data to send information into your analytics platform to help optimize your service and further prevent spam or fraudulent activity.
Common uses of user-to-user messaging in on-demand platforms
- Drivers unsure of the exact pick-up location
- Drivers clarifying pick-up point – e.g. specific gate
- Both drivers and riders sharing location and/or pictures of their current location
- Riders checking where the driver is
- Drivers letting riders know they are stuck in unexpected traffic
- Drivers letting riders know they are on the way
- Drivers letting riders know they have arrived
- Riders letting drivers know they are walking towards the pick-up point
- Users wanting to check-in when the car is ‘not moving’ on the map
- Some riders may have special needs, e.g. a person with a disability needs accommodation or another rider has a lot of luggage
When booking for others
- Users coordinating between driver and rider
- Drivers letting users know they have arrived
- Drivers sharing location and/or pictures of their current location (and vice versa)
- Delivery person unsure of the exact delivery location – e.g. name of building, floor number
- Delivery person unsure of how to enter the building
- Users wanting to re-confirm the ETA
- Delivery person alerting the user they arrived – i.e. come out and meet me
- Users wanting to check-in when the delivery person is ‘not moving’ on the map
- Users asking delivery person to “check” for special orders
- Alert of lack of change when paying in cash
When booking for others
- Users coordinating between the delivery location, the receiver, and the delivery driver
- Delivery unsure of the exact delivery location – e.g. name of building, floor number
- Delivery person unsure of how to enter the building
- Delivery person wanting to check where the receiver is (inside the house or outside
- Both parties wanting to re-confirm the ETA
- Delivery person alerting the user they have arrived – i.e. come out and meet me
- Users asking delivery person to drop off at a slightly different location – e.g. in front of the main entrance, at the security checkpoint, etc.-because they cannot come out to receive it
- Delivery person alerting users of extra charges such as road tolls that are not charged via the application
When booking for others
- Users coordinating between the delivery location, receiver and the delivery person
Recommended strategy for launching inapp chat
After working with global on-demand companies like GO-JEK and GoGoVan to improve the successful bookings and transactions of their service, we’ve developed a blueprint for a successful chat launch. The details will always depend on the use-case, internal needs, and specific business goals of an individual company, but the following provides a distinct direction toward a successful launch.
1. Define your goals for success
Understanding these goals will also help us define the scope for phase 2. For example:
- To address booking cancellations
- To improve your CSAT
- To reduce the time to resolution for integrated workflows across your service
- To reduce operating costs from refunds by tracking customer claims for incomplete transactions
2. Set a launch date
Many customers have already negotiated a launch date internally before they reach out to us, but, if you haven’t, then work with your internal stakeholders to set a launch date. The messaging solution provider can also help scope your project.
3. Initial roll-out
Determine the initial roll-out region or population – as with scaling liquidity and bootstrapping regions in your on-demand marketplace, it makes sense to start in a single region and expand into multiple regions as you test production.
Pro tip: It’s important to give the implementation enough time to reach a large enough number of users, especially across different regions where user behavior might be different. While it’s important to define a live test environment for implementation, this will need to reach a large enough user population to understand the effects of user-to-user messaging and average out local variations.
- Back-schedule the following milestones from your launch date:
- Develop a BETA or Proof of Concept to share internally Launch in a single, small region for production testing
- Gradually launch chat to additional regions, testing production as you go
- Regular product and developer syncs with your chat provider
5. Full launch
Map out a full roll-out plan, region-to-region, and secure the necessary resources internally and from your chat provider for the long-term maintenance, data analysis, and optimization.
Set a benchmark to measure success - How high are your current cancellation rates?
In order to prove the success of in-app chat, it’s crucial to set a benchmark for comparison before and after the successful launch of chat.
On both the Driver and Customer (Rider, User, etc.) apps, analyze the booking cancellations more deeply to understand where to focus your messaging experience to affect cancellations.
According to the following conditions, how many cancellations occur:
Try to answer these questions with your data:
- When do cancellations happen most frequently?
- For what reason are there cancellations (e.g. inability to contact, difficulty in finding the pick up location, etc.)?
- What’s the difference between cancellation frequency before and after any communication between the service provider and customer?
- Is there other user behavior that contributes to cancellations?
Once you have a full understanding of your current benchmark for cancellations, you will be able to measure the benefit of in-app chat against it.
User engagement with chat functionalities
Message Per User
Impact in absolute value accumulation
Quarterly MAU Comparison
Booking Cancellation Rates
GrabChat has been proven to reduce cancellations by up to 50% across Southeast Asia Sendbird in-app chat has been proven to reduce cancellations by up to 75%
Suggested chat features for on-demand applications
On-demand applications benefit from features that indicate userpresence because they involve the coordination of two or more parties. Each party wants to know whether the other person is present and receptive to messages. Or they’d like to be notified if they have missed a message or app-event. It’s also important to protect both drivers and users alike from spam or profanity
Basic chat features to achieve seamless communication:
Suggested text messages
Other advanced features make it easier for especially the Driver, but also the User to communicate safely, quickly, and efficiently. You want to provide an experience, where the driver and user can send a suggested message, share a hands-free voice note, or translate between languages. The user may want to share their location or send an image of where they are waiting.
To streamline safe communication, Sendbird suggests the following features:
Hands-free voice notes
Suggested voice notes
Suggested text messages
Image & other file sharing
1. Suggested messages
Text or voice note options that can be selected by the driver
2. Suggested voice notes
Pre-recorded custom voice notes can be selected by driver for added convenience
3. Custom data
Embed native custom data that can be shared on chat to verify and validate information
4. User-to-user messaging
Simple text and emojis to show interaction & acknowledgement of receipt
5. Hands-free voice notes
Driver can send voice notes to the user, without having to type
6. Rich messaging
Sharing multimedia files such as voice notes, images, videos
Managing the chat - What’s the best chat flow?
To optimize concurrent connections and cost, it’s important to allow chat at the proper time and remove it when it isn’t necessary. This opens and closes connections to your chat provider’s servers when a user actually needs the opportunity to chat.
Here is a sample chat flow for an on-demand application:
- User authentication
- Connect to Sendbird
- Create a channel
- Driver and User chat begins
- Close the channel
- Disconnect from Sendbird
1. User authentication
Given the transactional nature of on-demand businesses and chat, Sendbird recommends authenticating users with access tokens.
To connect to Sendbird, for example, users require us to issue them an access token. When a user is created at the on-demand application, we suggest that you use the Platform API to “Create a user.”
Store the access token locally on the user’s app or on your servers.
2. Connect to Sendbird
You can connect a user to Sendbird at anytime.
For best latency, we suggest connecting the Driver to Sendbird’s chat, when the app is in the foreground and close it when the app is in the background.
For Customers, we recommend creating a connection when the Customer requests a service, whether ride or delivery.
3. Create a messaging channel
Create a channel specific to a booking as soon as a booking is confirmed. Invite both the Driver and User to the channel.
Create a “Join” event in the app and display the chat bubble in the app.
You can segment channels by use-case, if you there are multiple (e.g. ride hailing, food delivery, package delivery, etc.) by assigning metadata to the channel.
4. Driver and user chat begins
The user can send messages to a Driver with extra information about their location with a voice note, image, or location.
The driver can respond with an emoji, a suggested message, or a voice note.
5. Close the channel
Depending on your service, you can close the channel at the most appropriate time. For example, in a ride-hailing app, you could close the channel when the ride has started. For a food delivery app, you could close the channel when the food is delivered.
Close the channel by removing the members from it using Sendbird Platform API.
We suggest deleting channels according to regular intervals (e.g. 4 weeks) after the booking is complete.
6. Disconnect the app from chat servers
For the User app, disconnect the User from the server when most appropriate. For a ride-hailing app, disconnect the customer when the ride starts. For a delivery app, on the other hand, you can disconnect when the driver confirms delivery.
For the Driver app, configure the SDK to automatically disconnect when the app moves to the background.
Potential updates after launch
Once your app has launched basic chat, you can layer in additional features, use-cases, or regions.
- Suggested voice notes – like suggested messages, you can send readymade voice notes
- Add more custom or structured messages to the UX flow
- Custom announcements for marketing promotions or events
You could expand chat’s reach to more regions in your service portfolio. With Sendbird, you can build an extendable chat framework. Essentially, this means you can use our SDK as a framework for multiple messaging implementations across regions or product portfolios. This will allow you to customize the messaging experience to meet a region or product’s requirements.
3. Integrate on-demand services through chat platform
You could add chat to your other services and then connect each service through the same Sendbird chat platform.
4. Consumer to consumer chat
Consumer-to-consumer (C2C) chat so your on-demand users can share rides, restaurants, menus, statuses, transactions, or payments.
5. Moderation and data
Drive more on-demand transactions and user engagement with chat
Although we are confident that these suggestions constitute some of the best practices for ondemand businesses integrating chat into their apps, every business requires unique consideration according to its service, app, region, and goals. But with chat and messaging, on-demand can bridge the communication gaps between all sides of its marketplace.