Directual
Menu

Otwechator: a niche AI agent for marketplace review replies, built on Directual

April 20, 2026

How we built a niche AI agent that writes natural, personalized replies to reviews on Ozon, Wildberries, Yandex Market and Avito. Prompt-driven architecture, native SSE streaming, a deterministic Python pre-analyzer, billing and orchestration β€” all running on Directual, with zero custom backend code.

Otwechator: a niche AI agent for marketplace review replies, built on Directual

TL;DR

Otwechator is a niche AI agent that writes natural, personalized replies to customer reviews on the marketplaces Ozon, Wildberries, Yandex Market and Avito. In this case study we walk through how the agent is built: why we picked a prompt-driven architecture over the trendy agentic loop, how a deterministic Python pre-analyzer does the heavy lifting before the LLM is ever called, and why Directual ended up powering the entire backend β€” orchestration, database, SSE streaming, permissions, billing and marketplace integrations.

Why we built this

Russian marketplaces β€” Ozon, Wildberries, Yandex Market, Avito β€” generate millions of customer reviews every day. Sellers are required to respond to them: response speed and quality directly drive product card ratings, search ranking and, ultimately, sales.

The problem is how sellers answer. We analysed thousands of replies and saw the same pattern again and again: 70–80% of them are copy-paste. One templated message stamped onto every review, from a glowing five-star to a brutal one-star: "Thank you for your trust and high appraisal of our product" β€” verbatim, hundreds of times in a row.

Buyers see it. The marketplaces see it. Conversion drops.

We set out to fix this. Otwechator is an AI agent that writes living, personalized replies β€” not templates, not fillers. The answers sound like the seller actually read the review and actually thought about it, because behind the scenes there's an agent that knows everything: the product, the store's policies, the recurring complaints, the tone of voice, the history of past replies.

In this case study we'll dig into how Otwechator is wired up under the hood, why we chose a prompt-driven architecture over the trendy agentic loop, and how Directual became the infrastructure foundation for the whole thing.

Why ChatGPT and Claude "out of the box" don't cut it

The first question we get is always: "Why a separate product? Can't I just paste the review into ChatGPT and get an answer?"

You can. And the result will be exactly what you'd expect β€” one-off, contextless, with no understanding of the business. Here are the concrete reasons a bare model doesn't work for the review-reply task:

The model has no context about your business

ChatGPT doesn't know your return policy, warranty terms, catalogue or the history of issues with a specific product. It doesn't know that 18% of reviews on a particular pair of sneakers complain that they run small. It will write "we hear about this for the first time" where the right answer is "yes, we know about this β€” we recommend going one size up".

No system, no memory

Every ChatGPT request is a new context from scratch. You can't set a single tone of voice for the whole shop, can't upload a knowledge base, can't configure rules. Every time you copy a review, paste a prompt, edit the result, copy it back. At 50 reviews a day this turns into hell.

No analytics

The model won't tell you: "73% of your replies are the same copy-paste, every other one is full of bureaucratic phrasing, and your average response time on negative reviews is 28 hours β€” that's killing conversion." For that you need a separate analytical layer β€” and we built one.

No marketplace integrations

To automate the process you need to pull reviews via API, publish answers via API, manage roles, set up auto-publish rules. ChatGPT is a text box, not a business tool.

That's exactly why niche AI agents are a market category in their own right. A bare model is a brain without a body. What businesses need is a ready-made agent with hands, feet and memory: integrations, a knowledge base, analytics, a UI and access control.

Architecture: the big picture

  1. Frontend β€” a Next.js app built on top of the Directual starter template. A three-column UI with SSE streaming.

  2. Backend β€” Directual: pipeline orchestration, marketplace integrations, data storage, user and role management.

  3. AI agent β€” a prompt-driven architecture: a large structured system prompt + dynamic context assembled by the backend.

  4. LLM provider β€” GigaChat by Sber. For Russian B2B the choice is obvious:

    • Hosted in Russia, data-residency compliant out of the box. Data never leaves the country, the API won't get cut off by sanctions, and DPO/security sign-off goes through without drama.
    • Native-grade Russian. Understands idioms, marketplace slang and tone β€” unlike anglo-centric models that often give themselves away with literal translation.
    • A line-up for every budget. Lite / Pro / 2 Max β€” we route by review complexity. A five-star "thanks!" goes to Lite, a brutal one-star to Max. Several-fold cost savings.
    • Everything a prompt-driven architecture needs. Function calling, structured output, long context, native SSE streaming.
    • Local-currency billing through standard Russian contracts β€” usable by anyone from a sole proprietor to a federal retailer.
    • First-class Directual integration. A native plugin or HTTP step in a scenario; the SSE stream is proxied straight to the client without buffering.
  5. Pre-analyzer β€” a separate Python service for deterministic analysis of reviews and replies. It computes everything that can be computed without an LLM.

