Real Estate AI Automation System – Setup Guide
Overview
This system automates real estate agent prospecting and AI phone system provisioning through 3 n8n workflows:
- Agent Finder – Scrapes Realtor.com agents by ZIP code
- Outreach Campaign – Sends SMS/email campaigns to prospects
- AI Provisioner – Creates voice AI agents for interested prospects
π§ Environment Variables
Add these to your n8n environment settings:
Required Variables
# Google Sheets
SHEET_ID=1abc123xyz789_your_google_sheet_id
# Apify (for web scraping)
APIFY_TOKEN=apify_api_Ra6a2t4PN5yNSQgjGfJawUPmfr2rL60QbaSS
# Twilio (for SMS)
TWILIO_SID=ACxxxxxxxxxxxxxxxxxxxx
TWILIO_FROM=+15551234567
# SendGrid (for email)
SENDGRID_TOKEN=SG.xxxxxxxxxxxxxxxxxx
FROM_EMAIL=noreply@yourcompany.com
FROM_NAME=Xtream Solutions
# Voice AI Platform
VOICEAI_BASE_URL=https://api.yourvoiceai.com
VOICEAI_API_KEY=vapi_xxxxxxxxxxxxxxxxxx
# Telecom Provider (for phone numbers)
TELCO_BASE_URL=https://api.yourtelco.com
TELCO_API_KEY=tk_xxxxxxxxxxxxxxxxxx
# Webhooks
VOICE_WEBHOOK_URL=https://your-n8n-host.com/webhook/re/voice/inbound
# Optional
FALLBACK_EMAIL=support@yourcompany.com
π Google Sheets Setup
Create a Google Sheet with these exact headers:
Sheet 1: “agents”
id | name | phone | email | website | market | sales12m | source | url | contacted | status | notes | created_at
Sheet 2: “outreach”
agent_id | channel | body | status | error | ts | phone | email | name
Important Notes:
- Sheet names must be exactly
agents
andoutreach
- Headers must match exactly (case-sensitive)
- Make the sheet publicly accessible or set up Google Sheets API credentials in n8n
π Workflow Installation
Step 1: Import Workflows
- In n8n, go to Workflows β Import from file
- Import all 3 JSON workflows provided
- Save and activate each workflow
Step 2: Configure Credentials
Set up these credentials in n8n:
- Google Sheets (n8n creds) – OAuth or Service Account
- Twilio Basic Auth – Username: TWILIO_SID, Password: TWILIO_TOKEN
- Any additional API credentials for your Voice AI and Telecom providers
Step 3: Test Webhooks
Each workflow creates webhook endpoints. Note the URLs:
- Agent Finder:
https://your-n8n-host/webhook/re/agents/realtor-by-zips
- Outreach:
https://your-n8n-host/webhook/re/outreach/run
- Provisioner:
https://your-n8n-host/webhook/re/voice/provision
π Usage Examples
1. Scrape Agents by ZIP Code
POST https://your-n8n-host/webhook/re/agents/realtor-by-zips
{
"zip_codes": ["32926", "32927", "32934", "32935"],
"market": "Brevard County"
}
Response:
{
"found": 47,
"inserted": 12,
"sample": [
{
"id": "a1b2c3d4e5f6...",
"name": "John Smith",
"phone": "3214567890",
"email": "john@realty.com",
"market": "Brevard County",
"source": "realtor.com"
}
]
}
2. Run Outreach Campaign
POST https://your-n8n-host/webhook/re/outreach/run
{
"limit": 25,
"market": "brevard county",
"brand": "Xtream Solutions",
"bookingUrl": "https://calendly.com/yourcompany/demo"
}
Response:
{
"campaign_complete": true,
"total_agents": 25,
"sms_sent": 23,
"emails_sent": 25,
"timestamp": "2024-09-07T10:30:00Z"
}
3. Provision AI Agent (when someone replies “YES”)
POST https://your-n8n-host/webhook/re/voice/provision
{
"agent_id": "a1b2c3d4e5f6..."
}
Response:
{
"success": true,
"agent_id": "a1b2c3d4e5f6...",
"agent_name": "John Smith",
"ai_agent_id": "vapi_agent_123",
"phone_number": "+13214567890",
"setup_complete": true,
"message": "AI agent provisioned successfully!"
}
π Typical Workflow
- Scrape Agents: Run Agent Finder with target ZIP codes
- Campaign Launch: Run Outreach on new/uncontacted agents
- Monitor Responses: Check SMS replies for “YES” responses
- Provision AI: When agent replies “YES”, trigger Provisioner with their
agent_id
- Follow-up: Agent receives onboarding email with setup instructions
π§ SMS & Email Templates
SMS Template (includes required opt-out)
Hey [FirstName], quick win: we set up a 24/7 AI receptionist for solo agents that answers missed calls, books showings, and emails transcripts. Most agents see +30% more captured leads. 14-day free trial. Reply YES for info. Reply STOP to opt-out.
Email Template
Subject: Stop losing Zillow/Realtor calls β 14-day AI trial
Hi [FirstName],
Solo agents lose deals to missed calls. We deploy a 24/7 voice AI that answers, qualifies, and books appointments in minutes.
Benefits:
β’ Answers every call 24/7
β’ Qualifies leads automatically
β’ Books showings in your calendar
β’ Emails you transcripts
β’ Most see +30% more captured leads
Try it FREE for 14 days β no number changes needed.
Ready to stop missing opportunities?
Best regards,
Xtream Solutions
Book a demo: https://calendly.com/yourcompany/demo
π οΈ Troubleshooting
Common Issues
Apify Task Fails:
- Verify
APIFY_TOKEN
is correct - Check if task
knowledg3~realtor-agents-by-brevard-county-zip-codes-task
exists - Ensure ZIP codes are valid Florida codes
SMS Not Sending:
- Verify Twilio credentials and from number
- Check phone number format (must include country code)
- Ensure SMS opt-out compliance
Email Failures:
- Verify SendGrid API key and from email is verified
- Check email addresses are valid format
- Monitor SendGrid activity dashboard
Google Sheets Errors:
- Ensure sheet names are exactly
agents
andoutreach
- Verify column headers match specification exactly
- Check Google Sheets API credentials
Monitoring & Logs
- Check n8n execution logs for detailed error messages
- Monitor the
outreach
sheet for campaign performance - Use Google Sheets filters to view agent status progression
π Security Notes
- Store all API keys as environment variables, never in workflow code
- Use HTTPS for all webhook endpoints
- Regularly rotate API keys
- Monitor usage to prevent abuse
- Ensure compliance with SMS/email marketing regulations
π Scaling Tips
- Use
limit
parameter in outreach to control batch sizes - Monitor API rate limits for all services
- Consider adding delays between API calls for large campaigns
- Set up alerting for failed workflows
- Regular backup of Google Sheets data
Need help? Check the n8n community forums or contact support!
Leave a Reply