EstateAIDOCUMENTATION v1.0.0
✦ Official Documentation

Everything you need to launch EstateAI

EstateAI is an AI-powered real estate CRM for WordPress — property listings, leads, agents, visit bookings, WhatsApp automation and AI tools in one plugin. This guide takes you from installation to a fully working site.

7Shortcodes 6AI Tools 7WhatsApp Triggers 9Settings Tabs

Introduction

Thank you for purchasing EstateAI! Everything below is organised in the order you'll actually need it — start at Installation, follow the Quick Setup, and use the reference sections as you go.

🏠 Listings & Bookings

Property types, locations, amenities, galleries, keyless maps and a visit booking engine.

📥 Leads CRM

Statuses, sources, auto-assignment, scoring, follow-ups and a full activity timeline.

✦ AI Tools

Natural-language search, grounded chatbot, compare with AI verdict, copywriting and lead scoring.

✆ WhatsApp

Click-to-chat and Meta Cloud API automation with a queue, templates and logs.

Requirements

  • WordPress 5.8+ and PHP 7.4+
  • Optional: an OpenAI API key — only for the AI features. Everything else works without it, and each AI feature has a non-AI fallback.
  • Optional: a Meta WhatsApp Cloud API account — only for automatic sending. Click-to-chat needs just a phone number.

Installation

  1. UploadIn WordPress admin go to Plugins → Add New → Upload Plugin.
  2. Install & activateChoose estateai.zip, click Install Now, then Activate.
  3. DoneA new EstateAI CRM menu appears. Activation creates the CRM tables, the EstateAI Agent role and background schedules automatically.
✓Nothing is written to your theme. Deactivating keeps all data — data is only removed on uninstall if you enable Settings → General → Delete all data on uninstall.

Quick Setup — recommended order

  1. General settingsSettings → General: company info, currency symbol & format, area unit, listings per page.
  2. Brand colorsSettings → Colors: pick accent + highlight; EstateAI generates the full shade palette for admin and front-end.
  3. Add taxonomiesProperty Types, Locations, Amenities, Statuses. The AI search learns its vocabulary from these.
  4. Add propertiesWith photos, price, details and a gallery.
  5. Create agentsAgents → Add, then assign properties to them.
  6. Create pagesHome (AI search + featured), Properties ([estateai_properties]), Compare ([estateai_compare]).
  7. Enable AIAdd your OpenAI key under Settings → AI, switch on Search, Chatbot and Compare.
  8. Set visit availabilitySite Visits → Availability: days, hours, slot length, notice period.
  9. Connect WhatsAppStart with click-to-chat; upgrade to the Cloud API later. Enable the triggers you want.
  10. Test the journeySearch → shortlist → compare → chat → book a visit → check the lead in the CRM.

Properties

Properties are a custom post type with an archive at /properties and a purpose-built single template — gallery, facts, amenities, map, visit booking, inquiry form and an agent sidebar.

Detail fields

Property ID, price (with prefix/suffix), address, postal code, latitude/longitude, bedrooms, bathrooms, rooms, garages, area (+ unit), land area, year built, video URL and virtual tour URL.

Gallery

Pick any number of images in the Property Gallery box. The single template renders a hero image with a thumbnail switcher and responsive srcset.

Maps — no API key needed

Paste any of the following into the map field and EstateAI normalises it into a safe embed:

  • A Google Maps iframe embed code
  • A Google Maps link or short link (expanded automatically)
  • Plain coordinates like 25.2048, 55.2708

Latitude/longitude auto-fill, zoom is configurable, and visitors get an "open in maps" link.

Featured & agent assignment

Tick Featured Property to surface a listing in [estateai_properties featured="1"]. Assign an agent from the sidebar — they get author-equivalent rights on that property, appear on its agent card, and receive its lead notifications.

Agents

Agents are WordPress users with the EstateAI Agent role, managed under EstateAI CRM → Agents:

  • Profile — phone, WhatsApp number, agency, license number, experience, status
  • Assigned Properties & Leads — everything belonging to the agent in one view
  • Performance — listings, leads and conversion counts

Agents see only their own properties and CRM screens, controlled by Permissions.

Leads CRM

Every inquiry, chat capture, visit booking and AI-search callback becomes a lead under EstateAI CRM → Leads.

Pipeline

  • Statuses — new, contacted, qualified, hot, converted, lost (fully editable)
  • Sources — editable list (website, WhatsApp, referral, …)
  • Score — 0–100; above the hot threshold a lead is flagged 🔥 hot
  • Follow-ups — per-lead date/time; due follow-ups surface on the dashboard and can trigger WhatsApp reminders
  • Activity timeline — every action on a lead is logged

Automation (Settings → CRM)

  • Auto-assign — none, round-robin across agents, or a specific agent
  • Duplicate check — match by phone, email or both, and merge instead of duplicating
  • Defaults — default status, source and priority for new leads

