Mark an invoice paid and the owner statement is current. Assign a vendor and the case advances itself. No manual refresh.
Built for agencies managing more than 5 properties for more than one owner.
Built for modern property operations teams across emerging and established markets.
Used by agencies with one shared standard: every owner gets a current statement, every month.
Every agency starts this way. By the fifth property it stops working. Rent goes uncollected for a week before anyone notices. Owners chase you for statements you already sent. A repair quote sits in your phone for ten days because nobody pinged you again.
One inbox. One timeline per issue. The reminders chase themselves.
Any update on the kitchen drain?
Send Belsize Q1 report Friday
Four automations that remove manual admin from the daily rhythm.
The link between a paid invoice and a posted income entry is enforced at the database level, not as a "best effort" sync. There is no scenario where the books and the statement disagree.
Owner statements are always up to date. No manual refresh needed.
Send a magic-link approval request; the owner clicks Approve or Reject from email; the case advances stages on its own. The waiting clock pauses while it's with them.
Replaces: WhatsApp screenshots and three days of follow-up.
Daily checks for lease ends, insurance renewals, and compliance certificates. The same items appear in your inbox until they're resolved, and the cron de-duplicates so you only get one email per threshold.
Two warning levels: 30 days out, then 7 days out.
Every workflow stage has an SLA budget. If a case stalls past it, the system surfaces it in your inbox automatically — and pauses the clock when you're waiting on a vendor or owner.
Replaces: the weekly "what was I doing about that?" review.
Everything the system did overnight, ranked by what needs you.
Rent overdue · Unit 4B · Sarah Chen
£ 2,400 · 9 days past due
System already did: Logged the overdue status on day 1. Sent a reminder email at 07:00 UTC yesterday. Surfaced this in your inbox at URGENT severity because dunning crossed the 7-day threshold.
Approval waiting on owner · Water heater repair · $ 1,200
System already did: Set the case to "waiting on owner" — the SLA clock is paused so this isn't counted against your response time. Logged the email in the case timeline.
Unit 2A vacant for 32 days
System already did: Pre-filled the action: change unit status to "Listed" with one click. No data entry needed.
+ 11 other items handled automatically yesterday. (Rent reminders sent, owner statements refreshed, case stages advanced.)
Not three onboarding steps. The shape of an operating week with the platform running.
Monday
The cron ran at 07:00 and filed everything into your inbox by severity. Last week's loose ends carry over with their stage SLAs visibly counting down. You handle three things before your first coffee.
Tuesday – Thursday
Most of the work is conversations with tenants and vendors. The system handles the bookkeeping: vendor invoice attached → expense entry pre-filled; approval granted → case advances; status flipped to Completed → owner statement reflects the cost.
Friday
There is no copy-paste step. Open the property report (PDF), check it looks right, forward it. The bank reconciliation step you used to do? It happened in the same transaction as the invoice flip.
Sample property — Al Seef Residences (20 units, Bahrain)
A real demo seed. Open it and click around. Every cron job, every case timeline, every owner statement is wired up.
Six tasks. Same agency. Two timelines.
| Task | Excel + WhatsApp + email | Groundwork PM |
|---|---|---|
| Marking a rent payment received | Update spreadsheet, email owner | One click. Owner statement updates itself. |
| Lease expiring in 30 days | Hope you remember | Cron emails you. Inbox surfaces it. |
| Owner approval for a $1,200 repair | WhatsApp message, screenshot of quote, three back-and-forths | One magic link. Owner clicks Approve. Logged on the case. |
| Vendor invoice for a completed job | Spreadsheet row, paper receipt, manual matching | Attachment on the case. Expense pre-filled. |
| End-of-month owner statement | Two hours of copy-paste | Already current. |
| Audit trail for a dispute | Search WhatsApp, hope screenshots saved | Per-case timeline of every email, comment, approval, status change. |
Marking a rent payment received
Excel + WhatsApp + email
Update spreadsheet, email owner
Groundwork PM
One click. Owner statement updates itself.
Lease expiring in 30 days
Excel + WhatsApp + email
Hope you remember
Groundwork PM
Cron emails you. Inbox surfaces it.
Owner approval for a $1,200 repair
Excel + WhatsApp + email
WhatsApp message, screenshot of quote, three back-and-forths
Groundwork PM
One magic link. Owner clicks Approve. Logged on the case.
Vendor invoice for a completed job
Excel + WhatsApp + email
Spreadsheet row, paper receipt, manual matching
Groundwork PM
Attachment on the case. Expense pre-filled.
End-of-month owner statement
Excel + WhatsApp + email
Two hours of copy-paste
Groundwork PM
Already current.
Audit trail for a dispute
Excel + WhatsApp + email
Search WhatsApp, hope screenshots saved
Groundwork PM
Per-case timeline of every email, comment, approval, status change.
Compare to the cost of one missed lease renewal.
Start free for 30 days. No credit card required. See full feature list →
Up to 2 properties
or $790/yr — save 2 months
Up to 10 properties
or $1990/yr — save 2 months
Unlimited properties
or $3990/yr — save 2 months
Import a property in under 10 minutes. Or click around the demo first. Either way, no card and no setup call required.
Open my first property →Includes the cron, the inbox, the cases workspace, the owner portal — everything.