Skip to Content

Sotuvchi

Multi-channel AI sales agent for SMBs in Uzbekistan. Customers chat the merchant on Telegram or Instagram; Sotuvchi answers in Russian or Uzbek 24/7, qualifies leads, sends Click / Payme payment links, and hands off to humans when needed.

These docs are for engineers building or operating Sotuvchi. For product overviews, see the marketing site. For the source of truth on architecture, branding, and multi-tenancy invariants, read CLAUDE.md at the repo root.

What you’ll find here

  • Getting started — clone, install, run all three apps locally, exercise the agent two ways.
  • Architecture — three-service split, communication via Redis Streams, exact stack versions.
  • Multi-tenancy — merchant_id format, RLS, MerchantContext, Qdrant per-merchant collections.
  • Product — plan tiers, onboarding flow, dashboard screens.
  • Channels — Telegram Business Connection rules, Instagram 24h window.
  • Services — what each of the three apps owns and how they’re wired.
  • Persona & tools — how persona UI compiles into a system prompt, plan-gated tool surface.
  • Superadmin — read-only-by-default fleet management, audit log, impersonation rules.
  • Contributing — branching, commits, the PR contract, CI gates.
  • Reference — env vars, plan-feature matrix, glossary.
  • Roadmap — phase-by-phase delivery plan with current status.

What this product is — and is not

Sotuvchi is not a generic AI chatbot, a Western SMB tool, or a fintech app. It is a sales agent built for Uzbek SMBs, anchored in:

  • Markets: Uzbekistan only for v1. No UK / EU / US-specific logic.
  • Languages: Russian + Uzbek (Latin and Cyrillic scripts both supported), from day zero. No machine-translated Uzbek to merchants.
  • Channels: Telegram (via Business Connection) primary; Instagram secondary. Not WhatsApp. Not SMS.
  • Payments: Click (primary), Payme (secondary). Never Stripe / SumUp.
  • Auth: Clerk only. No hand-rolled auth.

These are hard constraints. They override generic SaaS instincts. See CLAUDE.md §2.

Branding

  • Customer-facing brand: Sotuvchi. Always.
  • “CORTEX” was the prototype codename — never ships.
  • The parent organisation exists in legal docs and infra DNS only — never in product UI, marketing, or emails.
  • CI greps apps/ for both forbidden strings on every PR.

Need to make a change?

  1. Read CLAUDE.md. All of it. It’s the source of truth and overrides assumptions from other projects.
  2. Find the matching phase in the roadmap.
  3. Follow the PR checklist before pushing.
Last updated on