Let's go through each component.

Frontend: vibe coding + Directual

The frontend is built on Next.js + Directual Starter Template β€” our starter kit which already ships with auth (magic link, password reset), a WebSocket connection to Directual, SSE streaming and a basic dashboard.

The template is a bridge between vibe coding and a serious backend. You can throw the frontend together quickly β€” Cursor, Copilot, whatever β€” while all the business logic, data, integrations and orchestration live on Directual. This is a fundamentally different posture from "everything on the frontend": here the frontend is thin and the brains live on the backend.

Frontend stack:

  • Next.js 16 (App Router)
  • TypeScript
  • Tailwind CSS + shadcn/ui
  • SSE for LLM response streaming
  • Socket.IO for realtime notifications

The three-column UI

The key UX decision is three columns:

Otwechator's three-column UI: review and reply draft on the left, chat with the AI agent in the middle, knowledge base on the right

  • Left β€” the customer review and the reply draft. The draft appears automatically from the LLM stream and the seller can edit it right in place.
  • Center β€” the chat with the agent. The seller talks to Otwechator, asks for tweaks: "make it shorter", "add something about the warranty", "drop the apologies, this isn't our fault".
  • Right β€” context: product card, knowledge-base documents, policies.

The LLM response streams over SSE in real time β€” the seller watches the agent "think" (extended thinking) and "type" the answer. It's not just a nice touch; it lowers anxiety: it's obvious the agent is working, not stuck.

Backend: Directual as the orchestrator

The entire Otwechator backend is Directual. Not "Directual + five other services". Directual is the only platform that orchestrates the whole pipeline from receiving a review to publishing a reply.

What the backend does

  1. Marketplace integrations β€” Directual pulls reviews via API from Ozon, Wildberries, Yandex Market and Avito. New reviews appear in the system automatically. Replies are published back through the marketplaces' APIs.

  2. Data storage β€” every review, draft, chat, project, user and document lives in Directual's built-in database. Each project is its own namespace with full data isolation.

  3. Context assembly for the LLM β€” on every request the backend gathers the full context: review text, comments, product card, seller documents, pre-analysis results, chat history. All of it is packed into a structured prompt.

  4. LLM call and streaming β€” Directual hits the model over HTTP, receives the SSE stream and proxies it to the frontend without buffering.

  5. Roles and permissions β€” the built-in role system controls who can do what: who can publish replies, who can only view drafts, which reviews can be posted on (more on this below).

  6. Webhooks and notifications β€” new reviews, status changes, analysis results β€” these are all events that Directual handles via scenarios and pushes to the client over WebSocket.

Why Directual instead of a custom backend

We could have written the backend in Node.js or Python β€” and burned three months on infrastructure instead of product. Directual let us focus on business logic:

  • Database with API β€” out of the box. No need to design schemas, write migrations, configure ORMs. Define a structure β€” get a REST API.
  • Scenarios instead of code β€” visual orchestration of business logic. Receive a review β†’ assemble context β†’ call the LLM β†’ save the result β†’ send a notification. All of that is a chain of steps in a visual builder.
  • HTTP integrations β€” connect to any API (marketplaces, LLM providers, the pre-analyzer) without writing boilerplate.
  • Cloud β€” no thinking about servers, scaling or fault tolerance.

SSE streaming: something no other low-code platform offers

Streaming deserves its own section, because this is the thing that sets Directual apart from the rest of the low-code market.

An AI agent that goes silent for 10 seconds and then dumps a wall of text is bad UX. The user needs to see the answer being generated in real time. That requires SSE (Server-Sent Events) β€” a streaming channel from the server to the client.

Directual supports SSE natively, via directual-js-api. And it supports it in two modes β€” and that's the part that matters.

