All client work
Case study 01 · Autonomous AI agent · n8n · GoHighLevel · Supabase · WhatsApp Business API · OpenAI

An outbound WhatsApp agent that finds home sellers, messages them, and hands over the warm ones

Not a chatbot. An autonomous agent built for a real-estate agency in Spain that watches multiple property portals in real time, tracks every price change and the local news behind it, messages private sellers from the agent's own WhatsApp number, reads every reply, runs valuations on request, and hands the human agent a lead only when the seller says yes.

15 n8n workflows3 GoHighLevel workflows11 Meta-approved WhatsApp templates9-table Postgres schemaAI reply classificationAutomated valuationsPrice-moving news scan
15
n8n workflows in production
11
WhatsApp templates approved by Meta
9
Postgres tables on Supabase
0.8%
failure rate across all workflows
Client
Real-estate agency, Spain (name withheld)
Our role
System design and full build, end to end
Timeline
Aug to Oct 2026, live since 27 October 2026
Stack
n8n Cloud · GoHighLevel · Supabase (Postgres) · OpenAI · Tavily · WhatsApp Business API · Property-data API with AVM
The brief

The problem and the build

The agency wanted every new private-seller listing in its territory contacted within days, followed up consistently for weeks, and handed to a human agent only when the seller showed interest. Doing this by hand meant missed listings, late follow-ups and no record of who was contacted.

We designed and built the full system end to end: the data model, the intake and scheduling logic in n8n, the CRM layer in GoHighLevel, the WhatsApp Business API setup with Meta template approval, the AI reply router, the valuation flow, and the monitoring that keeps it honest.

Input

Multi-portal listings, in real time

A property-data feed watches the major Spanish portals and pushes every new, updated, price-dropped or removed private listing in the agent's zones as a signed webhook, as it happens.

Engine

n8n + Supabase + OpenAI

Rules, scheduling and state live in code and Postgres. AI is used only where judgement is needed: reading replies and judging news.

Output

WhatsApp from the agent's number

Approved templates go out through GoHighLevel on the agent's own number. Hot leads land in the CRM pipeline with an instant alert.

What the agent does

One agent. Nine jobs.

01 · Listing watch

Real-time watch across multiple portals

Every private listing in the agent's zones is captured the moment it appears on any of the major portals. Price changes, relistings and withdrawn ads update the same record in real time, so nobody gets messaged about a home that already sold.

02 · Price drops

Price-drop trigger

A drop of 3,000 EUR or more fires a priority message within the send window, followed by a valuation offer 24 hours later. Relistings get their own message.

03 · Area news

News that could move prices in the area

Scans 22 Spanish news outlets for each town and the province, looking for housing news that could affect prices where the seller lives. An AI judge keeps only what matters, writes a one-line impact note, and queues it as a message.

04 · Timed sequence

Four-step follow-up over 80 days

Opener on day 2, then follow-ups at days 12 to 18, 42 to 50 and 72 to 80. Every step is a Meta-approved template with the seller's details filled in.

05 · AI reply routing

Positive, neutral, negative, valuation

OpenAI classifies each reply. Positive: opportunity, task and instant WhatsApp alert to the agent. Neutral: friendly keep-alive. Negative: goodbye, DND, permanent stop.

06 · Instant valuation

Valuation PDF on request

If the seller asks what their home is worth, the system sends a holding reply, requests an automated valuation, and delivers the PDF report back in the same WhatsApp thread.

07 · Territories

Zone to agent routing

Each town maps to an agent. Leads, alerts and opportunities are owned by the right person from the first message.

08 · Monitoring

Reconcile, heartbeat, usage email

Daily reconciliation against the data provider, a keep-alive for the database, a Monday email with event counts and running costs, and one error handler for everything.

09 · Agent's own number

WhatsApp coexistence

Messages go out from the agent's existing WhatsApp number through the Business API, so sellers reply to a real person, not a bot line.

