Milly Software
What's new

Release notes.

Versioned, dated, grouped by area.

What shipped, when. For deeper context on the why, head to Insights.

Last shipped
v2.8.6 · Jun 17, 2026
4 days ago
v2.8.6#
Jun 17, 2026
ENGAGEMENT
diff ← v2.8.5

Answers that stay grounded in your real catalog

  • The assistant now sticks strictly to your real products and knowledge base — it won't invent prices, sales, specs, colors, variants, stock status, links, or store locations, and it applies the right facts to the right product instead of mixing up sibling models
  • It searches your catalog and knowledge base before ever saying "we don't carry that," so shoppers stop hearing a flat no for things you actually sell
  • On high-stakes questions — installation, fitment and compatibility, e-bike class, child and passenger safety — it answers only from what's in your catalog and knowledge base and otherwise points the shopper to you, rather than guessing
  • It won't promise something it can't do (collecting an email for a restock you don't run, sending a shopper to an outside retailer for a part you stock) and never hands out a placeholder or guessed link
  • When a product and knowledge search both come back empty, the widget degrades politely instead of surfacing a raw error
v2.8.5#
Jun 17, 2026
ENGAGEMENT
diff ← v2.8.4

See the sales your shopping quiz drives

  • New card on the Impact dashboard reports orders, revenue, and conversion rate from shoppers who completed a guided shopping quiz before buying — closing the loop on quiz ROI
  • Sits alongside your existing attribution so you can compare quiz-assisted sales against the rest of the funnel
  • Stays hidden until a store actually has quiz-driven orders, so the dashboard isn't cluttered before there's data to show
v2.8.4#
Jun 17, 2026
PLATFORM
diff ← v2.8.3

Point wholesale and retail shoppers at different collections

  • A conditional rule can now scope product search to a specific Shopify collection based on the logged-in customer's tags — automatically steering wholesale shoppers to a wholesale collection while retail shoppers see your standard set
  • Uses the customer tags you already manage in Shopify; no new data to maintain
  • Per-rule collection picker in the dashboard (on plans with curated collections)
v2.8.3#
Jun 17, 2026
PLATFORM
diff ← v2.8.2

Date-aware store instructions + honest support handoffs

  • Time-sensitive instructions now work: tell the assistant to say something only until a certain date and it will honor the cutoff — it knows today's date in Pacific Time, so "restocks June 1" stops being said after June 1
  • Support handoffs are more reliable: the assistant only ever sends a contact email the shopper actually typed, and if a handoff doesn't go through it says so honestly and gives your direct contact instead of claiming success
v2.8.2#
Jun 16, 2026
PLATFORM
diff ← v2.8.1

Steer the follow-up question chips

  • New field on Configure lets you guide the suggested follow-up questions the assistant offers after an answer — in your own words
  • Opt-in: leave it blank and the existing automatic suggestions are unchanged
v2.8.1#
Jun 11, 2026
PLATFORM
diff ← v2.7.3

Connect your store to Claude

  • Connect your Milly Chat store to Claude in one click and ask about your store's chat performance — analytics summaries, top customer questions, knowledge gaps, product performance, and ROI, available right where you already work with AI
  • Read-only by design: Claude can read your chat data and report on it, but can't change your store
  • Pick which store to connect from a simple store picker during the one-click setup
  • File a bug straight from Claude and it lands in a new Bug Reports view in your dashboard
  • Available on Enterprise
Read the post → Ask Claude About Your Store's Chat Performance
v2.7.3#
Jun 11, 2026
PLATFORM
diff ← v2.8.0

Ongoing trust and reliability work

  • Completed a comprehensive independent security review across the platform and shipped the resulting fixes — strengthened sign-in and access controls across the dashboard, APIs, and webhooks
  • Complete GDPR data-request and data-deletion handling, with encrypted database connections end to end
  • Hardened the public widget against abuse and runaway requests, and made analytics reporting resilient to bad data — no change for normal shoppers
  • Plan data-retention is now enforced automatically. No merchant action needed.
v2.8.0#
Jun 10, 2026
ENGAGEMENT
diff ← v2.7.7

Turn the widget into a guided shopping quiz

  • The widget can open straight into a product quiz — store-wide or on specific pages via conditional rules (including the natural-language rule builder)
  • Quiz answers carry into the same chat session, so the assistant picks up where the quiz left off with full context
  • Every quiz run shows up in Replay alongside chat transcripts
  • New quiz-performance view tracks completions, the engagement funnel, and the products quizzes recommend most
  • Pairs with the Impact quiz-conversion card so you can see the quiz funnel all the way through to orders
v2.7.7#
Jun 9, 2026
ENGAGEMENT
diff ← v2.7.6

Chat that knows your wholesale customers

  • The widget reads the logged-in shopper's Shopify customer tags and tailors answers for B2B vs retail — pricing, minimums, and policies for wholesale buyers, while regular shoppers keep the standard experience
  • Zero setup beyond the customer tags you already use in Shopify
  • Cached answers stay segment-safe — a wholesale buyer never receives a retail-cached reply, and vice versa
v2.7.6#
Jun 6, 2026
PLATFORM
diff ← v2.7.5

First-class support for headless and single-page storefronts

  • New mount and refresh controls keep the widget in sync as shoppers navigate a React, Hydrogen, or WordPress storefront client-side — no full page reload required
  • Removed widgets clean themselves up automatically, and the inline product grid adapts to the container it's placed in
  • Quiz and chat now share one session, so tracking and context stay unified across the whole visit
  • Richer product-card grid in the chat-bubble widget, with mid-sentence links rendering inline instead of as full-width buttons
  • The assistant can now cite SKUs, and the widget's styling is shielded from your theme's CSS so it looks right on any storefront
v2.7.5#
Jun 5, 2026
PLATFORM
diff ← v2.7.4

Pick your widget format in the dashboard

  • Choose chat bubble or search bar in Configure for any install type — no code change to switch
  • Override the format per page or per customer segment with conditional rules
  • Simpler one-line install snippet; existing installs keep working unchanged
v2.7.4#
Jun 4, 2026
PLATFORM
diff ← v2.7.2

Know exactly what you'll pay + a safer, richer catalog

  • The billing dashboard now shows your real projected overage charges, and plan limits read as a clear "X of Y used" so there are no surprises
  • Conversation overages meter automatically onto your normal Shopify bill — billed as you go, never a separate invoice to chase
  • Product catalog sync is safer and more complete: the extra fields the assistant learns about your products survive every hourly sync, custom-field limits are higher, and a truncated product feed can no longer wipe your catalog
v2.7.2#
Jun 2, 2026
PLATFORM
diff ← v2.7.1

Search tunes itself to your catalog on install

  • On install, Milly samples your products and auto-selects the metafields most useful for search (material, dimensions, compatibility, ratings) — so recommendations are sharp out of the box, no setup required. The dashboard flags which fields were picked, and you can adjust them anytime in Configure → Product Data.
  • Bumped the custom-metafield limits: Starter now includes 10 (was 5), Essentials 20 (was 10), Core stays at 50.
v2.7.1#
May 29, 2026
PLATFORM
diff ← v2.7.0

Live on the Shopify App Store

  • Milly Chat is now publicly listed on the Shopify App Store — install in a few clicks with a 7-day free trial on every plan
  • Starter ($39), Essentials ($99), and Core ($599) are all self-serve, with in-app upgrade and downgrade between tiers from the Billing page
  • Brand Voice, Brand Dictionary, Curated Collection, Curated Responses, Quizzes, and post-purchase analytics are now available to every merchant (promoted from early access)
v2.7.0#
May 28, 2026
LEADS
diff ← v2.6.7

Auto-apply discount at the cart

  • New opt-in toggle on Configure → Lead Capture pushes the generated coupon code straight into the shopper's cart — no copy-paste required at checkout
  • On native Shopify storefronts the widget silently fetches /discount/CODE?redirect=/cart to set the discount cookie; the shopper stays on the current page
  • On headless storefronts (cart_mode: callback) the widget dispatches a `milly:applyDiscount` window event for your bridge to consume — sibling pattern to the existing `milly:addToCart` callback
  • Chat reply reads "I've applied a discount to your cart — it'll appear at checkout (code: XYZ)" with the code as a fallback so shoppers can verify or apply manually if needed
  • Default off so existing "use code X at checkout" flows are unchanged for stores that haven't opted in (Essentials+ on the Latest release track)
v2.6.7#
May 27, 2026
PLATFORM
diff ← v2.6.6

Brand Voice + Brand Dictionary fields (Latest)

  • New marketing-team-owned fields adjacent to AI Instructions on Configure → Response
  • Brand Voice describes the persona — "friendly and outdoorsy", "expert and concise" — layered into every response
  • Brand Dictionary lists preferred terminology and substitutions the AI honors verbatim — "call them anglers, never fishermen"
  • Splits the concerns: AI Instructions stay developer-owned safety rails; Voice + Dictionary are creative-owned identity, edited independently
  • Available to stores on the Latest release track
v2.6.6#
May 27, 2026
PLATFORM
diff ← v2.6.5

Corrections — summary lander

  • Dedicated sidebar page surfaces every correction you've taught the AI in one view
  • KPI strip at the top — corrections applied, pending, by issue type
  • Group-by-issue-type view to spot recurring patterns (misclassifications, stale product info)
  • Defaults to the Applied tab so you scan what's already live before wading through pending feedback
  • Tier counter against the limit (Starter 3, Essentials 10, Core 50, Enterprise unlimited)
v2.6.5#
May 27, 2026
PLATFORM
diff ← v2.6.4

Dashboard toasts everywhere

  • Inline action-result banners across the dashboard have been replaced with the consistent sonner toast pattern
  • Sweep covers the remaining configuration surfaces that hadn't been migrated in earlier passes
  • Save / sync / delete confirmations now feel uniform across every settings page
v2.6.4#
May 27, 2026
PLATFORM
diff ← v2.6.3

Cache invalidation + shared system-prompt builder

  • Response cache now busts on store PATCH for name / planTier / featureOverrides changes — previously these silently lagged up to 24h on the storefront
  • System-prompt construction extracted into a shared module so Claude and OpenAI adapters can never drift again (caught a Brand Voice gap during May 27 QA where one adapter had the new sections and the other didn't)
  • Internal hygiene; no merchant action required
v2.6.3#
May 22, 2026
LEADS
diff ← v2.6.2

Coupon Reward — discount template picker

  • Configure → Lead Capture → Coupon Reward now offers an autocomplete picker for selecting the Shopify discount template that powers email-signup coupons
  • Search by discount name; pick from active and scheduled templates without leaving the dashboard
  • Selected template shows its display name in the chip instead of a bare GID — easy to audit at a glance
  • Legacy admin-URL pastes still work for merchants migrating from the previous flow
v2.6.2#
May 22, 2026
ENGAGEMENT
diff ← v2.6.1

Smarter empty-state widget responses

  • "Show me your best sellers" now falls back to the newest products when no order history exists yet — fresh installs surface their catalog instead of a generic "no data" reply
  • Catalogs with everything currently out of stock return a clear "none in stock at the moment" message — no LLM ambiguity
  • Password-protected development stores and storefronts mid-sync get a dev-store-aware message instead of a hallucinated fallback
  • All three guards run before the LLM, so first-install / cold-start widgets stay responsive
v2.6.1#
May 21, 2026
PLATFORM
diff ← v2.5.2

Zero-touch install: billing activation on first OAuth

  • Public-distro installs auto-trigger the Core-tier subscription (with 7-day trial) on OAuth callback — merchants land on Shopify’s approval page immediately, not a billing tab they have to hunt for
  • On approval, the widget activates via the existing subscription webhook with no merchant action
  • Custom-distribution clients (UAG-style out-of-band billing) get a 14-day grace window on first install for hand-off
  • Re-install flows preserve billing state — public distro skips the trial second time around, custom distro leaves existing subscription / free_until / usage metrics untouched
v2.6.0#
May 16, 2026
PLATFORM
diff ← v2.5.1

Release tracks — Stable vs Latest

  • Per-store release-track selector under the admin — opt into "Latest" for bleeding-edge features, stay on "Stable" for the well-tested path
  • New features ship to Latest first; gate into Stable after a soak period
  • Granular per-feature overrides remain available for one-off grants to specific merchants
  • Visible to admins only; consumer dashboards don’t see the toggle
v2.5.1#
May 15, 2026
PLATFORM
diff ← v2.5.0

Curated Collection (Essentials)

  • Restrict AI product recommendations to a single Shopify collection of the merchant’s choosing
  • Scoped surfacing across all 4 widget formats — search, in-chat recommendations, sticky ATC
  • Merchant-controlled inventory scope as an alternative to the default full-catalog surface
  • Essentials+ feature gate; configured per-store via the Configure → Response surface
Read the post → Curated Collection and Curated Responses: Two Levers for Shaping AI Output on Shopify Chat
v2.5.0#
May 15, 2026
PLATFORM
diff ← v2.2.1

Curated Responses (Core)

  • Dedicated admin surface for pre-authored canned answers tied to quick questions or triggers
  • Optional search restriction — the curated response can take over the turn without falling through to product search
  • Guidance injection at the system-prompt level for response shaping (tone, framing, must-include details)
  • New sidebar nav entry; Quick Question editor gains a "Curated Response" option as an alternative to free-form chat
  • Core+ feature gate
Read the post → Curated Collection and Curated Responses: Two Levers for Shaping AI Output on Shopify Chat
v2.2.1#
May 15, 2026
ENGAGEMENT
diff ← v2.4.9

Quiz polish — search format trigger + UX refinements

  • Quiz quick-questions now trigger from the search widget format (preview parity with chat-format)
  • Long answer-option labels wrap rather than clipping at row width
  • Re-trigger affordance sources its aria-label + title from the quiz name itself (vs a separate trigger-label field)
  • Dropped the standalone Trigger Label field in the quiz admin — one source of truth for the quiz name
Read the post → Product Recommendation Quizzes Inside Your Shopify Chat: Scored Answers, Ranked Results, AI-Aware Follow-Ups
v2.4.9#
May 3, 2026
ENGAGEMENT
diff ← v2.4.8

Klaviyo back-in-stock subscriptions

  • Hits Klaviyo’s native /client/back-in-stock-subscriptions endpoint (the same one their onsite forms use)
  • Variant ID wrapped in Klaviyo’s Shopify Catalog Item ID format so their catalog sync hydrates name/price/SKU automatically
  • Auth via public Company ID — no API key required for the BIS subscription itself
  • Optional list cross-pollination when List ID + Private API key are set: BIS submitters also subscribed to the chosen list
Read the post → Back-in-Stock Notifications from Shopify Chat: Maestra + Klaviyo
v2.4.8#
Apr 30, 2026
LEADS
diff ← v2.4.5

Klaviyo, HubSpot Tickets, Zendesk Tickets

  • Klaviyo CRM integration — first-class alongside Maestra + HubSpot
  • HubSpot Ticket creation (lead capture creates tickets, not just contacts)
  • Zendesk Ticket creation with intent routing
v2.4.5#
Apr 30, 2026
LEADS
diff ← v2.3.5

Smart dedupe + honest AI confirmations

  • Intent-aware dedupe windows: 24h for promotional, 5min for support / business / general
  • Different intents from the same email no longer suppress each other
  • New dispatch_results JSONB column tracks per-platform success/failure
  • AI tool wrapper grounds "I created a ticket" claims in the real upstream outcome
  • ✓ / ✗ dispatch badges on the lead detail surface, error visible in title attribute
Read the post → When AI Says "I Created a Ticket," Is It True? Honest Confirmations in Shopify Chat
v2.4.6#
Apr 29, 2026
PLATFORM
diff ← v2.4.7

Theme App Extension auto-inject

  • Widget auto-injects via Shopify Theme App Extension app_embed block — no theme.liquid script tag required
  • Per-shop metafield set automatically on OAuth install; widget reads storeId from the embed block config
  • All existing custom-distro stores backfilled via a one-shot script
  • Block label "Milly Chat" with checkbox in the Shopify theme editor
Read the post → Theme App Extension Install: One-Click AI Chat for Shopify, No theme.liquid Edits
v2.3.8#
Apr 24, 2026
PLATFORM
diff ← v2.2.0

Post-purchase support engagement metric

  • Impact dashboard: ordersWithPostPurchaseEngagement + revenueWithPostPurchaseEngagement cards
  • Captures returning-customer support flow (warranty, returns, status) — invisible to pre-purchase conversion
  • Sibling metric to Interactor Conversion for support-heavy and headless merchants
  • Backed by widget_attribution_daily rollup (Impact load went from seconds to milliseconds on UAG-volume data)
Read the post → Post-Purchase Engagement: The Shopify Chat Metric Most Analytics Miss
v2.2.0#
Apr 16, 2026
ENGAGEMENT
diff ← v2.3.2

Quizzes (Core)

  • Scored quiz schema (questions × answer options × per-product scores)
  • Two entry points: quick-question pill (puzzle icon) + persistent header re-trigger
  • Top-N ranking + complementary cross-sell row on results screen
  • B2B suppression via data-customer-type="b2b" script-tag attribute
  • AI handler injects quiz-completion context into follow-up turns
  • CSV import path for migrating existing scoring matrices
  • Plan-gated to Core+
Read the post → Product Recommendation Quizzes Inside Your Shopify Chat: Scored Answers, Ranked Results, AI-Aware Follow-Ups
v2.3.2#
Apr 15, 2026
PLATFORM
diff ← v2.3.1

Conversation retention: 90-day rolling + cold export

  • 90-day rolling retention default on Starter and Essentials; saved or flagged conversations exempt indefinitely
  • Core and Enterprise stores keep conversations indefinitely (no auto-expiration)
  • R2 cold storage archive of expired conversations on Starter/Essentials before deletion
  • Clock icon + retention banner + saved-filter on the replay surface
  • expires_at column + nightly purge cron in milly-cloud-services (retentionPurge.js)
Read the post → Why We Retire Old Chat Conversations After 90 Days (And How to Keep the Ones That Matter)
v2.3.0#
Apr 15, 2026
LEADS
diff ← v2.3.3

Per-intent lead routing (flagship)

  • AI intent classification: promotional · business · support · general
  • Per-intent CRM mapping (route different intents to different destinations)
  • Override surface in dashboard with rationale visibility
v2.0.0#
Mar 29, 2026
ENGAGEMENT
diff ← v1.9.5

In-chat add to cart (with variant picker)

  • Product cards in chat now show an Add to Cart button
  • Single-variant: direct add via /cart/add.js with _millyChatAssisted attribution flag
  • Multi-variant: inline option picker showing all variants (OOS variants disabled with strikethrough)
  • Headless: cart_mode "callback" emits an add_to_cart callback (window.MillyChat.on) with variant data; host page reports back via window.MillyChat.addToCartResult()
  • New product_added_to_cart analytics event feeding the Impact + weekly-recap dashboards
Read the post → In-Chat Add to Cart on Shopify: Closing the Loop Without Leaving the Conversation
v1.9.5#
Mar 29, 2026
PLATFORM
diff ← v1.8.0

Revenue Impact (ROI dashboard)

  • Three-cohort breakdown: shown / hidden / interactor visitors with conversion rate, orders, and revenue per cohort
  • Conversion lift (shown vs hidden) with two-proportion z-test for statistical significance — p-value and significance flag rendered on the card
  • Strict-attribution chat-assisted revenue: orders where the chat-recommended product actually appears in the order_items
  • Per-store attribution windows (7 / 14 / 30 / 60 days) surfaced on the dashboard
  • Parallelized analytics queries + composite indexes so the page loads under UAG-level traffic
Read the post → Measuring AI Chat Widget ROI on Shopify: How to Do It Honestly
v1.8.0#
Mar 26, 2026
LEADS
diff ← v1.6.0

Lead capture foundation + Maestra adapter

  • New capture_email AI tool — triggers on discount / coupon / newsletter queries
  • Pluggable lead adapter pipeline: Shopify Discount (unique codes from template) + Maestra CRM (UAG loyalty)
  • Lead dashboard: config page (enable / adapter / template URL) + table view
  • Lead platform decoupled from coupon generation — route leads without auto-coupons
Read the post → Lead Capture from Chat: From Discount Seekers to CRM-Ready Customers
v1.3.0#
Mar 12, 2026
PLATFORM
diff ← v1.7.0

PDF upload for Knowledge Base

  • Upload PDF files directly to the KB (drag-drop multi-file)
  • Text extraction via pdf-parse + automatic embedding generation
  • 4MB per file cap; scanned/image-only PDFs flagged with a clear error
  • Title auto-derived from PDF metadata, falling back to filename
  • Draft-first: uploaded entries stay inactive until merchant publishes
Read the post → PDF Upload for Your Shopify AI Chat Knowledge Base
v1.0.0#
Feb 15, 2026
PLATFORM

Shopify App Store submission

  • AI chat (Claude Sonnet) + hybrid product search (semantic + keyword)
  • Knowledge base with folder organization (manual entries)
  • Analytics dashboard (conversion tracking, A/B testing, widget effectiveness)
  • Conditional rules v1 (URL param matching only)
  • Multi-store Shopify OAuth
  • Stripe + Shopify billing dual support
  • Customer-facing privacy policy + GDPR compliance webhooks
End of list — 56 releases since v1.0.0 (Feb 2026)View archive →