Renewals paperwork engine: one page

What is built, what is proven, what is still ahead. The long version is the document-engine hub.

Oct 23, 2026, 14:40 UTC · renewals lane (session 005) · everything merged is dark; nothing is on at any customer

Clara can now build a renewal packet from a company's own recipe and park it, unsent, in AppFolio. Proven live at the Willows this morning in seven seconds, cleaned up after. Western Slope's exact shape ran at the Willows tonight and parked a correct draft too. The new-lease version of the same engine merged an hour ago. Turning any of it on is your call.

1 · The chain, and where each step stands

RECIPE learned once per company versioned, no AI at run time BUILD app fills every blank term always ends month-end READ robot looks first an open offer wins, no write PARK draft in AppFolio, unsent page read back and checked SEND Clara sends at the top rung proven live: offer 377 out for signing ● merged + proven live ● merged + proven live ● merged + proven live ● merged + proven live ● merged + proven live Same five steps for renewals (done) and new leases (merged today, Willows proof running). Default off; the rung is a setting per company or building.
Figure 1. The engine in five steps. Green = merged and proven on a real AppFolio lease at the Willows, every step including the send (Oct 23, 8:21am Denver).
Sections 2 to 6: before/after, proof, what landed, what is next, waiting on you

2 · Before → after

Before (two days ago)

The team wrote every renewal addendum by hand in AppFolio. Term ends copied the old list, some mid-month. No read-before-write, no read-back. Learning a new customer's paperwork meant Fede typing the recipe.

After (merged, dark)

Clara builds the packet from the company's recipe the moment the renewal decision is made. Term end is always month-end, everywhere, JP&Co included (a fix, no switch). The robot reads first, parks the draft unsent, reads the page back; a mismatch holds the packet with a plain reason. The learner read three customers' past paperwork read-only and drafted their recipes with zero manual work.

3 · Proof at the Willows (this morning, 06:00 UTC)

Before: unit 101 with no offer, Prepare Renewal Offer task open After: the parked renewal document, status Not Sent, six typed values

Left: unit 101, no offer. Right: offer 375 parked, status "Not Sent", 12-month term 10/01/2027 to 09/30/2028 at $1,550, every typed value matching the order. Start to parked: 7 seconds. Then cancelled and reset; the lease keeps its packet record by design. A second run in Western Slope's exact shape (recipe v3, "original lease start" filled from our own lease record) parked offer 376 / document 900 at 22:26 UTC, read back as ordered, then was cancelled and reset. Screenshots on the hub.

4 · What landed, in plain words

PieceWhat it doesState
The doorThe app's contract with the robot: read, cancel, park, send-parked, five possible answers, nothing writes on a mismatch.merged
The engineVersioned recipes per company, the print order, the three-rung ladder (team sends / Clara prepares / Clara sends).merged
Month-end termEvery renewal term ends on the last day of the month, in the engine, the app and the rent math.merged, live everywhere
Renewal callerAt the "prepare" rung the renewal workflow builds, reads, parks and records the packet on the lease.merged + Willows proof
Western Slope shapeThe three reads their one-page addendum needs, wired into the packet build; their recipe loaded as version 3.merged + Willows proof in WS shape
New leases, same engineNew-lease sender setting (default off), robot park and cancel for new leases, and today the app workflow that builds, reads, parks and records a new-lease packet.merged + Willows proof
Learn a customer's paperworkRead past renewals through the robot, read-only, draft the recipe plus the office's questions. Western Slope reproduced the hand recipe; Situs (blind) found 27 blanks across 3 templates and 23 questions; Camellia 5 boxes and 11 questions.run, read-only
Two must-close fixesCo-applicants on one unit get one parked lease, not one each; a renewal's respond-by day never lands inside the new term. No switch.merged + replays; co-applicants live at the Willows
Clara sends, tenant signsClara sent offer 377 herself; the test tenant signed it in the portal at 10:09am Denver; PropFlow saw the signature and cancelled the tenant reminder. Nobody countersigned; then cancelled and reset. Watch the 2:36 demo (learn, new lease, Clara sends, tenant signs).Willows proof
Faded mass-text bubbleRemoved from tenant threads, as asked.merged

5 · What's next, in order

1 Western Slope wired merged; Willows run in its shape parked + cleaned (offer 376) 2 Camellia new-lease park merged; Camellia lease parked at the Willows (lease 1558, doc 901) 3 Top rung: Clara sends Clara sent offer 377 at the Willows; tenant signed; reminder stopped 4 Learner → onboarding running: robot read merged, learner queued; Situs read, WS control identical; card next 5 Supervised week at WS then your turn-on, December flight Step 1 done. Step 2: proven on the third run after three robot fixes (a missing session cookie, then a missing page address on one call, and cancel for a half-finished move-in). Clara parked a real Camellia lease at the Willows unsent, then cancelled it. Still to show: the trigger from a real approval, and telling the office when a packet is parked or held. Details on the hub. Step 3: both PRs merged (the send behind the same emergency stop and Renewals switch as the letter; tenant texts point at the portal once sent). Proven live at 8:21am Denver on Oct 23: Clara parked and then sent offer 377 herself, read back as "out for signing", started with no staff login. SIGN proven at the Willows the same day: the test tenant signed offer 377 in the portal at 10:09am Denver (16:09 UTC), PropFlow got the signed signal at 16:21 UTC and the tenant reminder was cancelled. Step 5 (the two Western Slope gaps) merged 04:39 UTC. Camellia: the office is told when a packet is parked or held (proven live: the leasing inbox got "New lease ready to send" 5 seconds after the park). Two bugs the live runs found are fixed and proven: one packet run per approved application, not per person card; and a replayed park after a cancel now answers "nothing parked" instead of the stale result. Co-applicants on one unit now yield one parked lease, proven live at the Willows at 17:07 UTC: two approvals on unit 102, one lease parked, the other held with a plain reason, no card, one office note. Yardi and rent recommendations come after.
Figure 2. Green = done, amber = running right now, outlined = queued. Nothing in this row turns anything on; that stays with you.

6 · Waiting on you (one line each)

PropFlow Docs