← All posts

I gave Claude a business backoffice

I use Claude every day. It writes my follow-up emails, drafts my posts, thinks through my pricing with me. And then I close the tab and none of it exists.

That is the whole problem. Not that the model is bad — the model is excellent. The problem is that the work has nowhere to land. A chat is a conversation, not a system of record. Ask Claude on Monday what you agreed with a customer last Tuesday and you are asking it to remember something it was never given a place to keep out of its memory files I have to browse or ask Claude to do which cost lot of tokens).

So we gave it one.

What we built

Viite Business Studio is a back-office for small businesses: tasks, user stories, deals, customers, invoices, links, posts, support tickets — ten card types on one board, with one editor. Nothing exotic. The part that matters is that it connects to Claude as a remote MCP connector, and the connector writes.

Eight agentic tools:

You add it once in Claude.ai or Claude App, approve an OAuth prompt, and from then on "add a task to follow up with the "Musique en Vacances" festival about next year, high priority" produces a card you can open tomorrow, filter next month, and hand to someone else.

Publishing is the interesting case. Claude can draft a post, but a draft does not go anywhere on its own. It goes live when its card is moved to reviewed — by you, or by Claude when you explicitly ask. The approval is a state change on a board you can see, not a tool call buried in a transcript. That distinction is the difference between an assistant and a liability.

We ran our own launch on it

This month we are launching Viite Business Studio to exactly the people who would use it: solo operators and one-to-five-person shops who already have Claude open all day. Rather than run that launch on the usual pile of marketing tools, we are running it on the product.

That was not a stunt. It was the fastest possible way to find out where the product is thin — and it worked, painfully, on the first day.

We could not measure anything. The plan said "put money behind whichever traffic source performs best". Then we checked, and the site had no UTM handling, analytics ran without persistent identity by design, and exactly three custom events existed on the entire site — all on the pricing page. The tracked-link feature we needed existed in the platform but was gated off by a flag that was not even declared in the deployment config. It could not be switched on at all.

So we finished it. Tracked links went live. The funnel gained a signup stage, because previously the only thing that could record a conversion was a payment webhook — which meant a campaign measuring signups had a structurally empty conversion column. A public service now attributes a signup back to the link that produced it. Then we gave Claude the two tools above, so campaign operations happen in the same conversation (AI session) as everything else.

Our own copy was ahead of the product. We keep a claims matrix: every public statement maps to a row marked shipped, shipped-with-caveat, flag-gated, retired, or does-not-exist. Writing it was uncomfortable. The draft launch copy promised a campaign planner, text-to-video, and a saving of "$1,250+ a year". Two of those did not exist, and the third was a number with no derivation behind it. They are gone. What is left is smaller and true.

And the free plan was not really free. An org with no subscription hit a paywall. We inverted it: the gate stopped asking "may this org in?" and started asking "what is this org's ceiling?". Free is now a real, permanent tier — one user, five AI credits, 100 MB — with no trial and no lockout. Pro is €25 a month for five users. If you run out of credits you buy more at €1 each, and they never expire. You get less on Free than on Pro. You do not get a locked screen.

Each of those was a friction we hit while using our own product for real work, and each became a shipped change within days. That loop is the actual argument for dogfooding — not the marketing story, the defect rate.

What we are not going to tell you

Three things, before you find them yourself:

You cannot connect your own X, LinkedIn or Facebook account yet. Social publishing works, but those providers currently connect our shared accounts, not yours. Self-serve connection today means YouTube, Gmail, Notion and Stripe. This is the single largest gap between what the product looks like and what it does, and it is being worked on.

We cannot tell you our click-through rate, and neither can anyone else measuring the way we do. Nothing on our side records an impression. We measure visits, signups and paid — which is the part the budget cares about — and we read CTR inside each ad platform as a signal about the ad, not about the channel.

We are small. If you need a full CRM with pipeline forecasting, an ESP with deliverability dashboards, or a calendar view, we do not have those, we only focused on the best 2% features a sales person uses. The disqualifiers are published for the same reason as the claims matrix: a signup that arrives on a misunderstanding churns angrily, and tells people.

Over the next month

We will publish what each channel actually produced — visits, signups, the rate — including the ones that produce nothing. The numbers come out of the same funnel report the product ships to customers, which means we cannot quietly reframe a bad week without reframing a feature.

If you already work with Claude every day and you are tired of good work evaporating at the end of a conversation: Business Studio is free for one user — no trial, no card.

Give it somewhere to put things.

Start over?

Your current selections will be cleared.