The engine map · 21 August 2026 · for Ken and Dil

Our own Echo Desk

Four engines, drawn as one map. Two of them run. Two of them are on the website, are being sold, and do not exist. This is the page to sit in front of.

Start here

The answer to “where are they?”

“Echo Desk was something completely different. It showed you how to run the engines — the referral engine for agents, the nurturing engine for clients, and the reputation engine, which we have as number one. It went through every bit of those, and we built those out. I actually have seen them. So the question is, where are they?”

Ken, 20 August

They exist — as sales copy, not as a build. The engines are written out in three places: resources/james-kb/booked-solid-system.md, resources/parker-kb/parker-knowledge-base.md, and the four public pages at bookedsolidinspector.com/engine-1-reputation.html and its siblings. They carry real specifics — the six agent tracks, the three-touch dormant campaign on days 1, 4 and 7, the twelve-month one-a-month client sequence.

⚠️ What was never written is the content.

Ken’s own four questions — “What does that say? When do things go exactly? What content is going to be sent?” — have no answers anywhere in this repo for Engines 2 and 3. The shape was built and sold. The words were not. That is the gap, and it is not an engineering gap.

And what Dil produced this week was the booking flow and the onboarding flow, which are two different documents. Ken accepted them — “two good things” — then said this is the one he actually asked for.

Figure 1

The four engines on one life

One customer, one agent, left to right. Solid lines fire today. Dashed red lines are sold and do not exist.

ENGINE 2 — AGENT the buyer’s agent · ~8 in 10 inspections Agent refers nothing is sent Monthly touch · dormant chase nothing is sent the relationship the business runs on — silent Someone rings Josh answers · books ENGINE 4 — CONVERSION runs · failover leg not switched on Confirm T-24h · T-2h The job report published Review ask +3h, then +48h ENGINE 1 — REPUTATION runs · behind a master switch that is off by default Months 1–12 nothing is sent ENGINE 3 — RETENTION sold · no timer, no words Their imported list 12 months of past clients + agents straight into Engine 3 — never Engine 1 fires today sold, does not exist
Two of the four are on the website as though they work. Neither Engine 2 nor Engine 3 has a timer or a word of content. Anyone demonstrating the product should know which two. The amber line is the one Ken drew on the call: an imported client enters at Engine 3 and must never be picked up by Engine 1.
EngineWho it worksState today
1Reputation — the job you just didThe customer, booking to reviewRuns four messages, all live
2Agent — the referral relationshipThe buyer’s agentSold · nothing exists
3Retention — the client after the jobPast clients, incl. every imported listSold · nothing exists
4Conversion — the call that would have been missedAnyone who ringsJosh runs failover needs a doc per client

Figure 2

ENGINE 1Reputation — the one that runs

Trigger: Josh books a job. Six messages on one clock. Five of the six are email; the only text in the whole system goes to the inspector.

THE INSPECTOR by text — the only one we send THE CUSTOMER email, always books T−24h T−2h the job report +3h +48h “New booking — Sarah, Tuesday 9am, 12 Oak St” Confirmation Reminder Reminder Review request Follow-up text first? — not ruled
All six sit behind a master switch that is off by default. The red box is the one change Ken asked for on 20 August and it is not built — see below. Everything else on this figure is live code.
⚠️ Ken changed the review request. Do not build it yet.

“So we personally don’t [text homeowners]. We personally don’t, but on behalf of the client, we will offer a text for a review request. Once. Then it goes to email the second one. So one request on text and one on email.”

That is a change to a published promise. The site carries a section headed “We do not text homeowners” and Terms §17 says “We text subscribers only.” Ken’s answer: “if we need to update anything, we’re gonna need to update something.”

Three things, in this order, before a line is written:

  • Ken’s ruling in writing.
  • The wording on the site and in §17 changed.
  • The carrier registration changed — our number is registered for inspector booking alerts, and a homeowner’s consent does not widen what we told the carrier.

The consent trail itself already exists: Josh asks every caller and it prints on the work order.

On “some clients already got this”

