Skip to content
Back to guides
crm9/14/2026

Zalo Inbox: Running Customer Care Through Vietnam's Most-Used Messaging App

How CareSuite's Zalo Inbox turns a messaging app most Vietnamese customers already use into a real customer-care channel tied to your customer records.

crmzalocustomer-care

If you're running customer care in Vietnam, the channel your customers actually use isn't email and it isn't a ticketing widget bolted onto your website — it's Zalo. CareSuite, the customer-care CRM inside frontend/apps/crm, builds a dedicated inbox around that reality instead of treating Zalo as an afterthought integration.

What the Zalo Inbox actually is

The Zalo Inbox is its own page in CareSuite — a conversation list on one side, a message thread on the other, the pattern you'd expect from any messaging inbox. Each row shows the Zalo contact's display name, a preview of their last message, and an unread count that clears the moment you open the thread. Conversations are ordered by recency, so the customer who just messaged you rises to the top the way it should.

Under the hood this is backed by two tables: care_zalo_conversations, which tracks one row per Zalo user with their last message time and preview, and care_zalo_messages, which stores the individual messages with a direction (inbound or outbound), text, and an optional attachment URL. Nothing exotic — it's a normal message-thread data model, applied to Zalo specifically instead of a generic "channel" abstraction.

Linking a thread to a customer

The distinctive move isn't the inbox itself — vendors sell generic Zalo-CRM integrations all the time. It's how directly a conversation ties into your actual customer record. Inside a thread, you can search your existing customers and link the conversation to one with a couple of clicks. Once linked, customer_id is set on the conversation, and everyone on your team looking at that thread from then on sees it as "this Zalo user is this customer," not as an anonymous chat handle.

That link matters more than it sounds. A support rep picking up a Zalo conversation cold has no idea if they're talking to a first-time browser or a gold-tier customer with three open warranties. Once the thread is linked, that context is one click away instead of a cross-reference exercise across systems.

Replying from inside CareSuite

You can reply to a Zalo conversation directly from the thread view — type a message, hit send, and it's appended to the thread like any other message. This is where it's worth being precise about what actually happens versus what you might assume happens.

CareSuite always saves your reply as an outbound message in care_zalo_messages, so the thread record is accurate no matter what. But whether that reply is genuinely delivered to the customer over Zalo depends on whether your workspace has configured ZALO_OA_ACCESS_TOKEN — the access token for your Zalo Official Account. If it isn't configured, the app tells you plainly: the message was saved, but it was not actually sent. That's a deliberate, honest failure mode rather than a silent one — you won't discover days later that a customer never received your reply, because the UI surfaces the missing configuration the moment you try to send.

The practical takeaway: before you rely on the Zalo Inbox as a live customer-care channel, confirm your Zalo Official Account token is configured for the workspace. Everything else — the thread view, the linking, the unread tracking — works regardless, but actual delivery is gated on that one piece of setup.

Why this is worth building into a CRM at all

Most CRM vendors serving Western markets don't think about Zalo at all, because their customers aren't on it. In Vietnam it's the opposite: it's the default channel a customer reaches for, ahead of email and often ahead of phone. A CRM that makes your team switch to a separate Zalo Business app to actually talk to customers, then manually copy notes back into the CRM, is adding a step that a distinct, first-class Zalo Inbox removes entirely.

The value compounds with everything else CareSuite already tracks. A customer's tier, their open tickets, their warranty status, their order history — all of it sits one tab away from the conversation, instead of living in a tool your support team has to alt-tab into. For a Vietnamese SMB whose support volume runs primarily through Zalo, that's the difference between a CRM that fits how the business actually operates and one that requires the business to bend around the software.

Getting started

If your team already runs a Zalo Official Account, the setup work is mostly the token: get ZALO_OA_ACCESS_TOKEN configured for your workspace so outbound replies actually deliver. From there, conversations populate as customers message your OA, and linking them to customer records is an as-you-go habit rather than a one-time migration — link a thread the first time you handle it, and it stays linked for every rep who picks it up afterward.