Email notifications (Settings → Email)

Admin and agent notifications with editable subject/body templates, 13 placeholders and a test-send button.

Site Visit Booking

Visitors book viewings from the single property page or via [estateai_book_visit].

Availability engine

  • Open days, start/end times, slot length (15–240 min)
  • Capacity per slot, minimum notice hours, max days ahead, blackout dates
  • Auto-confirm toggle and an optional video walkthrough mode

What happens on a booking

  1. Lead createdOr merged by the duplicate rules.
  2. Notifications sentAdmin + assigned agent emailed; WhatsApp queued if enabled.
  3. Cancel linkThe visitor receives a tokenised cancel link.

Manage bookings from the Calendar or All Bookings: confirm, complete, cancel, no-show, reschedule or delete — the lead and its timeline update automatically.

Inquiry Form

Rendered automatically on single properties (content and/or sidebar position) or anywhere via [estateai_inquiry_form].

Built-in spam protection

  • Honeypot field + minimum-seconds timing check
  • Blocked-words list and a maximum-links rule
  • Per-IP hourly throttle with one-click admin reset
  • Optional required email and GDPR consent text

AI Setup AI

Go to Settings → AI and add your OpenAI API key. Choose a model (gpt-4.1-mini default — fast and inexpensive) and a token limit.

✦No key? No problem. Every AI feature degrades gracefully: search falls back to a built-in parser, the chatbot uses scripted replies, compare still shows the winners table. Per-feature toggles let you mix and match.
⚠Cost control: results are cached (per-property / per-user) and every front-end AI feature has a configurable per-visitor hourly rate limit.

Shortcode: [estateai_ai_search]. Visitors type a sentence — "3 bedroom villa in Marina under 2M with a pool" — and it becomes structured filters (type, location, status, amenities, price, beds, baths, area, parking).

  • Understood filters appear as removable chips; visitors add, drop or widen filters conversationally
  • Shortlist ♥ — favourites collect in a tray, then compare or request a callback (creates a CRM lead with the full requirement attached)
  • Works without JavaScript; shareable result links (?estateai_q=…)
  • Settings: title, intro, placeholder, example queries, results, columns, rate limit

AI Chatbot AI

Shortcode: [estateai_ai_chat], plus an optional site-wide floating launcher. The chatbot is grounded: it can only reference real listings — hallucinated properties are filtered server-side.

  • Multi-turn memory shared with the AI search (the "concierge") — budget, location and preferences persist across the session
  • Shows property cards inline, asks clarifying questions, widens thin results
  • Lead capture — after a configurable number of messages it asks for contact details; transcript + requirement brief are saved on the lead
⚠The chatbot ships disabled by default. Turn it on under Settings → AI and enable "floating" to show it site-wide — don't forget this on your demo site!

AI Compare AI

Shortcode: [estateai_compare]. A side-by-side table (2–4 properties) of price, beds, baths, garages, area, type, location, status and amenities with per-row winners highlighted.

  • AI verdict — a short judgement with pros/cons per property, weighed against the visitor's stated needs
  • Auto-filled from the shortlist tray; shareable via ?estateai_compare=…

AI Assistant (Admin) AI

Under EstateAI CRM → AI Assistant, plus an inline panel on the property edit screen:

  • Property description writer — from the fields on the edit screen (even unsaved), with tone instructions and Replace / Add-below buttons
  • Lead scoring — 0–100 with reasoning, written back to the lead
  • Lead summary — a one-paragraph brief of history and intent
  • Property matching — ranks your inventory against a lead's requirements
  • Follow-up & email generators — ready-to-send drafts
  • WhatsApp message generator — friendly / professional / persuasive / concise

WhatsApp — Two Modes

Click-to-Chat (default)Cloud API
NeedsJust a phone numberMeta Business + WhatsApp Cloud API credentials
Doeswa.me buttons on properties, floating button, lead buttons — pre-filled messagesEverything on the left plus automatic sending: notifications, follow-up reminders, queued delivery
Best forGetting started in 2 minutesAgencies that want automation

Agent routing: enable "use agent number" so property buttons open a chat with the assigned agent instead of the company number.

Cloud API Setup

  1. Create a Meta appAdd the WhatsApp product at developers.facebook.com; note your Access Token and Phone Number ID.
  2. ValidateEnter both under WhatsApp → API Setup and click Validate — EstateAI confirms the connection and shows your display number, verified name and quality rating.
  3. TestSend a live test message from the same screen.
⚠Meta rule: messages to users who haven't messaged you in 24 hours must use an approved template. Create templates in Meta Business Manager, then map them under Notifications. EstateAI pre-flights template names and variable counts and warns you before anything fails.

Automatic Notifications