Review-request texts that inspectors’ past customers have already received came from their own ISN or Spectora, not from us — and that is precisely Ken’s reason for keeping imported clients out of Engine 1: “that’s already happened in the ISN system or the Spectora system.”

Nothing in this repo can text a homeowner today. The one code path that could was deleted on 20 August, and test/no-homeowner-sms.test.mjs now allow-lists every file permitted to send a text and names who receives it — a new one fails the suite. So “already solved” is true of the wording for imported clients; it is not yet true of the text-first review request, which needs the three steps above.

Figure 3

ENGINE 2Agent — sold, not built, and the one worth building first

Roughly eight in ten inspections come from agent referrals. This is not a nice-to-have; it is where the business comes from.

⭐ We already know who has gone quiet. We just never do anything about it.

api/ghl/inspector-read.js sorts every agent into a track from their own booking history — no tagging, nobody remembering. The portal even prints the list, under “Who has gone quiet”, with phone and email. It reports, and nothing fires.

COMPUTED TODAY — inspector-read.js every agent is already in one of these, with no tagging and nobody remembering New 1st in 30 days Referring work in 60 days VIP 5+ referrals Cooling 60–120 days Dormant 120+ days Non-referring on the list, never time since their last referral, left to right Thank-you, and what to expect Monthly value touch Warmer, less frequent ⭐ Tell the INSPECTOR Three touches: days 1, 4, 7 Introduction SHOULD FIRE — none of it exists THE ONE MISSING PIECE: a repeating monthly job, and an action fired when an agent crosses a boundary. The scheduler already runs timed, cancellable jobs. It has never been asked to repeat one.
The detection is done. The wiring is not. Six dashed arrows, each one an action that should fire when an agent crosses a line the system already watches. Wiring an action to a state that is already computed is close to free — and it is the half of this engine that ISN structurally cannot copy.
⚠️ The cooling alert goes to the INSPECTOR, not the agent.

An automated “we miss you” is the most obviously automated message there is. “Sarah hasn’t sent you a job in three months — here’s her number” is a person noticing. That distinction is the product.

Ken owes
Twelve agent emails, one a month. Nobody else can write them. Plus one unruled question from the meeting: should an agent in Nashville get content about the Nashville market? We know it can be done. Nobody has decided whether it should.
Engineering owes
A repeating monthly job · an action fired on a track change · the dormant three-touch on days 1, 4 and 7.

Figure 4

ENGINE 3Retention — where every imported list lands

One touch a month, for twelve months. And the fork Ken drew on the call, which is the whole engine.

“Prior clients and new clients. New clients are ones that are scheduled by Josh — they get Engine 1 and work all the way through. Prior clients are uploaded lists.”

Ken, 20 August
NEW CLIENT Josh booked them ENGINE 1 — full run confirmation · reminders · review request then, after the job PRIOR CLIENT from their uploaded list straight in, from day one · tagged Engine 3 on import NEVER Engine 1 — their old system already asked ENGINE 3 — one touch a month × 12 no timer, no words — nothing is sent EMAIL ONLY, BOTH LANES. Nobody imported is ever texted — that is the sentence that made twelve months safe rather than reckless.
Ken’s reason for the cross, in his words: “what we don’t want is Engine 1 to pick those up and start sending review requests, ’cause that’s already happened in the ISN system or the Spectora system.” Asking a second time for a review someone already gave — or already refused — is the one thing that makes us look like a machine.
⚙️ Built 20 August

An imported client now carries the tag Engine 3 alongside Prior Client and Imported. It is a route, not a block — nothing today could send them a review request, because that fires off a completed job and an imported row has no job. The tag is the hook this engine reads when it exists.

⚠️ The agent half is still unruled — one sentence from Ken closes it

Ken named Engine 3 for prior clients. He has not said where a prior agent starts. Engine 2 is the obvious parallel, which is exactly why it has not been assumed — a test fails if anyone adds it quietly.

⭐ The single most valuable message nobody is sending

The eleven-month builder warranty reminder. A new-build warranty runs out at twelve months. An email at eleven — “your builder’s warranty ends next month, want us to look before it does?” — is a job the customer is grateful for, and it books a paid re-inspection. We already know who bought new construction, because Josh asks.

