Projects

Select a project to expand the details.

Real estate workflow automations2026 · n8n, Zoho CRM, AI

Automations that connect Zoho CRM with AI rendering services for the agency.

Problem

The workflow had to manually track and update the data as the property moved up the process after listing. This included tracking progress, filtering images, rendering images to the companies standard before posting it to the companies listing media. Along with notifing human agents along the process.

What I built

The flowchart would trigger when a property was ready for listing; a property would have to be manually toggled to "Pre Listing" in the Zoho CRM to initiate the automation, which is also the only step that required human assistance. The automated workflow was built using n8n for connecting the apps to the workflow, Zoho Workspace tools for data management and AI rendering tools for creation of creative assets.

Result

The automation was designed to exensively optimize production while also addressing the security of the data along the process by using Oauth throughout. The automation handled repetative mundane tasks increasing productivity and efficiency enabling the company reducing the need for manual labor and operational cost.

  • n8n
  • Zoho CRM
  • AI
Home cloud server2026 · Raspberry Pi 5, Linux, self-hosting

A self-hosted cloud running on a Raspberry Pi 5.

Setup

A Raspberry Pi 5 running Pi OS lite, Debian GNU/Linux 13 (trixie), with an external SSD. Nextcloud and MariaDB run in Docker containers, and Docker keeps each service isolated and easy to rebuild. A Cloudflare Tunnel (the cloudflared system service) exposes Nextcloud to the internet through an outbound connection, so no ports are open on my home router. I administer the server privately over Tailscale. Netdata and Uptime Kuma handle monitoring and a public status page, SMART checks watch the SSD's health, and backups run automatically on a schedule using cron.

What I learned

Running the server taught me how the pieces fit together: containers, tunneling, and private networking. A full power-loss test showed me why services need to restart cleanly on boot, and switching ISPs broke my static IP configuration, so I had to rework the network settings and restore connectivity. Building the backups taught me the most. I moved the database credentials out of the backup script into a restricted file, made the script stop on the first error instead of leaving a broken backup behind, and put Nextcloud in maintenance mode while it copies so the database and files stay consistent. A shell quirk once corrupted the password in my config, and the failed run showed me how important logging and fail-safe design are. I also learned to check that a backup is complete, by listing the archive's contents instead of trusting that it exists.