An AI sales assistant needs an explicit rule for when a person takes over. Forward the customer's question, the product and the conversation to a manager. After a human reply, pause automatic responses before generating another message and check again immediately before sending.
We implemented this in DOLOROSA, a resale shop selling individual items on Avito, a Russian marketplace. Product records and stock come from MoySklad, its inventory system. Managers handle conversations in Telegram topics. The buyer stays in the original marketplace chat.
Establish which item and price the customer means
The model receives the listing context rather than an unrestricted search result. Stock for another item of the same model does not prove that this particular resale item is available.
During an early comparison, 14 of 16 listing prices differed from the inventory records. One bag was listed at RUB 69,900 while its inventory card showed RUB 53,000. Passing both numbers without a rule could make the assistant quote an unauthorised discount. We use the marketplace listing for the customer-facing price and the inventory record for availability and condition.
A source for every fact
Avito
Listing, price, messages and order status through a separate API.
MoySklad
Product record, stock, description and tasks.
Integration service
Links chat, product and topic; checks duplicates and pauses the agent.
Telegram topic
Context, photos and messages in one place. Staff replies return to Avito.
Let the manager reply from the workspace
Each Avito conversation is linked to a Telegram topic. Incoming customer messages, bot replies and order events appear there. Ordinary manager text returns to the linked Avito chat; an internal note uses a separate prefix. A successful send is acknowledged, and failures are visible to staff.

Actual DOLOROSA conversation on 11 August 2026, in Russian. The manager replies above. The Copilot panel below is an unsent draft for staff to edit.
Open full-size image ↗The screenshot shows a manager replying “Yes, of course” to a collection question. The Copilot suggestion is a different message intended for the employee. It is not presented as a reply already delivered to the buyer.
Distinguish the human from the integration
On Avito, outgoing messages from the integration and staff use the same account. The account author ID alone cannot identify a human reply. The service therefore keeps a registry of its own sent message IDs. An outgoing message outside that registry triggers the manager gate. A message sent from the Telegram topic triggers the same pause.
This also handles the race where a manager answers while the model is still preparing text. Checking the gate only when generation starts would allow the older automatic reply to be sent afterwards.
Reserve uncertain decisions for staff
Negotiation, disputes, returns and physical inspection need a person. An empty condition field is not evidence that an item has no defects. If a task for the manager could not be created, the assistant must not tell the customer that the handoff succeeded.
Test a missing product, conflicting prices, a manager reply during generation and a timeout after sending. Track lost or duplicate replies and confirmed order events separately from the number of AI answers.
Read the full DOLOROSA case, then review the sales integration service. For another channel, the same handoff requirements need to be checked against that platform's APIs and permissions.
The implementations behind the guide
DOLOROSA: Avito and Telegram hub
Connecting Avito, MoySklad and Telegram for item-specific answers, product photos, order events and a seamless manager handoff.
EST.EPIL: AI receptionist
How Geron Labs connected EST.EPIL's website and Telegram to YCLIENTS for current prices, available slots, confirmed bookings and human handoff.