PARTLY UNVERIFIED — some statuses on this page were HELD, not measured The last refresher tick could not read some of the pull requests these rows point at, so it HELD their statuses rather than downgrade them. A held status is not a measurement that nothing changed. Unverified since · the “last refreshed” stamp on this page is the last time a status MOVED, not a claim that anybody checked since.
AUTHOR’S WORD — 7 rows here show a completed status that nothing derived The pill on these rows was typed, not measured: ws-microsoft-verified-publisher, lp-scraper-live, tb-portfolio-bench, k9-api-key-secure-link, modules-western-slope-leasing-only, ws-twilio-sms-url, ws-tour-length-30-2026-09-17. Every other status on this page comes from that row’s own PR, commit or decision links; these name nothing a machine can read, so nothing can contradict them when the work changes. To make the same claim checkable, write one of these on the row and it derives on the next tick: prs (a PR ref — read from GitHub), completion_evidence (owner/repo@<full 40-char sha> — checked against the default branch), shipped_without_pr (why no PR can exist), or decision (the id that settled it). A row that is not owed a build says so with unbuilt; one a decision retired says so with canceled.
Western Slope go-live

Western Slope go-live

Western Slope live on the portfolio model: one number, one mailbox, 14 properties, guest cards working

Status is DERIVED from each row’s own PR, decision and prod-evidence links by bin/refresh-tracker western-slope-go-live — never typed. Last refreshed 2026-09-19 19:25Z.

Hours source-of-truth audit (2026-09-18)

Follow-up after yesterday’s weekend-tour incident (root cause in the RCA below): where every hours fact lives, whether they agree, and whether it recurs. Read-only prod pull, 2026-09-18. No new write needed — a prior session (ws-tour-vs-office-hours-2026-09-17) already fixed it at 00:11:23–24Z; this confirms it’s live and adds the scaling verdict.

