The Doozer Brainlive from the knowledge bundle · v2.2.618 · 2026-09-13 17:16 ETall pages · one page

Hot Leads — the internal Doozer-sales CRM

systems/doozer-prospects.md · System · prospects, hot-leads, crm, doozer-plus, awareness, monetization, leadbuilder, machi

unverified: no trust signals recorded yet

Businesses are OUR prospects. Doozer-awareness scoring (claimed + postcard engagement + leads we deliver + live site) ranks who is warm enough to pitch Doozer+. The Internal Affairs Division of LeadBuilder.

Hot Leads — the internal Doozer-sales CRM

includes/doozer-prospects.php. Shipped v2.2.416-417. The strategic payoff of all the tracking: it turns postcards + claims + the leads-we-deliver into a ranked list of who is warm enough to close on Doozer+. Jon's flywheel, made visible: they know us → we send them value (leads) → we make the right offer → free becomes Doozer+.

The awareness score (conversion readiness, 0-100)

businessDoozerAwareness($bizIdOrRow) → score + component breakdown + status. Weights live in doozerAwarenessWeights() (one place to tune):

signal pts why
claimed the listing (admin_email set) +40 they acted, they know us — biggest
scanned our postcard (thanksio_events scan) +18 engaged with our mail
postcard delivered +6 mail physically reached them
each postcard sent (thanksio_sends) +3 (cap 9) touches
each lead WE delivered (nbmn_lead_requests.routed_to_business_id) +12 (cap 40) we give value — the strongest "we have something to offer"
live Doozer site +4 inventory exists

Status: paying owner (businessIsPremiumOwned) → customer (not a lead — a save/expand target). Else hot (≥55) / warm (≥25) / cold.

Hot Leads list + admin

doozerHotLeads($opts) — candidate set = businesses we've TOUCHED (mailed OR delivered a lead OR claimed); never-touched businesses are not leads. Scored, ranked hottest first, customers excluded by default. $opts: niche, state, limit, min_score, include_customers. Admin at Intelligence → Hot Leads (Doozer+) (admin-prospects.php): score bars, the "why" breakdown, and Postcard / Manage quick actions. CLI dz prospects [do=hot|score b=].

Next best action + channel (v2.2.418)

doozerProspectAction($row) returns action + channel + urgency (now|soon|later) + reason. The channel rule (Jon): getting leads + email → email the claim invite; getting leads + NO emailmail a postcard STAT (these sort to the top — leads with no inbox = money on the table); mailed already + still no email → call the phone; claimed + free → Doozer+ pitch (email else mail). SMS is OUT (regulatory). Facebook Messenger via official page = future. doozerHotLeads sorts urgency-first. doozerProjectedClaim($row) = projected claim % (heuristic until real outcomes; getting-leads ×3.5, scanned ×2 over a ~4% cold baseline) — sharpens as claim/convert rates by niche+market accrue (feed from the postcard Format-performance panel).

The LeadBuilder pipe (v2.2.418)

doozerProspectsPipeToLeadBuilder() (admin "Sync to LeadBuilder"; dz prospects do=pipe) upserts each prospect into lb_leads (in the LeadBuilder DB via nbmnLeadGetDb), source doozer_internal, intent doozer_plus_prospect, under a synthetic "Doozer Internal Sales" lb_site, one lb_visitor per business (reuses nbmnLeadEnsureLbSite/Visitor). score_factors carries doozer_business_id, awareness, projected %, signals, and next_action/channel/urgency. Idempotent (upsert by site+visitor+source). Internal prospects now live inside LeadBuilder proper.

Distinct from Machi (machi.md): Machi = OUTBOUND NEED ("who to mail next"); this = CONVERSION READINESS + the exact next move. NEXT: campaign/niche/market response comparison to auto-weight targeting ("mechanics claim 20% more → mail more mechanics"); FB Messenger channel; cross-sell Keeper/agency to customer-status businesses.

Ties to [[project_monetization_plan]], [[the-observed-world]] CLAIM→EARN, the [[feedback_right_offer_right_audience]] rule, and ai-postcards tracking.

Gatherings + Social (events, check-ins, the human layer)IndexNow (instant crawl notification)