Mode 1: Single-request stream

The simple flavour: send a POST request, get back an SSE stream. Request β†’ stream. That's exactly how reply generation works in Otwechator: the frontend pushes a request, Directual assembles context, calls the LLM and proxies the SSE stream straight to the client.

Client β†’ POST /stream/{structure}/{method} β†’ Directual β†’ LLM
   ◀── SSE: content_block_delta... ──◀── GigaChat stream ──◀

Mode 2: Init + Subscribe (for autonomous agents)

Now this is the serious one. A two-phase mechanism:

  1. Init β€” a POST request kicks off the stream and returns a streamId
  2. Subscribe β€” a client subscribes to the stream by streamId over GET
Client β†’ POST /stream/init/{structure}/{method}
   ◀── { streamId: "abc-123" }

Client β†’ GET /stream/subscribe/abc-123
   ◀── SSE: data as it becomes available

Why two phases? Because in real agentic systems the process that initiates the stream and the process that consumes it are often different. A backend scenario kicks off generation (init), gets a streamId, stores it in the database β€” and a separate process (frontend, another scenario, mobile app) subscribes to the result.

This is critical for cloud-based autonomous agents. Picture an agentic loop running on a server: the agent calls a tool β†’ gets a result β†’ thinks β†’ calls the next tool. Every step is a separate LLM call, every call is a stream. Init + Subscribe decouples execution from connection: the agent runs in the background, and the client can subscribe to the stream at any moment, reconnect after a drop, or even subscribe after the fact.

No other low-code/no-code tool offers this. n8n, Make, Zapier β€” all request/response. Bubble, Xano β€” no SSE support at all. Directual is the only platform where LLM streaming is a native, production-grade feature with two operating modes.

In Otwechator we use mode one (single-request) β€” because we have a prompt-driven architecture with a single call. But the infrastructure for a full agentic loop is already there, and for the next generation of products built on Directual it will matter.

Prompt-driven architecture: the agent's brain

This is probably the most interesting part. While everyone around us is building agentic loops with tool calls, we picked a prompt-driven approach. Here's why.

Why not an agentic loop

In an agentic loop the model decides which tools to invoke: search_knowledge, get_product_info, get_similar_reviews. Sounds cool β€” but for the review-reply task it's overkill:

  • The context is predictable. We know in advance what the agent needs: review text, product card, seller documents, reply statistics. There's nothing to "search" β€” there's just stuff to inject.
  • One LLM call instead of five. An agentic loop is 3–7 model calls per response. That's 10–30 seconds instead of 2–5. And it's 3–5x more expensive.
  • Predictability. An agentic loop can get stuck in a cycle, call an unnecessary tool, burn budget on pointless requests. Prompt-driven is one call, one result, no surprises.

How it works

Instead of letting the agent hunt for information, the backend assembles everything up front and injects it into the prompt. The model gets the full context in one shot and emits a structured response.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ system prompt: ~600 lines of instructions (static)   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ user message (dynamic, built by the backend):        β”‚
β”‚   <task>A</task>                                     β”‚
β”‚   <review>review text, rating, date...</review>      β”‚
β”‚   <comments>comment history</comments>               β”‚
β”‚   <product_contexts>product card</product_contexts>  β”‚
β”‚   <seller_docs>policies, tone of voice</seller_docs> β”‚
β”‚   <seller_analysis>reply audit</seller_analysis>     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ assistant: structured response                       β”‚
β”‚   <review_analysis>review analysis</review_analysis> β”‚
β”‚   <response_strategy>reply strategy</strategy>       β”‚
β”‚   <draft>final reply text</draft>                    β”‚
β”‚   <chat_message>message for the seller</chat_message>β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The system prompt β€” a behaviour spec

