Work · B2Bee
The platform under an AI agent that takes wholesale orders in chat
- Client
- B2Bee, b2b wholesale software, Serbia
- Service
- AI and platform architecture
- Period
- February to October 2026
- Team
- 1 architect
A B2B commerce platform runs ordering for wholesale distributors through an AI agent in chat. We were the architects of that AI layer and rebuilt the platform under it, then measured product search on real purchases before changing it.
- the problem
An agent that takes orders in chat for many distributors, each with its own customers, assortment and data.
- what we did
Rebuilt the platform from eleven written decision records, hardened the campaign engine, and measured search on real purchases before changing it.
- where it is now
The platform, campaigns and search are rebuilt. An agent that starts the sale itself is designed, not yet built.
The problem
B2Bee runs ordering for wholesale distributors. Its agent takes orders in chat: customers write over WhatsApp, Viber, SMS or web chat, in text, voice notes or photos, and the agent builds a basket from that distributor's own assortment, in ten languages.
Every distributor brings its own customers, products and prices, so the platform under the agent has to keep them apart, onboard a new one without hand work, and release changes without putting live ordering at risk.
What we did
We rebuilt the platform from eleven written decision records. It runs on Azure Container Apps, every message goes through Service Bus, a control plane works out which distributor each message belongs to, and every distributor has its own database.
Onboarding a distributor became a 15-step script that can be dry-run first or resumed from any step. Each release promotes the same image from dev to staging to production, behind an approval.
We hardened the campaign engine distributors use to reach their customers first, with abandoned baskets, reorder reminders and broadcasts over WhatsApp, Viber and SMS. It gained throttling, per-client quotas and conditions that react to whether the customer has replied.
Measuring search before changing it
Before changing product search, we measured it on 300 real purchases. Rules alone placed about half the order lines. A model that saw only the lines the rules could not place took that to most of them, at the same precision.
We report the last figure next to the headline. It is where the model needs a person or a rule to check it.
Designed, not yet built
We have also designed an agent that starts the sale itself. An event engine raises signals per customer: a reorder that is late, an overdue invoice, an upsell seen among similar customers, a customer drifting away.
Each signal climbs five levels of autonomy: shadow mode, suggestions to a sales rep, messages a person approves, autonomy within limits, and finally self-optimisation. It moves up only on measured outcomes that a named person approves, and drops back on its own when a limit is crossed.
Every automated message passes one outbound gate that checks caps, quiet hours, consent, holdout groups and whether the signal is still fresh. The model writes the message, but policy decides whether it is sent.
Who worked on it
Next step
Have something like this? Tell us about it.
The first call is free, takes 30 minutes and commits you to nothing.
Book a call