Architecture

How it fits together

Architecture diagram: property data feed to n8n intake, Supabase, n8n scheduler, GoHighLevel and WhatsApp, with the reply router branching to positive, valuation, neutral and negative outcomes

Scheduled side workflows: area news scan (22 outlets, Mon and Thu), zone statistics (weekly), provider reconcile (daily and every 30 min), database heartbeat (every 4 h), weekly usage and cost email, central error handler.

n8n

15 workflows, one instance

Every moving part runs in n8n Cloud: intake, scheduling, sending, reply routing, valuations, news, reconciliation and monitoring. Each workflow is named, versioned and published separately so the client can see exactly what runs and when.

  • 367 production executions at the time of capture, 0.8% failure rate
  • Average run time 0.81 seconds
  • Errors route to one central error-handler workflow
n8n overview page listing the RADAR workflows
Workflow list: every workflow named and published separately
n8n execution log with successful runs
Execution log: every run visible to the client
n8n · Intake and scheduling

Listings in, sends queued

The intake workflow verifies the HMAC signature on every webhook, drops duplicates, stores a snapshot of the property, matches it to an agent territory and creates the lead in the CRM. Price drops, relistings and withdrawn listings update the same record. The scheduler runs every weekday morning, expires stale events, picks who is due, computes a send slot inside the allowed windows and hands each lead to the send workflow.

  • Duplicate webhooks answered with 200 and dropped before any write
  • Listings without a Spanish mobile number, and business transfers, never become leads
  • Each lead gets at most one slot per day, inside the agreed hours
n8n intake workflow canvas
Intake workflow: signature check, dedupe, snapshot, territory lookup, CRM upsert
n8n scheduler workflow canvas
Scheduler workflow: weekday 09:30, pick sends, compute slot, hand off
n8n · AI reply routing

Every reply gets read

When a seller answers, GoHighLevel posts the message to n8n. An OpenAI classifier sorts it into positive, neutral, negative or valuation request, and each branch does something different: creates an opportunity and alerts the agent, keeps the sequence alive, or sends a polite goodbye and sets do-not-disturb. Valuation requests call an automated valuation model, fetch the PDF report and deliver it back inside the same WhatsApp thread.

n8n reply router workflow with four branches
Reply router: three-way classification plus valuation branch
n8n valuation workflow
Valuation workflow: holding reply, AVM request, opportunity, task, agent alert
GoHighLevel

The CRM layer

GoHighLevel holds the contacts, pipeline and WhatsApp channel. Three published workflows do the CRM-side work: one fires the right approved template when n8n applies a send tag, one forwards every inbound reply to the router, and one alerts the agent the moment a lead turns hot.

  • Six-stage pipeline from new lead to mandate won
  • One template branch per message variant, all tagged and tracked
  • Send tag removed after each message so nothing fires twice
GoHighLevel workflow folder with three published workflows
Workflow folder: all three published
GoHighLevel send workflow with one branch per template
Send workflow: one branch per approved template
GoHighLevel agent alert workflow
Agent alert workflow: the human handoff
WhatsApp template list, all eleven active
11 Spanish WhatsApp templates, all approved by Meta and active
Guardrails

Built to not get banned

Outreach systems fail when they are too aggressive. Every limit here is enforced in the database and the scheduler, not left to a prompt.

WhatsApp Business account approved and connected
WhatsApp Business account: approved and connected on the agent's number

Max 11 messages per seller

The full sequence is capped. After that the lead is parked, never spammed.

One message per day

No seller ever receives two messages in the same day, whatever the trigger.

12-day silence rule

No reply for 12 days means the sequence stops on its own.

Max 5 first messages per day

New conversations are rate-limited so the number warms up safely.

Send windows only

Monday to Friday, 10:00 to 13:45 and 17:00 to 19:45 local time. Replies to sellers go out immediately, any day.

Name guard and opt-out

