Skip to content
Anton GoncharovAI systems developer

Web app · shared inbox · CRM · protection against bank detail fraud

AI inbox triage

Dozens of emails land in a shared inbox every morning: requests, invoices, complaints, questions, newsletters and scammers all mixed together. A manager spends an hour sorting them, copying data into the CRM and replying. Here the agent triages the inbox itself and hands a human only what’s doubtful.

Scenario: Zerno coffee roastery — fictional: 14 emails to opt@zerno.example on the morning of October 13, a supplier directory and a price list.

Demo screenshot: AI inbox triage

Open the demo

The inbox and CRM run in the browser: emails are not sent anywhere.

The app runs in your browser: nothing is sent to a server.

What the demo shows

  • 11 categories: request, order change, invoice, complaint, question, documents, CV, newsletter, auto-reply, phishing — with confidence and signals

  • Fields from the email and attachments: company, tax ID with checksum validation, phone, city, deadline, order number, line items with quantity and price

  • An invoice whose bank details differ from the directory, plus “urgent” and “don’t call” — a “don’t pay until a call” task and human review

  • Phishing: a look-alike domain zern0, a login link, a password request — quarantine, links disabled

  • A reply in a thread finds its deal: items are added and the total is recalculated

  • A reply draft in the email’s language — with prices, a deadline and questions about what’s missing

  • Frequent questions get an auto-reply from the knowledge base; the rest is reviewed and sent by a manager

  • A confidence threshold: below it, the email waits for a human in the “Needs review” folder

  • Correcting a category with “Remember for this sender” — the rule applies to future emails

  • Your own email in the inbox and “Triage again” — the agent goes through emails one by one

How to try it

  1. Open a request

    An email from Marina at the Ugol coffee shop: the agent found three items, a tax ID, a phone and a deadline, created deal D-201 and priced the draft.

  2. Look at the Upak-Profi invoice

    New bank details, payment “today” and “no need to call” — two serious risks, and a task for accounting not to pay until they call the number from the directory.

  3. Find the phishing

    An email from an “administrator” at zern0.example went to quarantine — the agent shows which signals gave it away.

  4. Resolve doubtful emails

    In “Needs review” there’s a partnership email with 45% confidence. Press “No, it’s a Question” or correct the category with “Remember” ticked.

  5. Send a reply

    An email from Almaty in English gets a draft in English too. Edit the text and send it: the email goes to “Sent”.

  6. Look into the CRM

    Deals, tickets, tasks and notes — with links to the emails. Ugol’s deal has already been updated with a second email.

  7. Write your own email

    “Compose” — ready examples or your own text. Try raising the confidence threshold in settings and “Triage again”.

No paid neural networks

Emails are parsed by rules: a weighted word table, tax ID and account checksum validation, comparing bank details with the supplier directory, phishing signals and reply templates. In a production project the category, fields and draft come from a language model, while bank detail checks and routing stay in code — the model doesn’t decide whether to pay an invoice.

The demo runs without OpenAI, YandexGPT or GigaChat API keys. Wherever a production system calls a model, there’s a local stub with the same interface — so the demo is free, always available and never makes things up.

What a production project adds

  • Email via IMAP or the Yandex 360, Gmail and Microsoft 365 APIs; PDF attachments and scans via OCR
  • A language model (GPT, Claude, YandexGPT or GigaChat) identifies the email type and fields in any wording
  • Deals, tickets and tasks in amoCRM, Bitrix24 or 1C; replies go out from the same inbox
  • A supplier directory from 1C: any invoice with unfamiliar bank details becomes a stop task for accounting
  • A log of the agent’s decisions and managers’ corrections — used to tune rules and the prompt

Stack

  • React 19
  • TypeScript
  • Zustand
  • Vite
  • Tailwind CSS

Based on

Books and university courses whose ideas are at work in this demo.

  • Book · Bruce Schneier

    A Hacker’s Mind

    The agent catches an invoice with new bank details and phishing from a look-alike domain before payment: the weak spot is where people meet email.

  • Book · Georgy Chelpanov

    A Textbook of Logic

    Emails are sorted into 11 categories on a single basis — why the email came — and each category has the signs it is identified by.

Developer’s comment

Anton Goncharov

AI systems developer · Python

For business

  • The shared inbox is triaged in minutes: requests go straight to the CRM with items and totals, invoices to accounting, complaints to quality control.
  • The agent catches bank detail fraud and phishing before payment and before a click: such emails don’t slip through even when they’re “urgent”.
  • Managers don’t write replies from scratch — they edit a ready draft with prices and a deadline, and the agent answers frequent questions itself.

For developers

  • Triage is a pure function over the whole inbox: emails go from oldest to newest, and a reply in a thread finds the deal created by the first email. Corrections and rules simply recalculate everything.
  • Checks aren’t left to the model: the tax ID and bank account are validated by checksums, invoice details against the directory, domains for similarity to ours.
  • Confidence is the share of the best category among the accumulated weights; below the threshold an email doesn’t write to the CRM but waits for a human.

