Building a Lease Renewal Automation with n8n
A 400-door property management firm was spending 17 hours a month just on lease renewal admin — notices, follow-ups, tracking, data entry. One n8n workflow cut that to under 2 hours. Here's exactly how to build it.
Your lease renewal notices are due in 90 days. You have 38 units coming up. Each one needs a notice drafted, sent, logged, and followed up on — and if the tenant doesn't respond, you send another one at 60 days. And another at 30. Then you update your property management system, generate the renewal document, get it signed, file it, and update the rent roll.
You're doing this for 38 units. By hand. While also managing maintenance requests, collecting rent, handling vendor invoices, and fielding calls from owners who want to know why unit 14B still has a broken dishwasher.
This is what 400 doors looks like in practice. And this is why most property management firms stop growing — not because they can't find new clients, but because they don't have capacity to serve more without hiring.
We built a lease renewal automation with n8n for a property management firm managing 410 doors. The result: 17 hours of monthly lease renewal admin cut to under 2 hours, zero missed renewal windows, and the capacity to take on another 80 units without adding staff.
Here's exactly what we built.
The Manual Renewal Process (And Where It Breaks)
Before automation, this firm's renewal cycle looked like this:
- Someone manually checked AppFolio for leases expiring in the next 90 days — usually once a week, usually incomplete
- The property manager drafted a renewal notice in Word, copy-pasting tenant names and unit details
- The notice went out via email, with no tracking
- If the tenant didn't respond in 2 weeks, the property manager had to remember to follow up — which often didn't happen
- When a tenant confirmed renewal, someone updated AppFolio manually and generated a new lease document
- The new lease went out for e-signature, with follow-ups if it wasn't returned within a week
- Once signed, the lease was filed in a folder and the rent roll was updated by hand
At 40 renewals per month (a typical distribution for a 400-door portfolio with 12-month leases), this process consumed roughly 25 minutes per renewal — a combination of drafting, sending, tracking, and updating the system. That's 17 hours a month of pure admin work. No client-facing value. Just data entry and email.
The failure modes were equally predictable: missed renewal windows (a tenant whose lease expired with no contact is a month-to-month problem waiting to happen), inconsistent notice language across different staff members, and zero visibility for owners who wanted to know renewal status across their units.
What We Built
The automation runs in n8n and connects to AppFolio via webhook and API. It handles three of the four renewal phases automatically: detection, notice delivery, and follow-up. The property manager only touches it when a tenant needs actual negotiation or when a unit won't be renewed.
Phase 1: Automated Detection and Notice Staging
Every night at 8 PM, n8n queries AppFolio for leases with expiration dates 90, 60, and 30 days out. The workflow pulls the tenant name, email, unit address, current rent, and lease end date.
For each qualifying tenant, it creates a renewal task in the firm's task tracker (they use ClickUp — we connected it in about 20 minutes) and stages a personalized renewal notice. The notice is pre-populated with the tenant's information, the proposed renewal terms, and the deadline for response. No copy-pasting. No manual entry.
The 90-day notice is templated. The 60-day notice is a reminder with slightly more urgency. The 30-day notice is a final reminder that triggers an alert to the property manager if it goes unanswered for 5 days.
Phase 2: Notice Delivery and Response Tracking
At 9 AM the following morning, n8n sends the staged notices via email. Each email includes a unique tracking link — when the tenant clicks it (or when they reply directly), n8n captures the response and updates the AppFolio record automatically.
The tracking isn't fancy. It's a simple webhook that AppFolio fires when a contact record is updated, plus an n8n node that watches the email thread for replies. If the tenant responds "yes, renewing," the workflow marks the task as "tenant confirmed" and moves to Phase 3. If they respond "no, not renewing," it marks the unit as "notice of vacancy" and alerts the leasing team. If there's no response within 14 days, it triggers the next notice tier automatically.
The property manager sees a Slack message every morning with a summary: how many notices went out, how many responses came in, which units are in which stage. Takes 2 minutes to review. Everything else runs without them.
Phase 3: Renewal Document Generation and Signing
When a tenant confirms renewal, n8n drafts the renewal lease using the firm's AppFolio lease template, pre-populated with the new terms. The document goes out via DocuSign for e-signature automatically.
If the lease isn't returned within 7 days, n8n sends a reminder. If it's not returned within 14 days, the property manager gets a direct notification to handle manually — because at that point, there's usually a conversation needed.
When the signed document comes back, n8n logs it to AppFolio, updates the rent roll, and closes the ClickUp task. The property manager doesn't touch it.
How to Build This in n8n
This is a 4-node workflow at the core, plus some supporting pieces. Here's the structure:
Node 1: Scheduled Trigger
- Type: Schedule Trigger
- Cron:
0 20 * * *(8 PM daily) - No configuration needed beyond the schedule
Node 2: AppFolio API Call
- Type: HTTP Request
- Method: GET
- URL: Your AppFolio tenant/lease endpoint with date filters
- Authentication: AppFolio API credentials (stored in n8n credentials vault — never in the workflow itself)
- Filter:
lease_end_datebetween today+89 and today+91 (for 90-day tier; repeat for 60 and 30)
Node 3: Condition Check
- Type: IF node
- Condition: Does this tenant already have an open renewal task in ClickUp?
- If yes: Skip (prevents duplicate notices)
- If no: Proceed to Node 4
Node 4: Notice Staging + Task Creation
- Type: Split into parallel branches
- Branch A: HTTP Request to ClickUp API to create renewal task
- Branch B: Gmail/SendGrid node to stage email (or send directly if you want same-day)
- Merge both branches to confirm both actions completed
Supporting nodes add Slack notifications, DocuSign triggers, and the response tracking webhook — but those are additions to this core loop, not the core itself.
The full build, including the DocuSign integration and Slack summary, took about 6 hours. That includes testing, edge cases (what happens when the tenant email bounces? when AppFolio is slow to respond?), and documenting the workflow for the property manager to maintain.
What Changed
Three months after deployment:
- Renewal admin time: 17 hours/month → 1.5 hours/month. The 1.5 hours is almost entirely time spent on tenants who need negotiation or who aren't renewing — which is the part of the job that actually requires a human.
- Zero missed renewal windows. The previous system had missed 3 renewal windows in the 6 months before we built this. That's 3 units that went month-to-month unexpectedly. At $0 premium for month-to-month flexibility, that's just lost leverage.
- Renewal response rate increased from 64% to 89%. Because notices now go out on time, every time, with consistent follow-ups, tenants actually respond. The old system relied on property managers remembering to follow up — they had other things to do.
- Capacity for 80+ additional units. The time savings freed up enough bandwidth that the firm took on a new management contract for 85 units without adding a single staff member. That contract represents roughly $6,000/month in additional management fees.
What You Need to Get Started
- n8n: Self-hosted (free) or n8n Cloud at €20/mo. Self-hosted is better for this use case because you're handling tenant data — keeping it on your infrastructure reduces your exposure.
- AppFolio API access: Available on AppFolio's Professional plan. If you're on Core, you'll need an upgrade or a workaround via their reporting exports.
- ClickUp or similar task manager: Any task tool with an API works. We've also done this with Notion and Airtable.
- DocuSign: For e-signature on renewal docs. HelloSign/Dropbox Sign works too.
- SendGrid or Gmail: For notice delivery with tracking. Gmail works fine for smaller portfolios; SendGrid gives you better deliverability and open tracking at scale.
Total monthly cost for the workflow infrastructure: roughly $30–$40/month (n8n Cloud + SendGrid). Against 17 hours of saved admin time, that math closes in about 10 minutes of the first month.
The Part You Still Need a Human For
Automation handles detection, notice delivery, follow-up, document generation, and status tracking. It doesn't handle:
- Rent negotiation. If a tenant wants a below-market renewal rate or a shorter term, that's a conversation. n8n flags these for the property manager but doesn't try to negotiate.
- Tenants who don't respond at all. If someone doesn't respond to three notices over 30 days, the workflow escalates to the property manager. At that point, a phone call is usually the right move.
- Non-standard renewal terms. Month-to-month, lease shortening, co-signer changes — these all need manual handling and shouldn't be automated.
For 90% of your renewals — tenants who are staying, paying rent, and just need a document to sign — the workflow handles everything.
This Is Step 1
Lease renewal automation is one workflow. It's not a strategy. Once this is running, the same infrastructure supports rent collection reminders, maintenance routing, move-out coordination, and owner reporting — all on the same n8n instance, all connected to the same AppFolio data.
The property managers who figure this out first don't just save admin time. They build a capacity engine that lets them take on more doors without more headcount. In property management, margin lives in that ratio.
If you're running 200+ doors and managing renewals by hand, this is worth building. If you want to skip the 6-hour build and get it running in a week, that's exactly what we do.
Book a discovery call at cloudbeast.io/schedule.
Ready to see where AI fits in your business?
Book a call — we'll map your workflows, quick wins, and a realistic path forward.