PlaceStored whereWS value (2026-09-18)Who reads it
Tour hours (canonical)Organization.settings.tourHours (ORG#c42d9150…/PROFILE)Mon–Fri 8–18, Sat/Sun 10–15 (matches ruling)Booking + slots, all channels, via readOrgTourHours/resolveTourHoursPure
Property tour hours (unused override)PropertyKnowledge.tourHours (PROP#<id>/KNOWLEDGE)Unset on all 70 properties → falls to org valueSame resolvers; wins over org when set
Business/office hoursPropertyKnowledge.officeHours (PROP#western-slope-front-door)Mon–Fri 9–5, closed weekends (fix #9188/#9214)“Is the office open” statements, after-hours routing, voice property_office_hours var (route.ts:1311)
Knowledge prose — office/lobbyATTACH#setting#knowledge.section.office-hours-contact (ORG#c42d9150…)Lobby Tue–Fri 1–3, by appt Mon–Fri 9–5; “closed weekends” line removed 00:11:23ZPROPERTY KNOWLEDGE prompt block, all channels (buildLeasingKnowledgeBlock)
Knowledge prose — tour hoursATTACH#setting#knowledge.section.tour-hours (ORG#c42d9150…)New 00:11:24Z: weekdays 8–6, Sat/Sun 10–3, “never from office or lobby hours”Same prompt block
Prompt guardclara-leasing.ts:1759Forbids quoting office/lobby hours as a reason a tour can’t happenShared voice + text/email prompt

Precedence when two disagree: property tourHours > org tourHours > property officeHours for bookability — office/lobby hours never gate a tour. No conflict today: all five stores agree (weekday 8–6, Sat/Sun 10–3 for touring; Mon–Fri 9–5, closed weekends, for the office).

Verdict

Why Western Slope launch surfaced so many bugs — root causes (2026-09-17)

The short answer. We did not suddenly write worse code. For the first time, a founder spent an afternoon on a live customer line behaving like a difficult prospect — ten calls, a text, a cancellation, a weekend request. Of the 26 defects found, 14 are in shared code and shared prompt wording that Camellia runs too. They were never found at Camellia because nobody at Camellia ever asked those questions.

Proof that these are not new bugs. In Camellia’s entire production history: 761 voice conversations, zero ever hit the “that time is taken, here are alternatives” branch — so the alternatives-read-out-in-the-wrong-order bug has been live for months and never fired. 706 text messages, zero contained a carrier opt-out keyword, so nobody ever discovered that texting “cancel” silently unsubscribes a prospect from every future message. Zero callers ever asked for the full list of times, so the three-slots-a-day cap never mattered. And 3% of Camellia’s phone numbers already have duplicate person records — the same identity hole, just never hammered by one number calling ten times in an afternoon.

Is it the same core agent prompt? No, and that matters less than it sounds. Camellia runs two long-lived prompts inside the fleet sync. Western Slope runs a single hand-written prototype prompt built in the last ten days, deliberately outside the fleet’s sync and hardening, with the client’s office hours and main office number typed as constants inside the prompt file. That is the direct cause of defect 15 — a third set of office hours in circulation — and defect 8, the transfer that dialled the client’s own front desk. But only 2 of the 26 defects trace to the prototype prompt or the portfolio shape. The rest are shared.

“We had explicit PRs for this” — the weekend hours. Six PRs since 2026-09-08 touched tour hours (#8900, #8913, #9013, #9039, #9046, #9156). Every one of them fixed the data layer: reading the setting, computing the grid, wording a decline. #9039 wired the org-level setting through correctly twelve hours before Fede’s call, and it worked — Saturday came back as a real, configured, ten-slot open day. It was then thrown away one layer later. The code that turns that data into the sentence Clara reads, buildTourSlotsText, applies LEGACY_TOUR_SLOTS_SHAPE.maxOpenDays = 2 — a cap written before org-level tour hours existed. On a Thursday call the two earliest open days were Thursday and Friday, so a correctly configured Saturday was dropped before Clara ever saw it. Six PRs fixed the data; none touched the sentence. #9198 was the first, at 23:24Z, and #9203 superseded it the same night.

Why the knowledge base said “closed weekends.” Nobody hallucinated it. The line was hand-typed into the gold set on 2026-09-15 from the client’s public website (source: westernslopepm.com), approved, and written verbatim into the knowledge record. There is no code path of any kind linking the tourHours setting to the knowledge text — they are two independent stores that have never been compared. The onboarding playbook already names this exact failure (section 11b) and prescribes the check (section 12b, item 8: read both back from the live record). The check was never built.

Process causes. (1) The company-live email hold was patched five times in eight days — #8977, #8999, #9148, #9174, #9199 — each fixing one sender and leaving the others; the PR converging them (#9177) is still open. Defect 6 — a callback request nobody was told about — is the cost. (2) Tour hours were patched eight times in nine days and the caller-facing sentence was fixed by the eighth. (3) Zero of the 13 fix PRs merged today carried a proof that ran on the customer’s real path after the fix. Every proof section is unit tests, a typecheck, or a read-only production query; the one PR with a real-call step (#9140) shipped with that box unchecked. On this tracker, 100 of 222 rows have a PR and no production evidence at all.

CauseDefectsWhich
(c) Shared prompt or behaviour — latent at Camellia too, never exercised there143, 7, 10, 11, 12, 13, 14, 16, 18, 19, 20, 21, 22, 23
(e) Missing pre-go-live coverage — a scenario nobody has ever run34, 5, 17
(f) Unverified — could not reproduce, do not assume324, 25, 26
(a) Config gap — org-level set, property-level empty, or two stores disagreeing22, 8
(g) Portfolio-shape or prototype-prompt code Camellia never runs21, 15
(b) Held by the company-live switch — only happens to a not-live company16
(d) Genuine regression from this week’s own PRs19

The 26 defects, one row each. “What would have caught it” is the specific check that did not exist.

#DefectCauseFixWhat would have caught it
1Weekend tours denied though weekend hours are configuredg#9198, superseded by #9203A robot call asking for a Saturday tour, on the real line, after writing the hours
2Knowledge text says “closed weekends”; the setting says Sat/Sun 10–3aDecision owed — which one is truePlaybook 12b item 8: read office hours and tour hours back from the live record and diff them against the knowledge text
350-second loop, could not list times, narrated her own contextc#9203Scenario: “read me every time open Friday afternoon”
4Texting “cancel” permanently opted the prospect out of all texts and emaileOpen — Twilio advanced opt-out configA keyword sweep on the real line: text cancel, stop, end, quit and check the record
5Cancellation produced staff email and Slack but no text to the prospecteDownstream of 4Same sweep, with a delivered-event assertion per channel
6Callback request captured; office never toldb#9199, #9174; converged by #9177 (open)A delivered-event check on every staff notice, not a “sent” return value
7Promised to note a name change, did nothingcPrompt, openPromise-vs-action grading on every call — the grading bot did flag it, after the fact
8“Talk to a person” dialled the client’s own front desk, which forwards back to Claraa#9201 (open)Scenario: ask for a person on the real line and follow where the call goes
9Repeat caller not recognised; 15th duplicate person record createdd#9163Repeat-caller scenario from a distinct number, twice in a day
10Offered an afternoon slot right after the caller said “morning”c#9203 promptPart-of-day scenario in the standard sweep
11Invented a reason for a conflict (“that time just got taken”)cPrompt, openConflict scenario — never once fired at Camellia in 761 calls
12Offered 8:30, then 8:30 vanished — two different slot sources in one callc#9203Same conflict scenario; assert the two sources agree
13Conflict alternatives read out nearest-first, not in clock orderc#9203Same — shared by voice, text and email
14Reschedule confirmation text landed 36s after the caller asked to cancelcOpenRapid text-then-text scenario
15A third set of office hours told to a different caller the same daygOpen — delete the hardcoded hours from the prototype promptA build check refusing any literal day/time range inside a prompt file
16Refused to correct a prospect’s own name (“I’m not able to update names”)cPrompt, openScenario: correct your name mid-call and check the record
17Reschedule and cancel never refresh the guest cardeOpenReschedule, then read the guest card — the schedule path writes it, the other two do not
18Clara talked over / was interrupted four times in each of three callscPrompt, openTurn-length budget graded per call
19Pushy cancel flow — two rebook attempts after “I need to cancel”c#8966 claimed this; recurredReplay of the prior night’s call after the fix, which is the rule we already have
20Re-asked a question the caller had already answeredcPrompt, openSame replay
21Greeting did not match the question askedcPrompt, openStandard sweep grading
22Asked for a callback number she already hadcPrompt, openStandard sweep grading
23Nine turns over 3s to first audio; worst 4.2scOpenA latency budget asserted on every sweep call
24Dashboard reportedly showed a cancelled tour back on — not reproducedfUnverified. A write did land on the cancelled row 2m10s after cancellation; worth chasing
25An overnight tour and prospect that confirmed by text do not exist in prodfUnverified. Either hard-deleted or written outside propflow-prod
26Staff email body wordingfUnverified — SendGrid returns metadata only; needs a BCC copy to read

What we change. Three things, in order of leverage. One hours fact: the structured tour-hours setting becomes the only store; the spoken sentence and the knowledge entry render from it; the hardcoded hours and office number come out of the prototype prompt file, and a build check refuses any literal day-or-time range inside a prompt or a knowledge entry. That closes defects 2 and 15 and stops the third answer from ever appearing. A pre-go-live robot sweep on the real line: roughly ten fixed scenarios — weekend ask, full-list ask, talk-to-a-person, repeat caller from a new number, text “cancel”, conflict-and-alternatives, reschedule-then-read-the-guest-card, callback request — run against the customer’s own number and own org, each asserting a delivered event, not a return value. Eleven of tonight’s 26 would have failed that sweep before Fede dialled, and no tracker row reaches “shipped” without one. Guard the text we hand the model, not just the prompt hash: the byte-identity check today covers prompt files; extend it to the injected context — tour-slots block, knowledge block, dynamic variables — so a renderer that drops a configured Saturday fails a test, not a phone call. With it, a standing rule: the third patch to a seam converges it.

Overnight evals, 2026-09-17/18

What this is. Every one of Thursday’s defects that is something Clara said — sixteen of them — written down as a test that fails on the old behaviour. Each test is run four times: with Western Slope’s setup and with Camellia’s, once against what is live now and once against the full-slot-list fix that is still open. Running Camellia too is the rule that a fix for one customer must not change what the other’s callers hear.

How it runs. On the Claude subscription, not a paid key, so it can run every night. It uses the real prompt Clara answers with and the real tour-times text the phone line hands her, pulled from production rather than re-typed. That is the point: Thursday’s weekend problem was a setting that was right and a sentence that dropped it, and a test with a hand-written tour-times block cannot see that at all. Three judges grade each call — the test’s own checks, its plain-English questions, and a judge carrying Fede’s standing rulings (never name the person meeting them, ask move-in before name, never read a number back, never count homes out loud, never narrate her own notes, tour hours are not office hours).

Result. Live today: 8 of 32 pass. With the remaining fix: 12 of 32. By customer, live today: Western Slope 7 of 16, Camellia 1 of 16. With the fix: Western Slope 8 of 16, Camellia 4 of 16. Model claude-sonnet-4-6, run 2026-09-18T02:39:09.631Z. Every row links to the words.

What the remaining fix moves to green:

Still wrong on both arms — these reproduce on both setups and on both arms, so they are real and not a grader having a bad night. Each has an issue:

The callLive todayWith tonight’s fixesDefectWords
Western SlopeCamelliaWestern SlopeCamellia
Tour times a caller can actually hear
asks for the full list of timesfailfailfailfail3, 8read it
"what else do you have"failfailfailfail3read it
says they prefer morningsfailfailfailfail10read it
a time is taken — no invented reasonfailfailfailfail11read it
alternatives in time orderpassfailpassfail13read it
Hours never veto a tour
weekend ask, "closed weekends" in the knowledgepassfailpasspass1, 2read it
hours question, three sources on filepasspasspasspass15, 2read it
A person-ask becomes a message
"can I speak to someone"passfailpassfail8read it
the same ask at 2 AMpassfailpassfail8read it
taking a callback numberfailfailfailfail6, 22read it
She does what she says she will
promises a note — does she write itfailfailfailfail7read it
corrects a wrong namepassfailpassfail16read it
Listening
cancels a tour — one save attemptfailfailpassfail19read it
never re-asks what was answeredfailfailfailfail20read it
the greeting answers the question askedpassfailpasspass21read it
a caller speaking Spanishfailfailfailpassread it

Three things the bench caught about itself, before these numbers. A test that fails correct behaviour is worse than no test, because it hides the real ones, so each of these was fixed and the suite re-run from scratch.

Overnight real-line sweep — 2026-09-18 — Done, 4 of 12 passed

This runs all 12 of the scenarios below as real calls and texts to Western Slope’s real line (+1 970-822-0641), replaying the ten calls and one text-cancel from Fede’s 2026-09-17 test session so every one of the 26 defects a live call can prove gets checked again after tonight’s fixes. Per Fede’s ruling, Clara does not write any test guest cards into Western Slope’s real AppFolio for this sweep — the run refuses to start if that switch is on, and every guest-card check instead asserts that no card shows up. All test prospects, tours, and calendar events created by the calls are removed afterward; the cleanup counts and ids are recorded before anything is deleted. Result: 4 of 12 scenarios pass (reschedule, cancel-by-voice, and book-a-tour + weekend-book on a corrected read — see note below). The other 8 each turned up a real gap — a repeat caller greeted and re-transferred like a stranger, cancel-by-text leaving the tour stuck half-cancelled, and a run of promises Clara made on a call that nothing followed up on. No AppFolio guest card was written for any of the 12 calls, as required. Every test person, tour, and calendar entry the sweep created has been removed and confirmed gone.

Rerun 2026-09-18 (this session), after b110bb6e6c reached prod: r2, r9, r11 and r12 were placed again live against the same line, same personas, with guestCardWriteFromCalls reconfirmed OFF for Western Slope and the ElevenLabs triage agent's prompt + turn config reconfirmed byte-equal to the served commit first (via live-equals-main.drift.test.ts from a disposable worktree). Also: r1 and r6 below are corrected from FAIL to PASS — the original verifier looked prospects up by ElevenLabs conversationId, which a later call from the SAME test number silently overwrites (#9342); a by-phone/by-person recheck shows both bookings' records were present all along. All four reruns still FAIL overall, but each proves its target fix landed and surfaces a narrower, real, follow-on gap — see the After column and the notes on the slot-list row and the name-and-tour row below. No prod_evidence permalink was added to any tracker row this pass, per instruction, since none of the four reruns passed clean.

ScenarioWhat it testsBeforeAfterCleaned
r1 — book a tour, morning preferenceDuplicate person records on a repeat number; an afternoon slot offered right after “morning”; an invented conflict reason; a slot that vanished after being offered; alternatives read out of order; interruptions; slow turnsDefects 9 (#9163), 10 (#9203), 11 (open), 12 (#9203), 13 (#9203), 18 (open), 23 (open)PASS (corrected 2026-09-18) — tour booked fine (text, email, Slack, calendar all fired). The original “no inquiry/prospect record was saved” finding was a verifier false alarm: it looked the record up by ElevenLabs conversationId, which the r2 call from the same test number later overwrote; the record was present all along by phone/person lookup (#9342).Yes
r2 — ask for the full list of timesClara narrating her own plumbing (“the tour times I have loaded…”) instead of naming times; interruptions on every failed answerDefects 3 (#9203), 18 (open)FAIL, rerun 2026-09-18 — defect 3 is fixed: Clara now names the full afternoon list (14 concrete times, chronological, zero plumbing phrases — both required checks passed). New gap: she read all 14 times in one breath instead of asking morning-or-afternoon first and offering a couple (Fede judge 4/10), used a stall line (“let me pull that up for you”), and no home/move-in date was ever asked, so nothing was on track to book (the call itself was scripted not to book). Verified by hand: no tour row exists for this persona, which is correct — r1’s tour was already removed by last night’s cleanup before this rerun, not a new miss (assertion for this row does not require a tour).Yes
r3 — reschedule the same tourGuest card not refreshed after a reschedule; confirmation text landing lateDefects 17 (open), 14 (open)PASS — reschedule moved the same tour; calendar, confirmation text, staff email, and Slack post all updated correctly.Yes
r4 — cancel by voice, “something came up”Pushy rebook attempts after a cancel; guest card not refreshed; no cancellation text sent to the callerDefects 19 (#8966, recurred), 17 (open), 5 (downstream of 4)PASS — cancel by voice removed the tour and the calendar event, sent the cancellation text and staff email, and made only one polite save attempt.Yes
r5 — repeat caller, same numberSame caller not recognized on a second call, minting a new duplicate person recordDefect 9 (#9163)FAIL — the greeting used the caller’s name before recognizing him, nothing acknowledged he’d called before, and a second person record was created for a number that had already called once.Yes
r6 — weekend tour, ask then book SaturdayWeekend tours denied though weekend hours are configured; knowledge text says “closed weekends” while the setting says otherwise; greeting doesn’t answer the weekend questionDefects 1 (#9198, superseded by #9203), 2 (decision owed), 21 (open)PASS (corrected 2026-09-18) — the weekend tour booked correctly and the text/email/Slack all fired. Same verifier false alarm as r1: the “no inquiry record / tour never hit the calendar” finding was a conversationId lookup miss, not a real gap (#9342).Yes
r7 — move it, “Sunday afternoon,” no time givenRe-asking morning-or-afternoon after the caller already said afternoon; guest card not refreshed on rescheduleDefects 20 (open), 17 (open)FAIL — the “Sunday afternoon” reschedule was left half-done: the tour sits unconfirmed with no time, no calendar event, no confirmation text, and no email to the office.Yes
r8 — cancel by text, the word “cancel”Texting “cancel” permanently opting the prospect out of all texts and email; no cancellation text sent; a crossed confirmation text landing late with no acknowledgmentDefects 4 (open, Twilio config), 5 (downstream of 4), 14 (open)FAIL — texting “cancel” did not cancel the tour (it stayed unconfirmed and bounced between states), the calendar event never came down, and no text or staff email went out.Yes
r9 — “can I talk to a person?”Transferring to the client’s own front-desk number, which forwards back to ClaraDefect 8 (#9201, open)FAIL, rerun 2026-09-18 — defect 8 is fixed: no transfer to the office line fired (required check passed), the message reached the team (staff email delivered, Slack posted), and no guest card was written. Half of tonight's other fix landed: Clara took the caller's name without asking twice. The other half did not: she never pivoted to “are you looking for a place?” and stayed in pure secretary mode (Fede judge 6/10, needs 7).Yes
r10 — resident with a leakCompanion check — the maintenance transfer target must also never be the office lineDefect 8 (#9201, open)FAIL — the leak call transferred to the right maintenance line, but Clara promised to “leave a note” (a banned follow-up promise) and handed the caller off as “Unknown caller” without asking a name.Yes
r11 — callback, then a name correctionA callback request captured but the office never told; a promised note never actually written; refusing to correct the caller’s own name; asking for a callback number already on fileDefects 6 (#9199/#9174, converged by #9177), 7 (open), 16 (open), 22 (open)FAIL, rerun 2026-09-18 — defect 6 stays fixed (staff email delivered, Slack posted, notifiedAt set). Defect 7 is a mixed read: Clara said “I’ll note that it’s Priya Ramirez” and the deterministic check found no tool call right after, but a by-hand check of the actual Person record (by phone, not conversationId) shows the name WAS updated to “Priya Ramirez” before cleanup — the write landed, the checker's transcript-window match just missed it. Also: Clara now confirms the callback number by its last four digits (“ending in 5, 5, 6, 6”), which is the b15ba8703 fix working as designed (see the last-four row below) — this scenario's own “didn't ask for a known number” assertion predates that ruling and needs updating, it is not a new bug. Real remaining gap: Clara never answered or even asked about the caller's application question, and never offered a tour (Fede judge 3/10).Yes
r12 — what are your office hours?A third set of office hours in circulation; hours used to deny a tour that should be judged on tour hours, not office hoursDefects 15 (open), 2 (decision owed)FAIL, rerun 2026-09-18 — defects 15 and 2 are both fixed: office hours and tour-hours came back as two clean, non-contradicting answers (Fede judge's own words: “nothing contradicted, nothing made up, so that part's fine”), scoring exactly 7/10, the passing threshold. Marked FAIL anyway because the judge's blanket “ends with a tour on the calendar” rule fired even though this scenario's script explicitly says not to book — when the caller asked “when can I come see a home,” Clara read hours back instead of offering a slot right there. Worth checking whether that blanket rule should exempt scripted no-booking scenarios.Yes

Full method, safety rails, and what gets read back per scenario (transcript grade, SMS, office email, Slack, calendar, database rows, guest card, latency): see the sweep runner’s own README, referenced from this row set. The same-night eval-suite numbers below are graded separately by the nightly bench — see the “Overnight evals, 2026-09-17/18” section above for the full breakdown; not repeated here.

Eval suiteBeforeAfter
Western Slope shape7 of 16 (2026-09-18 ~03:30 MT, on main)pending
Camellia shape1 of 16 (2026-09-18 ~03:30 MT, on main)pending

What’s left to go live (2026-09-15, for Fede’s review)

Draft from the tracker, needs Fede’s corrections. Every open, in-flight, or waiting-on-Gera row below (about 55), grouped in plain English. Each line links to its row further down this page.

Phone line (9)

Tours (4)

Leasing inbox and lead emails (8)

Knowledge base (2)

Guest cards and AppFolio (3)

Listings (3)

Sign-in and invites (3)

Onboarding UI (3)

Data import (2)

Test bench (4)

Other (14)

Not on the tracker yet (from today’s sessions)

Shared mailbox: what went wrong and the proposed fix (2026-09-15) — Proposed, pending review

Western Slope has tried to connect their shared leasing mailbox three times, all failing on our side. Below: what happened, why, and the fix we’re proposing — nothing changes until an option is picked.

What happened. Sep 11: the admin approval used the wrong Microsoft account, and the 30-minute link expired before anyone could retry — no retry existed until a fix shipped that day. Also Sep 11: Jay, the owner, connected his own calendar as a workaround; it works (checked again today), but tour booking doesn’t read a person’s calendar yet, so it does nothing. Sep 15, twice in two minutes: Kat, the leasing agent, clicked the shared “Connect leasing email” button every teammate can see. Microsoft approved it under her account, then Settings asked “which shared mailbox should Clara reply from?” with no field to answer (admin-only) and one button that just restarted the approval. She did everything asked; we never named the mailbox. Nobody was told — the only signal is a dismissable dashboard banner, and back office said “Mailbox approval granted” for a half-done setup.

Why a mailbox has to be named. A shared mailbox can’t sign in on its own. Approval always comes from a real person’s account, opening whichever mailboxes that person has access to — Microsoft never tells us which one is the leasing inbox, so we have to ask.

Where it stands now (checked live today, nothing changed). Kat’s and Jay’s stored approvals both carry the shared-mailbox permission and both work for their own inboxes, but neither can open the leasing mailbox: Microsoft answers “not found” — the same answer for any real mailbox an account has no rights to (control-tested), different from what it says for a mailbox that doesn’t exist. So the address is real, and neither account has been granted access to it in Western Slope’s Microsoft 365. We ruled out a mistake on our side. Nothing more to do until that access exists; once it does, the mailbox finishes from the approval already on file, with no action from Western Slope.

Two approvals, one expectation. Connecting the shared mailbox and connecting a person’s own calendar are different asks tied to different accounts, so anyone who does one assumes both are done. Fede’s ruling today: anyone can set up the shared mailbox, not just an admin; for a company like Western Slope it’s done once, at the company level; what decides success is whether Microsoft actually gave that account access, not the person’s role. No screen changes until an option below is picked.

OptionWhat the person seesProsConsRecommendation
A — access decides, not roleAsked for the shared mailbox address before the Microsoft step. After approval we check whether that account can open it, and only then say done; if not, the screen says exactly that.Anyone can complete it; catches the real problem right awayOne extra question before the Microsoft stepRecommended
B — admin-only finish (today’s design)Only an admin sees the mailbox field, after approvingSimpleExactly what trapped Kat; assumes the admin’s own account has mailbox access, which Western Slope shows isn’t guaranteed
C — company-wide accessTheir Microsoft admin grants us access to any shared mailbox in the company, onceMost robust for several shared inboxesBigger trust ask, bigger buildConsider later
Any option — fix the two-approvals mix-upAfter the mailbox step, the same screen says “this connected the leasing mailbox — your own calendar is a separate step,” shown as not doneStops people assuming both are finishedApply regardless of A/B/C

Already fixed or in progress, none customer-facing: back office now looks up the right person for calendar status (merged today); the companies list will show “Off” instead of blank for an unconnected company (in flight); next, wording so a half-done mailbox says “approved by [name], mailbox not chosen yet” instead of implying nothing happened.

Leasing inbox audit: 12 months of what actually lands there (2026-09-15)

Read-only look at the shared leasing inbox from 2025-09-15 to 2026-09-15, before Clara answers anything from it. Everything below is aggregate; no names, numbers or message text left the mailbox. Question asked by Fede: are guest cards and website inquiries arriving, in what shape, how many, and does the reply logic built for Camellia work here.

Five facts. 13,765 emails arrived in the year; 2,248 of them (16%) were prospect inquiries, about 190 a month or 6 a day, far from a flood. Three of every four inquiries come from Zillow, and most of those arrive as Zillow’s conversation relay, which carries the prospect’s first name, the address and the message, but no phone or email. AppFolio guest-card emails exist as a source but stopped on 2025-11-29 (20 in the year, none since). Website inquiries come from AppFolio’s own website product and fell from 20–40 a month to 1–4 a month in June 2026, which looks like a settings change, not less traffic. Every lead source is a fixed template, so parsing is reliable once the template is known.

Lead sourceInquiries in 12 monthsWhat the email carriesReply goes toCamellia logic today
Zillow conversation relay (also carries Trulia and HotPads)1,571First name, property address, message; follow-ups arrive as replies in the same threadA per-conversation Zillow relay address, not the prospectNeeds code. The parser matches on the sender but not on this template, so nothing is extracted and the message falls to generic triage. The relay domain is not on the known-relay list.
Zillow first contact205Name, email, phone, message, listing price and addressProspect’s real emailWorks. Verified on 3 real messages: all identity fields populated.
Direct email from a prospect221 (estimate)Free textProspectWorks. Ordinary triage.
AppFolio website contact form171Name, email, phone, message, which form and pageProspect’s real emailWorks, minus the name. Email and phone are extracted; first and last name are not, on all 3 samples. Some of this volume is bot form-fill.
Apartments.com network (also carries Homes.com)52Name, phone, email, beds, unit, move-in date, comment, property addressProspect’s real emailWorks. Verified on 3 real messages.
AppFolio guest card20, none after 2025-11-29Name, email, phone, beds, move-in, budget, pets, the original source (this is the only place Apartment List leads appear)Prospect’s real emailWorks, but the pipe is off. Parses cleanly on 2 samples. The source field “Apartment List” is not recognised and is recorded as “website”.
Zumper, Rent., Craigslist0Not a source here.

Which building the mail belongs to. Western Slope is one shared inbox in front of 70 buildings (49 houses, 20 apartment buildings, one company-wide portfolio row) with no per-building mailbox. The company-door rule merged on 2026-09-15 files every message on the portfolio row, which is correct. The next step, matching the address in the email to one of the 14 homes currently offered, failed on 5 of 5 real subjects: Zillow writes “486-32 1/8 Rd #4” where our roster says “486 32 1/8 Road, 4”, and the matcher does not bridge Rd/Road, the hyphen, or the unit notation. Needs code before anything is turned on.

The other 84% of the inbox. 2,389 emails (18% of everything) are Zillow market-update digests from a personal Zillow account tied to this address. The rest is AppFolio operational mail (insurance, e-sign, payments, bank feed, voicemail forwards, all from one sender address), utilities, vendor invoices, state filings, retail promos, and staff forwarding leads to each other. The existing triage records these and replies to none; that was verified against the categories, not just assumed. One gap: staff answer from this inbox themselves, and the “do not acknowledge what the team already reads” rule exists per building but not yet at company level.

How fast staff reply today. Only 125 of 2,248 inquiries (5.6%) show a reply sent from this inbox. Median 45 minutes, 90th percentile about 19 hours, a third of replies outside office hours. This undercounts Zillow badly: replies made inside Zillow’s own portal never appear in Sent Items. Inquiries peak Monday and 9am to 1pm Denver; about a third arrive before 9am or after 5pm, and weekends are 40% quieter.

CategoryClara shouldRule
Zillow, Apartments.com, AppFolio guest card, AppFolio website form, direct prospect emailAnswerSender is a known lead relay or the message parses as a lead; reply to the prospect’s real address when present, through the Zillow relay when not
Staff forwards, AppFolio operational mail, applicant and resident threadsIgnore (record only)Sender is the company domain, an AppFolio system address, or a mail subdomain of AppFolio; existing triage already does this
Zillow market digests, listing reports, utilities, vendors, retail promos, state filingsIgnoreSender domain deny list; the Zillow personal digests should simply be unsubscribed
Complaints, legal, owner mail (1 genuine complaint and 136 owner-entity notices in the year)Leave to a personNever answered by Clara; no forwarding mechanism is proposed for now

What this means for go-live. The reply logic carries over: nothing in it is Camellia-specific. Three code items stand between the audit and a real inquiry being answered: the Zillow relay template, the address matcher, and the company-level quiet rule. Two items are Western Slope’s own settings and are Fede’s ask to make: turn AppFolio guest-card notifications to the leasing inbox back on (the richest lead shape, and the only one carrying Apartment List), and check why website-form notices dropped in June. Same-day duplicate inquiries across Zillow and Apartments.com happen on about 2% of active lead days; the existing per-property dedupe covers this as long as both land on the same row, which they now do.

Guest-card replies: what is built, what runs today, what is missing (2026-09-18)

Brief for Fede. Every fact below was read from the code at commit 6aa8afc501 or from production records today; nothing is inferred. File and line are given so anyone can check. Scope is Fede’s standing rule: only syndicated guest cards get a reply today; no hand-typed leads, no Zillow Rental Network relays.

TL;DR. Three separate pieces exist. (1) A feed that copies every AppFolio guest card into PropFlow every minute. (2) A reply engine that answers an inbound email and can deliver the answer inside the AppFolio guest card instead of by email (the “guest card as the reply mechanism” door; live at Willows only). (3) A guest-card conversation reader that pulls the renter’s later messages out of the card every two minutes and wakes Clara. What is not built is the join between (1) and (2): a new syndicated card arriving on the feed does not start a reply. Today the only thing that starts a first reply is an email landing in a mailbox, and Western Slope’s mailbox receives no AppFolio guest-card emails at all.

0. Today’s lane: a call creates the guest card (state at 11:30 MT, 2026-09-18)

Fede paused the assigned-to-Clara build at 10:40 MT (“Let’s pause that build. For today only focus on creating the guest card”). PRs #9425 and #9483 are on hold. The creation path is a separate, already-built lane owned by the guest-card-from-call sessions (tracker row “A call that ends writes the guest card into the client’s AppFolio”). Read from production just now:

FactEvidence
Company switch is ON at Western Slope since 09:35 MT today, armed by Trinity on Fede’s “now we are live”.row CONFIG / GUEST_CARD_WRITE_FROM_CALLS#org_c42d9150…, enabled true, updatedAt 2026-09-18T15:35Z
Every Western Slope home’s own switch is ON (70 homes plus the front-door line), and Willows.scan of LEASING_SETTINGS rows with guestCardWriteFromCalls = true
Proven once at Willows: card 107 created 2026-09-17 22:43 local.tracker row prod_evidence; intent sent 2026-09-18T04:43Z
First real Western Slope call today tried to write a card and failed before reaching AppFolio: the intent was filed against the front-door line, which has no PMS mapping.intent 2026-09-18T16:34Z, state failed, “property western-slope-front-door has no PMS configured yet”; fix open as PR #9490 (issue #9491); #9486 makes the write happen at call end instead of a 15-minute cron; #9492 turns the cron into a stuck-intent alert
Not yet verified: whether our Western Slope AppFolio login can create a card at all (it was set up read-only). No write has reached westernslopepm.appfolio.com yet.no sent intent for the Western Slope org; account row not readable from this session

What is missing for today, in order: merge #9490 so the card is filed against the home the caller discussed; a real call proves it (the after-call write is the proof); then confirm the AppFolio login can write. Nothing in the reply brief below is needed for this lane.

1. Current state — the three pieces and how they connect

flowchart LR
  AF[(AppFolio guest cards)]
  subgraph FEED["1. Feed (built, running)"]
    S1[guest_cards job\nevery 1 min] --> S2[ProspectInquiry row\nsource + af.* fields]
    S2 -. "onFreshProspectMinted\ndeclared, never called" .-> X1((no reply))
  end
  subgraph EMAIL["2. Reply engine (built)"]
    E1[Email arrives\nSES clara@ or company mailbox] --> E2[classify + match home]
    E2 --> E3{claraLive?}
    E3 -- no --> H[held: org_not_live]
    E3 -- yes --> E4{messagingDelivery\n= pms?}
    E4 -- yes --> P[write reply INTO\nthe AppFolio guest card]
    E4 -- no --> G[send by Graph /\nSendGrid email]
  end
  subgraph READER["3. Card conversation reader (built, Willows only)"]
    R1[guest_card_messages job\nevery 2 min] --> R2[renter's reply inside card\n-> wakes Clara]
  end
  AF --> S1
  AF -. "notification email\n(only if AppFolio's own\ntoggle is on)" .-> E1
  P --> AF
  AF --> R1
  R2 --> E2
  style X1 fill:#fee,stroke:#c33
  style H fill:#ffe9c7,stroke:#b45309
PieceWhat it doesWhere (file:line)State at Western Slope
Feed: card → PropFlowEvery minute, copies each AppFolio guest card into a ProspectInquiry row with its source and AppFolio ids. The AppFolio row has a Source field but no created-by field, so the feed alone cannot tell a syndicated card from a hand-typed one.lambda/appfolio-sync/handler.ts:4218 (job), :4483 (writer call); src/lib/domain/pms/writers/guest-card.ts:1300-1550; src/lib/data/types.ts:709-747 (row shape)Running. Cards are recorded.
Feed hook: new card → engage ClaraThe hook that would start Clara on a fresh card is declared and deliberately never called (ADR-0094, observational posture). Only rental applications go through the engagement path.guest-card.ts:360 (declared), :1773-1777 (no-op); pms-mint-engagement.ts:103-178; handler.ts:4092 (applications only)Not wired. A new syndicated card produces no reply.
Per-property “act on leads” trigger (PR chain this week)PR 1/3 detects and stamps a card assigned to Clara; PR 2/3 prepares the first touch without sending; PR 3/3 (the sender) is being built.#9419 merged, #9422 merged, #9425 open, PR 3 in flightDark. Allow list names one JP&Co property and no Western Slope home.
Reply engine: inbound email → replyAn email in a mailbox is classified, matched to a home, drafted, then gated: company live switch first; then the property’s delivery mode picks the door.lambda/inbound-processor/handler.ts:779 (live gate), :822 (delivery-mode gate), :874-900 (Graph send), :969 (SendGrid fallback)Built. Every draft held: claraLive unset, so org_not_live. Zero sends, confirmed three ways today.
Reply door: inside the AppFolio guest cardWhen Property.messagingDelivery = 'pms', the reply is written into the guest card through the browser agent (POST /api/guest-card/message) instead of being emailed. AppFolio then delivers it to the renter. Fails with no_guest_card if no card matches the address.src/lib/domain/properties/messaging-delivery.ts:37; agents/clara/lib/messaging/process-pms-email.ts:198; property-graph-sender.ts:916; src/lib/integrations/appfolio/message-sender.ts:112Built, not enabled. Only Willows (appfolio-45, org_sandbox) has messagingDelivery: 'pms' in prod. Western Slope and Camellia have no such setting (absent = direct email).
Card conversation readerEvery two minutes reads the renter’s and staff messages inside each opted-in property’s guest cards, files history silently, and wakes Clara only for messages after the history line.lambda/appfolio-sync/handler.ts:4559-4632; guest-card-message-reader.ts:97; writers/guest-card-message.ts:304 (wake)Built, not enabled. pmsMessagingSync.enabled true only at Willows (account jpco, Clara seat 250).
Zillow relay ruleAn email from a convo.zillow.com relay is never answered by email; the code comment says those renters reach Clara through the AppFolio guest card instead.agents/clara/lib/email/decide-email-send-mode.ts (zillow_relay_never_answered_by_email)Active. This is why 596 Zillow relay emails in the leasing inbox were never answered.
AppFolio notification emailAppFolio emails a “New Lead” notice only for online guest cards and only to the vacancy-posting contact, when the user toggle is on.AppFolio help articles (guest-card notifications)Western Slope’s leasing@ inbox: zero such notices in four months (5,517 emails scanned). Camellia: 74 all-time, 0 in the last 14 days.

2. What happens to a Western Slope lead today, by origin

flowchart TD
  L1[Syndicated lead\nZillow Rental Network / Apartments.com\nAppFolio creates the card] --> F[Feed copies card\nto PropFlow in 1 min]
  F --> N1[Recorded. No reply.\nHook not wired]
  L2[Zillow relay email\nconvo.zillow.com -> leasing@] --> Z[suppressed:\nzillow_relay_never_answered_by_email]
  L3[Hand-typed card\nstaff copies a lead in] --> F
  L4[Website inquiry\nappfoliowebsites.com -> leasing@] --> W[unrecognized by classifier\n21 in 4 months]
  L5[Direct renter email\nto leasing@] --> D[drafted, then held\norg_not_live]
  style N1 fill:#fee,stroke:#c33
  style Z fill:#eee,stroke:#888
  style D fill:#ffe9c7,stroke:#b45309

Western Slope production settings read today: claraLive unset, emailsEnabled false, smsEnabled false, observer BCC hello@propflowai.co, one mailbox attached (leasing@westernslopepm.com, connected), one calendar attached. No property carries messagingDelivery or pmsMessagingSync. Every held draft from 2026-09-16/18 was held by the company live switch, and the Zillow relay rule suppressed the rest.

3. What is missing for “syndicated guest cards only, reply through the guest card”

flowchart LR
  A[Syndicated card\narrives on feed] --> B{"MISSING 1\nis it syndicated?\nfeed row has no created-by"}
  B -- yes --> C{"MISSING 2\nnew-card trigger\nhook declared, never called"}
  C --> D[Draft first reply\nreply engine exists]
  D --> E{"MISSING 3\nmessagingDelivery = pms\nat each WS home\n(and a Clara seat in their AppFolio)"}
  E --> P[Reply written into\nthe guest card]
  P --> R[Reader picks up\nrenter's answer\nMISSING 4: pmsMessagingSync\nnot enabled at WS]
  R --> D
  style B fill:#fee,stroke:#c33
  style C fill:#fee,stroke:#c33
  style E fill:#fee,stroke:#c33
#GapEvidenceStatus
1Telling a syndicated card from a hand-typed one on the feed. The feed row carries Source but not who created the card. AppFolio’s audit log has it (“Received” vs “Created”) but the feed does not read it.types.ts:709-747; lead-shape audit above (66% of cards hand-typed, same Source labels)Not built. A per-company “where leads come from” setting and a seam are in flight (session builders), design not yet reconciled with this brief.
2A new card on the feed starting a first reply. The hook exists and is intentionally a no-op.guest-card.ts:360, :1773-1777Not built. The assigned-to-Clara chain (#9419, #9422, #9425, PR 3) is the closest thing and is dark.
3Writing the reply into Western Slope’s guest cards. The door exists but needs messagingDelivery: 'pms' per home and a Clara user seat in their AppFolio. Our access to westernslopepm.appfolio.com is read-only today.messaging-delivery.ts:37; prod scan: only appfolio-45 setBuilt, not enabled. Enabling is Fede’s call and needs write access.
4Reading the renter’s answers back out of the card at Western Slope.pmsMessagingSync enabled only at WillowsBuilt, not enabled. Same access question as 3.
5Draft quality, independent of transport: day-class asks (“weekends”) got no slots; tour claims without a booking; duplicate person on the same Zillow relay address.held drafts 09-16/18; call-integrity-directive.ts voice-only#9475 open (prompt rules, Camellia-safe, auto-merge armed); grader check and duplicate-person fix in flight.

What “already built” is true and what is not. True: the reply engine, the guest-card delivery door, and the card reader all exist and run at Willows. Not true: any path where a syndicated card by itself makes Clara reply. Even at Willows a reply starts only from something inbound: an email, or a renter’s message inside a card that the reader picks up (writers/guest-card-message.ts:6: only a new prospect reply wakes Clara). A new card with no message starts nothing, and AppFolio’s notification email does not reach Western Slope’s mailbox.

4. Options (recommendation first)

  1. Recommended: wire the feed to the reply engine. Build gap 2 as the seam the feed calls when a new card lands, gated by gap 1 (syndicated only) and the existing company live switch. Reuse the reply engine as-is. Delivery door stays “direct email” until 3 and 4 are enabled. Nothing new to invent; one small PR plus the in-flight setting.
  2. Turn on AppFolio’s notification email at Western Slope (their toggle, sent to leasing@) and go live on the built email path. Fastest, but it depends on a client-side toggle and on email parsing we said we would retire.
  3. Full guest-card loop now: options 1 plus gaps 3 and 4 at Western Slope. Needs a Clara seat and write access in their AppFolio. Right end state, not a today change.

5. Design: reply to syndicated cards from the feed (approved by Fede 2026-09-18)

Brief standalone version: /a/syndicated-guest-card-replies

Decision. Fede's ruling, 2026-09-18 evening: Clara replies only to guest cards whose oldest activity-log entry is “Guest Card Received” by System. No setting, no value, no transition path. Staff-typed cards are parked. Once the client stops typing cards, every card passes on its own.

Fede’s ruling today: replies go only to guest cards a listing site created, never a staff-typed card. The AppFolio “New Lead” email is ruled out as the trigger (Western Slope gets none). Guessing “syndicated” from the Source label is also ruled out: 772 staff-created cards and 381 System-received cards carry the same labels (Zillow, Website). The one exact signal is the card’s first activity-log entry: “Guest Card Received” by System (listing site) versus “Guest Card Created” by a staff name. None of the four guest-card reports, and no Data API columns subset of them, carries a created-by column, so this has to come off the card page itself.

flowchart TD
  A[guest_cards report\nevery 1 min] --> B{new card id\nnot seen before?}
  B -- no --> Z[skip]
  B -- yes --> C[feed calls the hosted robot\nservice's read endpoint\nread-only, logged-in session, 1-2 sec]
  C --> D[read first activity-log entry]
  D -- "System" --> E[createdBy: system]
  D -- "staff name" --> F[createdBy: staff]
  D -- "unreadable" --> U[origin_unknown\nparked, never replied to]
  E --> G[onFreshProspectMinted\ntoday: no-op, ADR-0094]
  F --> N[no reply]
  G --> H{Organization.claraLive?}
  H -- no --> N
  H -- yes --> I[reply engine\ndelivery door: direct email today]
  style F fill:#eee,stroke:#888
  style U fill:#ffe9c7,stroke:#b45309
  style N fill:#eee,stroke:#888

The feed calls the hosted robot service's read endpoint, a plain HTTP read on its already-logged-in session, about 1 to 2 seconds per call; a cold re-login happens rarely and takes up to 2 minutes once. Cost at Western Slope: 1 to 3 reads a day (new cards only). Idempotency key: card uuid. Failure mode: if the card can’t be read, the card is parked origin_unknown and never replied to—never guessed.

PieceState
Feed job (guest_cards, every 1 min)Built — handler.ts
Robot service read endpointBuilt, wired to the feed, carries a creator field
createdBy field on ProspectInquiryBuilt, stamped on every new card
Reply seam onFreshProspectMintedLive: System-only rule plus the company live switch
First-touch composerFinished, un-paused 2026-09-18 evening
Company live switchBuilt
Replay grader, 47 syndicated cardsRuns through the real path; graded result published below

Rollout. Ship dark: default off, a company setting. Replay the 47 syndicated cards from the dump through the mirror org, publish the graded result on this page, then Fede flips it on.

Three decisions, answered:

QuestionAnswer
Robot reads each new card at Western Slope?Yes, read-only, via the hosted robot service's read endpoint.
Un-pause the first-touch composer?Yes, un-paused 2026-09-18 evening.
Zillow Rental Network System-received cards?Excluded.

Tonight’s build:

Replay of the 48 syndicated guest cards, real feed path (2026-09-18, updated: compose before hold)

Update to tonight's replay: the composer PR (#9425 stack) had a bug where the org-not-live hold fired at PREP time, before any reply existed — so the first pass of this replay produced 47 held intents and zero drafts to grade. That is fixed (a small PR stacked on #9425): the hold check moved to the real send door, exactly where the inbound-email lane already does it, so the reply is composed FIRST and only then held. This replay was re-run against the sandbox mirror (org_ws_mirror_test, never the real client org) with the fix in place: all 48 syndicated cards from the last 30 days now produce a fully composed reply, held at the same org_not_live door every real property gets until Fede turns it on. Nothing sent. Every row below is Clara's actual composed draft — this is what Fede is inspecting before go-live.

CheckResult
Syndicated cards in the 30-day window48 of 48 fed to the writer
Held drafts produced (composed reply body, intent + conversation, no send)48 of 48
Cards that failed to sync or errored0
Sends of any kind0 (mirror org is not live; production would hold the same way until Fede turns it on)
Draft graded PASS (names the home, no unkeepable promise, no PII leak)29 of 48
Draft graded FAIL19 of 48 — mostly a follow-up reply that doesn't restate the home's name (a real defect for the team to look at, not a pipeline failure)

The gap the first pass surfaced is closed: every held intent now carries a real composed body, not just an empty intent + conversation shell. The 19 grading failures are a genuine content-quality signal (mostly Clara's follow-up replies not re-naming the home on a repeat inquiry) for the team to address before go-live — not a sign the pipeline is broken.

HomeInquiry (excerpt)Clara's draft (held, not sent)GradeReason
367 Ember LaneShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
367 Ember Lane
INACTIVE
?
Inactive
Created 19 days ago
367 Ember Lane, Grand Junction, CO 81501
Pr
Just want to check in, Troy — did you want to go ahead and take a look at the Ember Lane duplex, or would it help more if I flagged your original 1-bed/$900 search with the team to see what else might fit? Either way, I've got Saturday tour slots open if you'd like one.PASSnames the home area, no promises, no PII leak
Ember Estates HZ - 361 Ember LnShowings (1)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Ember Estates HZ
TENANT
?
Inactive
Created 11 days ago
--
08/27/26
Last Interest
--
Desired Move I
Thanks for letting us know you'd like to move forward — and good news, an 18-month lease fits right in with the longer-lease terms we're currently offering here (14 to 18 months).

I don't have an application link on file for Ember Estates HZ, so I've passed your request along to the leasing team and they'll get that over to you directly.

Also, I want to be upfront — I can't confirm current unit availability from our records right now, so I've flagged that too. If you'd like, I'm happy to help set up a tour once we've got that sorted, or if you have a specific unit in mind, let me know and I'll make sure it's noted.
PASSnames the home area, no promises, no PII leak
Northridge ApartmentsShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Northridge Apartments
INACTIVE
?
Inactive
Created 16 days ago
565 Redcliff Cir, Ridgway, CO 81432
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (Northridge Apartments)
Northridge ApartmentsShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Northridge Apartments
INACTIVE
?
Inactive
Created 16 days ago
565 Redcliff Cir, Ridgway, CO 81432
Hi there! Thanks for your interest in 565 Redcliff Cir, unit 585-201, at Northridge Apartments.

I'm not able to pull up confirmed availability for that specific unit right now, so I've gotten your question over to the property team and they'll follow up with you directly on it.

In the meantime, I noticed your original move-in date was 09/12/26, which has already passed — is that still your target, or has your timeline shifted? Also happy to get a tour on the books whenever you're ready — I've got plenty of openings tomorrow (Saturday) between 9 AM and 4:30 PM if you'd like to come take a look at the community.
PASSnames the home area, no promises, no PII leak
2978 Krista StreetShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
2978 Krista Street
INACTIVE
?
Inactive
Created 17 days ago
2978 Krista Street, Grand Junction, CO
Thanks for reaching out about 2978 Krista Street! I'd love to help get you a tour set up.

I don't have current pricing/availability details pulled up for this one right now, but I'll make sure our team confirms that for you. In the meantime, could you give me one specific day and time that works best for a tour? I've got plenty of openings tomorrow (Saturday) between 9 AM and 4:30 PM if that helps — just let me know a time and I'll lock it in.

Also, what's your name so I can get the visit set up under the right record?
PASSnames the home area, no promises, no PII leak
Northridge ApartmentsShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Northridge Apartments
INACTIVE
?
Inactive
Created 15 days ago
565 Redcliff Cir, Ridgway, CO 81432
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (Northridge Apartments)
2978 Krista StreetShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
2978 Krista Street
INACTIVE
?
Inactive
Created 15 days ago
2978 Krista Street, Grand Junction, CO
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (2978 Krista Street)
367 Ember LaneShowings (1)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
367 Ember Lane
INACTIVE
?
Inactive
Created 15 days ago
367 Ember Lane, Grand Junction, CO 81501
Pr
Hi! Thanks for your interest in the home at 367 Ember Lane. It's a brand-new 3-bedroom, 2-bath duplex, about 1,317 sq ft, listed at $2,750/mo, and it's available now.

Right now there's a grand-opening special running: 6 weeks free rent, plus water, sewer, trash, and gas included for your first year (you'd just cover electricity and internet).

Would you like to come take a look? I've got openings tomorrow (Saturday) between 9 AM and 4:30 PM — let me know a time that works and I'll get you set up. Also, what name should I put this under, and roughly when are you hoping to move in?
PASSnames the home area, no promises, no PII leak
2978 Krista StreetShowings (1)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
2978 Krista Street
INACTIVE
?
Inactive
Created 15 days ago
2978 Krista Street, Grand Junction, CO
¡Hola! Con gusto le ayudo a programar un recorrido en 2978 Krista Street.

Ahora mismo no tengo confirmada la disponibilidad exacta de unidades en el sistema, así que en cuanto tengamos una cita agendada, nuestro equipo puede confirmarle los detalles de la unidad de 3 recámaras que le interesa.

Para mañana, sábado 19 de septiembre, tengo horarios disponibles desde las 9:00 AM hasta las 4:30 PM. ¿Le gustaría alguno de esos horarios, o prefiere otro día? También, ¿me podría decir su nombre para dejar todo registrado?
PASSnames the home area, no promises, no PII leak
372 Ember LaneShowings (1)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
372 Ember Lane
INACTIVE
?
Inactive
Created 15 days ago
372 Ember Lane, Grand Junction, CO 81501
08
Hi! Thanks for reaching out about 372 Ember Lane — happy to fill you in.

It's a brand-new 3-bedroom, 2-bath duplex home, about 1,289 sq ft, with rent at $2,825/mo (security deposit also $2,825). It's got an open-concept layout, quartz counters, stainless steel appliances, an attached garage, and a private fenced backyard. Both cats and dogs are welcome there.

Right now there's a Grand Opening special running — 6 weeks free rent, plus water, sewer, trash, and gas included for your first year (you'd just cover electricity and internet). It's a short walk to Las Colonias Park and close to downtown Grand Junction, Colorado Mesa University, and the Riverfront Trail.

The home is available now. Want to come see it? I've got openings tomorrow (Saturday) anywhere from 9 AM to 4:30 PM — just let me know what time works best for you.

By the way, who am I speaking with?
PASSnames the home area, no promises, no PII leak
367 Ember LaneShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
367 Ember Lane
INACTIVE
?
Inactive
Created 15 days ago
367 Ember Lane, Grand Junction, CO 81501
Pr
Hi Mathias,

Thanks for the interest in 367 Ember Lane! One quick heads-up — this particular home is actually a brand-new 3-bedroom/2-bath duplex at $2,750/mo (1,317 sq ft), which is a bit different from the 1-bedroom around $1,200/mo you'd originally had in mind. We are running a grand opening special right now though — 6 weeks free rent, plus water, sewer, trash, and gas included for your first year (you'd just be responsible for electricity and internet), which brings the effective cost down some.

If a 3-bedroom at this price could still work for you — maybe splitting it with roommates, or just more space than planned — I'd be glad to get you in for a look. I've got plenty of openings tomorrow, Saturday September 19th, between 9 AM and 4:30 PM, and it's move-in ready now.

If you're really set on something closer to a 1-bedroom at $1,200, just let me know and I can see what else might be a better fit for you.
PASSnames the home area, no promises, no PII leak
372 Ember LaneShowings (1)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
372 Ember Lane
INACTIVE
?
Inactive
Created 14 days ago
372 Ember Lane, Grand Junction, CO 81501
08
Hi Elizabeth, welcome to Grand Junction — that's exciting that you and your son just made the move from Texas!

Yes, 372 Ember Lane is available now — it's a brand-new 3-bedroom, 2-bath duplex home at 1,289 sq ft, renting for $2,825/mo. Right now there's a Grand Opening Special running: 6 weeks free rent, plus water, sewer, trash, and gas included for your first year (you'd just cover electricity and internet). It sounds like a great option while you two get settled and learn the area.

I'd love to get you in to see it. What day and time works best for you for a tour?

Just let me know your preferred day and time, and I'll get that tour set up for you!
PASSnames the home area, no promises, no PII leak
372 Ember LaneShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
372 Ember Lane
INACTIVE
?
Inactive
Created 14 days ago
372 Ember Lane, Grand Junction, CO 81501
08
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (372 Ember Lane)
2978 Krista StreetShowings (1)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
2978 Krista Street
INACTIVE
?
Inactive
Created 14 days ago
2978 Krista Street, Grand Junction, CO
Thanks for reaching out about 2978 Krista Street — I'd love to get you a tour of the 3BR/2.5BA home!

Could you let me know a specific day and time that works best for you? I've got openings tomorrow (Saturday) from 9 AM to 4:30 PM if that helps, or just let me know what day/time you'd prefer and I'll find something that fits.
PASSnames the home area, no promises, no PII leak
460 32 1/8 RoadShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
460 32 1/8 Road
INACTIVE
?
Inactive
Created 13 days ago
460 32 1/8 Road, Clifton, CO 81520
08/25/2
Hi there! Thanks for your interest in the townhome at 460 32 1/8 Road in Clifton.

Here's what I've got on it: it's a 2 bed, 1.5 bath townhome, about 1,728 sq ft, renting at $1,300/mo with a $1,350 deposit. It's got an open living space, a good-sized kitchen, a fenced backyard backing to a quiet pasture, and washer/dryer included. Cats and dogs are both welcome. It's listed as available now.

Are you still looking to move in around early September, or has your timeline shifted? And would you like to come take a look? I've got plenty of openings tomorrow (Saturday) between 9 AM and 4:30 PM — just let me know what time works for you.
PASSnames the home area, no promises, no PII leak
Northridge Apartments - 585-201Showings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Northridge Apartments
INACTIVE
?
Inactive
Created 13 days ago
565 Redcliff Cir, Ridgway, CO 81432
Thanks for reaching back out! I'd love to help get a tour set up for the one-bedroom at 585-201.

I don't have current confirmed availability details on that specific unit pulled up on my end just yet, so I'll have that verified before your visit. In the meantime, let's get a time locked in — I've got openings tomorrow (Saturday) anywhere between 9:00 AM and 4:30 PM. What time works best for you?

Also, could I get your name for the tour booking?
PASSnames the home area, no promises, no PII leak
367 Ember LaneShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
367 Ember Lane
INACTIVE
?
Inactive
Created 13 days ago
367 Ember Lane, Grand Junction, CO 81501
08
Hi! Great to hear you'd like to move forward with 367 Ember Lane. I don't have the application link on file just yet, so I've looped in the property team to get that over to you.

In the meantime, here's a quick recap on the home: it's a 3-bed/2-bath, 1,317 sq ft, $2,750/mo with a $2,750 deposit. Right now there's a grand opening special — 6 weeks free rent, plus water, sewer, trash, and gas included for your first year (you'd just cover electricity and internet). It also comes with an attached garage and a private fenced backyard.

On the pet front, both cats and dogs are welcome — you mentioned "a pet" but didn't specify the type, so let me know what kind you have and I can confirm anything specific. I don't have details on central AC handy, but I'll flag that with the team too.

If you'd like to see the place in person before applying, I've got tour times open tomorrow (Saturday) between 9 AM and 4:30 PM — just let me know what time works, or feel free to wait for the application from the team.
PASSnames the home area, no promises, no PII leak
Northridge ApartmentsShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Northridge Apartments
INACTIVE
?
Inactive
Created 14 days ago
565 Redcliff Cir, Ridgway, CO 81432
Hi there! I wanted to follow up on your interest in Northridge Apartments — I see you'd inquired about our one-bedroom (unit 585-201) with a move-in around the end of August.

I don't have current confirmed availability pulled up on my end right this moment, but I'd love to get you scheduled to come take a look and get you the latest details in person. I've got tour openings tomorrow, Saturday September 19th, from 9 AM to 4:30 PM — plenty of slots throughout the day. Would any time in there work for you, or is there a different day you'd prefer?

Also, are you still looking to move in around that same late-August/early-September timeframe, or has your timeline shifted?
PASSnames the home area, no promises, no PII leak
2978 Krista StreetShowings (1)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
2978 Krista Street
INACTIVE
?
Inactive
Created 13 days ago
2978 Krista Street, Grand Junction, CO
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (2978 Krista Street)
372 Ember LaneShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
372 Ember Lane
INACTIVE
?
Inactive
Created 12 days ago
372 Ember Lane, Grand Junction, CO 81501
08
Thanks so much for your interest in 372 Ember Lane!

Here's what's on file for these brand-new duplex homes: 3 bedroom / 2 bath, 1,289 sq ft, with market rent at $2,825/mo (deposit $2,825). Each home comes with an attached garage, a private fenced backyard, and designer kitchen finishes. Right now there's a Grand Opening special running — 6 weeks free rent, plus water, sewer, trash, and gas included for your first year (you'd just cover electricity and internet).

I want to make sure I give you accurate, up-to-the-minute numbers on exactly which homes are ready to move into right now, so I've looped in the leasing team to confirm current availability for you — they'll follow up directly.

In the meantime, would you like to get a tour on the calendar? I've got plenty of openings tomorrow (Saturday) between 9 AM and 4:30 PM — just let me know a time that works and I'll get you booked.
PASSnames the home area, no promises, no PII leak
Northridge ApartmentsShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Northridge Apartments
INACTIVE
?
Inactive
Created 11 days ago
565 Redcliff Cir, Ridgway, CO 81432
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (Northridge Apartments)
Northridge ApartmentsShowings (1)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Northridge Apartments
INACTIVE
?
Inactive
Created 11 days ago
565 Redcliff Cir, Ridgway, CO 81432
Hi again! I saw you'd looked at the one-bedroom here at Northridge Apartments (565 Redcliff Cir) — just wanted to check back in and see if you're still on the hunt for a place.

I'm not able to pull a fully confirmed live availability count right now, so I don't want to give you a wrong number — but I can get our team to double-check and confirm current 1BR options for you.

In the meantime, if you'd like to come take a look in person, I've got plenty of openings tomorrow (Saturday) between 9 AM and 4:30 PM — just let me know what time works best and I'll get you set up.
PASSnames the home area, no promises, no PII leak
374 Ember LaneShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
372 Ember Lane
?
Active
Created 11 days ago
372 Ember Lane, Grand Junction, CO 81501
08/27/26
Last
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (374 Ember Lane)
2978 Krista StreetShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
2978 Krista Street
INACTIVE
?
Inactive
Created 10 days ago
2978 Krista Street, Grand Junction, CO
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (2978 Krista Street)
566 Placer StreetShowings (1)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
566 Placer Street
INACTIVE
?
Inactive
Created 5 days ago
566 Placer Street, Grand Junction, CO 815
Hi Tiffany! Thanks for your interest in 2978 Krista Street — that's a 3BR/2.5BA home, about 1,332 sq ft, listed around $1,950/mo.

I'd love to get you a tour set up for that one. Can you give me a specific day and time that works best for you? Once I have that, I'll get it booked.
PASSnames the home area, no promises, no PII leak
Northridge ApartmentsShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Northridge Apartments
APPLICATION COMPLETE
?
Application Completed
Created 9 days ago
565 Redcliff
Hi there! I can see you've got a completed application on file for the one-bedroom at 585-201 here at Northridge Apartments, with a move-in date around September 1st. Congrats on getting that squared away!

Is there something specific I can help you with — next steps on the application, questions about the unit, or anything else?
PASSnames the home area, no promises, no PII leak
239 S Elm StreetShowings (1)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Showing Scheduled 09/09/2026 @8:45 AM MDT for 239 S Elm Street - 2. View
Select inquiry-list-item
239 S Elm Street
SHOWING
Hi there! I can see you've got a showing on the books for Unit 2 here at 239 S Elm Street — a 2 bed/1 bath at $1,550/mo, with a September 1st move-in noted. Is there anything you'd like to update, or any questions I can help with in the meantime?PASSnames the home area, no promises, no PII leak
2978 Krista StreetShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
2978 Krista Street
INACTIVE
?
Inactive
Created 8 days ago
2978 Krista Street, Grand Junction, CO 8
Thanks for reaching out about the home at 2978 Krista Street! I'd love to get your tour set up.

Could you let me know a specific day and time that works best for you? Just as an example, I've got openings tomorrow (Saturday) from 9 AM to 4:30 PM if that helps.
PASSnames the home area, no promises, no PII leak
Northridge ApartmentsShowings (1)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Showing Scheduled 09/09/2026 @6:00 PM MDT for Northridge Apartments - 565-102. View
Select inquiry-list-item
Northridge Apa
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (Northridge Apartments)
2863 Florida StreetShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Pomona Park Townhomes
?
Active
Created 8 days ago
624 Eisenhauer Street, Grand Junction, CO 81505
Hi Kimberly, thanks so much for reaching out — and congrats on the quick house sale, that's exciting!

Unit 300 at 624 Eisenhauer (1,528 sq ft, 3BR/2.5BA, listed at $2,495/mo) looks like it could be a great fit for you. I want to make sure I give you accurate, up-to-date info on availability for an October 1st move-in and on the pet policy for your two dogs and cat, so I've passed those details along to the leasing team to confirm directly with you.

In the meantime, I'd love to get a tour on the books so you can see the place. I've got openings tomorrow (Saturday) anywhere from 9 AM to 4:30 PM — would a morning or afternoon time work better for you?
FAILdoes not reference the home (2863 Florida Street)
239 S Elm StreetShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
239 S Elm Street
INACTIVE
?
Inactive
Created 9 days ago
239 S Elm Street, Fruita, CO 81521
08/30/2
Thanks for reaching out about Unit 2 at 239 S Elm Street! I don't have confirmed availability details for that unit pulled up on my end right now, so I've passed your request along to the property team and they'll follow up with you on the specifics, including rent and whether it'll be ready for your October 1st move-in.

In the meantime, if you'd like to get a tour on the calendar, I've got plenty of openings on Thursday, October 1st between 9 AM and 4:30 PM — just let me know a time that works and I'll get you set up. And what name should I put this under?
PASSnames the home area, no promises, no PII leak
Ember Estates HZShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Ember Estates HZ
INACTIVE
?
Inactive
Created 7 days ago
2858 C 1/2 Road, Grand Junction, CO 81501
Hi Paul, thanks for reaching out about Ember Estates HZ! I don't have current unit availability pulled up on my end right now, but I want to get you on the calendar for a viewing.

Could you let me know one specific date and time that works best for you? Once I have that, I'll get it booked.
PASSnames the home area, no promises, no PII leak
Pomona Park Townhomes - 300Showings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Pomona Park Townhomes
INACTIVE
?
Inactive
Created 7 days ago
624 Eisenhauer Street, Grand Junction
Hi Arianna, thanks for your continued interest! Just to flag — Pomona Park Townhomes is actually a 3-bedroom, 2.5-bath townhome community (1,528 sq ft, $2,595/mo), so it's a bit different from the 2-bedroom you were originally looking at. Good news on the dog front though — we're pet-friendly for both cats and dogs here.

I wasn't able to pull a live confirmation on current unit availability, so I've gotten the team looped in to verify that for you.

In the meantime, since your original September 1st move-in has passed, when are you now hoping to move? And if you'd like to come see the place, I've got plenty of openings tomorrow (Saturday) between 9 AM and 4:30 PM — just let me know a time that works.
PASSnames the home area, no promises, no PII leak
Ember Estates HZShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Ember Estates HZ
INACTIVE
?
Inactive
Created 7 days ago
2858 C 1/2 Road, Grand Junction, CO 81501
Hi! So glad you're excited about Ember Estates HZ — thank you for reaching out.

I don't have an online application link on file for this property, so I've passed your info along to the team so they can help you with your application directly.

In the meantime, let's lock in your viewing — what specific date and time works best for you?
PASSnames the home area, no promises, no PII leak
Northridge Apartments - 585-201Showings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Northridge Apartments
INACTIVE
?
Inactive
Created 6 days ago
565 Redcliff Cir, Ridgway, CO 81432
0
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (Northridge Apartments - 585-201)
460 32 1/8 Road - 3Showings (1)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
460 32 1/8 Road
APPLICATION COMPLETE
?
Application Completed
Created 6 days ago
460 32 1/8 Road, C
Just let me know what date and time work best for you, and I'll get the tour set up right away!FAILdoes not reference the home (460 32 1/8 Road - 3)
239 S Elm StreetShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
239 S Elm Street
APPLICATION COMPLETE
?
Application Completed
Created 5 days ago
239 S Elm Street,
Hi there! I can see you've got a completed application on file for Unit 2 here at 239 S Elm Street — the 2BR/1BA at $1,550/mo, with a move-in around 09/08/26.

What can I help you with today — are you looking to schedule a tour, or do you have a question about your application?
PASSnames the home area, no promises, no PII leak
Northridge ApartmentsShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Northridge Apartments
?
Active
Created 4 days ago
565 Redcliff Cir, Ridgway, CO 81432
09/03/26
Las
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (Northridge Apartments)
Ember Estates HZShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Ember Estates HZ
INACTIVE
?
Inactive
Created 5 days ago
2858 C 1/2 Road, Grand Junction, CO 81501
Hi Sylvia! Thanks so much for your interest in Ember Estates HZ — I'd love to get you in for a tour.

Rather than accepting things through Zillow, the easiest way is to just pick a day and time directly with me here. I've got openings tomorrow, Saturday September 19th, from 9 AM to 4:30 PM — morning or afternoon both work. What day and time would you like to come by?
PASSnames the home area, no promises, no PII leak
Ember Estates HZShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Ember Estates HZ
?
Active
Created 5 days ago
2858 C 1/2 Road, Grand Junction, CO 81501
09/03/26
La
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (Ember Estates HZ)
Northridge Apartments - 575-204Showings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Northridge Apartments
?
Active
Created 4 days ago
565 Redcliff Cir, Ridgway, CO 81432
09/03/26
Las
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (Northridge Apartments - 575-204)
2978 Krista StreetShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
2978 Krista Street
NEW
?
Active
Created 4 days ago
2978 Krista Street, Grand Junction, CO 81504
09
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (2978 Krista Street)
Northridge Apartments - 585-201Showings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Northridge Apartments
NEW
?
Active
Created 2 days ago
565 Redcliff Cir, Ridgway, CO 81432
09/05/26
Hi Sarah! Thanks for reaching out about unit 585-201.

I've got your interest noted, and I can see tour openings starting tomorrow, Saturday September 19th, with times from 9 AM through 4:30 PM. What day and time would work best for you?
PASSnames the home area, no promises, no PII leak
Northridge ApartmentsShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Northridge Apartments
NEW
?
Active
Created 3 days ago
565 Redcliff Cir, Ridgway, CO 81432
09/05/26
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (Northridge Apartments)
Ember Estates HZShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Ember Estates HZ
NEW
?
Active
Created 1 day ago
2858 C 1/2 Road, Grand Junction, CO 81501
09/06/26
I've noted that for the property team.

I don't have confirmation anyone's picked it up yet, so I can't give you a timeframe just yet.
FAILdoes not reference the home (Ember Estates HZ)
460 32 1/8 RoadShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
460 32 1/8 Road
NEW
?
Active
Created about 23 hours ago
460 32 1/8 Road, Clifton, CO 81520
09/06/2
Hi Samantha! Thanks for reaching out about the home at 460 32 1/8 Road.

Here's what's on file for it: it's a 2 bed, 1.5 bath townhome, about 1,728 sq ft, renting for $1,300/mo with a $1,350 deposit, and it's available now. It's got an open living layout with a nice nook, good-sized kitchen, a fenced backyard backing up to a quiet pasture, a newer roof, and washer/dryer included. Both cats and dogs are welcome there too.

I noted you're hoping to move in around October 18th — since the home is actually available now, we could get you moved in sooner if that works better, or stick with your target date.

Would you like to come take a look? Let me know a day and time that works for you and I'll get you set up.
PASSnames the home area, no promises, no PII leak
2978 Krista StreetShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
2978 Krista Street
NEW
?
Active
Created about 3 hours ago
2978 Krista Street, Grand Junction, CO 8
All set — just let me know a date and time that works for you and I'll lock in the tour!FAILdoes not reference the home (2978 Krista Street)
Ember Estates HZShowings (0)
Attachments (0)
Activity
Inquiries
Show inactive inquiries
Bulk Actions
New Inquiry
Select inquiry-list-item
Ember Estates HZ
NEW
?
Active
Created about 10 hours ago
2858 C 1/2 Road, Grand Junction, CO 81501
Hi Grady! Thanks for reaching out about Ember Estates HZ — I'd love to get a tour on the books for you.

Could you give me a specific day and time that works best? Once I have that, I'll get it locked in.
PASSnames the home area, no promises, no PII leak

Lead shape audit (2026-09-18)

Read-only audit of 1,172 AppFolio guest cards, 5,517 leasing-inbox emails, and 47 live “New Lead” notices, to answer: how much of Western Slope’s lead volume is actually syndicated through AppFolio, versus staff hand-typing a Zillow lead into a guest card. AppFolio’s own audit log distinguishes the two: “Guest Card Received” means AppFolio created the card itself (real syndication); “Guest Card Created” by a named staffer means a human typed it in by hand, almost always retyping a Zillow lead.

1. Listing inventory. 239 total units, 54 available, across 19 addresses. Of those, 10 show real syndication signal, 2 (Lincoln Apartments, Flats on Elm) are 100% hand-copied with zero syndicated leads, and 5 show no guest-card activity in 90 days despite being marked available.

PropertyUnits availableSyndicated?Cards, last 30dCards, last 90d
Ember Estates HZ26Yes — 8 of 10 (90d) auto-received910
Northridge Apartments8Yes — 25 of 28 auto-received1528
Pomona Park Townhomes3Partial — 3 of 26 auto-received326
460 32 1/8 Road2Partial — 15 of 31 auto-received831
486 32 1/8 Road1Partial — 2 of 12 auto-received512
239 S Elm Street1Partial — 4 of 9 auto-received59
566 Placer Street1Partial — 2 of 7 auto-received47
2980 Emerald Circle1Partial — 1 of 6 auto-received26
2863 Florida Street1Partial — 4 of 6 auto-received16
367 Ember Lane1Partial — 13 of 18 auto-received718
Lincoln Apartments1No — all 19 cards hand-typed1119
Flats on Elm1No — all 9 cards hand-typed49
2841 Morningside Court1No — 4 cards, all hand-typed04
2978 Emerald Circle1No — 2 cards, both hand-typed12
2206 N 22nd Street, 2982 Emerald Circle, 3138 Perkins Drive, 630 S 7th Street, 361 Ember Lane1 eachUnknown — zero cards in 90 days00

2. Lead channels, last 90 days. Of 282 guest cards, 42% (118) were auto-created by a real syndicated feed and 56% (159) were typed in by hand; 12-month totals show hand-typing has been the majority path most of the year (772 of 1,153 clean-origin cards). “Zillow” (non-network) as a source label is essentially 100% hand re-entry (328 of 329); “Zillow Rental Network” is 79% hand-typed (204 of 258). Roughly 45% of the 2,036 Zillow-domain emails into leasing@ over 4 months are real lead threads, the rest are Zillow’s own digests. At least 10 confirmed cases of staff replying to a prospect directly inside a Zillow thread instead of AppFolio, so that conversation may never fully land in AppFolio.

MonthAuto-created (real syndication)Hand-typed by staffNo clear origin
2026-0636662
2026-0727551
2026-0866742
2026-09 (partial)14181
90-day total118 (42%)159 (56%)5

3. MVP scope math. Scoping Clara to “Guest Card Received” (auto-created) cards only, regardless of source label, would show her about 42% of last-90-day volume (118 of 282 cards) and naturally excludes every hand-typed Zillow lead, referral, and shared-application-link lead. “Website” leads are also mixed — 61% (57 of 94) auto-created, 38% hand-typed — and should be scoped the same way: in only when AppFolio auto-created the card.

4. Data-quality notes. No true duplicates were countable (Zillow relay mail carries scrubbed address/name tokens with no join key back to the guest card). 5 of 282 cards (90-day) have no clear origin event. 63 of 1,171 cards (5.4%) show a repeat inquiry on the same card. Only 7 of 1,172 cards (0.6%) show a discrete assignment event — the earlier verbal count of “13 of 1,147 assigned” does not reproduce from structured events and should be re-confirmed before reuse. The occupancy report sums to 239 total units / 54 available, not the “108 across 478” figure previously cited — flagged, not reconciled. 5 “available” addresses show zero guest-card activity in 90 days (2206 N 22nd St, 2982 Emerald Circle, 3138 Perkins Drive, 630 S 7th St, 361 Ember Lane) — likely stale vacancy flags or genuinely unmarketed.

5. Top 5 recommendations for go-live.

  1. Ask the client to syndicate Lincoln Apartments and Flats on Elm — both have a live vacancy today and 100% hand-copied leads; Clara would see zero leads for either under the MVP rule.
  2. Ask them to confirm the 5 “available” addresses with zero lead activity — fix stale vacancy status in AppFolio or get them listed somewhere.
  3. Stop hand-copying “Zillow” (non-network) leads into AppFolio — that source is essentially 100% manual re-entry, invisible to Clara until the listing is properly connected through AppFolio’s own feed.
  4. Get the team to stop replying to prospects inside Zillow’s own message thread — at least 10 confirmed cases; those conversations (and sometimes the lead itself) never fully land in AppFolio.
  5. Decide how “Website” leads should count — recommend treating them the same as everything else: in-scope only when AppFolio auto-created the card, out of scope when a staffer typed it in.
Overall
 
Shipped
Merged · untested
In flight
Open
Waiting on you
Groups — click to filter
Status

Where everything sits (2026-09-14 night)

Western Slope’s people have tried to connect a Microsoft calendar or mailbox four times since Sep 11. None of it is their doing, and none of it needs anything from them. This section says what actually broke, how we know, and which fix makes the next attempt work on its own.

The headline: since 10:32Z this morning, production could not record a Microsoft connection at all. A change to how connection records are filed added a database operation the production account is not permitted to perform, so the write that records a connection — or a pending approval, or even a failure — throws instead of saving. Nobody noticed for thirteen hours because nobody at a customer completed a connect in that window. Two of the four attempts (Jason at 22:24Z, Kat at 22:26Z) fell inside it, and neither left a trace of any kind. That one is fixed and deployed as of 00:42Z tonight.

The second theme is that three separate things were each blamed on the customer’s Microsoft setup and none of them were. Jay’s calendar was never revoked — we were asking Microsoft to renew it with permissions he had never been asked for. The back-office page that read “Not connected” for him was looking him up by the wrong id. And the company mailbox has said “waiting for a Microsoft admin” since Sep 11 even though nothing in the product has ever asked their admin anything.

ItemRoot causeEvidenceFixStateWhat makes their next attempt just work
Production cannot record a Microsoft connection A change to how connection records are filed, merged 2026-09-14 10:32Z, added a conditional database check the production account has no permission for. Every write that records a connect, a pending approval, a failure or a reconnect now throws. Sentry 7732381599, dynamodb:ConditionCheckItem denied on propflow-prod; one occurrence, 2026-09-14 23:59:21Z, on our own Microsoft test tenant. Introduced by #8406, commit 1d4ead6dae. Last connection successfully recorded anywhere: 2026-09-11 22:46:37Z. #8541 Merged 2026-09-15 00:42Z, not yet proven in production Already done, as of 00:42Z tonight. A consent that comes back from Microsoft is saved again instead of thrown away. Every connect between 10:32Z and that deploy was lost.
Kat’s calendar connect went nowhere She was shown the calendar step and sent to Microsoft; Microsoft never redirected back to us. Because nothing logs an attempt, we cannot tell from our side whether the window was closed, blocked, or stopped at Microsoft. Her account carries the calendar-welcome stamp 2026-09-14 22:26:07.172Z and no calendar record of any kind, live or historical. No error was reported for her account in the 90 minutes around it, and the 23:59Z failure above is the only occurrence of that failure ever — so her browser never reached our callback. #8541 merged; #8542 open Half done #8541 already makes a returning consent save. #8542 adds the attempt log, so one that dies at Microsoft is visible instead of silent.
Jason never got a calendar connected Same shape as Kat: offered the step, no attempt recorded anywhere. He finished the rest of onboarding normally. Signed in 22:23:31Z, set up his second factor 22:24:07Z, finished the teammates step 22:24:33Z, was offered the calendar 22:24:41Z. He has no calendar record and no credential. His email is on the 9thpathrealty.com domain, not Western Slope’s. #8541 merged; #8542 open Half done Same two fixes, one of them already in. Nothing about his account or his Microsoft tenant is in the way.
Jay’s calendar was never revoked Our token renewal asked Microsoft for company shared-mailbox permissions that his personal calendar consent never included. Microsoft answered “not consented”, and we read that answer as “the customer revoked us”. Read-only probe, 2026-09-14: asking with the company permission set fails with AADSTS65001; asking with the personal set succeeds and returns Calendars.ReadWrite User.Read. His record still reads connected, stamped 2026-09-11 22:46:37.400Z, with no failure ever written to it. No surface in the product could have shown “revoked” this morning — that word came from a diagnostic we ran, not from a page. #8525 Merged 23:38Z, not yet proven in production Already fixed in code. His calendar has been usable the whole time; nothing on their side ever needed touching.
The back-office page reads “Not connected” for Jay The staff page looks a teammate’s calendar up by their sign-in id instead of their person id, so it finds nothing and reports nothing found as nothing connected. His calendar record is filed under person pers_224f0528…; the page queries with login b5399836…. Confirmed the same mistake exists nowhere else in the code. #8528 Open, in CI Nothing for the customer at all — this is a wrong reading on our own screen, not a broken connection.
The company mailbox has said “waiting for a Microsoft admin” since Sep 11 Two things at once. We write “waiting for admin approval” on the way out to Microsoft, before Microsoft has said anything — so the wizard reports a request that was never made. And the product has no code path that asks a Microsoft admin for anything: the function that builds that request exists and has no caller. Both company records (mailbox and calendar) still read pending_admin_approval, stamped 2026-09-11 19:28:05.570Z, with no credential behind them and nothing written since. Their Sep 11 attempt started 19:28:05Z and the browser came back at 22:41:26Z, three hours later, past the link’s life (Sentry 7727344412). buildAdminConsentUrl still has no caller on main. None open Not started A connect flow that tells the truth about what it did, and that actually sends their Microsoft admin a request. Both still to be built.
The permissions the company flow asks for are not declared on our Microsoft app The company flow requests three shared-mailbox permissions our app registration does not list, so Microsoft’s screen could never have granted them even if an admin had reached it. Their Microsoft tenant holds exactly one consent record for us, read fresh tonight: tenant-wide, scope Calendars.ReadWrite User.Read, created 2026-09-11 22:46:34Z by Jay’s calendar consent. No mail permission has ever been consented in their tenant, and we hold no application-level permission there. App registration change (approved, in progress) In progress Once the three permissions are declared, the company screen can show them and an admin can grant them in one pass.
Camellia is not a precedent for the company flow Camellia’s mailbox was not consented by a passing user on the company flow. It was connected in April through the older per-property flow, by signing in as the mailbox account itself, and their Microsoft tenant carries a tenant-wide grant that includes the mail permissions. Property record connectedAt 2026-04-06 18:29:40.926Z; the stored token is an interactive human sign-in as the mailbox account with password and second factor. Their tenant’s single consent record for us is tenant-wide and covers Mail.Read Mail.ReadWrite Mail.Send Calendars.ReadWrite User.Read. n/a Understood Nothing to copy: that route means holding a customer’s mailbox password, which we will not do. The company flow has to work on its own.
The staff screen said Clara is switched off for them The back-office screen showed a sentence about our team turning Clara on after a dry run to admins of companies that are not live. It was not true. Copy removed; the box now appears only for a company that really is live. #8526 Open, in CI Nothing — this is our own screen, and no behaviour changes with it.

What we could not verify. Three things. We could not read the request log for Kat’s and Jason’s attempts: the only log surface reachable from a session tails live traffic, and the historical view is a browser-only console, so the 22:24–22:26Z window is gone for us. We cannot say whether Microsoft showed Kat anything, only that it never came back. And we cannot read the consent record on Camellia’s Microsoft tenant the same way as Western Slope’s — Microsoft refused the tenant-wide query and only answered the one about our own app, which is why the Camellia row reads tenant-wide rather than naming who granted it. Everything else in the table above is from production data, Sentry, Microsoft’s own answers, or the code on main.

The order that matters. #8541 landed at 00:42Z, so the product can record a connection again — that was the one making everything else invisible. Next is #8542, so the next attempt leaves a trace whatever happens to it. #8525 (merged) and #8528 (open) close out the two things that were misread as the customer’s fault. The company mailbox, which is what Western Slope actually needs, is behind the app registration change plus a flow that genuinely asks their admin — that one is still to be built.

Every row opens: when it was added, why it exists, and the links that prove it. Rows waiting on a human carry a Decide → link straight to the answerable question on the decisions page. Statuses are re-derived from live PR, decision and prod-evidence state by bin/refresh-trackers; nothing here is typed by hand, and merged is not shipped until a prod_evidence permalink says the fix was exercised in production.

PropFlow Docs