The system prompt isn't "you're an assistant, answer reviews". It's a detailed behaviour specification β€” about 600 lines, marked up in XML. The document covers:

  • Role and strategy β€” who you are, what the main goal is, the funnel for handling negativity (move it into private messages).
  • Three operating modes β€” task A (draft from scratch), task B (revise based on the seller's feedback), task C (analyse a published reply and score it across 11 criteria).
  • Input/output format β€” which XML tags to expect on input and which to emit on output. This is the contract between backend, LLM and frontend.
  • Writing rules β€” natural language, specificity, anti-patterns, length, inviting the customer to DMs on negative reviews.
  • Multi-turn behaviour β€” how to keep a conversation with the seller, handle edits, react to knowledge-base updates.
  • Security β€” defending against prompt injection through review text, jailbreak attempts, prompt confidentiality.
  • Edited-review detection β€” an algorithm that reconstructs the timeline from comment dates: if the review date is later than the seller's first reply, the review was edited after the issue was solved in DMs.

XML tags as a protocol

A key architectural decision is using XML tags as the protocol between the LLM and the UI. The model responds in a structured way:

  • <review_analysis> β€” situation analysis
  • <sources_used> β€” which documents were used
  • <response_strategy> β€” reply strategy
  • <draft> β€” final reply text
  • <chat_message> β€” message to the seller in chat

The frontend parses these tags out of the SSE stream in real time and routes them to the right UI sections: draft to the left, chat message to the chat, analysis to a collapsible block. This is at the same time:

  • A protocol β€” the frontend knows exactly which blocks to expect for each task.
  • Chain-of-thought β€” the model first analyses, then plans the strategy, then writes the draft. The order of tags forces it to "think" before "answering".
  • Transparency β€” the seller sees not just the result but the agent's reasoning.

Personalization: the customer brings the data

Each project in Otwechator is its own workspace with its own knowledge base. The seller uploads:

  • Product catalogue β€” descriptions, attributes, known issues
  • Documents β€” return policy, warranty terms, reply standards
  • FAQ β€” manual notes: "if they ask about delivery to Kazakhstan β€” we don't ship there"
  • Tone of voice β€” how to talk to customers (formal vs. casual, with or without emoji, light tone vs. strict)

All of that lives in the Directual database, and on every request the backend pulls the relevant documents and injects them into the prompt. The agent knows your business not because it's been "trained" β€” but because it gets fresh context on every call.

The pre-analyzer: Otwechator Audit

One of the most powerful features is the Otwechator Audit. It's a deterministic Python service that analyses the seller's existing reviews and replies before the LLM ever runs.

Otwechator Audit report: stats on copy-paste, bureaucratic phrasing, response speed and other anti-patterns in the seller's marketplace replies

Why a separate service

The job: understand how the seller has been answering, find systemic problems, surface anti-patterns. We could have done it inside the LLM β€” but why burn tokens on something that's perfectly computable algorithmically?

The pre-analyzer is a FastAPI service in Python. Zero LLM calls. Everything runs locally: TF-IDF, cosine similarity, DBSCAN clustering, morphological analysis via pymorphy3. Pure math.

What it computes

The seller's reviews and replies for the past month are pulled via API and sent to the pre-analyzer in a batch. It processes anywhere from 10 to 2,000 review/reply pairs and produces a report:

12 analysis modules:

  1. Copy-paste β€” DBSCAN clustering of replies on TF-IDF trigrams. Finds groups of identical answers, computes the share of templated replies.
  2. Bureaucratic phrasing β€” a dictionary of markers of officialese language that kills sales: "expressed trust", "inconveniences caused", capitalised formal "You".
  3. Ads in replies β€” detection of promotional content, external links, promo codes. Especially critical in replies to negative reviews.
  4. Tone vs. rating mismatch β€” gratitude on a 1-star review, aggression on a complaint.
  5. Personalization β€” how strongly the reply is tied to the actual content of the review (keyword overlap after lemmatization).
  6. Response speed β€” mean and median response time, broken down by rating. Negative reviews are answered slower β€” that's a problem.
  7. Unanswered reviews β€” share and pattern of skipped reviews.
  8. Vocabulary diversity β€” uniqueness of wording, uniformity of reply length.
  9. Fabricated context β€” when the seller writes "glad you liked X" but the customer never mentioned X.
  10. Brush-offs β€” replies that are too short for long or negative reviews.
  11. Templated openers and closers β€” identical first/last 15 words in 60%+ of replies.
  12. Ignored questions β€” the customer asked a question in the review and the seller didn't answer it.

The result becomes part of the agent's context

The pre-analysis result is injected into the prompt as <seller_analysis> β€” and the agent gets the full picture:

  • Statistics β€” rating distribution, average response time, share of answered reviews
  • Clusters β€” which templates the seller uses and how much of their replies they cover
  • Anti-patterns β€” concrete issues with examples: "73% of replies are the same phrase", "gratitude on negative reviews 40% of the time"
  • Strengths β€” what the seller does well (so the agent preserves the good moves)

Thanks to this the agent doesn't repeat the seller's mistakes. If the seller wrote "Thank you for your feedback" in 73% of replies β€” the agent will pick a different phrasing. If complaints about sneakers running small are systemic (18% of all reviews) β€” the agent won't write "we hear about this for the first time".

The result is cached and reused for every review on that product β€” there's no point recomputing it for every single review.

How reply generation works

Task A β€” a draft from scratch

The seller opens a review and hits "Go!". Then:

  1. The frontend sends a request to Directual
  2. A Directual scenario assembles the context: review text + comments, product card from the knowledge base, seller documents and policies, pre-analysis result
  3. The prompt is built: static system prompt + dynamic user message with XML context blocks
  4. One LLM call (GigaChat), the result streams over SSE
  5. The frontend parses XML tags out of the stream and routes them to UI sections

Total: ~7–13K input tokens, ~1–2K output. One call. 2–5 seconds.

Task B β€” refinement in conversation

The seller writes in the chat: "Make it shorter" or "Add something about the warranty" or "Drop the apologies, this isn't our fault."

The backend appends the message to the chat history, plugs in the current draft, refreshes the context (if the documents changed) β€” and again one LLM call. The model sees the whole history plus the seller's edit and emits an updated draft.

Task C β€” analysis of a published reply

The seller has already replied on the marketplace. Otwechator analyses the thread and grades it honestly across 11 criteria: response speed, specificity, brevity, bureaucratic phrasing, tone, completeness, promises, effect on the reader, escalation to DMs, copy-paste, contextualization. Scores from 1 to 10 β€” no inflation.

If the score is low (1–4), it suggests a follow-up comment the seller can publish next to repair the situation. Not "rewrite the reply" (you can't edit it any more) but "add an addendum".

Team and permissions: the agent as a team member

One of the concepts we're most proud of: the Otwechator Agent is a full team member.

A project has a team: the shop owner, managers, assistants. Each gets permissions β€” who can view, who can edit, who can publish replies.

And here's the key bit: the agent is also a participant with configurable permissions. It works within the same boundaries as humans.

Flexible publishing rules

You can configure:

  • Auto-posting β€” the agent publishes replies on certain reviews itself (e.g. only on 4–5 stars, where the risk is minimal).
  • Rating-bound limits β€” a manager can publish replies only on 4–5 star reviews. Negative ones (1–3 stars) require owner approval.
  • Full control β€” no reply leaves without manual review.

This lets you shape the workflow around the actual business: more freedom for senior managers, restrictions for juniors, dedicated rules for the agent. Everyone works in the same UI under the same rules.

Tech stack

Component Technology Purpose
Backend Directual Orchestration, data, API, integrations, permissions
Frontend Next.js + Directual Starter Template UI, SSE streaming, WebSocket
UI components shadcn/ui + Tailwind CSS Fast UI assembly
LLM GigaChat (by Sber) Russian infrastructure, native-grade Russian, no sanction risk, ruble billing
Pre-analyzer Python, FastAPI, scikit-learn, pymorphy3 Deterministic analysis without an LLM
Streaming SSE (Server-Sent Events) Streaming LLM responses
Notifications Socket.IO Realtime status updates

Cost per reply

  • System prompt: ~3–4K tokens
  • Context (RAG + pre-analysis): ~3–6K tokens
  • Chat history: ~1–3K tokens
  • Output: ~500–1K tokens
  • Total: ~8–14K tokens β‰ˆ $0.01–0.03 per reply

At 1,000 reviews a day β€” $10–30 of LLM spend. A human manager costs more.

What's inside Directual

For those interested in the implementation details on the platform:

Data structures

  • WebUser β€” users, roles, permissions
  • Projects β€” seller projects with settings, tone of voice, marketplace connections
  • Reviews β€” reviews with statuses (new β†’ generating β†’ draft β†’ approved β†’ published)
  • ChatMessages β€” chat history with the agent
  • KnowledgeBase β€” documents, FAQ, product cards
  • SellerAnalysis β€” cached pre-analysis results

Scenarios

Directual visual scenario for generating a review reply: context assembly, prompt construction, LLM call and SSE streaming of the result

  • Review sync β€” on a schedule or via webhook, pulls new reviews from marketplaces
  • Reply generation β€” assembles context, builds the prompt, calls the LLM, streams the result
  • Publishing β€” sends the approved reply back to the marketplace via API
  • Pre-analysis β€” kicks off the Python service and processes the result through a webhook
  • Billing β€” payment intake, subscription charges, usage accounting (more below)

Billing and monetization β€” fully on Directual

Monetization is a separate story. Otwechator's billing is a YooKassa + Directual combo. YooKassa accepts the money, while all the accounting, subscription and balance logic lives on Directual:

  • Payment intake β€” YooKassa as a payment gateway, integrated via HTTP requests from scenarios. Webhooks from YooKassa land in Directual, a scenario processes the payment status and updates the user's subscription.
  • Token and reply accounting β€” every LLM call is logged: how many tokens were spent, on which review, which user initiated it. A scenario decrements the user's "reply" balance after a successful generation.
  • Subscriptions β€” recurring charges via a CRON scenario: it checks the next billing date, initiates the charge and updates the status. Overdue β†’ notification β†’ generation block.
  • Reply packs β€” the user buys N replies, the balance is stored in a data structure and decremented on every use. When it gets low β€” a WebSocket notification.

YooKassa handles money intake β€” everything else (subscription logic, balances, charges, notifications) lives on Directual as ordinary business logic. No custom billing microservice.

API endpoints

Directual auto-generates a REST API for every structure. The frontend talks to the backend through standard GET/POST requests and SSE streams. All of it works through a single auth point β€” no separate auth service.

Why Directual specifically

We're building a product on our own platform β€” and it's not just dogfooding for the sake of it. Directual genuinely covers every need Otwechator has:

  1. Complex backend without code β€” orchestration of the generation pipeline, integrations with four marketplaces, streaming, webhooks, CRON jobs. All of it via visual scenarios.

  2. Plug into any LLM β€” GigaChat, YandexGPT, Claude, GPT, Gemini β€” through standard HTTP requests. We're not locked into a single provider; we can switch models depending on the task, the budget and regulatory requirements.

  3. Native SSE streaming β€” two modes: single-request for simple pipelines, init + subscribe for autonomous agents. No low-code competitor offers this β€” details in directual-js-api.

  4. Billing as business logic β€” payment intake, subscriptions, token and reply accounting β€” all through scenarios and data structures, no external billing services.

  5. Roles and permissions out of the box β€” a permission system that let us implement the "agent as a team member" concept without writing any auth logic.

  6. Cloud β€” we don't think about servers. Otwechator processes thousands of reviews a day, Directual scales automatically.

  7. Development speed β€” from idea to MVP β€” weeks, not months. Every change in business logic happens in the visual builder, no backend deploys.

Wrap-up and what's next

Otwechator is an example of what happens when a niche AI agent is built on the right infrastructure:

  • Prompt-driven architecture instead of an expensive, unpredictable agentic loop β€” one LLM call, 2–5 seconds, $0.01–0.03 per reply.
  • A pre-analyzer β€” a deterministic Python service that crunches everything that can be crunched without an LLM and feeds the agent.
  • Directual β€” a complete backend without a single line of server code: data, API, scenarios, integrations, streaming, permissions.
  • Next.js + Directual Starter β€” a frontend you can throw together fast through vibe coding without sacrificing architecture.
  • Agent as a team member β€” not a separate tool but a participant in the workflow with permissions and rules.

What's next

  • Batch generation β€” replies to 100 reviews in a single click
  • Extended auto-reply rules β€” configurable conditions for automatic publishing
  • Analytics dashboard β€” quality dynamics, response time, satisfaction score
  • Delta analysis β€” "you used to have 73% copy-paste, now it's 12%" β€” progress tracking

If you sell on marketplaces and you're tired of templated replies β€” give Otwechator a try.

If you want to build your own AI agent for a different niche β€” start with Directual. Free AI Agents course β€” 60 minutes, and you'll have built your first agent with a RAG system.

Ready to build your dream app?

Join 22,000+ no-coders using Directual and create something you can be proud ofβ€”both faster and cheaper than ever before. It's easy to start thanks to the visual development UI, and just as easy to scale with powerful, enterprise-grade databases and backend.