Sitemap
Dan Pham

Dan Pham

Build cool things! Formerly at Thangs3D, Shapeways, Slack, and Google Cloud

How I created an Automated Dashboard using my Property Management emails

Based on recent survey data, 92% of landlords and rental property owners identify repairs and maintenance as one of the top three most demanding or burdensome responsibilities of managing a rental property. (Rental Housing Journal)

4 min readFeb 16, 2026

--

🥕 This short guide shows how I turned messy property manager email threads into a simple, low-code task dashboard. The goal was not to police anyone, but rather to have AI comb through the emails and let me know when follow-ups should be visible and avoid having to “escalate” before things get too delayed, resulting in additional costs for me and the property management company.

Press enter or click to view image in full size
Bringing JIRA to Property Management. Oh the humanity!!
Press enter or click to view image in full size
Version 2 using Memoria Design System (source: https://gist.github.com/alichherawalla/8234538a50f9d089e0159c3e3634e17c)

The problem: email is not a task system

I was getting updates across multiple threads: maintenance, cleaning, listings, inspections, bills, and scheduling. The intent was good, but the outcomes were fuzzy. I could not quickly answer:

  • What did we agree on?
  • What is in progress vs. done?
  • Who owns the next step?
  • What should I follow up on this week?

So I built a tiny CRM-like workflow for my household vendors using AI + VS Code to help with Data Cleaning and Data Analysis.

The high-level solution

I kept it simple and local:

  • Google Apps Script pulled my property manager emails into a spreadsheet.
  • Put this on a schedule (Apps Script Triggers)
  • A small python script exported the spreadsheet data into JSON. (Apps Script Webhook or you can use Google Sheet APIs)
  • I summarized tasks into a CSV.
  • A local HTML dashboard read the CSV and JSON and rendered a clear, human-readable view.
  • VS Code was able to read the JSON and create a CSV for the “backend” (it has access to many of the popular Chat AI models.)

No third-party SaaS. No new logins. No subscriptions. No cloud services.

Just my data in a format I can control and review to draft emails with.

Ethical note: Why I cared about the tone

I did not want to be an asshole. The point was not to play “gotcha.” It was to make sure we all had the same source of truth and that I could clearly list the tasks from all of our emails. When everything is explicit, the relationship is easier, not harder.

The AI-prompting blueprint (high level)

Almost all of this was vibe coded using Gemini or VS Code (which uses ChatGPT).

Here is the rough flow I wanted AI to build for me:

1. Collect emails into a spreadsheet using Google Apps Script.

2. Normalize the data: sender, date, subject, and a plain-text body preview.

3. Export to JSON so my local index.html dashboard can read it locally.

4. Extract tasks into a CSV with fields like:

- TaskName

- Status

- Priority

- AssignedTo

- DueDate

- Notes

5. Render a dashboard in a single HTML file that loads the CSV and JSON and visualizes:

- Stats (total tasks, in progress, pending, completed)

- Task lists grouped by status

- A recent email feed for context

That is it. No complex backend (just Google Sheets and CSV files).

Get Dan Pham’s stories in your inbox

Join Medium for free to get updates from this writer.

All localhost and readable to both me and my wife. (Although, as a designer, she hates the purple gradient user interface lol…)

Benefits: One place to Update and Generate Email Updates

Having a “Single Pane of Glass” is a game changer for real estate management. With this new single source of truth, I can:

  1. Update the CSV on my own or ask AI to update the CSVs for me.

2. Write the emails from scratch on my own, or I can ask AI to draft emails to the owners for me.

What the dashboard gives me

  • A living checklist of commitments
  • A clean view of what is pending and who owns it
  • A short list of follow-ups I should send this week
  • A running history of communications (for context, not blame)

Sample prompt I used:

I used a prompt like this to keep the workflow consistent:

Goal: Build a simple, local task dashboard from property manager emails.

Why this is useful beyond property management

This same structure works for any household vendor:

  • Cleaning services
  • Contractors
  • Landscaping
  • Insurance and billing
  • Rentals or sublets

If you can export email to a spreadsheet, you can build a tiny CRM in just a few hours.

Lessons learned

  • A small dashboard beats a large inbox.
  • Good relationships need shared clarity, not more meetings.
  • Low code is enough if you focus on the workflow, not the tech.

Want to build your own?

I recommend starting with the simplest version:

  • One spreadsheet
  • One CSV of tasks
  • One HTML dashboard

Then add small improvements as needed. The best system is the one you will actually use.

Note: I‘m sure it won’t be long before some pioneering engineer turns this into a SaaS app. You’re welcome for the riches 😆 Be sure to subscribe to my Substack or Medium if this helped you.

--

--

Dan Pham
Dan Pham

Written by Dan Pham

Build cool things! Formerly at Thangs3D, Shapeways, Slack, and Google Cloud