NEWClient-side encryption, now native-speed on the web

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.

AES-CBC encryption HMAC-signed APIs 5 languages
AES-CBCMessages & media encrypted on-device
HMAC-SHA256Every API request signed
<iframe>One-tag embed, any website
5Interface languages built in
Web/iOS/AndroidOne codebase, every screen
Product

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.

Fixed, thank you!
OnlineOffline

Encrypted files & media

Screenshots, images and video are encrypted in the browser with native WebCrypto, chunk by chunk, with live progress.

error_screenshot.png● AES-CBC
encrypting · 4 MB chunksPKCS7

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.

X-Signature: 9f2c…e71a
X-Timestamp: 1794240000
X-Track-Id: trk_7Hq2…

Speaks your users’ language

The interface ships in five languages and follows the locale you pass in.

EnglishTiếng ViệtFilipino简体中文繁體中文

Sessions that protect themselves

Expired sessions are detected and refreshed in one tap — connections stay short-lived without breaking the conversation.

Refreshing session…Secure internal communication
How it works

Live in three steps.

01 — EMBED

Drop in one tag

Add an iframe with the user, channel and organization IDs. No SDK to install, no build step on your side.

02 — ROUTE

Users choose a team

Zhin loads the workgroups for that organization and connects the user to an online agent.

03 — RESOLVE

Talk, share, solve

Messages, screenshots and files flow in real time — encrypted, receipted and kept in the conversation history.

Security

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.

01

User device

Message or file is composed in the widget.

02

On-device encryption

AES-CBC via WebCrypto on web, PointyCastle on native.

03

Signed transport

HMAC-SHA256 signature and trace ID on every API call.

04

Your support team

Delivered only to the workgroup the user selected.

Strict launch validationMissing or malformed parameters fail fast — no silent fallbacks.
Cross-platform parityWeb and native produce identical ciphertext for the same key and IV.
Environment isolationSeparate development, staging and production configurations and secrets.
Developers

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 chat
channel_idintegerThe chat channel to connect to
organization_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>
Platforms

One product. Every screen your users have.

Built with Flutter on enterprise-grade IM infrastructure — the same experience on the web and on mobile.

WebEmbeddable widget, any modern browser
iOSNative app for iPhone
AndroidNative app for phones and tablets
FAQ

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.

Zhin

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.

Product demos & pricing
Technical integration support
Partnerships
Email

Request a demo

Submitting opens your email app with everything pre-filled to henry@complex-y.com.

This field is required.
Please enter a valid email address.
This field is required.
Or email us directly at henry@complex-y.com
Your email app should now be open with the request ready to send. If it didn’t open, write to henry@complex-y.com.