Connect Claude or ChatGPT to Graymat and your entire cash-on-delivery operation becomes something you can ask — from the car, the warehouse, or from bed. P&L, parcels, CAC, inventory, customers: one question away, and every answer shows its working. Ask anything. Writes still wait for a human — control, with the truth attached.
No dashboard to learn, no report to request. Your business becomes a tool inside the AI app you already open every day.
A brand runs on the system — orders, parcels, spend, customers, all mirrored and reconciled. Today those brands are Elyscents and Oud Al Abraj, both founder-owned, and no outside brand joins until the crore is proved on Elyscents.
Personal, named, revocable. Stored on our side only as a SHA-256 hash — even we can't read it back. Lose it, we kill it and mint another.
One setting in Claude — desktop or phone. From that moment, every chat you open already knows your business. Nothing to export, nothing to upload.
Honest status: Claude works today, on desktop and phone — that's what our own team uses. ChatGPT connects through its MCP connector, which wants OAuth sign-in; ours ships with the OAuth rollout, in progress and not hidden behind "coming soon" vapor. An owner token plus set_client also lets an agency ask about any client from one chat — and the answer echoes the brand's name back, so you can't be told the wrong brand's number without the wrong name printed on it.
Real questions, in the owner's real words. The answer formats below are the system's actual output — definition, sample size, confidence, and a spoken line attached.
Between meetings, you ask where the money is stuck. The answer names the courier, the city and the amount — not a dashboard you have to go interpret.
Stock feels low. You ask, mid-aisle, which SKUs will stock out before the next batch lands — and get the number, with the days-of-cover math attached.
The 11pm "how did we do today" — answered in seconds, in Roman Urdu if that's what you asked in. Numbers first, spoken line after. Built by template, never by a second model call — and omitted entirely where no honest template exists.
Connecting your business to an AI is only worth doing if the answers are policed. Three rails, all of them code — none of them promises.
Every query runs inside a read-only Postgres transaction — a privilege the connection doesn't have, not a policy it promised to follow. Capped at 2,000 rows and 10 seconds. set_config is blocked in two layers, because turning the rail off is itself a SELECT. A bad answer can never become a bad write.
describe_schema doesn't hand the AI column names — it hands it the ways this data has already fooled someone. created_at is mirror time, 24h late on ~20% of rows. displayName doesn't exist. A 1-day cohort shows 0% returns. The database, with its confessions attached.
Definition, sample size, confidence — plus a cohort-maturity check computed from the payload that can override the confidence. A 4-day window once reported 98.2% delivery on ~900 parcels; only 60% had resolved. Now the warning goes in the summary — the part that gets spoken.