Case study
A 2,000-unit Ontario operator turned coordination work into infrastructure.
4-month engagement. Three workflows in production. Two FTE reclaimed.
At a glance
- Sector
- Family-owned real estate operator and developer
- Footprint
- 2,000+ residential units, Ontario
- Engagement
- 4 months, founder-led deployment
- Result
- 2 FTE of coordination capacity reclaimed, roughly $150K/year CAD in fully loaded cost the business did not have to add
- Utility-bill processing runs 95%+ touchless
- AP exception backlog cleared in 6 weeks
- Lead response time cut to under 5 minutes, from a baseline of 4 to 8 hours
Operations split across one system of record and a half-dozen inboxes.
Operator profile: family-owned Canadian real estate operator and developer, 2,000 units across multiple properties. Operations split across Yardi and Microsoft 365.
Coordination work consumed multiple FTEs across leasing, AP, and reporting. Yardi was the system of record, but operations lived in inboxes, spreadsheets, and Teams threads. The system holding the data was not the system doing the work.
Three workflows deployed on the existing stack.
No new system of record. No migration. Agents sit on top of Yardi and Microsoft 365 and handle the work that was previously moving by hand. Two constraints shaped the build: the system stays model-agnostic, so the operator is never locked to a single AI vendor, and resident and financial data never leaves Yardi, a hard requirement under Canada's PIPEDA.
01
Leasing triage
A leasing chatbot with native lead capture fields inbound inquiries from email, portals, and listing platforms, qualifies them, and drafts responses for human approval before anything sends. Every lead writes straight into Yardi, and the workflow absorbed close to a full role of leasing coordination.
02
AP exception triage
Utility bills arrive by email; the agent reviews and OCRs each one, codes it, and uploads the set to Yardi as a payable batch via API. A person approves the batch before anything posts, by design. Roughly 850 utility bills a month clear at 95%+ touchless. It also flags utility-usage anomalies, trimming operating expense that, for an owner-operator, lifts asset value.
03
Recurring reporting assembly
Cross-system pulls from Yardi and Excel are assembled into the recurring weekly and monthly operator reports. The same layer lets staff query Yardi data directly, in plain language, without waiting on a report.
Outcomes that compounded month-over-month.
500+
leasing inquiries triaged per month
5 min
median lead response time (was 4 to 8 hours)
850/mo
utility bills cleared as approved payable batches
95%+
touchless processing on utility-bill batches
<1 day
AP cycle time, down from roughly 3 days
6 weeks
to clear the AP exception backlog
2 FTE
of coordination capacity reclaimed, ~$150K/year CAD in fully loaded cost avoided
Zero
new software introduced
Four conclusions the deployment confirmed.
The first thing the deployment confirmed is that the value lives between systems, not inside them. Yardi held the data, and the leasing chatbot wrote leads straight into its CRM rather than into yet another tool. Microsoft 365 held the conversations. The most expensive coordination work was happening in the gaps: a lead arriving in one inbox, a unit availability check in another, a draft response written by a third person who could not see the first two. None of those systems were broken on their own. None of them were ever going to fix that handoff problem either. Agents earn their keep precisely because they live in those gaps. They read from every system, write to every system, and keep the operational record continuous instead of fragmented.
The second thing it confirmed is that operator-built playbooks beat vendor-led migrations for SMBs in this revenue band. Enterprise software vendors sell consolidation: rip out the patchwork, standardize on us. That works for a Fortune 500 with a CIO and an IT budget. It does not work for a 2,000-unit operator with a small finance team and a controller who already has a full calendar. Migrations stall, training drags, and the workflow you were trying to fix gets buried under the migration project itself. The Flynson pattern starts from the other direction: keep the systems, automate the seam between them, ship in weeks not quarters. And keep a human on the approval line: every payable batch and every outbound message clears a person before it posts or sends. That is what earned the team's trust, and trust is what drove adoption.
The third thing is that Canadian SMB operations need a different posture than the templates US vendors export. PIPEDA is not GDPR. The Residential Tenancies Act is not a model that any US-built property tool ships out of the box. Provincial WSIB and HST requirements show up in workflows that US software treats as edge cases. None of this is unsolvable, but it adds up. Building for the Canadian operator first, rather than localizing a US product later, removes a class of friction that compounds across every workflow.
The fourth, and the one we did not expect at the start, is that agents earn their keep when they ship continuously, not when they ship once. The first workflow that went live was useful. The third one was operational. By the final month, the agent was part of how the business ran, not a tool the business used. The compounding effect of three workflows running on the same connection layer, with the same logging and the same escalation paths, was what reclaimed the two FTE. Shipping one workflow and stopping would have been a smaller win. Shipping continuously is what made the math work.
Stop coordinating. Start operating.
A 30-minute conversation to identify where AI agents could replace coordination work inside your business. No prep required.
Request a discovery call