Published: 4 min read
How an AI avatar sells on a live stream: from comment to checkout
Following one comment — “do you have a size 42?” — through the classifier, the priority queue, catalogue tools and the payment link.
By Avatar team · Productai-braincommentscheckout
A selling stream with an avatar looks simple from the outside: a digital host talks, shows the product and answers viewers. Inside there is a chain of systems, and whether the avatar sells anything depends on how that chain is built. Let's follow one comment all the way through.
The comment goes into a queue, not straight to the model
A viewer types in YouTube chat: "Is this suit available in XL?". The message arrives via the Live Chat API and lands in a queue rather than in the language model. That matters: a busy stream can produce a thousand comments a minute, while the avatar can physically speak one answer every 5–10 seconds.
The classifier assigns each message a type and a priority:
| Comment type | Priority |
|---|---|
| "I'll take it", purchase intent | 10 |
| Product or price question | 9 |
| Availability, size, colour | 8 |
| General question | 5 |
| Small talk | 1 |
| Spam and abuse | 0 |
Our XL question gets priority 8. If twenty people asked the same thing in the last minute, the system collapses them into a single answer and mentions that it is a popular question.
The avatar interrupts itself
At that moment the avatar is talking about the fabric. The high-priority question interrupts speech: the state machine goes from SPEAKING to INTERRUPTED, then to PROCESSING. The avatar finishes the sentence at a natural pause, answers, and returns to the presentation where it left off (RESUME).
Without this mechanism answers arrive minutes late, and the viewer is already gone.
The answer is built on tools, not on the model's memory
The language model does not know your stock levels and must not guess them. Instead it calls functions:
check_stock(product="Linen suit", size="XL")
→ { "in_stock": true, "qty": 4, "price_minor": 12900 }
The answer is phrased from the returned data: "Yes, XL is in stock, four left, $129. Want a closer look?". If the function returns zero, the avatar says so and calls find_similar_products to offer an alternative. Invented specifications cannot happen in this design: the model has nowhere to get them from.
"I'll take it" becomes an order and a link
The viewer types: "I'll take the XL". Priority 10. The call chain:
create_cart()— the cart is tied to the viewer and the stream.create_order()— an order inawaiting_payment, stock reserved for 30 minutes.payment_link()— a short link to a mobile checkout page.
The avatar says: "I've dropped the link in chat, holding your size for half an hour". The shopper opens the page on their phone, sees the order and proceeds to the provider: Stripe Connect, your own YooKassa shop or an external link. Card data never touches the platform.
What happens after payment
The provider webhook moves the order to paid, releases the reservation, records the amount in the gmv metric and updates the LIVE NOW dashboard: products sold, revenue, conversion. The shopper receives a receipt by email, and the avatar gains a memory entry: size XL, interested in linen suits. That comes in handy in the next stream.
Where the human fits in
The operator is there to supervise, not to answer. The console shows the labelled comment feed, the answer queue and the current product. You can answer manually, switch the product or stop the stream. On a phone there is a reduced monitor mode — enough to keep a finger on the pulse without sitting at a desk.
That is why we say the product is not the avatar but its brain. Looks and voice can be swapped in a day; the chain "comment → priority → tool → order" is what actually sells.