Order context in the conversation
The site can pass order number, exchange direction, amount, page and any custom data — the operator sees it in the customer card without manual lookups.
The customer asks a question right on your website, the operator immediately sees the conversation in their workspace and replies without switching between different services.
Site widget, operator panel, conversation history, order context, multi-site, Telegram and email — all in one system on your server.
This project connects to an active iEXExchanger license and works as an additional module for the core platform.
At an exchanger almost every question is tied to a payment, an order status, an exchange direction or a specific page. iEXChat puts all of that next to the conversation so the operator understands what's happening right away.
The site can pass order number, exchange direction, amount, page and any custom data — the operator sees it in the customer card without manual lookups.
Conversations, files, customers, settings and ratings live on your server. No third party can revoke access or raise prices on you.
One installation serves several exchangers, storefronts or domains: each one has its own widget settings, operators, tags, queues and analytics, and they don't mix.
The site loads a small script. The widget opens a realtime conversation, the workspace receives the message, history and order context are saved in your database.
Loads the widget and can pass customer and order data.
A neat support window styled to your brand, restoring the conversation when the customer returns.
Messages, reads, typing and statuses arrive instantly — no page refresh.
Conversations, customers, files, ratings and audit live in your database.
Conversation queue, customer card, quick replies, tags, handoffs and analytics.
The Telegram post shows the full product scenario: site widget, operator panel, conversation history, analytics and exchanger integration.
All active conversations on one screen: who writes, who answers, which site and which order.
Color, logo, position, language, greeting, FAQ, attachments, voice and pre-chat form — all configurable.
Per-site access for operators, flexible roles, departments and tags — each person sees only their scope.
Two-way Telegram bridge, inbound mail into conversations, notifications and connection to your systems.
Quick replies, tags, handoff, auto-open, spam protection, response deadlines and automation rules.
Response speed, operator load, customer ratings and metrics across sites and departments.
Conversations on the left, customer card and order context on the right. The admin configures sites, operators, departments, templates and rules in a separate tab — no developer needed.
All requests in one list: who writes, who answers, what's waiting and what needs to be picked up.
Name, email, phone, order, country and device — all at hand, no window switching.
Pre-built phrases for common questions, by category and with variables — answer in one click.
Labels on conversations and customers, priority levels, handoff between operators and departments.
First-response time, load, post-conversation ratings and bottlenecks in your support.
Internal notes between operators, archive of old conversations and change log for settings.
The support window doesn't conflict with site styles, restores the conversation when the customer returns, and supports four working modes for different exchanger scenarios.
The primary scenario. The customer writes in the widget, messages appear in the operator workspace, history is stored with you.
If operators are online — the customer writes in the chat. If all are offline — the widget shows a "Write on Telegram" button.
The widget doesn't open its own chat — it sends the customer to a Telegram support account. Fits teams that live in Telegram.
You can temporarily swap the widget for a third-party one — convenient for smooth migration from an older provider.
Name, email, phone — fields toggled by the admin and can be required.
The customer can record voice, the operator listens and replies in the same thread.
Attachments up to 25 MB, protection against dangerous file types, image previews inside the chat.
A built-in help center with articles, categories and helpful/not-helpful rating.
Custom widget UI translations and automatic detection of the customer's language.
The customer returns in an hour, a day or a week — and continues the same conversation.
The site passes email, name, phone, order number and any custom data — the operator sees it immediately.
The chat can open by itself on time, scroll or specific URL — without changing the site.
The chat is alive: the customer sees when the operator is typing, the operator sees when the customer is online and reading. If no operators are around — the customer knows their queue position.
Messages fly both ways with no page reload — like in modern messengers.
A "typing..." indicator works in both directions, so the customer doesn't get anxious or leave.
Delivery and read marks with time — the customer knows the message arrived.
Online, busy, away, offline — the customer sees that a live person is going to reply.
If all operators are busy, the customer sees their queue position and approximate wait time.
The operator sees right away that a colleague already picked the conversation — no duplicate answers.
Each site has its own domain, brand, language, operators and widget settings. One person can be an operator on one site and an admin on another — and only sees what they were explicitly granted.
Each has its own domain, logo, color, language and widget settings — no "shared" branding.
An operator only sees their sites and their conversations, no accidental crossover.
Admin, operator and custom roles with a precise set of rights — for KYC, analytics, support.
Conversations, ratings, load and analytics are counted per site, never mixed.
Primary scenario: the customer writes in the widget, the operator replies from the panel. History, files and ratings stay with you.
Two-way sync with Telegram: an operator can reply right from the Telegram chat, the answer returns to the customer in the widget.
Emails from customers are automatically threaded into conversations. Outbound mail uses your own mail server.
iEXChat can be linked to the exchanger, CRM and internal services — events and data flow both ways.
Everything lives in your database, files in your storage, secrets in your .env. No third-party provider has access to the conversation content.
Operators log into the panel with a code from a phone app — a leaked password doesn't open access.
A visitor identifier can't be forged — no one else can "read" the customer's conversation.
The exchanger can sign customer data — the operator can be sure the email and order number are real.
Limits on messages, login attempts and suspicious actions — no bot floods or brute force.
You can see who changed what setting, reassigned conversations or deleted messages — for control and audit.
License, integration secrets and access tokens are stored encrypted, not in plain text.
Every change is a separate version with a clear log. Updates are applied in order and are idempotent — if interrupted, you can resume from the same point without losses.
Every meaningful change is its own version. No "we'll patch it somehow" — only a clear history.
The system always knows which updates are applied and which are still missing.
Database changes are additive: data is not lost, the schema is updated in a strict order.
Run the update — the system checks readiness, applies changes and reports back.
A pnpm + turbo monorepo. Full TypeScript on both sides, typed contracts between widget, API and panel. PostgreSQL as the source of truth, Redis for queues and pub/sub, S3/MinIO for files and Docker for everything around it.
What the customer sees in the widget and the operator sees in the panel. Lightweight, isolated, reactive.
NestJS API, a realtime gateway, a background worker with queues and Prisma on top of Postgres.
Self-hosted on Debian/Ubuntu, packed into Docker, nginx as a reverse proxy, Cloudflare optional.
One script on the site, one workspace for the team and all data on your server. Order a deployment for your exchanger.