All posts

CommerceJune 11, 2026 10 min read

“Which Customer Spent the Most?” — Running a Store from Chat, Accurately

Exact analytics for any date, customer rankings, order lookups, stock edits and video production — how one chat brain answers store questions with store truth, never guesses.

“Which Customer Spent the Most?” — Running a Store from Chat, Accurately

There's a moment every store owner knows: you're away from the desk and a question lands in your head. *Did yesterday actually do well? Is the collagen still moving? Who's my biggest customer?* The dashboard answer is “later”. By later, the question is gone — and so is the decision it would have powered.

catais replaces “later” with a chat thread. One conversational brain — reachable as a Telegram bot and as the in-dashboard assistant, with identical capabilities — answers store questions with store truth: live WooCommerce data, exact periods, labelled answers. This post is about what that takes under the hood, because “chat with your data” is easy to demo and hard to make honest.

The honesty problem in chat analytics

Bolt a language model onto a database naively and you get confident wrongness: ask “how much did I make on June 2?” and many systems silently answer with a last-30-days aggregate — a real number, for the wrong question. Worse, ask “which customer spent the most?” and a lazy system ranks *the two customers mentioned earlier in the chat* rather than your customer base.

catais was engineered against exactly these failure modes, because a wrong number delivered fluently is worse than no number at all.

  • Dates resolve to dates. The agent knows today's date and converts “yesterday”, “this week”, “June 2” into exact calendar ranges before querying — never approximating with “last N days”.
  • Answers are period-labelled. Every analytics reply states the period it used (“Analytics — June 2, 2026”), so you can verify what was measured at a glance.
  • Rankings rank everything. “Highest total spend” queries the whole customer base via WooCommerce Analytics — not whoever happened to be in the conversation.
  • Subjects route to the right source. A product name routes to product sales; a person's name to customer history; an order number to order lookup; store-wide phrasing to store analytics.

What you can ask (and what answers look like)

Money and time

“How much did I make on June 2?” → that day's revenue, orders and items, labelled. “Sales this week” → the resolved range. “Detailed analytics for last month” → total and net revenue, order count, average order value and top products — from WooCommerce Analytics, with an orders-based fallback when Analytics isn't available, and the source noted.

Products

“Total orders for Marine Collagen?” → that product's real units sold, order count and revenue for the period. “Low stock” → everything at or under your threshold with live quantities. “List products matching oil” → catalog with prices and stock.

Customers and orders

“Which customer has the highest total spend?” → a ranked list (spend, AOV or order count — your choice). “Orders for customer John Umai” → that person's count, total spent, status mix and recent orders, matching registered accounts *and* guest checkouts. “Details for order #3683” → customer, items, totals, status and payment method.

Writes — the same thread acts

“Add 1 unit stock to Pokeroot powder 50g” → done, confirmed. “Make it 2” → conversation memory resolves *it*, updated. “Create coupon SAVE10 10%” → live code. “Add category Herbs to it” → category created if missing, assigned. Every write is explicit, confirmed back with the result, and logged.

And production

The same brain commissions content: “post about the new arrivals”, “make a reel of Blackseed Oil”, “make a skit of Total Body Reset, 3 scenes” — the video pipeline reports live progress right back into the thread. Asking “skit status?” gives a real answer (queued / rendering / posted) instead of starting another one — small touch, hard-won.

Designed for follow-ups

Real owners don't speak in complete specifications; they speak in threads. “Show me low stock.” — list — “restock the first one to 20.” — done — “now post about it.” The agent keeps short conversational memory precisely so pronouns and fragments resolve against what was just said. It's the difference between operating a parser and talking to staff.

When a capability is genuinely missing, the policy is to *add the tool*, not to shrug: the agent's instruction set is built around acting on any store request its access can fulfil. That principle — no “I can't” where read/write access exists — is why the command surface keeps widening (roadmap).

Two doors, one brain

Everything above works identically in Telegram and in the floating chat bubble on the dashboard — same tools, same memory model, shared history. Telegram is the pocket door (with inline menus for Sales, Low stock, Subscribe, Autopilot and more); the web chat is the desk door, with image upload for design-this-photo briefs. Long-running jobs like skits report back to whichever door you used.

If you've ever wished your store could just *answer you* — accurately, anywhere, and then act on the answer — that's the product. Connect a store free and ask it your June 2.

See it on your own store.

Free plan, one page, no card — live in an afternoon.

Get started

Keep reading