💬 WhatsApp Lead Capture: When a buyer taps "Enquire" on a listing, a pre-filled WhatsApp message goes to +91 91769 95170 and DueDoor logs them as a lead with source = wodoor.
Buyer App: Mobile swipe app at listings.wodoor.com/buyer — buyers sign up via WhatsApp OTP, set preferences, swipe listings.
🏠 Real Estate Portals
📣 Ads & Digital Sources
📘
Meta Ads + WhatsApp
Connect your Facebook Ads account + WhatsApp Business in one click. Enables AI reel campaign publishing, lead tracking, and WhatsApp click-to-chat ads.
Checking…
Ad Account
—
Facebook Page
—
WhatsApp
—
🎯 Select which accounts to use
Ad Account
Facebook Page (for ad creatives)
WhatsApp Business Account
☁️ CRM Sync
🏢 Client Activity
📡 Leads by Source (All Clients)
🗺️ DueDoor Build Roadmap — What's Next
Remaining features to complete the platform
✅ Done / Just Fixed
✓ Lead pipeline with all stages
✓ WhatsApp AI chat + image send
✓ Phone number normalization
✓ Schedule visit → moves lead stage
✓ Visit Done/No Show tracking
✓ Contextual quick reply buttons
✓ Images rendering inline in chat
✓ VAPI call with lead context
🔧 To Build Next (Priority)
▸ VAPI upgrade to paid plan (remove "free trial" message)
▸ Meta App Review → go Live (msg any number)
▸ WhatsApp message templates (24h window)
▸ Razorpay token payment integration
▸ n8n webhook → auto lead import from FB ads
▸ Call transcript → auto populate wa_remarks
▸ Lead score engine (AI-based 0–100 scoring)
▸ Daily email digest for sales team
🚀 Future / Scale
▸ Multi-language AI (Hindi, Marathi support)
▸ Mobile app (PWA or React Native)
▸ Automated WhatsApp template campaigns
▸ Google Ads lead import
▸ Commission tracking for agents
▸ Property comparison sharing via WA
▸ Bulk WhatsApp broadcast (approved templates)
▸ Analytics dashboard with conversion graphs
🏢 All Clients
🏭
Select a client to assign industry
The AI messaging, pipeline stages, and action plan context will update automatically for that client's leads.
Lead
Client
Phone
Source
Status
Score
Date
🏢 Select Client to Train
Each client has their own isolated AI knowledge
0
Files Uploaded
0
Trained
0
Knowledge Chunks
—
AI Status
📁 Upload Business Documents
📂
Drop files here or click to upload
PDF, Word, TXT, CSV · Max 10MB per file
Brochures · Price lists · FAQs · Floor plans
📄 Uploaded Files
No files uploaded yet
📞 AI Voice Call Script
Persona and goals for the AI calling agent. Uses uploaded files as context.
💬 WhatsApp AI Prompt
How the AI responds on WhatsApp after the call.
⚠️ Anti-Spam Rules — Add these to your prompt:
• Never repeat the same message twice in a conversation
• When lead asks for images: immediately share from 📤 Shareable files, don't deflect
• Max 1 follow-up per 24hrs if no reply — don't spam
• Vary your messages — check conversation history before replying
🧪 Test AI Knowledge
Select a client above
Each client's AI is trained separately on their own property data
🧠
Shree Training Studio
Edit · Train voice · Test live · Deploy to RunPod
Checking pod...
AGENTS:
Loading...
Select an agent
v1
📝 Agent Prompt
Select an agent above to edit their prompt
🤖
Select an agent
Pick an agent pill above, or create a new one
🎙️ Voice Training
No custom voice
Upload voice samples to train on RunPod
🎵
Drop audio files here
MP3 · WAV · M4A · 30 sec – 3 min per file · Clear speech, no noise
Uploading...
▶ TRAINING LOG
~15 min · polls automatically
🎙️ Live Voice Chat
Select an agent to test
Click the mic — Maya will listen and respond with voice
🎵 Drop voice sample (WAV/MP3, 30s–5min) or click to upload
🎤 Processing voice sample…~35s
You can switch pages — processing continues in background
🚀 Activate for Client
Make this agent handle live outbound calls for the assigned client
● ACTIVE
📜 Training History
⚙️ System Knowledge Base (global)
▼
Create New Agent
The EQ intelligence layer is automatically shared from the global settings.
✅ AI Features Health Checklist
Real-time status of every AI feature. Green = working. Red = broken. Grey = not yet tested.
📆 Lead Engagement Schedule
Automated messages sent on specific days since first contact. Edit the message template directly.
🔔 Nudge Rules (No-Reply Logic)
How nudges work:
1. Lead sends a message → AI replies
2. If lead doesn't reply within 24 hours → Nudge #1 sent automatically
3. If still no reply after 48 hours → Nudge #2 sent
4. After 2 nudges with no response → Lead flagged as needs_manual_intervention + team notified via WhatsApp
5. Human takes over — can update stage manually from pipeline
6. When lead replies again → AI resumes conversation from current stage
📊 Engagement Stats
⚠️ Leads Needing Manual Attention
💀 100-Day Dead Leads
—
Leads with no engagement in 100 days. No further messages sent.
🏠 Site Visit Reminder Rules
Auto WhatsApp reminders sent to leads on their visit day
⚙️ How it works (v2):
• Looks at site_visits table for all visits with status = scheduled
• 🌅 Morning: Cron fires at 00:30 UTC (= 6:00 AM IST). Function checks a 6:00–6:30 AM IST window — won't re-fire accidentally later in the day (tracked via morning_reminder_sent)
• ⏰ 1-Hour: Cron runs every 5 minutes. Fires when visit_time − now is between 50–70 min (wider window to catch every 5-min tick), tracked via hour_reminder_sent
• Each reminder fires only once — duplicate-safe via DB flags
• Both messages saved to conversations table so they appear in lead chat
• Templates loaded from platform_settings.visit_reminder_morning_msg / visit_reminder_1hr_msg
🔗 n8n Webhook Configuration
Use these webhook URLs in your n8n workflows to push leads from external sources into DueDoor automatically. Each platform gets its own endpoint.
📋 How to Connect n8n
Step 1: In n8n, create a new workflow for each lead source (Meta Ads, MagicBricks, 99acres)
Step 2: Add an HTTP Request node pointing to the webhook URL above for the correct client
Step 3: Map the fields: name, phone, email, source, budget, property from the lead source to DueDoor fields
Step 4: Test by submitting a test lead — it should appear instantly in that client's pipeline
Step 5: Set the workflow to trigger automatically on new lead notifications from each source
📡 Supported Lead Sources
📘
Meta Ads
✓ Webhook ready
🏠
MagicBricks
✓ Webhook ready
🔍
99acres
✓ Webhook ready
🏘️
Housing.com
✓ Webhook ready
🔑 Platform API Keys
Store all your API credentials securely here. These are saved to Supabase and used by your n8n automations and AI agents.
🤖 AI Engine
Select which AI engine to use for the Knowledge Base, AI calling, and WhatsApp replies. Both keys are saved — only the active one is used.
VAPI and ElevenLabs are ditched. Keys stored silently for backup.
Twilio Account SID
Twilio Auth Token
Twilio Phone Number
RunPod — Maya's Voice Pod
RunPod API Key
RunPod Pod ID
Maya TTS URL
🎙️ Test Maya's Voice — hear her before you go live
Type anything → click Call → Shree calls your number and speaks it now.
CALL TO (your number)
FALLBACK VOICE (if pod cold)
💳 Payments
Razorpay Key ID
Razorpay Secret
⚠️ Register Webhook in Razorpay Dashboard
Go to Razorpay → Settings → Webhooks and add: https://ultfiieoqalvuptdlghr.supabase.co/functions/v1/razorpay-webhook
Subscribe to: payment.captured and payment.failed
Secret: use your Razorpay Secret (same as above)
💳 Payment Ledger — live from Razorpay API
📧 Email
Email Sender Domain
🔗 Automation
n8n Webhook Base URL
🔒 All API keys are stored encrypted in your Supabase database. They are never exposed to client users.
📊 API Connection Status
💳 Payment Ledger
Live from Razorpay API — real-time payment data
—
Captured
—
Total Revenue
—
Pending
—
Failed
Date
Contact
Description
Amount
Currency
Method
Status
Payment ID
Loading…
🧪
Razorpay Gateway Test
This fires a real ₹3 charge against your live Razorpay key. If it works here, it works for every client. If it fails, you'll see exactly why — before any client tries to pay.
⚙️ Gateway Configuration Check
Razorpay Key IDChecking…
Razorpay SecretChecking…
razorpay-order functionChecking…
razorpay-webhook functionChecking…
Webhook registered in Razorpay?⚠️ Manual — check Razorpay dashboard
Choose a test plan
Both charge ₹3 — testing that order creation, checkout, and payment logging all work correctly.
Pro Plan Test
₹3/test
Simulates a Pro plan monthly payment. Tests the full order → checkout → log cycle.
✓ SELECTED
Business Plan Test
₹3/test
Simulates a Business plan payment. Tests same cycle with different plan metadata.
Click to select
A real ₹3 will be charged to verify the gateway. You can refund it from Razorpay dashboard.
📋 Recent Test Payments
Loading…
📊 Platform Stats
🗄️ Supabase Storage Buckets
These storage buckets must exist in your Supabase project for file uploads to work.
⚙️ Platform Configuration
☁️ Cloudflare R2 — Media CDN
Images must be hosted on a Meta-approved CDN to be delivered via WhatsApp. Supabase storage URLs are blocked by Meta. R2 fixes this permanently.
Check Twilio creds, pod status, recent calls, and voice identity.
🎙️ Voice ID Reference — What you've been hearing
What you hear
Voice / Source
Latency
Status
✅ Fast + good
Maya RunPod TTS — warm pod, pre-genned
~200ms on pickup
ACTIVE ✅
🐢 Slow + robotic
Polly.Aditi — Twilio <Say> fallback
Instant — but not Shree
FALLBACK ONLY
❌ Gone
VAPI / ElevenLabs
—
DITCHED
💡 Why you heard "slow + robotic": When Maya's RunPod pod is cold, pre-synthesis times out after 7s. v25 of call-handler now falls back to Twilio <Say> immediately so the lead never hears silence — they hear Polly.Aditi say the greeting. Maya's audio continues synth-ing for the rest of the conversation.
📋 Recent Maya Calls
📋 Diagnostic Results
🔑 Update WhatsApp Token
⚠️ How to get a permanent (non-expiring) token:
1. Go to Meta Business Suite → Settings → System Users
2. Create a System User (Admin role)
3. Assign the Duedoor WhatsApp app to that system user
4. Click Generate Token → select scopes: whatsapp_business_messaging + whatsapp_business_management
5. Set expiry to Never → copy the token below
Current token: Loading...
📱 Test WhatsApp Message (Direct Meta API)
Sends a message directly via Meta Graph API — bypasses your Edge Function entirely. If this works but the bot doesn't reply, the bug is in your Edge Function phone formatting.
Format: 918218627919 (no + or spaces)
🔄 Lead Deduplication
Duplicate phone numbers cause the WA function to match the wrong lead (no tag → generic response).
⚠️ Meta reviews applications manually. Approval typically takes 2–7 business days. You'll be notified via email.
Webhook & API Config
Set these in your Meta Developer Console → WhatsApp → Configuration
Callback URL
Verify Token
—
Total Contacts
—
WA Opted-In
—
Contact Lists
—
From Pipeline
📋 Contact Lists
Loading…
Sync from Pipeline
Select a list
Or import/create a new one
Name
Phone
Email
Source
WA
Added
Actions
Select or create a contact list to get started
0 selected
💬
Loading WhatsApp account…
Checking connection status
● HIGH QUALITY
10K / 24h LIMIT
Templates Active
—
Approved templates
Broadcasts Sent
—
all time
Avg Delivery Rate
—
across campaigns
Active Automations
—
rules running
Recent Broadcasts
Name
Total
Sent
Delivered
Read
Failed
Status
new_inventory_launch
1,842
1,241 (67%)
1,198 (65%)
682 (37%)
601 (33%)
COMPLETED
site_visit_reminder
540
490 (91%)
477 (88%)
312 (58%)
50 (9%)
COMPLETED
token_deadline_alert
230
221 (96%)
218 (95%)
180 (78%)
9 (4%)
COMPLETED
price_drop_fomo
3,100
⏳ Sending…
—
—
—
IN PROGRESS
free_pickup_offer
720
Scheduled
—
—
—
SCHEDULED
Template Health
APPROVED
9
PENDING REVIEW
2
PAUSED
3
REJECTED
0
✅ Quality Score
94%
WhatsApp quality metric — healthy
Message Templates
Broadcast Campaigns
Total Sent
—
All Campaigns
Campaign Name
Template
Total
Sent
Delivered
Read
Failed
Status
Date
Actions
Rule-Based Automations
Trigger WhatsApp messages automatically based on keywords, time, lead stage & more. No AI involved — pure rules.
🟢Engine runs every 5 min via pg_cron. Use Run Now to trigger instantly.
Contacts
Manage, tag, and broadcast to your contacts
0 contacts
0 selected
Name
Company
Phone
Email
Tags
Source
Added
Create Message Template
0 / 1024 characters
📱 Live Preview
Your message will appear here…
10:30 AM ✓✓
New Broadcast Campaign
If selected, {{1}} in template will be filled with property name & price
Estimated recipients: —
⚡ AI Automation Builder
Describe your automation in plain English — AI builds the flow
Describe your automation
⚡
Describe your automation above and click Generate
AI will create a visual trigger → condition → action flow
🎬 Reel Generatingqueued
—
Waiting to start…
1
Select Property
2
AI Script & Reel
3
Campaign Setup
4
Launch & Track
🏠 Your Properties
Select a listing to generate a reel for
SELECTED ✓
—
Price
—
Config
—
Photos
🗣️ Reel Language — numbers & prices always in English
Kannada 70%English 30%
🎵 Background Music — 25% vol, fades in/out
🎨 Creative Type
🎬
Select a property to begin
AI will craft a script + video prompt
🎙️
Host Photo — AI Presenter
Upload once. Used for all reels. Tip: tall portrait (9:16), above waist, hands free for gestures.
⏳ Checking…
👤
No photo
Upload a clear front-facing photo of your AI presenter (Shobha). Used by VACE + InfiniteTalk to place Shobha inside your property rooms and animate her lip-sync on every reel. Recommended: 512×512px, well-lit face, neutral background. Upload once, reused forever.
⏳ Uploading…
📝 Reel Script
AI-written voiceover for your female host
Shreeos is writing your script…
Script will appear here after generation
🎥 AI Video Prompt
Sent to video AI — optimised for Runway Gen-3 / Kling / Pika
Prompt will appear here after generation
✍️ Meta Ad Copy
Headline, primary text & CTA — auto-filled into Meta Ads
Ad copy will appear here after generation
📹 Upload Your Creative
MP4 video up to 500 MB — 9:16 portrait recommended
NO FILE
📁
Click or drag file here
MP4 / MOV up to 500 MB
Uploading…0%
📱 Stories & Reels Creative — 9:16 Vertical
1080×1920 · If skipped, square image used for all placements
OPTIONAL
📱
Click or drag 9:16 portrait image here
JPG / PNG — portrait orientation recommended
🎬 Reel Generation
AI generates video from property images
🎬SUPERGTXedge-tts · SadTalker · MusicGen
PENDING
🎬 SUPERGTX v2 — Wan2.1 I2V host · single Indian voice · animated B-roll · optional BGM · keyword captions. RunPod RTX A5000.
⚠️ Pod not configured
🏠
—
Select a property first
⬜
🗣️
Language
Kannada 70% + English 30%
⬜
👤
Host Photo
Checking…
⬜
Starting…
0%
This takes 3–5 minutes. You can leave this page — reel will be saved automatically.
📋
Campaign A
Meta Lead Form
LEAD GEN
Daily Budget
₹
/day
📈 Estimated Results (30 days)
—
Reach
—
Clicks
—
Leads
Targeting
📍Chennai & suburbs
👥Age 28–55 · Real Estate interest
📋Lead Form: Name, Phone, Budget range
Auto-fills: Headline, primary text, CTA button, form fields, pixel tracking, landing page URL — all from your listing data.
💬
Campaign B
WhatsApp Click-to-Chat
WHATSAPP
Daily Budget
₹
/day
📈 Estimated Results (30 days)
—
Reach
—
Clicks
—
Chats
Targeting
📍Chennai & suburbs
👥Age 25–50 · Property seekers
💬Click opens WA with pre-filled message
Auto-fills: Pre-written WA opener message, phone number, pixel event, UTM params — all hooked to your DueDoor lead pipeline.
🎯 Conversion Pixel
A new pixel will be auto-created and linked to your account — used for lead tracking across all campaigns
🎯 Targeting
📍Auto — from listing
👥Age 25–55 · Real Estate interest
AI picks optimal targeting based on property location, price band, and type.
City / Location
Min Age
Max Age
Interests (comma-separated)
Radius (km)
💳 Ad Account
Loading balance…
Webhook URL (lead capture)
Loading…
Add this to Meta App → Webhooks → leadgen subscription
Total daily budget
₹1,000/day
≈ ₹30,000/month
—
Est. Total Reach
—
Est. Clicks
—
Est. Leads
AI handles everything — no manual steps
Lead Form Campaign
Campaign ID: —
ACTIVE
0
Reach
0
Clicks
0
Leads
₹0
Spend
WhatsApp Campaign
Campaign ID: —
ACTIVE
0
Reach
0
Clicks
0
Chats
₹0
Spend
📋 Automation Log
🤖
AI Campaign Editor
Tell AI what to change — it will update your campaigns via Meta API
📊 Your Running Campaigns
Loading campaigns…
📋 Campaign History
Loading history…
—
Total Ad Spend
—
Total Leads
—
Avg ROAS
—
Total Clicks
—
Avg CPL
—
Active Ads
🔗 Meta Webhook Setup
Configure this once in your Meta App to receive real-time lead form submissions.
1. Go to Meta for Developers → Your App → Webhooks
2. Click "Add Subscriptions" → Select Page object
3. Subscribe to leadgen field
4. Paste the Callback URL and Verify Token above
5. Meta will verify the endpoint — all new leads auto-flow into DueDoor
💡 Each client's leads are auto-matched using their Meta Page ID stored in their account. Leads appear in their pipeline within seconds of form submission.
Your Services & Capabilities
These power AI-generated ad copy, DM conversations, and lead qualification across DueDoor & PhewDo.
Add Service
Checking Facebook…
Checking Instagram…
Validating token…
1Service
2Targeting
3Placements
4Structure
5Creatives
6AI Inbox
7Launch
Select Service
Pick the service you're advertising. AI will auto-generate ad copy based on the service details.
Default Copy Template — unique variants auto-generated for each ad in Step 5
Audience Targeting
Define who sees your ads. Each ad set can have different targeting for A/B testing.
✨ Suggestions from Meta's actual interest list
to
USD / day
Ad Placements
Where your ads will appear. Each placement has different creative size requirements.
Campaign Structure
Default: 1 campaign → 2 ad sets (A/B targeting) → 2 ads each. Add or remove branches below.
Creatives Library
Drag images & videos onto each ad slot below. Or click to auto-assign. Max 4 creatives per campaign.
Drag into ad slots below
Recent images & videos from your act_
Click "Fetch from Meta Ads Account" to load recent creatives.
Assign Creatives & Copy per Ad
Each ad can have unique headline/text. AI fills all variants automatically.
AI Inbox Configuration
When someone comments on your ad, the AI will DM them. Configure what info to share and collect.
Review & Launch
Review your campaign setup before going live.
Your Meta Next Campaigns
Loading…
Checking…
Checking…
Content Calendar
Click any day to schedule a post. AI-generated captions via Shreeos AI.
—
Scheduled Draft Publishing Published Failed
Loading insights...
30-Day Performance
Loading trends...
Post Performance
Loading post insights...
Recent Posts
Loading posts...
Select a post to view comments
Published Media
Loading media...
Schedule Post
🧠 Knowledge Base
Add your company knowledge here — the AI chat will use this to answer customer queries on WhatsApp
Company Information & Services
Describe your company, services offered, pricing, working hours, location, FAQs — everything the AI needs to know to answer customer questions accurately.
AI Behaviour & Tone Instructions
Set the tone, greeting style, and rules for how the AI should respond to customers.
Test Your AI
Ask a test question to see how the AI would respond based on your knowledge base.
🛠️ My Services
Add the services you offer — AI uses these to write Meta ad copy and email campaigns
💡 Suggested Services
Click any card to quickly add it as a service — tailored for your business
📧 Email Campaigns
AI designs a funnel of emails — preview, schedule, send & track via Shreeos
No sending domain connected
DNS Records to Add
Add these in your domain registrar (GoDaddy, Namecheap, Hostinger, Cloudflare, etc.)
Type
Name
Value
Status
FROM:<@domain.com>
🔍 SEO & Blog
Keyword tracking (Google Search Console), AI blog writing, WordPress auto-publish
✍️
AI Blog Command Center
Research → Write → Optimize → Publish — fully automated · English only · UAE focused
💡 AI Keyword Suggestions — click to use:
📄 Blog Preview
🌐 WordPress Connections
Connect your WordPress site using Application Password (Settings → Users → Application Passwords)
💡 GEO / AEO / LLMO / AIO Optimization Guide
🌍 GEO — Generative Engine Optimization
Make your content appear in AI-generated answers (ChatGPT, Gemini, Perplexity).
Steps: • Write authoritative, fact-dense blog posts • Use structured data / Schema.org markup • Get cited by other websites & news • Keep content fresh & regularly updated • Add FAQ sections with direct answers
🎙️ AEO — Answer Engine Optimization
Optimize for voice search & featured snippets.
Steps: • Target question-based keywords (who, what, how) • Write concise 40-60 word direct answers • Use H2/H3 headers that mirror search queries • Add HowTo and FAQ schema markup • Ensure mobile speed <2s load time
🤖 LLMO — LLM Optimization
Get recommended by ChatGPT, Claude & other LLMs.
Steps: • Build brand mentions across Reddit, Quora, LinkedIn • Create "best of" list content that LLMs reference • Publish data/stats that others cite • Maintain Wikipedia/Wikidata presence • Use clear brand entity signals across web
🔮 AIO — AI Overview Optimization
Appear in Google's AI Overviews (SGE).
Steps: • Target informational + commercial intent keywords • Write comprehensive topic clusters • Earn backlinks from high-DA sites • Match E-E-A-T signals (Experience, Expertise, Authority, Trust) • Submit to Google Search Console, monitor coverage
📅 Daily GEO/AEO Activities Checklist
Complete these every day to build AI visibility over time
🔒
Business Plan feature— Connect accounts and configure targeting freely. Actions (Start Outreach, Connect) are unlocked on Business plan.
🌐
Social Reach Out
AI bot finds your ICP on Instagram & LinkedIn → sends messages → books meetings → leads land in your pipeline
—
Requests Sent
—
Replies
—
Meetings Booked
—
New Leads
Instagram
Not connected
● CONNECTED
Connect your Instagram Business account to enable AI outreach. The bot scans hashtags, followers of competitor accounts, and post likers to find your ICP.
ICP Targeting
AI Message Template
Variables: {{name}} {{topic}} {{service}} — AI personalises each message
LinkedIn
Not connected
● CONNECTED
Connect LinkedIn to let AI scout your ICP by job title, company size, and industry — then send personalised connection requests and follow-up messages to book meetings.
💡 How to get token: Create a LinkedIn Developer App → OAuth 2.0 → get Access Token with w_member_social and r_emailaddress scopes