Case study
Mission House Realty: 42 units, no more reconstructing tenant status from memory.
How a 42-unit operation in Indianapolis stopped losing track of tenant-level operations using the Tenant Alerts System.
In production today
Mission House Realty · 42 units · Indianapolis, IN · Live since April 2026
Five-page summary of the build, with architecture and results. Print-ready, share-ready.
The problem
Status lived nowhere.
Mission House Realty runs a 42-unit operation in Indianapolis on a property management software setup, several spreadsheets, and a stack of email rules. The owner-operator is smart, organized, conscientious. The kind of operator who responds to tenant texts on Saturday because that is just who he is.
He also had no place where the state of the operation lived outside his own head. He knew which tenants paid on time, which were running late, which work orders had been confirmed, and which renewals were coming up because he was holding it in working memory.
On Monday morning he would sit down and reconstruct that picture from the artifacts: two payment channels (Zelle email notifications, GoHighLevel + Stripe webhooks), a partially updated spreadsheet, three or four browser tabs, and his phone with the most recent tenant texts. He could rebuild the picture. It just cost him real focus to do it, every week, before he could start the work that was actually his job.
What we built
A single source of truth, then everything else.
The first build was not the dashboard. The first build was centralized tenant data, the single source of truth the alerts engine would draw from. A row for every unit and columns for the things the operator actually wanted to know: rent status, last payment, last contact, renewal date, current notes.
Two payment channels feed this data layer automatically. Zelle email notifications get parsed. GoHighLevel + Stripe webhooks fire on checkout events. Both routes update the same row. The operator does not have to remember to update anything. The data is updated by the events themselves.
On top of that: a 7-stage alerts engine that runs daily at 8 AM (late payments, lease renewals, stalled work orders), plus a Monday digest that lands in the operator's inbox before he sits down to work.
How the system flows
Zelle email notifications
Inbound · payment channel 1
GoHighLevel + Stripe webhooks
Inbound · payment channel 2
Tenant Tracker
Single Google Sheet · 42 units · source of truth
7-stage Reminder Engine
Daily 8 AM · stages 1–5 → tenant
Day 6 → Owner alert
Human follow-up needed
Monday Digest
Owner email · 8 AM
The result
What the system handles now.
Lease renewals surface 90 days out.
Renewal alerts fire automatically on a schedule starting 90 days before expiration, then again at 60 and 30 days. The renewal pipeline is visible before any individual lease becomes a same-week scramble.
Tenant status lives in the system, not in memory.
Both payment channels update centralized tenant data on their own. Status questions get answered from a single place rather than through the operator's recall.
The Monday picture is generated, not reconstructed.
Every Monday at 8 AM, the digest lands in the inbox before the workday starts. Status of every unit, anything overdue, anything coming up that week. Produced by the system rather than rebuilt by hand.
"Tenant status had been living in the operator's head, not in any tool. The alerts system moved it out of his head and into a place he could actually look at."
The owner stopped reconstructing tenant status from email threads on Saturday mornings. Stalled maintenance gets caught before tenants escalate.
The pattern transfers
The architecture is independent of the platform underneath.
Mission House runs on GoHighLevel and Sheets. The architecture (payment channels feed centralized tenant data, data drives an alerts engine, owner gets the Monday digest, day-six handoff) is independent of the platform underneath. The same shape installs on top of Buildium, AppFolio, Rentec, DoorLoop, TenantCloud, or whatever you run.
The fit call is where we confirm the integration approach against your specific stack and walk through the 30-day delivery plan.
Ready?
Stop running your business on remembering.
Your first AI system live in 30 days, or your money back. $7,500 to build, $1,500 a month to keep it sharp. We'll talk through the fit on a 20-minute call before either of us commits.