No Follow-Up — the "Black Hole" module · engineering spec (PRESCRIPTIVE — Sales Analytics arc, design-ahead)
What it is: the module that surfaces leads falling through the cracks — customers no human is scheduled to touch. It appears in three places with ONE definition: a StatsCard on Analytics, a read-only drilldown, and a Contacts smart view. All instances of locked grammars (StatsCard · drilldown · views nav · customer card).
1 · Definition
A black-hole lead = an ACTIVE (non-archived) customer with NO open task AND no future appointment. An active automation enrollment does NOT count as follow-up — ruled: a human never has to look otherwise. Flagged immediately — no grace period. One definition, every surface.
2 · The StatsCard instance — alert semantics
Locked StatsCard grammar: solid info icon always present. Value renders red-01 when >0, em-dash gray-04 at zero (same alert semantics as Untouched). Delta uses invertColors — down = good = green. Third specimen: the "humans only" scope sub-line shown when Exclude AI is on. Tap → the drilldown below.
3 · The queue — read-only drilldown · Contacts smart view
Drilldown — read-only customer list
No Follow-Up
Tamika JeffersonNo Follow-up6 days ago
Created 05/31/17Customer
Robert CookNo Follow-up9 days ago
Created 06/12/26Customer
The R0 drilldown grammar: app bar = back + title only; whole row = one tap target; no per-row actions. Each customer row carries a red "No Follow-up" RoundedText capsule beside its status chip. Drilldown entity = Customer.
Contacts smart view — the queue lives in the views rail
Priya NairNo Follow-up4 days ago
Created 07/02/26Customer
2024 Kia Telluride
Marcus LeeNo Follow-up12 days ago
Created 05/18/26Customer
2021 Honda Civic
The views rail (locked views-nav grammar): "No Follow Up" carries a red count pill. The list = locked customer-card instances wearing the same red capsule — the capsule travels with the customer everywhere the queue surfaces.
4 · Rules + data contract
// Definition as pseudo-logic — ONE definition, every surface isBlackHole(customer) = customer.status != "archived" // active customers only AND openTasks(customer) == 0 // no open task AND futureAppointments(customer) == 0 // no future appointment // NOTE: automation enrollment does NOT count as follow-up (ruled — // a human never has to look otherwise). Flagged immediately, no grace period. // Count metric id (NEW): NoFollowUp // Drilldown entity = Customer { "metric": "NoFollowUp", "value": 6, "drilldown": "customers" }
One definition everywhere — stat, drilldown, and smart view never diverge.
Automation enrollment ≠ follow-up — only an open task or a future appointment clears the flag.
Flagged immediately — no grace period.
Value red-01 when >0 · em-dash gray-04 at zero · invertColors (down = good).
The red capsule travels with the customer — same RoundedText everywhere.
Drilldown rows are READ-ONLY (R0 grammar) — the fix happens on the customer, not in the list.