RUN OF SHOW · 42a
OddBalls × 42a: demo run-of-show
The script for the person driving the demo. Every scenario here runs on a tool that really exists (src/core/tools/shop-tools.ts, src/core/tools/store-tools.ts, src/core/storefront/live-tools.ts) and on real products from www.myoddballs.com, OddBalls' UK store: 2,622 products, read from the store (UK market, pounds) on 5 October 2026. 560 of them are committed to the worker; the live search reaches the rest.
The sentences to type are the blockquotes. Everything else is for you, not for the shopper.
Before you start
| Surface | URL |
|---|---|
| MCP connector | https://oddballs-agent.demos.42a.ai/mcp?token=tom |
| Hosted assistant, no install | https://oddballs-agent.demos.42a.ai/preview |
| Operator console | https://oddballs-agent.demos.42a.ai/dashboard |
| Flow editor | https://oddballs-agent.demos.42a.ai/dashboard/flows-app |
| Customer journeys | https://oddballs-agent.demos.42a.ai/journeys |
| This page | https://oddballs-agent.demos.42a.ai/scenarios |
| Chrome extension | load unpacked from oddballs/oddballs-extension/ |
Identities (the token is the name):
?token=tomis Tom Hartley of Leeds, a 34-inch waist. His cart holds Boogie (Medium, £12.00, the new October design), Fat Cow (Medium, £12.00, the signature print) and a Ball Deodorant (£5.60, was £7.00): £29.60, which is £5.40 short of free UK delivery and £10.40 short of the free product. One delivered order: Doddie Weir boxers in Medium (£14.00, 15% to My Name'5 Doddie Foundation). The primary persona.?token=priyais Priya Shah of Manchester, buying presents: her husband wears Large, their son is 8. Her cart holds the Magic Garden Dad & Lad set in Large · 7/8 Yrs (£19.00, was £21.00) and Boogie kids' long pyjamas in 7-8 Yrs (£30.00): £49.00, over both lines.?token=garethis Gareth Evans of Cardiff, a rugby fan who buys for the cause. Empty cart; one delivered order: Hippy Jungle boxers in Large (£14.00, 15% to The OddBalls Foundation).- No token: a guest with every tool and temporary state.
What is real and what is sandbox:
- Real: the catalog, names, prices in pounds, struck (sale) prices, photos, every size with its stock, the best-sellers and New lists, the charity each design gives to (quoted from its own page), the store's published terms. All read from www.myoddballs.com. The checkout link is real too: it builds this exact cart, in these sizes, in OddBalls' own Shopify checkout.
- Sandbox: the cart, the order record and the personas. They belong to 42a, and every screen says so.
Four facts to know before you walk in:
- Two published lines, one unpublished fee. Free UK delivery over £35, and over £40 a free product worth up to £20 (sunglasses, quick-dry towels or a bobble hat) chosen in the store's own cart. The fee below £35 is not published anywhere, so the cart says "Calculated at checkout".
- No general discount code, no loyalty page, no exchanges. The store's own discount page says there is no code right now; returns are refunds only.
- Sizes are never guessed. The size comes from the store's own chart and a measurement the shopper gives; the cart refuses to pick one.
- Every charity line is a quote. The assistant repeats what a product page says ("10% of every pair sold online") and never works out what an order donates.
Before every demo: say "reset the demo" (the reset_demo tool).
Running order
| # | Scenario | Persona | Time | What it proves |
|---|---|---|---|---|
| 1 | "What size am I?" | tom | 2 min | The store's own chart, then only what is in his size |
| 2 | Cotton, loose fit or bamboo? | tom | 2 min | It explains in the store's own words, with real prices |
| 3 | "Do I get free delivery?" | tom | 1 min | It knows the two lines and the fee it cannot know |
| 4 | A present for him and their 8-year-old | priya | 3 min | Two sizes on one set, gifts, and the returns fine print |
| 5 | "Which designs give to charity?" | gareth | 2 min | The charity line of every design, quoted, never summed |
| 6 | "Any discount codes?" | guest | 1 min | The honest answer, and what the store does offer |
| 7 | Fat Cow bralette in XL | guest | 1 min | Sold out, said out loud, and what is in |
| 8 | The cart goes home | tom | 2 min | The real OddBalls checkout, exact sizes, no payment |
| - | The console (/journeys, /dashboard) | - | 3 min | The half that is not a chatbot |
Short run (5 minutes): 1 → 3 → 8. His size, his cart, and a cart that ends in OddBalls' real checkout.
Seasonal colour: October is in the store. The operator banner is OddBalls' own home-page line, word for word: "This October we're donating 20% of all bralette sales to CoppaFeel!, the charity on a mission to get everyone checking their chest." The Halloween shelf (71 products) is searchable ("halloween boxers").
1 · "What size am I?"
Persona: tom
Real: the size chart, the stock per size.
Sandbox: nothing written. Read-only.
What to type
I'm a 34-inch waist, what size am I in OddBalls boxers?
Show me boxers in my size
What runs
| Step | Tool | What happens |
|---|---|---|
| 1 | size_guide | chart: mens, measurement: 34 → Medium (32–34"), from the store's own chart |
| 2 | search_products | query: boxers, size: Medium, audience: men → only products in stock in Medium, live |
What you see
The size answer quotes the chart row. The grid that follows is boxers with Medium in stock right now; each card's size picker greys out the sizes that are not. Boogie (£12.00) has every size in; Fat Cow (£12.00) is sold out in XXS and XS only.
What to say
"It did not guess from a photo or a height. It used OddBalls' own chart and the number Tom gave it, and then it only showed what Tom can actually buy in Medium, today."
What not to say
- Never "we recommend Medium for your build": the store publishes a chart, not a fit predictor. A measurement between two rows is answered as between them.
2 · Cotton, loose fit or bamboo?
Persona: tom
Real: the store's own guide copy (/pages/mens-underwear-guide), prices.
Sandbox: nothing written.
What to type
What's the difference between your cotton, loose fit and bamboo boxers?
What runs
| Step | Tool | What happens |
|---|---|---|
| 1 | store_info | topic: fabrics → the store's own guide, quoted, with its URL |
| 2 | search_products (several) | "cotton boxers", "loose fit boxers", "bamboo boxers", merged live |
What you see
Three rows. The store's guide says the classic cotton boxers are "soft cotton" with "excellent breathability and a relaxed fit"; the loose fit cotton boxers are "100% soft cotton" for "a relaxed, airy feel"; the bamboo boxers are "naturally breathable, moisture-wicking, and ultra-soft". The Tartan Loose Fit boxers are on sale at £7.80, was £13.00.
What to say
"The answer is the store's own guide, not a model's opinion of fabric, and the cards beside it are live prices, including a real markdown."
3 · "Do I get free delivery?"
Persona: tom
Real: the store's published lines (announcement bar, /pages/faqs).
Sandbox: the cart.
What to type
Do I get free delivery?
What would get me there?
What runs
| Step | Tool | What happens |
|---|---|---|
| 1 | view_cart | £29.60: £5.40 away from free UK delivery, £10.40 away from the free product |
| 2 | check_personal_offer | matching pieces for his Boogie and Fat Cow boxers, at shelf prices |
What you see
Two progress rows: delivery (£35) and the free product (£40). Delivery reads "Calculated at checkout", never "£0.00" and never an invented fee. The suggestions are the same designs in other pieces (socks first).
What to say
"It knows both lines, and it knows the one thing OddBalls does not publish, the fee below £35, so it does not make one up."
What not to say
- No delivery price below £35, no Next Working Day price: neither is published.
- Sale items DO count towards £35 (nothing on the site excludes them).
4 · A present for him and their 8-year-old
Persona: priya
Real: the Dad & Lad set's 40 size combinations and their stock, the kids' chart, the gift cards, the returns page.
Sandbox: the cart.
What to type
I want a present for my husband and our 8-year-old. He's a Large.
Is there anything they can match in?
What if it doesn't fit, can I swap it?
What runs
| Step | Tool | What happens |
|---|---|---|
| 1 | view_cart | Priya already has the Magic Garden Dad & Lad set, Large · 7/8 Yrs (£19.00, was £21.00) and kids' long pyjamas 7-8 Yrs (£30.00) |
| 2 | search_products | "dad and lad" / "kids pyjamas": matching sets and pyjamas; gift cards (£10 to £100) if unsure |
| 3 | size_guide | chart: kids: an 8-year-old is 7/8 Yrs (22–23" waist); the store spells it "7-8 Yrs" on pyjamas |
| 4 | store_info | topic: returns → 90 days, unused, original packaging, refunds only, no exchanges |
What you see
£49.00: free UK delivery, and the free product is unlocked (chosen in the store's own cart). A Dad & Lad set asks for both sizes; told only "Large" it answers with the kids' sizes in stock with Large.
What to say
"Two people, two sizes, one product: the assistant asks for the second size instead of guessing it, and it knows that OddBalls refunds rather than swaps."
What not to say
- Never "you can exchange it": the returns page says refunds only. To change a size, return for a refund and reorder (return postage is the customer's).
5 · "Which designs give to charity?"
Persona: gareth
Real: each design's own product page, the about page.
Sandbox: nothing written.
What to type
Which of your designs give money to charity?
Anything for prostate cancer?
What runs
| Step | Tool | What happens |
|---|---|---|
| 1 | list_charity_designs | 71 committed designs that name a charity, one card per cause first, each with its quote |
| 2 | list_charity_designs | charity: Prostate → Prostate Cancer UK boxers (£14.00, 2XL sold out) |
What you see
Quoted lines, for example: Prostate Cancer UK, "donate 10% of every pair sold online"; My Name'5 Doddie Foundation, 15% of each product sold; Hippy Jungle, "15% of every Hippy Jungle product sold is donated directly to The OddBalls Foundation"; the Bowel Cancer UK bobble hat, "£2.00 from every unit sold". The store-level line is the brand's own: "We are proud to have donated over £1,000,000 to charities since 2014!"
What to say
"Gareth already bought Hippy Jungle. The assistant can tell him, in OddBalls' own words, where 15% of that went, and show him the next cause, without inventing a number."
What not to say
- Never "your order donated £X": no order total is ever converted into a donation. The £1m is the brand's own figure, attributed to the brand.
- Health questions go to the charity's own site, never to advice from us.
6 · "Any discount codes?"
Persona: guest
Real: /pages/discount-codes, the sale shelf, the subscriptions shelf.
Sandbox: nothing written.
What to type
Have you got any discount codes?
What's on sale?
What runs
| Step | Tool | What happens |
|---|---|---|
| 1 | store_info | topic: discounts → no general code right now; students 20% (Student Beans or UNiDAYS, full price only), Blue Light Card 20%, refer a friend 25% each |
| 2 | list_deals | real struck prices, deepest first: the Big Package 9-pack £76.50, was £108.00 |
What you see
The honest "no", then the store's real offers, then the sale shelf. A subscription (from £12 a month, free socks, free UK delivery, "No tie-ins") is mentioned, and handed off to its product page if wanted.
What to say
"The assistant never invents a code. 'There isn't one, but here is what there is' sells better than a fake 10%."
What not to say
- No code, no welcome discount, no loyalty points: none is published.
- A subscription cannot go through the cart link; it is set up on its page.
7 · Fat Cow bralette in XL
Persona: guest
Real: live stock per size.
Sandbox: the cart attempt.
What to type
I'd like the Fat Cow bralette in XL
What runs
| Step | Tool | What happens |
|---|---|---|
| 1 | get_product | Fat Cow - Ladies Bralette, £15.00, live: Small, Medium and Large in stock |
| 2 | add_to_cart | Refused by name: sold out in XL, with the sizes that ARE in stock |
What you see
"Sold out in XL" said out loud and the sizes in stock listed. Ask "does it run small?" and size_guide (chart: bralette) adds the guide's own note: "Customers recommend sizing up". The Boogie bralette (£15.00) has XL in stock, and it is the CoppaFeel! banner's spotlight this October.
What not to say
- Never "it'll be back soon": the store publishes no restock date.
8 · The cart goes home
Persona: tom
Real: the cart permalink into OddBalls' own Shopify checkout.
Sandbox: the order record.
What to type
Take me to checkout
What runs
| Step | Tool | What happens |
|---|---|---|
| 1 | checkout | a sandbox order plus permalinkUrl: www.myoddballs.com/cart/<variant>:<qty>,…, one line per size |
What you see
The order card and a button: "Check out on myoddballs.com →". Opened, it is OddBalls' own checkout with Boogie in Medium, Fat Cow in Medium and the deodorant already in it. Payment (card, Clearpay, Klarna or PayPal) happens there.
What to say
"Nothing is charged here. The link is the real store's checkout with the exact sizes, and the shopper pays on OddBalls' own site."
What not to say
- Never "your order is placed": the demo stops before payment, always.
The console
/journeys: every conversation by the shopper's own goal, with the tools that ran for it./dashboard: the banner editor (the CoppaFeel! line), search tuning (push a design, hide a product), flows, and the Design page (magenta, Poppins, the OddBalls wordmark).
What not to say
| Don't say | Why |
|---|---|
| "Use code …" / "members get …" | There is no general code and no loyalty page |
| "Rated 4.8 stars" on a product | No per-product ratings exist. The store's Trustpilot line is "Excellent", 62,336 reviews; quote no TrustScore number |
| "Delivery is £3.99" (or any fee below £35) | Not published: "Calculated at checkout" |
| "You can exchange it" | Refunds only, within 90 days, unused and in the original packaging |
| "I've added your subscription" | Subscriptions are set up on their product page, never through the cart link |
| Prices in euros | The demo is the UK market, in pounds; the EU store is a separate market |
| "Your order donated £X" | Never computed. Quote the product page's line |
| "OddBalls has given £1m" as an independent fact | It is the brand's own total: "We are proud to have donated over £1,000,000 to charities since 2014!" |
| Anything about anyone's body, or medical advice | The register rule: a size comes from a measurement; health goes to the charity's site |
This page is served from the demo’s SCENARIOS.md, the one source of truth for the run of show. To update it, edit the file, run bun run gen-scenarios and deploy.