Tips

  • Tip 01

    Start with a supplier directory: checking bank details pays for the whole implementation with the very first email it catches.

  • Tip 02

    Don’t let the agent send replies to customers on its own, except for frequent questions from the knowledge base — first a month of drafts and an edit log.

Want the same for your business?

Tell me about your task — I’ll tell you what from the demo fits, how long it will take and what I’ll need from you.

Other demos in this section

All demos
  • Web app · agent diagram

    live

    AI agent builder

    A support agent is assembled from blocks: intents, a knowledge base, API calls, checks and operator handover. Send a customer message and watch its path light up on the diagram step by step.

    • React
    • TypeScript
  • Web app · question → SQL → chart · PostgreSQL in the browser

    live

    AI data analyst

    A manager asks in plain words — “revenue by channel for Q3”, “which customers stopped ordering” — and gets SQL, a chart, a table and a conclusion. The sales database is real PostgreSQL running right in the browser.

    • React
    • TypeScript
  • Web app · risks against a standard · Word with tracked changes

    live

    Contract review

    A counterparty sent their own contract — the review compares it with the company’s standard, highlights risky clauses, explains why they’re dangerous and suggests wording. The output is a Word file with tracked changes and a disagreement protocol.

    • React
    • TypeScript
  • Web app · tasks from chat · kanban · evening digest

    live

    AI agent in a team chat

    People write in the team chat as usual — “Pete, fix the price list by Friday”. The agent creates a task on the kanban board, moves it through “On it” and “Done”, reschedules and reassigns tasks, reminds about overdue work in the morning and sends a digest in the evening.

    • React
    • TypeScript
  • Web app · marketplaces · moderation check · unit economics

    live

    Product listings for WB and Ozon

    The agent turns a supplier’s text into two listings — for Wildberries and for Ozon: a title within the marketplace limit, a description with search keywords, attributes from the reference lists. Then it checks what listings usually fail moderation on and calculates what’s left from each sale.

    • React
    • TypeScript
  • Web app · meeting transcript · minutes · kanban

    live

    Meeting minutes → kanban tasks

    The agent reads a stand-up transcript and builds the minutes: decisions, tasks with an assignee and deadline taken from live speech, risks and open questions. Tasks go to the kanban board, and at the next meeting the agent moves them through statuses itself.

    • React
    • TypeScript
  • Web app · personal data · healthcare · analytics

    live

    Anonymizing data before it reaches a neural network

    The agent finds full names in any grammatical case, phones, passports, SNILS numbers, cards, addresses and diagnoses in emails and transcripts, replaces them before sending to an external neural network, and restores its answer to the real data on your side. It anonymizes a patient table for analytics so that nobody can be identified.

    • React
    • TypeScript
  • Web app · automation · amoCRM, 1C, Telegram

    live

    An n8n-style automation pipeline

    Three working scenarios of a furniture factory on a canvas, as in n8n: website leads go to amoCRM and to managers by lead temperature, YooKassa payments go to 1C with retries and an error branch, and every morning there’s a digest for the director. Trigger an event and watch records flow from node to node; the workflow can be edited and exported to real n8n.

    • React
    • TypeScript
  • Web app · multi-agent system · content

    live

    A team of AI agents for content

    Six agents prepare a publication from a brief: the editor-in-chief plans, the researcher finds facts in the knowledge base, the writer writes, the fact-checker and editor send the draft back for revision, and the SMM agent adapts the text for Telegram, VK, a newsletter, a blog and a carousel. You see the agents’ entire conversation, every edit and what would have been published without checks.

    • React
    • TypeScript
  • Web app · HR · scoring and chatbot

    live

    CV screening and an interviewer bot

    Twenty CVs for three vacancies are analyzed in seconds: employment periods, experience, salary and city, match with the requirements and a quote from the CV for every “yes” or “no”. What’s missing from the CV is clarified by a bot: it asks only the missing questions, follows up on vague answers and books an interview. Gender, age and family are left out of the assessment.

    • React
    • TypeScript
  • Web app · RAG · neural network in the browser

    live

    Search sandbox

    How a support bot finds an answer in a knowledge base: documents are cut into fragments, search runs by keywords, by meaning or as a hybrid, and every fragment found shows why it ranks above the others.

    • React
    • TypeScript
    • In-browser neural network
  • Web app · metrics · CI thresholds

    live

    Bot quality evaluation

    Before a new bot configuration is rolled out, it’s run against control questions. Here you can see how that works: hit@1, hit@3, the share of correct refusals, a comparison with production and a red banner if CI would block the release.

    • React
    • TypeScript
    • In-browser neural network
  • Web app · AI security · vanilla JS

    live

    Prompt injection defense trainer

    Try to trick a support bot: coax out a secret promo code, extract the system prompt or get a refund without grounds. Six defense levels, direct attacks and attacks via emails, reviews and the knowledge base, and a check log based on the OWASP Top 10 for LLMs.

    • Vanilla JS
  • Web app · AI economics · vanilla JS

    live

    AI bot cost calculator

    How much a bot will cost per month on GPT, Claude, YandexGPT, GigaChat or your own model on a rented GPU. Token-based calculation, all models compared on a chart, tips on paying less, and a real o200k tokenizer right in the browser.

    • Vanilla JS