See llms.txt for all machine-readable content.

Back to Templates

Send staged rent reminders and receipts with Sheets, Gmail, Telegram, and GPT-4o

Chasing rent from memory works until it does not. This workflow treats a tenant ledger in Google Sheets as the source of truth, sends staged reminders on a fixed cadence, stops chasing the moment a payment is recorded, and keeps the landlord informed on Telegram. It also resets the ledger every month and sends a weekly collections report.

Last updated: November 2026.

Quick Overview

Every morning a schedule reads the TenantLedger tab, validates each row and works out days overdue. Before any email is drafted, the ReminderLog is checked so a tenant gets at most one reminder per stage every three days. An AI agent on GPT-6.1-sol writes a gentle, firm or final reminder, Gmail sends it with retries, and the log stores the Gmail message id. The ledger row is updated with the stage, and a Switch alerts the landlord on Telegram for firm notices and by email plus Telegram for final ones. A payment webhook marks the tenant paid and sends a receipt, a monthly job resets the ledger, and a Monday report sums up collections.

How it works

  1. At 08:00 the daily schedule reads TenantLedger. Rows missing a name, email, due day or rent amount trigger a Telegram note asking the landlord to fix the row.
  2. Valid rows get a due date and days overdue. Rows that are due and not marked paid continue.
  3. The ReminderLog is read once, and a cadence check drops tenants who already got a reminder at the expected stage in the last three days.
  4. The AI agent on GPT-6.1-sol drafts a stage, subject and body of 60 words or less, aware of how many reminders this cycle already had.
  5. Empty drafts are flagged on Telegram instead of being sent.
  6. Gmail sends the reminder with three retries. Success is logged with the message id. A final failure is logged as failed and the landlord is told on Telegram.
  7. The tenant row in TenantLedger is updated with the reminder stage and the date.
  8. A Switch sends firm reminders to Telegram, and final reminders to both the landlord's inbox and Telegram.
  9. A POST to the rent/payment webhook with unit, tenant_email and amount marks the row paid, emails a receipt and tells the landlord. Incomplete payment notices raise a Telegram alert.
  10. On the first of each month every row is reset to unpaid, and every Monday at 09:00 an AI written collections report goes out by Gmail and Telegram.

Setup

  1. Create a spreadsheet with TenantLedger (tenant_name, unit, rent_amount, email, due_day, status, reminder_stage, last_reminded, last_payment_date, last_payment_amount) and ReminderLog (reminder_date, tenant_name, unit, rent_amount, stage, days_overdue, email_sent, gmail_message_id).
  2. Connect Google Sheets and update the document ID in every Sheets node if you use your own file.
  3. Add an OpenAI compatible credential to both chat model nodes.
  4. Connect Gmail and replace [email protected] with the landlord's inbox.
  5. Add a Telegram bot and set the chat ID 123456789 in every Telegram node.
  6. Point your payment form, bank notification or property tool at the Payment Received webhook URL.

Quick Answers

How often does a late tenant hear from me?
At most once every three days per stage. The cadence check reads the ReminderLog, so a gentle reminder repeats after three days and the tone only moves to firm at five days overdue and final at ten.

What stops reminders once rent is paid?
The payment webhook sets status to paid in TenantLedger, and the daily sweep skips paid rows. The monthly reset sets everyone back to unpaid for the new cycle.

What if Gmail fails?
The send retries three times. If it still fails, the attempt is logged as failed and Telegram tells the landlord, and the next daily sweep tries again.

When does the landlord get an email instead of just a chat ping?
Only for final stage reminders, which go to both the landlord's inbox and Telegram.

Additional info

Built with n8n. Need an assessment on your business? Feel free to reach out at https://khmuhtadin.com/consultation/