Seven triggers, each with its own toggle, Meta template mapping and message body (WhatsApp → Notifications):

TriggerFires whenGoes to
lead_welcomeA new lead is createdThe lead
lead_assignedA lead is assigned to an agentThe agent
website_inquiryAn inquiry / visit booking is submittedThe lead
property_sharedYou share a property from the CRMThe lead
follow_up_dueA follow-up is due (checked every 30 min)The lead
follow_up_agentA follow-up is dueThe agent
admin_new_leadA new lead arrivesAdmin number

All triggers ship disabled — enable the ones you want. ~22 placeholders are available across property, lead and general groups.

Message Templates

Five reusable local templates ship with the plugin (property inquiry, property details, lead follow-up, visit reminder, general enquiry). Create your own under WhatsApp → Message Templates — typed as property / lead / general, with the full placeholder reference on-screen. The AI message generator can also write one for you.

Queue & Logs

  • Cloud API messages are queued and sent by a background worker every 2 minutes — batches of 50, up to 3 retries; permanent Meta errors fail fast with plain-English explanations
  • WhatsApp → Message Log shows every message with status, error details, retry / delete / clear actions and a "process queue now" button
  • The cron self-heals if a schedule is lost

Shortcodes Reference

ℹAn interactive shortcode builder with all attributes lives at Settings → Shortcodes.

[estateai_properties] — listing grid/list

AttributeValues (default)What it does
layoutgrid | list (grid)Card grid or horizontal list
columns1–4 (3)Grid columns
countnumberListings per page
type location status amenityslug(s)Filter by taxonomy terms
featured0 | 1 (0)Only featured listings
agentuser IDOnly one agent's listings
idscomma-separated IDsSpecific properties
orderby / orderdate, title, price, rand… / ASC, DESCSorting (including price)
pagination0 | 1 (1)Show pagination
image excerpt price meta button0 | 1Toggle card elements
[estateai_properties featured="1" columns="3" count="6" orderby="price" order="DESC"]

All shortcodes

ShortcodeRenders
[estateai_properties]Listing grid or list with filters, sorting and pagination
[estateai_ai_search]AI natural-language search with chips, shortlist and results
[estateai_ai_chat]The AI chatbot inline (floating launcher is a settings toggle)
[estateai_compare]Side-by-side comparison with AI verdict
[estateai_book_visit]The visit booking form (also auto-rendered on single properties)
[estateai_inquiry_form]The inquiry form (also auto-rendered on single properties)
[estateai_whatsapp]A WhatsApp chat button

Settings Reference

TabControls
GeneralCompany info · currency symbol, position, separators, decimals · area unit · listings per page · property map on/off + zoom · delete-data-on-uninstall
CRMDefault status/source/priority · auto-assign · follow-up days · hot-score threshold · duplicate check · activity logging
AIOpenAI key · model · token limit · per-feature toggles for Search, Chatbot, Compare
WhatsAppMode · numbers · buttons · agent routing · API credentials · triggers · templates
Enquiry FormPosition · required email · consent text · anti-spam (honeypot, timing, blocked words, links, throttle)
EmailFrom name/email · recipients · admin/agent toggles · templates with placeholders · test email
Permissions8 capability groups × every role, with reset-to-defaults
ColorsAccent + highlight — a full shade ramp applied to admin and front-end
ShortcodesInteractive builders and the full attribute reference

Roles & Permissions

Activation creates the EstateAI Agent role: agents can create and manage their own properties, see their assigned leads and the visit calendar, but cannot touch other agents' listings or global settings. Administrators get every capability. Fine-tune per role under Settings → Permissions.

FAQ / Troubleshooting

The AI features don't respond

Check Settings → AI: is the API key saved and the feature's own toggle on? Rate limits may apply — logged-in admins bypass them.

WhatsApp messages stay "queued"

The queue runs on WP-Cron every 2 minutes. On low-traffic sites use Process queue now, or add a real cron job calling wp-cron.php. The schedule self-heals if lost.

Template message fails with error #132000

The variable count in your mapping doesn't match the approved Meta template. WhatsApp → Notifications shows a warning with the expected count for known templates.

The map doesn't show

Paste a Google Maps link, embed code or plain lat, lng into the property's map field, and check Show property map in Settings → General. No API key is required.

Inquiry form says "try again later"

The visitor hit the hourly throttle — adjust or reset it under Settings → Enquiry Form.

My styles look different from the demo

Set your brand colors under Settings → Colors. The front-end inherits your theme's fonts by design, so listings always match your site.

Changelog

Version 1.0.0 — Initial release
Properties, Leads CRM, Agents, Site Visits, AI Search / Chatbot / Compare / Assistant, WhatsApp click-to-chat + Cloud API with queue and 7 notification triggers, inquiry form with anti-spam, email notifications, permissions manager, brand colors, 7 shortcodes.
↑