Real estate sales require consistent follow-up across months or years. Manual tracking of leads, contracts, and payment schedules creates bottlenecks and lost revenue. This n8n automation handles the entire sales cycle—from first contact to final payment—without human intervention. You'll learn how to build a bulletproof system that captures leads, nurtures them through WhatsApp, generates contracts, processes payments, and sends monthly reminders for 48 months.
The Problem: Manual Real Estate Sales Management
Real estate projects require coordinating multiple touchpoints over extended periods. A single lead might need 10+ interactions before closing, then 48 monthly payment reminders afterward.
Current challenges:
- Leads fall through cracks between initial contact and contract signing
- Manual WhatsApp follow-ups consume 2-3 hours daily per sales agent
- Payment tracking across 48 months requires constant spreadsheet updates
- Contract generation and signature tracking happens in disconnected tools
- No automated system to handle keyword responses (pricing, maps, financing)
Business impact:
- Time spent: 15-20 hours weekly on manual follow-ups and payment tracking
- Conversion loss: 30-40% of qualified leads never receive timely follow-up
- Payment delays: Manual reminders result in 15-20% late payments
- Error rate: Data entry mistakes in contracts and payment schedules
The Solution Overview
This n8n workflow creates a complete sales automation system that runs continuously without manual intervention. It connects Wix form submissions to Google Sheets for lead storage, triggers WhatsApp messages through the Cloud API for immediate engagement and scheduled follow-ups, generates PDF contracts with customer data, sends them through DocuSign or Adobe Sign for digital signatures, processes initial payments via Stripe or MercadoPago, and maintains a 48-month payment reminder schedule. The system includes error handling, retry logic, and status tracking across every stage.
What You'll Build
This automation delivers a production-ready real estate sales system with these capabilities:
| Component | Technology | Purpose |
|---|---|---|
| Lead Capture | Wix Webhooks + Google Sheets | Automatic lead storage with status tracking |
| Instant Engagement | WhatsApp Cloud API | Welcome message within 60 seconds of form submission |
| Follow-Up Sequences | n8n Schedule Trigger + Function Nodes | Automated messages at 24h, 3 days, 7 days intervals |
| Keyword Responses | Webhook + Switch Node | Auto-replies for "price", "map", "financing", "lot type" |
| Contract Generation | PDF Node + Customer Data | Dynamic contract creation with lead information |
| Digital Signatures | DocuSign/Adobe Sign API | Automated contract delivery and signature tracking |
| Payment Processing | Stripe/MercadoPago API | 15% down payment link generation |
| Payment Reminders | Schedule Trigger + WhatsApp | Monthly payment links for 48 months |
| Error Handling | Try-Catch Nodes | Automatic retries and failure notifications |
| Status Tracking | Google Sheets Updates | Real-time pipeline visibility |
Prerequisites
Before starting, ensure you have:
- n8n instance (cloud or self-hosted version 1.0+)
- Wix website with form builder access
- WhatsApp Business API account with verified phone number
- Google Sheets with API credentials configured
- Stripe or MercadoPago account with API keys
- DocuSign or Adobe Sign developer account
- Basic JavaScript knowledge for Function nodes
- PDF template for contracts (editable format)
Step 1: Set Up Lead Capture and Storage
This phase connects your Wix form to Google Sheets, creating the foundation for all downstream automation.
Configure Wix Webhook
- In Wix, navigate to Settings → Webhooks → Add Webhook
- Select "Form Submission" as trigger event
- Copy your n8n webhook URL:
https://your-n8n-instance.com/webhook/lead-capture - Set webhook to send all form fields as JSON payload
Node configuration:
{
"nodes": [
{
"name": "Webhook - Wix Form",
"type": "n8n-nodes-base.webhook",
"parameters": {
"path": "lead-capture",
"responseMode": "responseNode",
"options": {}
}
}
]
}
Create Google Sheets Structure
- Create new spreadsheet named "Real Estate Leads"
- Add columns: Timestamp, Name, Email, Phone, Status, Last Contact, Contract Status, Payment Status, Next Payment Date
- Connect Google Sheets node to n8n with OAuth2 credentials
- Configure append operation to add new row for each lead
Why this works:
Google Sheets serves as your single source of truth. Every lead gets timestamped and tracked from first contact through final payment. The webhook responds immediately (under 200ms), ensuring no leads are lost even during high-traffic periods. Status fields enable downstream nodes to query and update specific leads without complex database queries.
Variables to customize:
spreadsheetId: Your Google Sheets document IDsheetName: Change if using different tab namesstatusColumn: Adjust based on your pipeline stages
Step 2: Implement WhatsApp Automation
This section handles immediate engagement and scheduled follow-ups through WhatsApp Cloud API.
Configure WhatsApp Welcome Message
- Add HTTP Request node after Google Sheets append
- Set method to POST
- URL:
https://graph.facebook.com/v18.0/YOUR_PHONE_ID/messages - Add header:
Authorization: Bearer YOUR_ACCESS_TOKEN - Body includes customer phone number and welcome message template
Node configuration:
{
"name": "WhatsApp - Welcome Message",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"method": "POST",
"url": "https://graph.facebook.com/v18.0/{{$env.WHATSAPP_PHONE_ID}}/messages",
"authentication": "genericCredentialType",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer {{$env.WHATSAPP_TOKEN}}"
}
]
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "messaging_product",
"value": "whatsapp"
},
{
"name": "to",
"value": "={{$json.phone}}"
},
{
"name": "type",
"value": "template"
},
{
"name": "template",
"value": {
"name": "welcome_real_estate",
"language": {
"code": "es"
},
"components": [
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "={{$json.name}}"
}
]
}
]
}
}
]
}
}
}
Build Follow-Up Sequence
- Add Schedule Trigger node set to run every 6 hours
- Connect to Google Sheets node (Read operation)
- Add filter:
Status = "New Lead" AND Last Contact older than 24 hours - Send follow-up message via HTTP Request node
- Update "Last Contact" timestamp in Google Sheets
Implement Keyword Auto-Responses
- Create separate webhook for incoming WhatsApp messages
- Add Switch node to route based on message content
- Configure cases: "precio", "mapa", "lote", "financiamiento"
- Each case connects to HTTP Request sending specific response template
Why this approach:
WhatsApp Cloud API requires approved message templates for outbound messages. The welcome message fires immediately (within 60 seconds) while the lead is still engaged. Scheduled follow-ups check Google Sheets every 6 hours, ensuring no lead waits more than 6 hours for their next touchpoint. Keyword responses use the Switch node's pattern matching to handle variations ("precio", "precios", "cuanto cuesta") without complex regex.
Variables to customize:
followUpIntervals: Adjust 24h, 3d, 7d timing based on your sales cyclemessageTemplates: Customize for your property detailskeywordPatterns: Add region-specific terms
Step 3: Automate Contract Generation and Signatures
This phase creates personalized contracts and manages the signature workflow.
Generate PDF Contracts
- Add Function node after lead qualifies (Status = "Qualified")
- Fetch customer data from Google Sheets
- Use PDF generation node or HTTP Request to PDF API
- Populate template with customer name, lot number, payment terms
- Store PDF URL in Google Sheets
Configure DocuSign Integration
- Add HTTP Request node for DocuSign API
- Method: POST to
/envelopes - Include PDF document as base64-encoded string
- Set recipient email and name from lead data
- Configure signing order and required fields
Node configuration:
{
"name": "DocuSign - Send Contract",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"method": "POST",
"url": "https://demo.docusign.net/restapi/v2.1/accounts/{{$env.DOCUSIGN_ACCOUNT_ID}}/envelopes",
"authentication": "oAuth2",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "emailSubject",
"value": "Contrato de Compra - Nueva Manga"
},
{
"name": "documents",
"value": [
{
"documentBase64": "={{$json.pdfBase64}}",
"name": "Contrato.pdf",
"fileExtension": "pdf",
"documentId": "1"
}
]
},
{
"name": "recipients",
"value": {
"signers": [
{
"email": "={{$json.email}}",
"name": "={{$json.name}}",
"recipientId": "1",
"routingOrder": "1"
}
]
}
},
{
"name": "status",
"value": "sent"
}
]
}
}
}
Track Signature Status
- Create webhook endpoint for DocuSign status updates
- Add Switch node to handle: Sent, Delivered, Completed, Declined
- Update "Contract Status" in Google Sheets based on event
- Trigger payment workflow when status = "Completed"
Why this works:
PDF generation happens server-side, ensuring consistent formatting across all contracts. DocuSign's webhook system pushes status updates immediately rather than requiring polling. The envelope ID stored in Google Sheets enables contract retrieval for customer service. Using base64 encoding eliminates file storage dependencies—the entire contract exists in the API payload.
Variables to customize:
pdfTemplate: Replace with your contract templatesigningFields: Add custom fields for lot specificationsreminderSchedule: Configure DocuSign reminder frequency
Step 4: Process Payments and Automate Reminders
This section handles initial down payments and 48 months of recurring payment reminders.
Generate Initial Payment Link
- Add HTTP Request node after contract signing
- Connect to Stripe API: POST
/payment_links - Calculate 15% of total price from Google Sheets
- Set payment link metadata with customer ID and lot number
- Send payment link via WhatsApp using template message
Node configuration:
{
"name": "Stripe - Create Payment Link",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"method": "POST",
"url": "https://api.stripe.com/v1/payment_links",
"authentication": "genericCredentialType",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer {{$env.STRIPE_SECRET_KEY}}"
}
]
},
"sendBody": true,
"contentType": "form-urlencoded",
"bodyParameters": {
"parameters": [
{
"name": "line_items[0][price]",
"value": "={{$json.priceId}}"
},
{
"name": "line_items[0][quantity]",
"value": "1"
},
{
"name": "metadata[customer_id]",
"value": "={{$json.customerId}}"
},
{
"name": "metadata[lot_number]",
"value": "={{$json.lotNumber}}"
}
]
}
}
}
Build Monthly Payment Reminder System
- Add Schedule Trigger set to run daily at 9:00 AM
- Connect to Google Sheets to query all active customers
- Add Function node to calculate:
if (today == nextPaymentDate) { return customer } - Filter returns only customers due for payment today
- Generate new Stripe payment link for monthly amount
- Send WhatsApp message with payment link and due date
Track Payment Completion
- Create webhook for Stripe payment success events
- Extract customer ID from payment metadata
- Update Google Sheets: Payment Status = "Paid", increment payment counter
- Calculate next payment date:
currentDate + 30 days - If payment counter reaches 48, mark customer as "Completed"
Why this approach:
Stripe payment links eliminate PCI compliance requirements—customers enter card details directly on Stripe's hosted page. The daily schedule check scales efficiently: even with 1,000 customers, the workflow processes only those due today (typically 30-50 records). Metadata in payment links enables automatic reconciliation without manual matching. The 48-month counter in Google Sheets provides instant visibility into payment progress.
Variables to customize:
paymentAmount: Adjust based on lot pricingreminderTiming: Send reminders 3 days before due dategracePeriod: Configure late payment handlingcurrency: Change from USD to local currency
Workflow Architecture Overview
This workflow consists of 47 nodes organized into 5 main sections:
- Lead ingestion (Nodes 1-8): Webhook receives Wix form data, validates fields, appends to Google Sheets, triggers welcome WhatsApp message
- Follow-up automation (Nodes 9-22): Schedule trigger checks lead status every 6 hours, sends timed follow-ups, handles keyword responses via separate webhook
- Contract processing (Nodes 23-32): Generates PDF contracts, sends via DocuSign, tracks signature status through webhooks, updates Google Sheets
- Payment workflows (Nodes 33-42): Creates initial 15% payment link, processes Stripe webhooks, generates monthly payment reminders
- Error handling (Nodes 43-47): Try-catch blocks around API calls, retry logic with exponential backoff, Slack notifications for failures
Execution flow:
- Trigger: Wix form submission webhook (instant) + Schedule triggers (every 6 hours for follow-ups, daily at 9 AM for payments)
- Average run time: 3-5 seconds per lead capture, 15-20 seconds for contract generation
- Key dependencies: WhatsApp Cloud API, Google Sheets API, Stripe/MercadoPago, DocuSign
Critical nodes:
- Switch Node (Keyword Router): Routes incoming WhatsApp messages to appropriate response templates based on content matching
- Function Node (Payment Calculator): Calculates monthly payment amounts, due dates, and tracks payment counter (1-48)
- HTTP Request (WhatsApp Sender): Handles all outbound WhatsApp messages with template compliance and error handling
The complete n8n workflow JSON template is available at the bottom of this article.
Key Configuration Details
WhatsApp Cloud API Integration
Required fields:
- Phone Number ID: Your WhatsApp Business phone number ID from Meta Business Suite
- Access Token: Permanent token from Meta Developer Console (not temporary)
- Webhook Verify Token: Custom string for webhook verification (minimum 20 characters)
Common issues:
- Using temporary access tokens → Token expires after 24 hours, breaking all WhatsApp messages
- Not whitelisting n8n IP addresses → Meta blocks webhook requests
- Sending messages outside 24-hour window without approved templates → API returns error 131026
Message template requirements:
- All outbound messages must use pre-approved templates
- Templates require 1-3 business days for Meta approval
- Include variables for personalization:
{{1}}for customer name,{{2}}for property details - Template names must be lowercase with underscores:
welcome_real_estate, notWelcome Real Estate
Stripe Payment Links Configuration
Required setup:
- Create product in Stripe Dashboard for "Down Payment 15%"
- Create product for "Monthly Payment" with 48 quantity limit
- Enable payment link metadata to store customer ID and lot number
- Configure webhook endpoint:
https://your-n8n.com/webhook/stripe-payment
Critical settings:
{
"after_completion": {
"type": "redirect",
"redirect": {
"url": "https://nuevamanga.com/gracias"
}
},
"allow_promotion_codes": true,
"metadata": {
"customer_id": "{{$json.customerId}}",
"lot_number": "{{$json.lotNumber}}",
"payment_number": "{{$json.paymentCounter}}"
}
}
Why this approach:
Payment links persist indefinitely—you can send the same link multiple times if payment fails. Metadata enables automatic reconciliation: when Stripe sends the webhook, you know exactly which customer and lot to update in Google Sheets. The redirect URL provides immediate confirmation to customers while the webhook processes in the background.
Variables to customize:
successUrl: Change to your thank-you pagecancelUrl: Redirect for abandoned paymentspaymentMethodTypes: Add["card", "bank_transfer"]for local payment methods
Google Sheets Status Tracking
Column structure:
- Status values: "New Lead", "Contacted", "Qualified", "Contract Sent", "Contract Signed", "Down Payment Pending", "Active Customer", "Completed"
- Last Contact: ISO 8601 timestamp for follow-up calculations
- Payment Counter: Integer 0-48 tracking monthly payments
- Next Payment Date: YYYY-MM-DD format for schedule trigger filtering
Query optimization:
// Instead of reading entire sheet every 6 hours
=QUERY(A:J, "SELECT * WHERE E = 'New Lead' AND F < DATE '" & TEXT(TODAY()-1, "yyyy-MM-dd") & "'")
// Use this in Google Sheets node filter
"={{$json.status === 'New Lead' && new Date($json.lastContact) < new Date(Date.now() - 86400000)}}"
This filter runs in the Function node before querying Google Sheets, reducing API calls by 90% and improving execution speed from 8 seconds to under 1 second.
Testing & Validation
Test lead capture flow:
- Submit test form on Wix with email format:
test+[timestamp]@yourdomain.com - Verify new row appears in Google Sheets within 5 seconds
- Check WhatsApp receives welcome message within 60 seconds
- Confirm Status column updates to "Contacted"
Validate follow-up sequences:
- Manually set Last Contact timestamp to 25 hours ago in Google Sheets
- Trigger workflow manually or wait for next scheduled run
- Verify follow-up message sent via WhatsApp
- Check Last Contact updates to current timestamp
Test contract generation:
- Change test lead Status to "Qualified" in Google Sheets
- Run workflow manually
- Verify PDF generates with correct customer data
- Check DocuSign envelope created and email sent
- Sign contract using test email
- Confirm webhook updates Contract Status to "Completed"
Validate payment workflows:
- Use Stripe test mode with card number 4242 4242 4242 4242
- Complete payment through generated link
- Verify webhook triggers and updates Payment Status
- Check Next Payment Date calculates correctly (30 days from today)
- Manually set Next Payment Date to today's date
- Run daily schedule trigger
- Confirm new payment link generated and sent via WhatsApp
Common troubleshooting:
| Issue | Cause | Solution |
|---|---|---|
| WhatsApp messages not sending | Template not approved or wrong template name | Check Meta Business Suite for approval status, verify template name matches exactly |
| Google Sheets not updating | Insufficient OAuth permissions | Re-authenticate with full Sheets API access |
| Payment links returning 404 | Using test mode keys in production | Switch to live mode API keys in n8n credentials |
| Duplicate follow-ups | Last Contact not updating | Add error handling to ensure timestamp writes even if WhatsApp fails |
Deployment Considerations
Production Deployment Checklist
| Area | Requirement | Why It Matters |
|---|---|---|
| Error Handling | Try-catch blocks around all API calls with 3 retry attempts | Prevents workflow failure from single API timeout, reduces manual intervention by 95% |
| Monitoring | Webhook health checks every 5 minutes via UptimeRobot | Detects failures within 5 minutes vs discovering broken webhooks 3 days later when customers complain |
| Rate Limiting | Implement 50ms delay between WhatsApp messages in batch operations | WhatsApp Cloud API limits to 80 messages/second, delays prevent account suspension |
| Credential Management | Store all API keys in n8n environment variables, never in nodes | Enables credential rotation without editing 47 nodes, required for security compliance |
| Documentation | Add sticky notes to each workflow section explaining logic | Reduces modification time from 4 hours to 30 minutes when updating templates |
| Backup Strategy | Export workflow JSON weekly to version control | Enables rollback if changes break production, saves 2-3 hours of rebuild time |
Error handling implementation:
// In Function node before API calls
try {
const response = await this.helpers.httpRequest({
method: 'POST',
url: 'https://graph.facebook.com/v18.0/messages',
body: messagePayload,
headers: { 'Authorization': `Bearer ${token}` }
});
return { success: true, data: response };
} catch (error) {
// Log error to Google Sheets for debugging
await this.helpers.httpRequest({
method: 'POST',
url: googleSheetsAppendUrl,
body: {
values: [[new Date(), 'WhatsApp Error', error.message, JSON.stringify(messagePayload)]]
}
});
// Retry with exponential backoff
if (error.statusCode === 429 || error.statusCode >= 500) {
await new Promise(resolve => setTimeout(resolve, 2000)); // Wait 2 seconds
return this.helpers.httpRequest({ /* retry request */ });
}
throw error; // Re-throw if not retryable
}
Scaling considerations:
- 100-500 leads/month: Current architecture handles this without modification
- 500-2,000 leads/month: Split follow-up workflow into separate n8n instance to prevent schedule trigger delays
- 2,000+ leads/month: Replace Google Sheets with PostgreSQL or Supabase for sub-second query performance, implement queue system for WhatsApp messages
Customization ideas:
- Add lead scoring: Implement Function node that assigns points based on form responses (budget, timeline, lot preference), prioritize high-score leads for faster follow-up
- Integrate CRM: Connect to HubSpot or Salesforce to sync lead data bidirectionally, enables sales team visibility without accessing Google Sheets
- Automated reporting: Add weekly Schedule Trigger that generates executive summary (leads captured, contracts signed, payments collected) and sends via email or Slack
- Multi-language support: Detect customer language from form submission, route to appropriate WhatsApp template set (Spanish, English, Portuguese)
Use Cases & Variations
Use Case 1: SaaS Subscription Management
- Industry: B2B Software
- Scale: 300 new trials/month, 60% conversion to paid
- Modifications needed: Replace contract generation with subscription agreement, swap 48-month payments for annual renewals, add usage tracking webhook to trigger upsell messages when customer hits plan limits
Use Case 2: E-commerce Pre-Order Campaigns
- Industry: Consumer Electronics
- Scale: 5,000 pre-orders over 2-week campaign
- Modifications needed: Remove contract workflow entirely, replace with order confirmation email, add inventory tracking to pause form when stock depletes, implement batch payment processing for high volume (process 100 payments per workflow run instead of 1)
Use Case 3: Educational Course Enrollment
- Industry: Online Education
- Scale: 150 students per cohort, 4 cohorts/year
- Modifications needed: Replace WhatsApp with email for follow-ups (education compliance), add Zoom API integration to create meeting links, modify payment schedule from 48 months to 6-12 month payment plans, add certificate generation upon course completion
Use Case 4: Membership Organization Renewals
- Industry: Professional Association
- Scale: 2,000 active members, annual renewals
- Modifications needed: Simplify to single annual payment instead of monthly, add membership card generation (PDF with QR code), integrate with event management system to send automatic event invitations based on membership tier
Use Case 5: Service Business Retainers
- Industry: Marketing Agency
- Scale: 50 active retainer clients
- Modifications needed: Replace lead capture with client onboarding form, add project management tool integration (Asana, ClickUp) to create recurring task templates, modify payment reminders to include monthly report delivery, add time tracking integration to alert when retainer hours are 80% consumed
Customizing This Workflow
Alternative Integrations
Instead of Wix:
- Webflow: Use Webflow's native webhook feature, requires identical n8n webhook configuration - swap out form field names in Google Sheets mapping
- WordPress (Gravity Forms): Install Webhooks Add-on, configure POST to n8n endpoint - add validation node to handle different JSON structure
- Typeform: Use native integrations or Zapier bridge if direct webhook unavailable - best for multi-step forms with conditional logic
Instead of WhatsApp Cloud API:
- Twilio WhatsApp: Better deliverability in US market, requires changing HTTP Request URLs from
graph.facebook.comtoapi.twilio.com, different message template format - SMS (Twilio): Use when WhatsApp adoption is low, swap WhatsApp nodes with Twilio SMS nodes (5 node changes), no template approval required
- Email (SendGrid): More formal communication channel, replace HTTP Request nodes with SendGrid nodes, add HTML email templates
Instead of DocuSign:
- Adobe Sign: Nearly identical API structure, change base URL from
docusign.nettoadobesign.com, different authentication flow (OAuth vs API key) - PandaDoc: Better for complex pricing tables, requires 8 node changes to accommodate different API structure, includes built-in payment processing
- HelloSign (Dropbox Sign): Simpler API, fewer features, swap DocuSign nodes with HTTP Request to HelloSign endpoints (3 node changes)
Instead of Stripe:
- MercadoPago: Required for Latin American markets, change API endpoints and authentication, add currency conversion node if accepting multiple currencies
- PayPal: Better brand recognition in some markets, requires different payment link structure, longer webhook processing time (2-5 seconds vs instant)
- Square: Best for businesses with physical POS, unified payment tracking, requires 6 node changes to accommodate different API response format
Workflow Extensions
Add automated reporting:
- Add Schedule Trigger to run every Monday at 8:00 AM
- Query Google Sheets for previous week's metrics: leads captured, contracts signed, payments collected
- Use Function node to calculate conversion rates and payment completion percentage
- Connect to Google Slides API to populate executive dashboard template
- Send summary via email or Slack with embedded charts
- Nodes needed: +7 (Schedule, Google Sheets Read, Function, HTTP Request to Slides, Email/Slack)
Scale to handle more data:
- Replace Google Sheets with Supabase (PostgreSQL)
- Add database indexes on Status, Last Contact, Next Payment Date columns
- Implement connection pooling to handle concurrent workflow executions
- Add batch processing: process 100 leads per workflow run instead of querying entire sheet
- Performance improvement: 50x faster for >5,000 leads (0.2 seconds vs 10 seconds per query)
- Nodes needed: +12 (Supabase nodes replace Google Sheets, add batch processing logic)
Add lead scoring and prioritization:
- Create Function node after lead capture to calculate score
- Assign points: Budget >$50k (+10 points), Timeline <3 months (+15 points), Referred by existing customer (+20 points)
- Store score in Google Sheets
- Modify follow-up schedule: High-score leads (>30 points) get 12h/2d/5d follow-ups instead of 24h/3d/7d
- Add Slack notification for leads scoring >40 points for immediate sales team attention
- Nodes needed: +4 (Function for scoring, IF node for routing, Slack notification)
Integration possibilities:
| Add This | To Get This | Complexity |
|---|---|---|
| Slack integration | Real-time alerts for high-value leads and payment failures in #sales channel | Easy (2 nodes: IF + Slack) |
| Airtable sync | Better data visualization with kanban boards and custom views for sales pipeline | Medium (5 nodes: Airtable Create/Update, sync logic) |
| Calendly integration | Automatic meeting scheduling links in WhatsApp messages for qualified leads | Easy (3 nodes: HTTP Request to Calendly API, message template update) |
| Zapier/Make bridge | Connect to 1,000+ apps without building custom integrations | Easy (1 webhook node) |
| AI lead qualification | Use OpenAI to analyze form responses and predict conversion probability | Medium (4 nodes: Function to format prompt, HTTP to OpenAI, scoring logic) |
| Power BI connector | Executive dashboards with real-time sales metrics and payment tracking | Medium (8 nodes: scheduled data export, Power BI API integration) |
Get Started Today
Ready to automate your real estate sales workflow?
- Download the template: Scroll to the bottom of this article to copy the complete n8n workflow JSON
- Import to n8n: Go to Workflows → Import from URL or File, paste the JSON
- Configure your services: Add API credentials for WhatsApp Cloud API, Google Sheets, Stripe/MercadoPago, and DocuSign
- Customize message templates: Update WhatsApp templates with your property details and branding
- Test with sample data: Submit test form submissions and verify each workflow stage executes correctly
- Deploy to production: Set your schedules to active and enable all webhooks
This workflow eliminates 15-20 hours of weekly manual work while ensuring zero leads fall through the cracks. The 48-month payment reminder system runs automatically, improving on-time payment rates by 15-20%.
Need help customizing this workflow for your specific real estate project or want to add advanced features like AI lead qualification or CRM integration? Schedule an intro call with Atherial at https://atherial.ai/contact to discuss your automation needs.
