All modules
Module 19 · business · intermediate
Real Estate Lead Nurture
After this module you can answer every portal lead within a minute (by text and email, from the right agent, with similar listings attached) and follow up automatically until they reply.
What it does
One workflow, four entry points sharing a lead registry:
| Entry | What happens |
|---|---|
POST /webhook/re/lead or Gmail portal emails (Zillow, Realtor.com, Homes.com, Redfin) |
Parse the lead (structured JSON or the raw email), detect buyer/renter/seller, timeframe and pre-approval, find the listing they asked about plus up to 3 similar ones, dedupe (30 days), assign an agent round-robin, then send an instant SMS (Twilio) and email (Gmail) from that agent and schedule a day 1/3/7 drip |
Hourly schedule or POST /webhook/re/drip/run |
Send drip emails that are due (check-in → listings → "should I keep you on my list?"), retrying failures next run. now can be injected for testing |
POST /webhook/re/lead/stop |
Stop the drip when the lead replies, books or opts out |
GET /webhook/re/lead/status?email=… |
Inspect one lead's record |
Demo data: 8 Austin-area listings and 2 agents in Settings. ?dry_run=true on a lead returns the plan without saving or sending.
Flow
New Lead API / Portal Lead Emails ─┐
Drip Every Hour / Drip Run API ────┼→ Settings → Route ─new lead→ Parse → Has Contact? → Match Listings → Register (dedupe, round robin, drip) → Compose → Dry Run?
Stop Lead API ─────────────────────┤ │ └→ Text Them? → Twilio SMS → Gmail → Report → respond + alert agent
Lead Status API ───────────────────┘ ├drip→ Find Due Messages → Send Now? → Gmail → Record Drip Results → respond (API)
├stop→ Stop Drip → respond
└status→ Lead Status → respond
Verification status (n8n 2.43.6)
- 30/30 checks without credentials: structured and raw portal-email parsing, buyer/renter/seller paths, listing matches (±20%, same city, active only), SMS length and opt-out, dedupe and round robin, drip timing at +12 h / +4 d / +8 d via injected clock, stop, 404, and send failures reported instead of crashing. Test leads are stopped at the end.
- Not run with Twilio or Gmail credentials (
WITH_CREDS=1 TEST_EMAIL=… [TEST_PHONE=…] ./test/test.sh). The raw-email parser was tested on a generic "Name:/Email:/Phone:" layout, not on real Zillow/Realtor.com emails; check one real email before relying on it.
Files
| File | Tier | Purpose |
|---|---|---|
| lesson.md | Free | Step-by-step build, compliance notes |
| workflow/starter.json | Free | Triggers, routing, parsing, listing matches |
| workflow/learner.json | Learner | Finished workflow |
| workflow/code/ | Learner | Readable copies of the Code nodes |
| exercises.md | Learner | Practice tasks |
| solutions.md | Learner | Exercise solutions |
| notes.md | Private | Learning log |
| sell/ | Private | Offer, video script, blog post |