[{"data":1,"prerenderedAt":119},["ShallowReactive",2],{"work:\u002Fwork\u002Fb2bee":3,"work:\u002Fwork\u002Fb2bee:surround":106,"page:work:cta":112},{"id":4,"title":5,"body":6,"client":72,"compare":73,"country":74,"description":65,"extension":75,"glance":76,"industry":80,"logo":81,"meta":86,"navigation":87,"order":88,"path":89,"people":90,"peopleNote":73,"period":96,"published":87,"quote":73,"seo":97,"service":98,"stack":99,"stem":102,"summary":103,"team":104,"timeline":73,"__hash__":105},"work\u002Fwork\u002Fb2bee.md","The platform under an AI agent that takes wholesale orders in chat",{"type":7,"value":8,"toc":64},"minimark",[9,14,18,21,25,28,31,34,38,41,48,51,55,58,61],[10,11,13],"h2",{"id":12},"the-problem","The problem",[15,16,17],"p",{},"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.",[15,19,20],{},"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.",[10,22,24],{"id":23},"what-we-did","What we did",[15,26,27],{},"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.",[15,29,30],{},"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.",[15,32,33],{},"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.",[10,35,37],{"id":36},"measuring-search-before-changing-it","Measuring search before changing it",[15,39,40],{},"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.",[42,43,45],"case-highlight",{"label":44},"On 300 real purchases",[15,46,47],{},"Rules alone placed 48% of order lines at 99.3% precision. Adding a model for the lines the rules could not place raised that to about 86% at 99.2%, for €1.37 per thousand lines. On vague requests, the model added the wrong product five times as often as the rules.",[15,49,50],{},"We report the last figure next to the headline. It is where the model needs a person or a rule to check it.",[10,52,54],{"id":53},"designed-not-yet-built","Designed, not yet built",[15,56,57],{},"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.",[15,59,60],{},"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.",[15,62,63],{},"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.",{"title":65,"searchDepth":66,"depth":66,"links":67},"",2,[68,69,70,71],{"id":12,"depth":66,"text":13},{"id":23,"depth":66,"text":24},{"id":36,"depth":66,"text":37},{"id":53,"depth":66,"text":54},"B2Bee",null,"Serbia","md",{"problem":77,"approach":78,"now":79},"An agent that takes orders in chat for many distributors, each with its own customers, assortment and data.","Rebuilt the platform from eleven written decision records, hardened the campaign engine, and measured search on real purchases before changing it.","The platform, campaigns and search are rebuilt. An agent that starts the sale itself is designed, not yet built.","B2B wholesale software",{"name":72,"src":82,"srcDark":83,"height":84,"ratio":85},"\u002Flogos\u002Fb2bee.webp","\u002Flogos\u002Fb2bee-light.webp",40,3.33,{},true,3,"\u002Fwork\u002Fb2bee",[91],{"name":92,"role":93,"image":94,"link":95},"Boris Radevic","Architecture of the AI layer and the platform under it","\u002Fteam\u002Fboris.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fboris-radevic-46337b2ba\u002F","February to October 2026",{"title":5,"description":65},"AI and platform architecture",[100,101],"Azure Container Apps","Azure Service Bus","work\u002Fb2bee","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.","1 architect","Z1sIstTmZ4r_lplrXVkP1l3Uy0ZWO_wSiQqzgIm755Q",[107,73],{"title":108,"path":109,"stem":110,"client":111,"children":-1},"One home for test data from Corning's outside manufacturers","\u002Fwork\u002Fcorning","work\u002Fcorning","Corning",{"cta":113},{"title":114,"note":115,"button":116},"Have something like this? Tell us about it.","The first call is free, takes 30 minutes and commits you to nothing.",{"label":117,"to":118},"Book a call","\u002Fcontact",1793174665759]