Opens automatically on first pipeline load before 10am. Your Friday in 5 cards:
pacing position vs yesterday, hot leads waiting, cooling that grew overnight, top-EV opportunity,
and a "start here" recommendation with one click into the lead drawer.
Turns the daily 10-minute "what should I do?" cold-start into a 30-second decision.
crm.smartcitylocating.com/pipeline · 8:47am
Search
On
Action Today
Sarah Mitchell$2,800 · Hot
Marcus Webb$1,950 · Cooling
Diana Reyes$3,400 · Active
Friday morning · May 22
Good morning, Tyler. Here's your day.
5 things worth knowing before you open the focus queue.
Pacing position
$48.9K of $62K
$3.7K ahead · same as Thursday close
Hot leads waiting
3
2 new (RR clock active) · 1 toured Wednesday
Cooling overnight
+2 since yesterday
Total 8 cooling · $18,200 at risk
Today's load
47 actions
Focus queue: 15 · rest can wait
Suggested first move
DR
Call Diana Reyes — toured Wednesday, no follow-up yet
$3,400 · 3BR/2BA · move Jul 1–10 · highest close probability today
Why it matters
BehaviorReplaces the cold-start scan of 47 actions with a 30-second orientation. Designed for veterans who already know what they're doing — gives them the same context they'd assemble manually in 10 minutes.
DataBuilt entirely from data Luke confirmed exists: pacing tool output, action completion log, lead value, RR clock state.
UX"Start with Diana" goes straight into her drawer (Frame 03 from v2). No additional clicks. Single decision, single jump.
Opt-outTrigger threshold is per-agent (default: weekdays before 10am, dismiss-for-today saves the preference). Some agents will turn it off; that's fine.
Honors Luke's original calendar-inspired vision as a workspace, not a daily driver.
Five day columns Mon→Fri, action tiles as draggable cards, day-load capacity meters at top of each column.
Drag a tile to a different day to reschedule. Illegal drops are visualized — Mon 25 shows
a red blocker because dropping a renewal there would break the 2-day cadence rule. Hot/toured/RR-locked
tiles never move.
crm.smartcitylocating.com/pipeline?view=week
Search
On
Action Today
Today
Week
Pipeline
May 25 – 29
Light 3 days
Medium 1 day
Heavy 1 day
Total 171 actions
Monday
25 · 52 actions · overloaded
Sarah Mitchell
New · RR locked
Diana Reyes
Toured·$3.4K
Marcus Webb
Renewal·Cooling
Can't drop here
Day is overloaded · renewal already cooling
+48 more actions
follow-ups, renewals, etc.
Tuesday
26 · 19 actions · light
Kevin Park
Follow-up·$2.65K
Rachel Foster
Follow-up
Carlos Mendez
Follow-up
Rachel Foster
Drop preview · move from Mon 25
Wednesday
27 · 24 actions · medium
Priya Sharma
Renewal·$2.45K
Tanya Bridges
Follow-up
Andre Thompson
Follow-up
Thursday
28 · 16 actions · light
Jordan Yee
Follow-up
Lisa Chang
Renewal
Friday
29 · 8 actions · light
James Whitfield
Follow-up
What's different from Luke's calendar mockup
UXDay columns instead of month grid. Same calendar metaphor but compressed to 5 columns. Lets you see actual lead names instead of just colored bars.
UXDrag affordance shows on hover. Tiles lift slightly, drop zones light up blue for valid days and red for illegal drops. The system teaches the rules by showing them.
UX"Auto-balance week" button in the top right runs the same redistribute logic from Frame 04 but week-wide. One click, capacity-aware, respects all hard rules.
RealityThis is the Week tab from the existing tab bar — not a replacement for Pipeline. Both views exist; agents pick what fits their workflow.
09GM Team Dashboard (Dustin-facing)GM surfaceA3
The leadership view. Three KPI cards at the top (team pacing, total pipeline value, cooling exposure)
and an agent leaderboard sorted by % to monthly goal. Each row shows pacing position,
cooling-at-risk dollars, action completion rate, and a sparkline trend. Click any row to drill into
the agent detail / coaching view (Frame 10). Earns Dustin as a champion; gives him the surface to
have data-backed 1:1s.
crm.smartcitylocating.com/team/dallas
Search agents, leads
On
Team Pipeline · Dallas · May 2026
This month
Last 30d
Quarter
Team pacing
94%
$632K of $670K monthly · ▲ 4%
Total pipeline value
$1.84M
Across 412 active leads · ▲ 8%
Cooling exposure
$147K
62 leads at risk · ▲ 12% wk
Action completion
87%
Of all assigned actions hit cadence · ▬ flat
Agent leaderboard · sorted by % to monthly goal
All 14
Behind
On pace
Ahead
#
Agent
Pacing $
% to goal
Cooling at risk
Action rate
7d trend
1
JT
Jessica Tran
Veteran · 4yr
$58.2K / $52K
112% Ahead
$3.4K · 2 leads
94%
2
TA
Tyler Ackelbein
2yr
$48.9K / $62K
79% On pace
$14.2K · 6 leads
88%
3
CD
Carmen Diaz
Veteran · 3yr
$44.1K / $58K
76% On pace
$9.8K · 4 leads
91%
11
SM
Sarah Mitchell
New · 6mo
$22.1K / $48K
46% Behind
$28.4K · 11 leads
72%
12
MR
Mike Rodriguez
Veteran · 6yr
$28.5K / $55K
52% Behind
$19.2K · 8 leads
81%
13
KW
Kim Wilson
New · 3mo
$15.4K / $32K
48% Behind
$4.1K · 2 leads
76%
Why Dustin will care
GMSarah Mitchell at row 11 is the pattern this view exists for. 46% to goal AND $28.4K cooling. Both behind AND letting current pipeline rot. Today this takes 20 minutes to assemble from spreadsheets.
GMMike Rodriguez at row 12 is the other failure mode. Veteran agent quietly slipping. Sparkline shows the 7-day trend so it's not a "bad month" alibi.
UXRows color-coded by status (red bg = behind, amber bg = at-risk veteran). Filter via segmented control. Click any row → Frame 10.
Dustin clicks Sarah Mitchell from the team dashboard. Sees her pipeline health at a glance, then jumps
to the Coaching Notes tab which is the new home for async coaching. Sticky-note style
annotations Dustin or Cassie leave on Sarah's pipeline. Each note stays visible until acknowledged.
Right rail shows Sarah's recent action activity so context is right there during 1:1s.
Luke called out the comments-tab copy-paste pain in his May 7 reply. This solves it.
Tap "Record" on any lead drawer, talk for 30 seconds, get an auto-transcribed comment with action
suggestions extracted (move dates, prices, follow-up triggers). Edit-then-save or save-as-is.
The unblockable part of the workflow becomes one button.
Auto-transcribed comment Ready to saveHighlighted = AI-extracted
Called Marcus, he picked up this time. Still on the fence about renewing.
His ideal would be staying under $2,000 if possible. Asked me to send two options,
one near work in Uptown and one closer to the gym. He wants to make the call by
end of next week. Going to text him both listings by tomorrow morning and follow up
Thursday.
Apply extracted entities → updates to lead record
+ Schedule follow-up · Thu May 28+ Update max price · $2,000+ Run property search · Uptown · gym-near+ Move engagement: Cooling → Active
Why this is the highest-utility low-cost flow
PainSolves Luke's exact stated problem: "finding the person, opening that client, going to the comments tab and then copying and pasting." One button + 30 seconds of voice.
AISuggestion chips extract structured actions from natural speech. Agent confirms with one click each instead of filling forms. Skipping them is fine, the comment still saves.
TechWhisper-class transcription is fast, cheap, and lives entirely behind the API. Same for the structured extraction. Build cost low, user-facing value high.
AdoptionVeteran agents will actually use this. Faster than the current process AND respects their judgment (they confirm what gets logged).
Tech & implementation · Voice Memo
Stack
Audio capture: browser MediaRecorder API, no native dep needed.
Transcription: OpenAI Whisper API (whisper-1) or self-hosted faster-whisper. Whisper API is simpler and accurate enough for noisy phone-call recap.
Structured extraction: single Claude Haiku call with JSON schema. Pull move_date, max_price, follow_up_window, engagement_change.
Save flow: append transcript to comments table. Each accepted suggestion chip writes to its respective field (lead.max_price, action.due_date, etc.) with an audit trail.
Accent / Spanish-language calls: Whisper handles ~99 languages well. Test with the team's actual speaker mix.
30-second cap is suggested, not enforced. Agents may go long; cap on API call cost via duration check.
Failed extraction: graceful degrade to "save raw transcript only" without losing the comment
12Bulk Text CampaignMulti-actionA6
From the Cooling triage queue: select 6 leads, hit "Send to 6", pick a template, personalize tokens
auto-fill, review each lead's preview, send. Each send logs as an action per lead so
it counts toward the pacing tool's daily contact target. What today takes 6 minutes of context-switching
becomes one screen.
Pick a template, review the auto-personalized preview, then send. Each message logs as an action.
1. Pick a template
Check-in
Friendly nudge. Best for cooling renewals that have gone 3-5 days quiet.
New listings
Share 2 matching units. Best when you have fresh inventory to drop.
Tour offer
Propose a tour time. Best for actively shopping leads who've gone quiet.
2. Customize · click a chip to insert at cursor
Insert variable:
Preview · token-substituted per lead
Hey {{first_name}}, it's Tyler from Smart City. Just checking in on your apartment search. Anything change since we last talked? Happy to send fresh options for your {{move_window}} window. Text back anytime.
3. Recipients · 6 selected · review each preview before sending
Lead
Move · Budget
Current search / notes
Preview
Status
Marcus Webb (312) 555-0847
May 31 · $1,950
1BR/1BA · Uptown · pet-friendly · renewal · last action 3d ago
"Hey Marcus, it's Tyler from Smart City. Just checking in on your apartment search…"
Ready
Priya Sharma (470) 555-0567
Jun 15 · $2,450
2BR/2BA · Buckhead · gym-near · renewal · last action 4d ago
"Hey Priya, it's Tyler from Smart City. Just checking in on your apartment search…"
Ready
Kevin Park (404) 555-0288
Jun 15 – 30 · $2,650
2BR/2BA · Midtown · pool · toured Cedar Heights 5/13 · last action 5d ago
"Hey Kevin, it's Tyler from Smart City. Just checking in on your apartment search…"
Ready
Lisa Chang (678) 555-0412
Jun 30 · $2,200
2BR/1.5BA · East Atlanta · WFH-friendly · renewal · ghosting 7d
"Hey Lisa, it's Tyler from Smart City. Just checking in on your apartment search…"
"Hey James, it's Tyler from Smart City. Just checking in on your apartment search…"
SMS opt-out
Andre Thompson (312) 555-0199
TBD · $1,250
1BR · flexible area · budget-focused · no response 3x · 14d quiet
"Hey Andre, it's Tyler from Smart City. Just checking in on your apartment search…"
Ready
Why this earns adoption
UX3-step flow visible at once. Template → preview → recipients on one screen. No multi-page wizard. Veteran agents can review without "where is the next button?"
TrustOpt-out flag on James Whitfield — the system blocks sending to leads who've requested no texts. Visible, not silent. Builds trust that bulk operations respect lead-level rules.
PacingEach send counts as an action, so 6 sends = 6 cadence-touched leads = 6 points toward the daily contact target. Bridges the gap between cooling triage and pacing recovery.
UX"Schedule for 9am Mon" for veteran agents who don't want Friday-afternoon-text vibes. Same flow, different send time.
10DLC registration required for business SMS (one-time ~$20 + ~$2/mo per phone number). Check what SC already has.
Per-agent friction saved: 6 cooling leads sent in ~12 sec vs ~6 minutes manual. ~5-6 min/agent/day at conservative adoption.
Risks & compliance
TCPA compliance: only send to leads with prior consent. Texts in response to lead-initiated contact are generally fine; cold outbound is a gray area Ben should run by legal.
SMS opt-out flag must be respected at send time, not template time
Rate-limit per-agent (e.g., max 50 bulk sends/day) to avoid spam-pattern detection by carriers
Quiet hours: enforce 8am-9pm local time per lead
Template review queue: GM-approved templates only? Or per-agent freeform? Recommend: per-agent, but GM sees a campaigns log
13Auto-Balance Week · Before / After ComparisonCompanion to Frame 08A2 extension
The "Auto-balance week" CTA from the Week Planning view opens this confirmation screen. Agents see
exactly what the system will do before they commit. Side-by-side compare of current
vs proposed week, the rules respected (RR locks, renewal cadence, hot/toured immovability), and
the bottom line. One click to apply, or "Review one-by-one" to approve each move individually.
Auto-balance ready · Monday's 52 actions can drop to 33
23 lower-priority follow-ups can shift to lighter days. No hot, toured, or RR-locked leads will move. All cadence rules are respected.
23
moves
$0
pipeline at risk
14sec
to apply
Current week 171 actions · 1 overloaded
Mon 25
52
Tue 26
19
Wed 27
24
Thu 28
16
Fri 29
8
After auto-balance 171 actions · 0 overloaded
Mon 25
33
▼ 19
Tue 26
26
▲ 7
Wed 27
31
▲ 7
Thu 28
22
▲ 6
Fri 29
8
Rules respected · 0 violations
RR 15-min lock · 4 new leads kept on Monday (clock active, can't move)
Hot leads · 5 hot/toured leads stay on Monday (high close probability)
Renewal 2-day cadence · No renewal pushed past its threshold
Cooling threshold · 2 cooling leads kept where they are (already past warning)
Move dates · No action pushed past the lead's move-in window
Daily cap · No day exceeds 35 actions after the move
23 low-priority follow-ups moved
Across Tue–Thu based on lightest load
Monday relief: 52 → 33 (37% reduction)
Why this design works
UXNo mystery. Side-by-side compare means agents see exactly what changes before committing. No undo anxiety.
TrustRules respected list shows the constraints the system honored. Veteran agents need to see "I would have done this manually" before trusting any auto-anything.
UX"Review one-by-one" escape hatch lets the agent approve each move individually. Same data, different commitment level.
Behavior14sec to apply reframes auto-balance as a time-saver, not magic. The number matters more than the AI label.
Tech & implementation · Auto-balance
Stack
Rule-based optimizer, no AI/ML required for v1.
Pulls action data from actions table (assigned date, completed date, lead_id, action_type)
Pulls lead metadata (status, engagement, move date, RR clock state)
Returns a list of proposed moves: [{action_id, from_date, to_date, reason}]
Reuses existing action log + lead data. No new schema.
Zero ongoing API cost.
Edge cases
Holidays / coverage gaps: respect agent calendar
What if all alternative days are full? Default to "no move" with explanation
Multi-market agents: balance per market, not aggregated
Veteran override: per-agent toggle to disable auto-balance defaults
+Where this goes nextDiscussion
6 new flows added to the original 6 from v2 = 12 total. Worth pressure-testing as a group. Recommend
picking 2-3 to push to Figma-handoff fidelity for actual dev.
My picks for next-up to dev-ready
Voice memo (Frame 11) — highest pain-killer-to-build-cost ratio. Solves Luke's stated copy-paste problem with a single Whisper API call. Could ship inside 2 weeks.
Morning briefing (Frame 07) — touches every agent every day. The dopamine + orientation effect compounds fast.
GM dashboard (Frame 09) — earns Dustin as a champion and unlocks the leadership conversation about expanding the tool.