Kiln product · multi-tenant Shopify agent · in pilot
ReplenishIQ — The Inventory Agent That Never Touches Your Store
A small merchant finds out about a stockout when the orders stop. The data to see it coming is already in Shopify, but nobody has time to read it every morning, and the analytics tools that do read it produce dashboards rather than decisions.


- email a day, 3-5 decisions in it
- 1email a day, 3-5 decisions in it
- writes to the merchant's store
- 0writes to the merchant's store
- one-tap answers on every recommendation
- 4one-tap answers on every recommendation
The brief
Kiln built this one for itself: an agent that watches every variant of every store it is connected to, works out what is actually going wrong, and says so in one email a merchant can act on before the shop opens. The hard constraints were set before any code — it must never write to a merchant's store, it must cost almost nothing per store per day, and it must be able to prove whether merchants find it useful.
What we proposed, and how it ran
01
Analytics first, the model last
Every variant is scored by deterministic analytics — velocity, days of cover, lead time, capital tied up — and only the handful of genuinely anomalous cases are ranked and passed to a language model for explanation. Sending every SKU to a model would cost more than the product could charge and would invent problems that the arithmetic already answers.
02
Read-only, and enforced rather than promised
V1 holds no Shopify write scopes at all. It cannot change inventory, prices, products or orders, cannot raise a purchase order and cannot contact a customer. A merchant handing an agent access to their shop should not have to trust a paragraph in a marketing page.
03
The email is the product, not a notification
Each item leads with the severity and the SKU, states the reason in the merchant's own numbers, then says what to do — 'raise a PO for 240 units today, or pause paid traffic'. Tables and inline styles only, with a plain-text alternative, because Gmail and Outlook strip everything else.
04
Four taps that make the pilot measurable
Every recommendation carries Done, New to me, Already knew and Not right, each a signed one-tap link. That is the instrument the whole pilot rests on: it separates advice a merchant acted on from advice they already knew, which is the difference between a useful product and an expensive newsletter.
05
Many stores, one deployment
Each tenant is isolated, with its own schedule, its own credentials and its own kill switch — a merchant can stop the agent without stopping their brief, or the reverse. The job queue is at-least-once with a dead-letter list and idempotent handlers, so a worker dying mid-run costs a retry rather than a wrong number.
What we delivered
- A daily brief email — severity, reason, recommended action and one-tap feedback per item
- Six recommendation types with a full status lifecycle, from open to resolved or dismissed
- Deterministic analytics — velocity, days of cover, lead time, overstock capital — ahead of any model call
- An embedded Shopify app for cadence, brief timing and one-tap feedback in the admin
- Per-tenant isolation, signed action tokens, and separate kill switches for the agent and the brief
- A marketing site that sends a sample brief built from a merchant's real catalogue
Where it stands
In pilot. The agent runs end to end — sync, analysis, ranking, brief, delivery and feedback — and the read-only guarantee is structural rather than a policy. What the pilot is still measuring is the only question that matters: how often a merchant taps Done rather than Already knew.
Stack
Building something similar?
Tell us the outcome you want. We come back with scope, price and a timeline — usually within a day.