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.