ARKONE
Twelve upright marks on a dark ground, one for each stage of the engine, with mark 6 lit in amber and the book title beneath.

How do you actually make the CRM fill itself, so that the sequences start by themselves?

September 8, 2026 · 6 min read

S
Sobin George Thomas

A CRM that is full and untrue is worse than an empty one, because people act on it. One write path in, and a stage derived from facts, fixes both.

Two stores, and a person in between. The form has its own table, the CRM has another, and someone moves rows between them on a Friday. At a forty-person firm the same company sits in both, under two spellings, counted twice.


By hand today

“Debug lead and MQA routing logic, ensuring leads flow to the right reps … with minimal manual intervention”

Notion, Marketing Strategy and Operations Manager advert

The previous chapter got the lead in with its source attached. This one is only about the wiring: making that arrival land in the one place the rest of the engine reads. The typing burden itself belongs to the outbound book, in logging everything without typing, and is not repeated here.

The wiring is where small companies leak. A form writes to its own store. An import writes to the CRM. A conversation happens on a social network and is written nowhere. Each is fine alone. Together they produce a CRM that is full and untrue, which is worse than an empty one because people act on it.


What it costs you each week

Ninety dollars a seat a month, the tier at which one widely used CRM begins routing leads for you. It still cannot tell you that two of your records are the same company under two spellings.

Source: HubSpot Sales Hub pricing, September 2026

Paying more does not close this gap, because the gap is not a feature. It is that the facts arrive through several doors and only one of them was wired.

The second cost arrives disguised as a data problem. The traffic source stored by that same CRM depends on its tracking cookies, and its own documentation states that a contact using an advert blocker may block them. So a paid record can arrive with no source through no fault of anyone in your company, which is why the capture chapter stored the parameters itself on the server rather than relying on a cookie.


The build

Open Codex and join the form store to the CRM. One write path: every door calls the same function, so a lead from a form and one from an import land identically. The stage is then derived from the facts on the record, never typed by a person.

Work in the folder holding the endpoint from the previous chapter. There are two jobs here, and the second is the one that makes the CRM true.

There are two stores: form leads, with the seven attribution fields, and
the CRM. Write one function that takes a captured lead and creates or
updates the company and the person in the CRM, keeping the source, and
returns which of the two it did. Make the form endpoint and the importer
both call it, so there is one write path. Match an existing company on
domain first, then on a normalised name; where both match different
records, do not merge, flag the pair for a person. Then derive the
company stage on read from the facts: research fields present, a score
written, a person captured, that person on a list, somebody replying.
Never store the stage. Report what was created, updated and flagged.

What comes back is one write path and a stage that moves itself. ArkOne runs both. The rule that both surfaces call the same domain functions is written into docs/crm-module.md, so a lead captured in conversation and one captured from the console are the same write with the same side effects. The same file describes the assembly line: eight stations, each derived on read and never stored, where research fields move a company to enriched, a score moves it to qualified, a captured person moves it to people found, that person on a list moves it to pipeline, and somebody answering moves it to in conversation. You build your own, and the paths are the pattern to copy.

Now the honest part. On the ArkOne platform today the fit-check form writes to its own store, described in docs/analytics.md, and that record is surfaced by a notification email and a read endpoint. It does not land in the CRM. The join described above is the build this chapter asks for, and it is not yet finished on our own system, which is worth saying plainly.


What it feeds

Sequences that start themselves. A company that reached the pipeline station by fact, not by opinion, is a company the next chapter may open a sequence on. A sequence can only start by itself when the record it starts from arrived by a rule rather than by somebody moving a card.

The number that proves this stage worked is companies per station, derived and totalled. On ArkOne, 1,452 companies sat across four stations, each placed by the facts on its record, recorded in the campaign learnings on 6 September 2026. The second number is records with a blank source, which should be zero once one write path exists, because the door that could produce one has been closed.


What stays with a person

The two records that are one company. A rule can match a domain. It cannot know that the holding company and the trading name are one client.

The matching rule will get the easy ones and refuse the ambiguous ones. Refusing is correct. A merge is destructive, and the case that looks like a duplicate is often two subsidiaries a salesperson must treat separately.

So the flagged pairs go to a person, who merges or separates them, once, with the reason recorded. The other thing that stays is the note: the sentence about why this company is worth the effort this quarter, which nobody can derive from a field.


The tools you already pay for

Nothing new to buy.

CRM does not change plan or vendor. What changes is that one function writes to it, and the stage stops being an opinion somebody drags across a board.

Form store keeps its own table. The join means the CRM is never behind it.

Codex writes the matching rule and the flagging rule together, so the ambiguous case has a home from the first day, rather than after the first bad merge.


One write path in, a stage derived from facts, and the ambiguous pairs handed to a person. Then a sequence can open by itself.

Ask: If a lead arrived through your form an hour ago, is it in your CRM right now?

This is chapter 6 of twelve, after capturing a reader into a system; chapter 7 opens the sequence. The book, Building a real GTM engine with Claude Code and Codex, end to end, runs the whole engine in order, one chapter per stage. A free starter edition for firms under fifty people is coming through the 100k programme.

Prêt à engager la conversation ?

Découvrez comment ArkOne conçoit la gouvernance et l'architecture de programme nécessaires pour générer des résultats IA mesurables.

Réserver un appel découverte