Messages only use a name when one is confirmed. Negative replies set DND immediately.

Supabase · Postgres

One source of truth

Nine tables on Supabase hold every property snapshot, lead, scheduled event, sent message and valuation. The CRM stores the conversation; Postgres stores the state. That split is what makes the limits enforceable and the reporting honest.

  • Raw webhook events kept for replay and audit
  • Idempotency keys on valuation requests
  • Territory table maps each zone to its agent
Supabase table list
Nine tables
Supabase schema diagram
Schema: properties, leads, events, messages, valuations, territories
In production

Live, measured, maintained

The system went live on 27 October 2026 and is in its first weeks of production. The numbers here are straight from the n8n instance at the time of writing, not projections.

Delivered: system design, database schema, 15 n8n workflows, 3 GoHighLevel workflows, WhatsApp Business API setup and template approval, AI classification and news-judging prompts, the valuation flow, monitoring, and full technical documentation the client can hand to any engineer.

367
production executions so far
0.8%
failure rate across all workflows
0.81s
average run time
100%
of 11 WhatsApp templates approved by Meta
Stack

n8n Cloud · GoHighLevel · Supabase

Plus OpenAI for classification and news judging, Tavily for news search, a property-data API with an automated valuation model, and the WhatsApp Business API.

Handoff

Documented for the next engineer

Architecture, workflow-by-workflow notes, database schema, integration contracts, deployment and operations runbook.

Next

Built to add agents and towns

New territories are rows in a table. New agents are a CRM user and an alert contact. No workflow changes needed.

What we would tell you

Three things we learned

01
The LLM is the small part.
It classifies replies, summarises them and judges news. The agent is everything around it: rules, state, scheduling, retries.
02
Get the templates approved before you build the sequence.
Meta decides what you may say. Design around that.
03
State in Postgres, conversations in the CRM.
That split is what makes "max 11 messages" a fact instead of a hope.

The full case study as a PDF

The full write-up with the screenshots above, formatted for printing or forwarding. Client details are hidden in the PDF too.

Download the PDF

Need a lead engine, a voice agent or a CRM build that runs on its own?

Tell us what you are trying to automate or move. We will say what fits, what does not, and what it would cost.

Book a free 15-minute call
More case studies
Case study 02
Keap to GoHighLevel migration for Fresh Start Health Retreat
8,000+ contacts deduplicated and cleaned · 45,750 logged API calls, 0 rate limits · 4 wks from hire to Keap switched off · 5.0 Upwork review plus a video testimonial
Case study 03
Landing page rebuild in the GoHighLevel funnel builder
2 program pages rebuilt, two brands · 4 funnel steps each, call to booking · 3 custom code blocks, all documented · 7 wks from scope to owner sign-off
Case study 04
GoHighLevel agency build for an energy-sector marketing agency
1,592 newsletter sign-ups processed · 8 sub-accounts in one agency · 7 lead automations for a contractor · 5.0 review from the agency that brought us in
Case study 05
AI chat agent on WhatsApp and Instagram for a Pilates studio
3,279 conversations handled · 2,644 AI replies delivered · 465 message bursts batched into one reply · 3 studio locations routed automatically
Case study 06
Bilingual AI voice agent on Retell that books into GoHighLevel
2 languages, matched to the caller · 0.8-1.3 s model latency · $0.14 per minute to run · 5 fields extracted after every call
Case study 07
Multi-agent AI voice system on Retell, n8n, Supabase and GoHighLevel
46+ client sub-accounts on one build · 1.49M+ records behind the system · 5 min from a dropped call to an AI callback · 10 call outcome categories
Case study 08
AI front desk GoHighLevel snapshot a US platform resells to home-service businesses
26 workflows live on the first client · ~1 hr to deploy the next client · 25 s from missed call to text-back · 1st attempt: A2P approved
Book a free callhello@olventra.comWhatsApp usHire us on Upwork