SixAM

Revenue Desk: The CRM We Wrote Ourselves

Every enquiry lands in one place, gets a score you can read the reasons for, and is followed up on time; contracts are signed in the browser, and no email goes out without a human approving it. Underneath: our own nine-table CRM.

CRMSupabaseLead scoringOnline contractsHuman-in-the-loop

Runs our own sales follow-up. Nothing sends without a human approving it.

The problem we had

Off-the-shelf CRMs are excellent and we are not going to pretend otherwise. What they are not is yours. The moment your process has a step the vendor did not anticipate, such as a Persian-language intake, a contract a client signs in a browser, or an assistant that already spoke to the lead before you did, you are paying a seat fee to work around the product.

For a firm whose pipeline is the business, that gap is the business.

What is running

Nine tables and a full pipeline: companies, contacts, deals on a drag-and-drop board, activities with overdue and due-today states, contracts, campaigns, and an audit log that records every consequential action.

It follows the ordinary CRM flow, deliberately. A lead is the raw inbound record and stays untouched until someone converts it. Conversion creates a contact, a company, and optionally a deal. From there the contact page is the 360 view everything hangs off: a merged timeline including, and this is the part that matters, the transcript of whatever the website assistant already discussed with them.

Five decisions worth explaining

1. Lead scoring has a rubric, not a vibe.

Every inbound lead is scored 0-100 against stated criteria: how concrete and urgent the described problem is, how established the business appears, how complete the contact details are, and which channel it came through. A vague one-liner with no company context scores low. A specific, time-bound problem in our practice areas scores high. The score is stored with a two-sentence rationale you can disagree with, which is the point. An unexplained score is just a number you learn to ignore.

2. Campaigns cannot fan out. The cap is in code.

A campaign segment is defined in code, deduplicated by email, and hard-capped at twenty recipients. Not configurable in the UI. The AI drafts one email per recipient with that person's actual context, and nothing sends until a human approves it.

This is the single most important constraint in the system. An AI that can email your entire list unsupervised is not an efficiency gain, it is an incident waiting for a slow afternoon. Twenty, reviewed, is a tool. Unlimited, automatic, is a liability.

3. Contracts are accepted in the browser, and we can tell when.

Each contract is Markdown, rendered to a client-facing page behind an unguessable link that sits outside the language routing entirely. The client reads it, prints or saves a PDF, and accepts by typing their name. The first time they open it, the status flips to viewed on its own, so "have they read it yet" stops being a question you email someone about.

4. Row-level security is on, with no policy at all.

Every CRM table has RLS enabled and zero policies, which means nothing reaches them from the browser. All access goes through server-side code holding the service key. Errors come back as stable codes that the interface translates, never as raw database strings.

That is a stricter posture than most small deployments bother with, and it is the correct one for a table holding other people's contact details and deal values.

5. Money is integer cents, dates are Gregorian in both languages.

CAD, stored as integer cents, never a float. And on the Persian side: Persian digits, Gregorian calendar, not Jalali. Bilingual software fails on exactly this kind of detail, quietly, months later, in a report nobody reconciles.

The assistant on top

There is a CRM assistant that answers questions against your real pipeline: what is stalling, who has not been followed up, what the funnel looks like. It uses four tools reading live data rather than a summary someone exported last week. Alongside it: conversation summaries, next-best-action on a deal, contract personalisation and follow-ups.

The reports (funnel, pipeline by stage, lead sources, twelve-month revenue) are computed in plain code and drawn with plain HTML. No charting library. Nothing to upgrade in eighteen months.

What we would tell you before you buy it

Most firms should use an off-the-shelf CRM. Genuinely. You should commission this when your process has real shape the market's products fight against: bilingual intake, contracts you want signed in-browser, or an AI front desk whose conversations need to land in the same record as the deal.

If that is not you, we will say so on the Snapshot call and you will have spent CAD 750 to not spend fifteen thousand.

What this costs to have built for you

S3 · Revenue Desk. CAD 8,000-15,000. Three to four weeks. Pairs naturally with S1 · AI Front Desk, because the transcript-to-contact link only exists when both are yours.

6AM Solutions Inc. · Toronto / GTA · Start with clarity before you invest in AI.

Want this for your business?

Every engagement starts with an AI Readiness Snapshot: one session, a short report, and one quick win. If what you need is not what we build, we will say so.