Case Study
We built Ultra Soft, a UK water treatment company, a custom AI agent that runs their entire catalogue in live chat: sizing softeners, routing to the right filters, quoting live prices, and capturing commercial leads. Its defining feature is that every price, product code, stock level, and link comes from a real catalogue lookup, enforced by code, not by prompt instructions.

Generic AI chat invents prices, recommends discontinued products, and confirms policies that do not exist
A deeply technical catalogue of 550+ products: softeners, filtration, reverse osmosis, UV, salt, resin, and spare parts
Correct sizing is an engineering question: household occupancy, pipe size, boiler type, and local water hardness
Prices, stock, and sale offers change in WooCommerce daily, so any answer written by hand goes stale
Commercial enquiries from hotels and factories arrived in the same chat as small salt orders, with no routing
Zero tolerance for a wrong price or a fabricated product: one bad answer costs a sale and the client’s trust
A full-catalogue sales agent covering every category: 550+ products, sized and matched to each customer’s situation
Live WooCommerce pricing, stock, and sale prices overlaid on every answer, with the saving called out
Deterministic sizing logic in tested Python: occupancy limits, install-kit selection, contaminant-to-filter matrix
Commercial lead capture for hotels, laundrettes, and factories, straight into a pipeline with an admin view
Human handoff inside Zoho SalesIQ, the live-chat tool their team already uses, with the full transcript carried over
A second AI from a different model family reviews every answer before it reaches the customer
01 / How It Works
The architecture is the product. Three layers stand between the model and the customer, so a wrong price or an invented product simply cannot reach the chat.
Layer 01
The conversational model can only get prices, SKUs, stock, specs, and links by calling catalogue tools during that same turn. It never sees the full catalogue and never states a fact it did not fetch. Grounded in tool output, or it does not ship.
Layer 02
Every rule was ported from prompt text into deterministic Python with unit tests pinning each clause, plus a plain-English spec the client can read 1:1. Prose rules degrade as catalogues grow. Tested code does not.
Layer 03
A Claude validator from a different model family checks each response before the customer sees it: every price must trace to a tool result, every link must be on an allowlist of real URLs, and prices a customer asserts get flagged, not accepted. A different family means no shared blind spots.
02 / The Proof
Every number here is backed by the repo's own test suite and reports. Nothing is a claim we cannot run on demand.
1,035
automated tests passing across rules, adapters, guardrails, and regression pins
100%
on an 89-case accuracy gate built from the client’s own business rules, run on every change
144
customer sizing profiles verified end to end against the client’s own business rules
550+
products with prices, stock, and links pulled live from the catalogue on every answer, never typed by hand
136
live conversation scenarios run end to end, with 32 fixes shipped from what they surfaced
0
broken product links, verified against the live site and pinned so it cannot regress
03 / Admin Dashboard
Custom-built admin dashboard for managing 1,049 products, tracking 2,896 AI conversations, and monitoring agent performance.

Real-time stats: 1,049 products synced, 2,896 AI conversations handled.

Full inventory control with SKUs, pricing, and category management.

Review AI interactions with detailed product recommendations.
04 / The Engineering
Trust in production is not a prompt instruction. It is architecture, automated exams, and adversarial pressure applied relentlessly before launch.
Every answer is audited by a second AI from a different model family before the customer sees it. Prices must trace to a live catalogue lookup, links must be on an allowlist of real URLs, and anything unverified is blocked, not shipped. Two model families means no shared blind spots.
We turned the client’s business rules into an 89-case accuracy exam that runs on every single code change, and the agent needs 100% to ship. Underneath it, 1,035 automated tests pin every rule, guardrail, and past fix so nothing quietly regresses.
We attacked our own agent with adversarial audits and 136 live scenarios built to make it lie: invented policies, fake discounts, wrong prices asserted with total confidence. Thirty-two fixes shipped before a single customer ever saw it.
05 / Safe Delivery
The client's live operation never paused while we built. Deployment discipline is part of the product.
Everything is built in its own isolated environment with separate routes, database tables, and ports. Nothing touches the client’s live operation until it has earned the right to.
New behaviour has to pass hundreds of pinned test cases before cutover. If a change alters a single answer, the suite catches it before a customer ever could.
Proven data and logic are never edited in place. Changes land alongside what already works, so there is always a known-good state to stand on.
Go-live is a documented two-step plan with a rollback that takes minutes: one environment variable flips the system back to its previous state.
06 / Interactive Demo
Ask about household size, water hardness, or a specific product. This is the real agent, not a video: every price, product, and link in its answers is fetched live from the catalogue as you chat.

Every price and link fetched live from the catalogue · validated before display
07 / AI Search Visibility
Beyond the AI agent, we're positioning Ultra Soft's content so ChatGPT, Google AI Overviews, and Copilot recommend them when users ask about water softeners.
When someone asks ChatGPT "What's the best water softener for a 4-person household?", Ultra Soft should be the brand that gets cited. That's a customer with high purchase intent, ready to buy.
With 550+ products and deep domain expertise already powering UltraAgent, the knowledge base is there. We structure it so AI platforms can find, trust, and reference it.
08 / Any Industry
The pattern, not the plumbing, is the product. Any business with a catalogue, price list, or service menu has the same failure mode: generic AI chat will misquote it. The fix is architectural, and it travels.
Eligibility rules turned into an automated exam the agent has to pass on every change.
Treatment matching grounded in a real menu, never the model’s imagination.
Deep catalogues where a wrong part number means a costly return.
Live availability and pricing pulled from the system of record, never guessed.
Whatever your source of truth is today, an ERP, a legacy database, or a hand-tuned spreadsheet, we connect to it, overlay live data, and turn your business rules into an automated exam the agent has to pass on every single change. That is what makes it safe to put in front of your customers.