Ken owes
Twelve client emails, one a month. Same bottleneck as Engine 2, same reason.
Engineering owes
The same repeating monthly job as Engine 2 · the eleven-month warranty trigger.

Figure 5 · the correction that keeps being made

There are two different twelves, and they are not the same twelve

Both numbers moved this month, in opposite directions, and both are now twelve. Confusing them changes what gets built.

they join TWELVE ① — THE IMPORT WINDOW how far back we take their history · built, running 12 months of past clients and agents, brought in on day one. Was three months, then six. Twelve since 20 August. TWELVE ② — THE CONTENT CALENDAR how many emails we owe · not written One a month, going forward. TWELVE for clients (Engine 3) and TWELVE for agents (Engine 2). Twenty-four in total. TWENTY-FOUR SLOTS. NONE OF THEM IS WRITTEN. agents clients month 11 — the warranty reminder. We know who gets it.
Twelve ① is built. Twelve ② is not written. The import window moved three → six → twelve and is live in code. The content calendar is twenty-four empty slots, and exactly one of them — the eleven-month warranty reminder — already has a known trigger and a known audience.

Engine 4

ENGINE 4Conversion — Josh, plus one leg that needs a document per client

Josh answers, qualifies, quotes, books, and files the work order, the call transcript and later the report onto the same CRM contact.

⚠️ The failover leg is designed, proven, and not switched on

If our stream ever fails, the call is passed to the client’s own mobile. Proven against a dead host on 8 August — TeXML carried past the failed connect in 4 milliseconds and the second leg connected.

It is per client by design, and it needs the backup number from their onboarding form. Neither Chad nor Ted has submitted one, so there is nothing to switch on. It is a form to fill in, not engineering.

Engine 4 must never promise a backup to a client whose document is not uploaded. Not because the design is unproven — because a document that does not exist cannot answer a call.

What the Whimsical page has to answer

Ken’s four questions are the specification

Each engine gets one column. Each column answers all four. A column with a blank in it is the work.

ENGINE 1 ENGINE 2 ENGINE 3 ENGINE 4 1 · What happens, and when 2 · What is the content the actual words, not a description of them 3 · Where the content comes from ⚠️ separately for the CLIENT and the AGENT 4 · What goes out in which month answeredanswered answeredanswered answeredblank blankblank answeredblank blankblank answeredanswered answeredn/a — live
Six blanks, and they are all in the same two columns. Every one of them is a content question, not an engineering question — which is why this is a sitting-down job for Ken and Dil before anything is built.

And one question Ken asked separately, which decides whether this is generic or good: a client in Nashville — “would the information going to the agent be something about what’s going on in the Nashville real estate market?” We know AI can localise it. Nobody has decided whether it should.

What we take from Echo Desk, and what we do not

Ken, plainly: “We don’t want to do the Echo Desk. We created our own from Echo Desk.” And, earlier the same evening: “Like EchoDesk had that nice layout of the procedures for Sean Bacon… so that you and I can sit down and say, okay, this works, this works.”

Build something like it. Do not run it. We copy the layout — modules on one page, drawn so a non-technical person can follow it, and built to be argued with. We copy none of their sequences, timing, words, or any integration with them.

The honest summary

What is owed, and by whom

Owed byWhatSize
KenTwelve agent emails and twelve client emails — one a month, each. This is the whole bottleneck and it cannot be delegated: nobody else writes in his voice, or knows what an inspector should say to an agent in MarchThe job
KenWhere a prior agent starts. Engine 3 is ruled for clients onlyOne sentence
KenWhether agent content is localised to the client’s marketOne sentence
KenThe review-request text — his ruling, plus §17 and the carrier registrationA ruling, then two changes outside the code
Ken + DilAn hour on Whimsical with this pageA sitting-down job
EngineeringA repeating monthly job · an action fired on agent standing · the eleven-month warranty triggerDays, not weeks — and the agent one is close to free, because the detection already runs
The one line to take away

The engineering is small and it is nearly all detection we already do. The words are the job, and they are Ken’s.