Order context in the conversation
The site can pass order number, exchange paire, amount, page and any custom data — the operator sees it in the customer card without manual lookups.
Customers contact you from the website, Telegram or e-mail while the team replies from one workspace with order context and the complete conversation history.
A branded React widget, Telegram platform, automation, chat groups, unified customer profiles, SLA, analytics and private E2EE conversations — hosted on your server.
Positioning
At an exchanger almost every question is tied to a payment, an order status, an exchange paire 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 paire, 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.
Architecture
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.
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.
Conversation queue, customer card, quick replies, tags, handoffs and analytics.
Loads the widget and can pass customer and order data.
Conversations, customers, files, ratings and audit live in your database.
The iEXChat platform
iEXChat covers the complete support cycle: it receives requests, surfaces customer and order context, helps the team meet SLA, preserves history and gives owners actionable analytics.
Connect a site-specific or custom bot for each website, with two-way sync, team-group topics, inline buttons, CSAT and a Telegram Mini App.
Site widget
A light loader fetches the versioned core only when needed. Shadow DOM prevents style collisions, and five modes cover native chat through a multi-channel menu.
Pre-chat, offline, closed, blocked, queue, incident and demo states with their own copy and display rules.
Recording and playback with seeking and speed; voice works website ↔ Telegram ↔ panel, with optional transcription.
Configurable size and categories, blocklist, drag-and-drop, paste, multi-upload, progress and multiple photos in one message.
Home, conversation list and help center with FAQ, articles, search, feedback, bot flows and deflection.
Russian and English built in, custom translations, auto/light/dark, sound, density, launcher, logo, greeting and live preview.
Multiple conversations, archive and restore, e-mail transcript, magic link and QR handoff to another screen.
HMAC identity, name, e-mail, phone, external ID, order number and direction, custom fields, page views and exchange events.
Quick starters, proactive invite, exit intent, message preview, tab alerts, reactions, reply-to, edit/delete and configurable CSAT.
Operator panel
The panel combines the inbox, customer and order context, internal collaboration and quality control. It installs as a PWA and supports Web Push.
NEW, ASSIGNED, PENDING, WAITING_CLIENT, RESOLVED, CLOSED and SPAM, plus filters, priority, pin, snooze, restore, bulk assignment and non-destructive archive by default.
Unified identity and linked conversations, location and device, custom fields, exchange events, manual link/unlink, data requests and JSON/CSV export.
Variable-based replies and one-click macros can send a response, change state and tags, assign the operator or add an internal note.
Global and site groups, colors and icons, role or member access, eight-hour password unlock, bulk membership, mentions, team DMs and private notes.
Full-text search, live metrics, SLA and CSAT, widget and bot funnels, operator reports and PDF conversation export.
ONLINE, AWAY, BUSY and OFFLINE, away reason and duration, vacations and schedules, manual, round-robin and least-busy assignment.
Capabilities
Website, Telegram, e-mail and API conversations share one queue with states, priorities, assignment, pinning, snooze and archive.
Live color, background, logo, density, action and launcher controls; light, dark and auto themes, eye-catcher, inline embed and optional branding.
Site-specific and custom bots, team topics, message and media sync, deep links, CSAT, inline actions and Mini App.
Requests connect by e-mail, phone, Telegram, external ID and verified identity, with one timeline, order context, profile fields and exchange events.
Roles, departments, availability and vacations, manual or automatic assignment, concurrency limits, priorities, SLA and escalation.
Dashboards for conversations, operators, visitors, exchange events, widget and CSAT, including FRT, resolution, missed chats, channels, UTM and geography.
Bot flows, quick starters, FAQ and articles, knowledge deflection, proactive invitations, exit intent, webhooks and macros reduce routine work.
Voice with optional transcription, drag-and-drop and pasted files, photo albums, reactions, replies, editing and co-browse with consent and masking.
Instant delivery
Socket.IO synchronizes website, panel, Telegram and workers while Redis Adapter scales realtime across instances.
Text, files, voice and system events arrive without reloads and preserve their order.
When enabled, operators can see the incoming text as the visitor types, not only a generic typing indicator.
Delivery, read state, reactions, replies, edits and deletion stay synchronized across channels.
Presence, schedules, vacations and temporary away status affect team availability.
Queue position, wait estimate, auto-assignment, capacity limits, SLA and escalation keep requests from being lost.
Background notifications lead operators to the right conversation while assignment and presence prevent overlapping replies.
Multi-site and roles
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.
Channels and integrations
Complete React website chat with conversations, history, files, voice, knowledge, bots, CSAT and order context.
Configure a bot for each website with media, typing, reactions, edit/delete, inline buttons, CSAT, deep links and cross-channel handoff.
Each conversation can receive a forum topic in the team group, while operators reply with commands or open the working Mini App.
SMTP sends outbound mail, while Postmark, Mailgun or a generic webhook turn inbound messages into conversations.
API keys, webhooks, HMAC identify, setOrder and exchange events connect the chat to an exchanger, CRM and internal workflows.
Contacts merge by e-mail, phone, Telegram user and external ID, with manual link and unlink when the team needs control.
Security
Core data and files remain in your perimeter. Owner-enabled external channels receive only the data needed to perform their role.
Argon2, TOTP, access and refresh JWTs, refresh rotation and reuse detection protect the operator workspace.
Signed visitor tokens, HMAC identify, per-site CORS, access checks and IDOR protection separate customers and projects.
AES-GCM-256 runs in the browser; the guest key lives only in the URL fragment while the server sees a fingerprint and ciphertext.
Rate limits, blacklist, Helmet and CSP restrict brute force, spam, suspicious requests and unsafe embedding.
Bot and integration tokens are encrypted at rest, while the audit trail records settings and conversation operations.
Co-browse starts only after explicit visitor consent and masks password, e-mail, phone and marked sensitive fields.
Deployment and operations
iEXChat runs inside your perimeter and includes the production foundation for reverse proxy, SSL, background jobs, storage, backups and health monitoring.
Automated clean-server setup configures services, reverse proxy and certificate, then runs readiness checks.
A minimal loader fetches the immutable widget core only when needed for fast, predictable and cache-friendly delivery.
Idempotent schema changes and backups reduce risk to production data during system maintenance.
Separate queues cover SLA, notifications, cleanup and analytics, with optional metrics and tracing.
Under the hood
A TypeScript monorepo with a React 18 panel, React 19 widget in Shadow DOM, NestJS 10 API, Prisma and PostgreSQL, Redis/BullMQ, Socket.IO, S3/MinIO and a dedicated worker.
Client
What the customer sees in the widget and the operator sees in the panel. Lightweight, isolated, reactive.
Operator panel: React 18, TanStack Query, TanStack Virtual, Zustand, Radix/shadcn and ApexCharts.
Widget: React 19 and Tailwind 4 inside Shadow DOM, lazy core loading and no host-page style collisions.
Strict TypeScript on every side — typed API contracts.
Design system for the panel and the settings pages.
Vite builds the panel and isolated widget core; the light loader fetches it only when required.
Socket.IO client — instant messages in the widget and the panel.
Server
NestJS API, a realtime gateway, a background worker with queues and Prisma on top of Postgres.
NestJS 10 provides the modular API, guards, pipes, background integrations and realtime gateway.
Prisma ORM — migrations, type-safe queries, baseline.
PostgreSQL — conversations, customers, settings, audit.
Redis + BullMQ + Socket.IO Adapter — queues and pub/sub.
Socket.IO gateway — all realtime events.
BullMQ worker handles notifications, SLA, cleanup, analytics rollups and retries.
Infrastructure
Self-hosted on Debian/Ubuntu, packed into Docker, nginx as a reverse proxy, Cloudflare optional.
Debian 13 / Ubuntu 26.04 is the recommended server base.
Docker compose — Postgres, Redis, MinIO, app, worker.
Nginx — reverse proxy, static files, Let's Encrypt certs.
Cloudflare — DNS, protection, optional WAF.
MinIO / S3 — files, voice notes, images.
systemd + cron — supervision and routine jobs.
Comparison
Useful resources
Instructions and help with setting up your product.
Ready to try
One product connects your website, Telegram, e-mail, team and customer data. Run iEXChat on your server and manage support from one workspace.