Support chat that’s secure by design.
Zhin is an embeddable chat workspace that routes every customer to the right team in real time — with messages and files encrypted before they ever leave the device.
Everything a support conversation needs. Nothing it doesn’t.
A focused, distraction-free chat experience for your customers and employees — and a clear path to the people who can help.
Smart workgroup routing
Users pick the team they need — IT, HR, finance, engineering — and land in a dedicated channel. Zhin checks staff availability first, so nobody waits in an empty room.
Real-time, every signal
Typing indicators, read receipts and presence keep both sides in sync.
Encrypted files & media
Screenshots, images and video are encrypted in the browser with native WebCrypto, chunk by chunk, with live progress.
Signed, tamper-evident APIs
Each request carries an HMAC-SHA256 signature and a trace ID, so your backend can verify origin and follow every call end to end.
Speaks your users’ language
The interface ships in five languages and follows the locale you pass in.
Sessions that protect themselves
Expired sessions are detected and refreshed in one tap — connections stay short-lived without breaking the conversation.
Live in three steps.
Drop in one tag
Add an iframe with the user, channel and organization IDs. No SDK to install, no build step on your side.
Users choose a team
Zhin loads the workgroups for that organization and connects the user to an online agent.
Talk, share, solve
Messages, screenshots and files flow in real time — encrypted, receipted and kept in the conversation history.
Encrypted at the edge. Verified at the core.
Data is protected before it leaves the device, and every request is proven authentic before it is trusted.
User device
Message or file is composed in the widget.
On-device encryption
AES-CBC via WebCrypto on web, PointyCastle on native.
Signed transport
HMAC-SHA256 signature and trace ID on every API call.
Your support team
Delivered only to the workgroup the user selected.
Three parameters. That’s the integration.
Generate a URL per session on your server and embed it anywhere — a portal, an admin console, a mobile web view.
user_idintegerThe customer or employee starting the chatchannel_idintegerThe chat channel to connect toorganization_idstringScopes which workgroups are shown<!-- Zhin support widget --> <iframe src="https://chat.example.com/?user_id=42&channel_id=7&organization_id=acme" width="400" height="700" allow="microphone; camera" title="Support chat" ></iframe>
function buildChatUrl(userId, channelId, orgId) { const params = new URLSearchParams({ user_id: userId, channel_id: channelId, organization_id: orgId, }); return `https://chat.example.com/?${params}`; } document.getElementById('chat').src = buildChatUrl(42, 7, 'acme');
One product. Every screen your users have.
Built with Flutter on enterprise-grade IM infrastructure — the same experience on the web and on mobile.
Questions, answered.
Anything else? Write to us and we’ll walk you through it.
What do I need to embed Zhin on my site?
An iframe pointing to your Zhin chat URL with three parameters: user_id, channel_id and organization_id. Your server generates the URL for each session; nothing needs to be installed in your front end.
What gets encrypted, and where?
Messages and media are encrypted with AES-CBC on the user’s device before upload — via the browser’s native WebCrypto API on the web and PointyCastle on iOS and Android. Large files are processed in 4 MB chunks with progress reporting.
How are API requests protected?
Every request is signed with HMAC-SHA256 and carries a trace ID, so your backend can verify that it came from a genuine Zhin client and trace it end to end.
What happens if no agent is online?
Zhin checks staff availability before opening a session. If nobody in the chosen workgroup is online, the user is told right away instead of waiting in an empty chat.
Which languages and platforms are supported?
The interface is available in English, Vietnamese, Filipino, Simplified Chinese and Traditional Chinese, and runs on the web, iOS and Android from a single Flutter codebase.
Is there a file size limit?
Files up to 10 MB can be shared in a conversation. Size is validated on the device before upload, so users get instant feedback.
Give your team a secure front door.
Tell us about your team and how you support your users — we’ll show you Zhin running with your own workgroups.