LEO Chat — a store chatbot that shows the revenue
LIONEX's own SaaS: the bot sells in Telegram and in the widget on the site, completes orders with Nova Poshta and payment in the chat, and shows which orders came after which scenario.

About project
LEO Chat is LIONEX's own SaaS product. A chatbot platform for Ukrainian online stores: the bot answers questions from a knowledge base, shows products, completes orders with Nova Poshta delivery and payment right in the chat, and in the dashboard you can see which orders came after which dialogue, scenario or broadcast. We have kept it in production since July 2026 and use it ourselves: the widget in the corner of this page is LEO Chat.
The problem it solves
A store receives questions in messengers and on the site around the clock, and answers during working hours. Broadcast services and bot builders count subscribers and clicks, but do not show whether an order came out of it. LEO Chat closes the chain: question → answer or product → order in the chat → payment → a line in the revenue report tied to the scenario.
The bot does not create demand and does not guarantee sales. It removes a technical loss: questions left unanswered outside working hours, orders that never reached payment, broadcasts with no report in hryvnias. How much of that becomes orders depends on the assortment, the prices and how fast the managers are on complex questions.
How it works
- Connection. A Telegram bot through the Bot API, or a widget on the site with a single script. The onboarding wizard walks you through channel → catalogue → bot template.
- Knowledge and catalogue. A knowledge base from PDF/DOCX/TXT files, site pages and an FAQ. The catalogue comes from a Horoshop, Prom.ua or CSV feed on a schedule, or from a scanner that reads the product microdata on the site and builds a category tree.
- Scenarios. A visual builder: messages, conditions, delays, actions, HTTP requests, handover to an operator, an AI answer, a product card, checkout, payment, a form. Validation before publishing, testing in an emulator.
- Dialogue and orders. The AI answers within the knowledge base, remembers the context of the dialogue and suggests products with a “Buy” button. Cart → name → phone → city and Nova Poshta branch (the real directory), courier or self-pickup → cash on delivery or card → confirmation and the waybill into the chat.
- Report. The “Revenue through the bot” dashboard: orders and amounts by channel, scenario and broadcast, the dialogue → order conversion, the scenario funnel by node, the share of dialogues closed without an operator.
What is inside
- Channels: Telegram and the web widget (a greeting with buttons, an inline request form, voice input, product cards, a cart). Instagram and Viber are planned.
- An AI consultant on the knowledge base with links to the sources; anything unknown is handed to an operator; memory about the customer; a list of “questions without an answer” to extend the base.
- A real-time Team Inbox: all dialogues in one window, handover bot ↔ operator, a customer card with orders and requests, the owner / manager / operator roles.
- Broadcasts by segment (tags, attributes, behaviour) respecting the Telegram limits, with the campaign revenue in the report.
- The Nova Poshta module: branches, parcel lockers, courier to the door, waybill creation, label printing, automatic status sync.
- Payment: cash on delivery, Monobank acquiring, LiqPay on the client's keys. Promo codes, refunds, an abandoned cart trigger.
- Forms and briefs: a step-by-step wizard in the widget, a conversational mode in Telegram; source labels (UTM, page) on every request.
- Analytics: attribution of orders to a scenario, an end-to-end funnel site → dialogue → request → deal, site web analytics with a heatmap and no personal data.
- For studios: several workspaces under one login, an agency plan with a shared pool of limits and a single invoice.
- Security: 2FA, session management, Google sign-in, API keys, a public knowledge base API, webhooks, an audit log. Data on servers in the EU; requests to OpenAI are not stored on the provider's side.
The revenue report is an attribution model (last-touch within a configured window), not accounting. It shows that an order was paid after a dialogue or a broadcast, and it does not claim that the order would not have happened without the bot.
Technically
The whole stack is TypeScript: one Fastify backend (REST API, receiving and sending messages, the scenario engine, WebSocket, the AI gateway), PostgreSQL + Prisma, Redis, NATS JetStream as a durable message queue, ClickHouse for events and reports, BullMQ for delayed sending. The dashboard is Next.js, the widget is Preact. The reliability layer: a transactional outbox, message deduplication, a dead-letter queue, payment reconciliation, a circuit breaker on every external API.
Our measurements. On 17.08.2026, on a test stack under a load of 300 messages per second, the engine was killed by force and NATS and Redis were restarted — not a single acknowledged message was lost or duplicated. On 18.08.2026 — 298 messages per second processed in real time; the integration suite ran 585 passing tests. On 04.07.2026, on a reference set of 45 questions, the AI gave 89.7 % accuracy and no answer outside the knowledge base, at an average cost of $0.0008 per answer. On 07.09.2026 the landing page responded in 0.21 s at 153 KB of HTML, and the widget script is 19 KB gzipped. This is the state of the product on the dates of the measurements.
Try it
LEO Chat is a self-service product with plans and a trial period without a card on its own site. The live demo is the bot in the corner of this page. If you need to connect a bot to your store, catalogue or CRM, leave the task with the agency: we reply within 2 hours and work under a contract.
How measured: 7 вересня 2026 р., Україна (зовнішній HTTP-замір), curl, TTFB; chaos-тест k6 17.08.2026 на тестовому стеку. Цифри — стан продукту на дату заміру, не бізнес-результат клієнтів. TTFB залежить від географії заміру; навантажувальні цифри отримані на тестовому стеку, не на проді.Numbers can be verified independently — the site is open.
Measured facts
- 0.21 stime to first response of the product page at 153 KB of HTML7 September 2026 · external curl measurement from Ukraine
- 0 lossesnot a single lost and not a single duplicated acknowledged message during a chaos test: 300 requests per second, with the engine, NATS and Redis killed by force17 August 2026 · k6 load test on a local full stack, not on production
- 89.7 %accurate answers on a reference set of 45 questions, with no answer outside the knowledge base4 July 2026 · evaluation of the AI consultant on real OpenAI
Comparison with the alternatives
| Criterion | LEO Chat | A bot builder or a broadcast service | A general-purpose AI chat on the site |
|---|---|---|---|
| What the report shows | Orders paid after a dialogue, a scenario or a broadcast — by the last-touch model within a configured window | Subscribers, delivered messages, clicks | Dialogues and satisfaction ratings |
| Order checkout | Cart, phone, branch, payment and waybill inside the chat | Mostly a button to the site or a form | None |
| Delivery | Nova Poshta on the real API: cities, branches, parcel lockers, waybills, statuses into the chat | Through third-party connectors | None |
| Payment for Ukraine | Cash on delivery, Monobank, LiqPay on the store's own keys | Depends on the plan and the region | None |
| Catalogue source | Horoshop and Prom.ua feeds, CSV, a scanner of the site's microdata | Partly, through intermediate services | None |
| AI answers | From the store's knowledge base with a link to the source; anything unknown goes to an operator | Present in some services, usually as a separate option | Present, on general knowledge |
| Channels today | Telegram and a widget on the site | A wider set of messengers | The site only |
What it does not do
- It does not create demand: the bot works with people who have already written into the chat.
- Only Telegram and the site widget work today. Instagram and Viber are planned, so LEO is not yet a fit for a store whose main channel is Instagram.
- There are no integrations with KeyCRM, SalesDrive, GA4 or Meta CAPI — those are plans, not features. External systems are connected through webhooks and the public API.
- The revenue report is an attribution model, not accounting: it shows that an order was paid after a dialogue, and it does not prove that the order would not have happened without the bot.
- Card payment is switched on with the payment provider keys of the store itself, and a complex question — a custom price or a disputed return — is still closed by a person.
Works together with
Textory rewrites catalogue descriptions and publishes a feed in the Prom-YML format, and LEO Chat connects that feed as a catalogue source on a schedule — so the bot already answers with the new descriptions, without manual edits.
Technologies
Project gallery



Related projects

Textory — AI rewriting of product descriptions
LIONEX's own SaaS: it rewrites the whole product catalogue into unique SEO descriptions. You upload a feed from Prom.ua, Horoshop or OpenCart and get a file ready to import back.

LiteShop — an online store engine with several warehouses in the core
LIONEX's own product: a Laravel store engine with the source code, several warehouses with a different price for the same product, wholesale price levels and stock accounting in the core.

KVED → NACE 2.1-UA
A free public converter of KVED-2010 (Ukrainian activity codes) into NACE 2.1-UA: 616 codes, each with a page of its own, and recognition of codes straight from an uploaded extract from the Unified State Register (EDR).
Let's create something
similar for you
Tell us about your project, and we'll help bring your ideas to life.