Generate Property Ad
Upload a property photo and fill in details to generate a complete Facebook ad campaign.
Pipeline Progress
Image Analysis
Full analysis JSON
Ad Copy
Ad Creatives
Facebook Campaign Payload
Error
Property Website
Extract all property facts and data points from any supported property website (PropertyGuru, 99.co, etc.).
Paste HTML manually (if auto-fetch fails)
Extraction Results
Error
Switch Model
Manage AI models. Add OpenRouter models and assign them to Vision, Text, or Image tasks.
Add OpenRouter Model
Vision (Image Analysis)
Text (Ad Copy Generation)
Image (Creative Generation)
Property Extraction
Select a conversation
ConnectedTwilio Sandbox Chat
Messages and real-time backend extraction logs will appear here.Select a conversation
ConnectedMeta Cloud Chat
Messages and real-time backend extraction logs will appear here.Link Your WhatsApp Number
Enter your WhatsApp phone number to chat with Julia, your AI property marketing assistant.
Meta Ads — Advantage+
Launch Advantage+ property ad campaigns via Meta Marketing API. All campaigns are created in PAUSED status.
API Settings
Connect your Meta Business account. You need a long-lived access token from the Meta Developer Portal.
Google Sheets Integration
Auto-log every campaign to a Google Sheet. Requires a Google Cloud service account with Sheets API enabled.
Create Advantage+ Campaign
Campaign
Ad Set
Ad Creative
Ad Image (Single Image Ad)
Carousel Images (Optional)
Upload multiple images to also create a Carousel ad. Each image becomes a carousel card sharing the same headline, link, and CTA.
Campaign Creation Progress
Campaign Created Successfully
Single Image Ad Previews
Live previews from Meta — this is how your single image ad will appear across different placements.
Carousel Ad Previews
Live previews from Meta — this is how your carousel ad will appear across different placements.
Error
Twilio Integration Setup
Configure background preferences for automatic WhatsApp Ad Generation and connect to Twilio Sandbox.
Application Settings
These settings apply to automated WhatsApp background requests.
Setup Instructions
1. Sign up for a Twilio Account
Go to Twilio Console, create an account, and navigate to the Messaging -> Try it out -> Send a WhatsApp message sandbox.
2. Add your Environment Variables
Open this repository's .env file and configure the Twilio credentials:
TWILIO_ACCOUNT_SID=AC... TWILIO_AUTH_TOKEN=your_token_here TWILIO_WHATSAPP_NUMBER=whatsapp:+14155238886
3. Expose Your Local Server
Twilio needs to send webhooks over the public internet to trigger your server. Since you are developing locally, run a tunneling service like ngrok in a separate terminal:
ngrok http 3000
Add the ngrok URL to your .env file so the AI knows where its images are hosted and restart the server:
PUBLIC_URL=https://.ngrok-free.app
4. Configure Twilio Sandbox
Copy your ngrok url and append /whatsapp-webhook to it. Paste this into the "When a message comes in" webhook field inside your Twilio Sandbox settings and Save.
5. Test It!
Send your Twilio sandbox join code (e.g. join brave-tiger) to the sandbox number. Then simply paste a PropertyGuru URL into WhatsApp and hit send!
Meta WhatsApp Cloud API Setup
Direct integration with Meta's developer platform. Lower costs and higher throughput.
Application Settings (Meta)
These settings apply to automated Meta WhatsApp background requests.
Meta Configuration
Setup Instructions
1. Create a Meta App
Go to Meta for Developers, create an app, select "Other" and choose "Business" type.
2. Add WhatsApp to Your App
In the app dashboard, find and click "Set up" for WhatsApp.
3. Configure Webhooks
Go to WhatsApp -> Configuration. Copy your PUBLIC_URL (ngrok) and append /meta-webhook to it. Paste this into the "Callback URL" field. Add your "Verify Token" from above.
4. Select Webhook Fields
In the Webhook setup, click "Manage" and subscribe to the messages field.
5. Test It!
Use the test phone number provided by Meta to send a message. Make sure the recipient phone number is added to the allowlist during testing!
Property Search
Search for property listings using natural language.
Search for Singapore property listings in natural language.
Try: "Find 5 freehold condos under $2M near Orchard" or "New launch condos in Tampines with 3 bedrooms"
New Launch
Extract and manage new launch property listings for ad campaigns.
New Launch Condos
| Project Name | Property Type | Project URL | Completion Year | Developer | Total Units | Images | |
|---|---|---|---|---|---|---|---|
| No new launches added yet. | |||||||
Add New Launch
Extraction Results
Text Overlay
Ad Creatives
Ad Copy
Meta Ads Campaign
Error
AI Images
All ads generated from manual input are saved here, including uploaded and AI-generated creatives.
Generated Ads
| Project Name | Property Type | Date Generated | User | Ad Images | Ad Copy |
|---|---|---|---|---|---|
| No AI-generated ads yet. Use Generate Ad with manual input to see records here. | |||||
Ad Images
Project Database
All extracted property listings are saved here. Repeated extractions of the same URL use cached data to save tokens.
Saved Projects
| Project Name | URL | Agent | Date Listed | Date Extracted | User | Images | Ad Images | Preview |
|---|---|---|---|---|---|---|---|---|
| No projects yet. Extract a property listing to see it here. | ||||||||
Project Images
API Logs
Track API consumption across all providers and models.
Request Log
| Timestamp | User | Provider | Model | Task | Tokens | Cost | Speed |
|---|---|---|---|---|---|---|---|
| No logs yet. Generate an ad to see API usage. | |||||||
Version History
Track updates and changes to the platform.
Updates
| Version | Timestamp | Updates |
|---|---|---|
| Loading... | ||