Skip to main content

Pain points we solved

The brief​

Valio Aimo wants an open way for kitchens’ buying software to look up products, lock a price, and get clear human approval, without exposing real systems or locking everyone into one closed platform.

“I need 1,000 litres of lactose-free milk by Monday.”

We built the full brief, not a chat window pretending to be the webshop.

We listened to your pain points​

1
A full working pathAsk → cart → sign → order → audit on aimoassist.com.
2
Real kitchen needDishes and guests, not SKUs. Web, Telegram, voice, photo.
3
Clear controlsFifteen rules · order alone / ask / stop · 29/29 attacks blocked.
4
Tough exceptionsDelivery risk, carbon, substitutes, stock-outs, allergens.
5
An open pathOpen standards · written assumptions · clear next steps.

1. A full working path​

One continuous path you can run on the site:

  1. Type (or speak, or photograph) what you need
  2. Get signed prices and stock
  3. See which lines order alone, which need a person, which stop
  4. Human client signs → signed order confirmation
  5. Open the audit log and verify the chain
Hero ask“120 guests tomorrow, 20 vegan” · ~20 lines · ~€562
Alone / ask17 lines alone · 3 need a person (+ order over €500)
Time~10 s live · ~1 s replayed
Try itaimoassist.com
engine/pipeline.pya fixed chain of typed steps, not a free-roaming agent loop01UnderstandGeminiDinner, Tue 17 Nov, 120 guests (20 vegan), hard dea…✓02Quantifycode20 ingredient needs in KG, L or PCS, maths on each …✓03Match + packsdecision modelmemory, then curated, then search; p ≥ 0.8; sized t…✓04Quotegatewaysigned offers for the date (+ up to 2 earlier dates)✓05Scorecodepick + good / better / best, 3 order variants✓06Exceptionscodestock-out gets a substitute; risky line tries earli…✓07Validatecodeevery check passes (max 2 retry rounds per line)✓08Policycode + gateway17 auto, 3 need approval, order over €500✓09CartGemini€561.84, explanation uses only cart numbers✓10DonecartId sent; the client opens the cart✓SSE · GET /requests/req_91c2/eventstext/event-stream, resumable with Last-Event-IDid: 7 {"step":"quote","status":"started"}id: 8 {"step":"quote","status":"finished"}id: 9 {"step":"score","status":"started"}id: 10 {"step":"score","status":"finished"}id: 11 {"step":"exceptions","status":"started"}id: 12 {"step":"exceptions","status":"finished"}id: 13 {"step":"validate","status":"started"}id: 14 {"step":"validate","status":"finished"}id: 15 {"step":"policy","status":"started"}id: 16 {"step":"policy","status":"finished"}id: 17 {"step":"cart","status":"started"}id: 18 {"step":"cart","status":"finished"}id: 19 {"step":"done","data":{"cartId":"cart_7f3a"}}
11/11Done. cartId sent; the client opens the cart.

What the brief asked for​

AskWe shipped
Structured lookupSearch + signed quotes
Inquiry → fixed price orderOffer (up to 15 minutes) → order → confirmation
Permissions and approvalSlip · fifteen rules · signed approvals
Delivery and sustainabilityOn-time risk · carbon · greenest mode
Substitution and exceptionsFallback steps · curated substitutes · stock watch
TraceabilityReadable audit trail both sides can verify

Who was worried about what​

WhoWorryWhat we did
KitchenOverspend or wrong allergensSigned slip; diet always loaded; review only exceptions
Buyer softwareFake or stale pricesSigned offers that expire
Valio AimoA closed middlemanValio runs AimoGuard; anyone can connect

We did not build yet: a marketplace, a chatbot as the webshop, a trained shortage model (no history yet), or a proactive Valio sales bot. See Future work.