n8n is the automation layer that connects MLS API data to the outreach pipeline — pulling listings, applying filtering logic, deduplicating against prior outreach, verifying email deliverability, and queuing each qualified contact for Saleshandy. The workflow runs on a schedule and produces a clean, filtered list of agent contacts with property-specific data ready for personalized email delivery.

Workflow Structure

The n8n workflow has six functional nodes. Node 1 is the Schedule Trigger — set to run every 2 to 3 days, depending on market velocity. Node 2 is the MLS API HTTP Request — a GET call to the RESO Web API with query parameters specifying status (Active), days on market minimum (90), and geographic bounds. Node 3 is the Filter node — applying JavaScript conditions to filter records by year built (before 1990), minimum list price, and price reduction flag. Node 4 is the Supabase Query — checking each filtered listing's address against the prior outreach log to exclude properties contacted in the last 90 days. Node 5 is the Hunter.io API call — verifying each agent's email for deliverability. Node 6 is the Saleshandy API call — creating each verified contact in the configured sequence with property-specific custom fields attached.

Deduplication Logic

Without deduplication, the same agent receives the same email about the same listing on every workflow run. The Supabase deduplication table records the property address, agent email, and outreach date for every contact created. Each subsequent run checks this table before queuing any contact — suppressing anyone contacted within 90 days. The complete workflow is demonstrated at omnionlinestrategies.com/real-estate-agent-outreach-machine.