AI Real Estate Platform

Luxury property insights, tailored suggestions & a 24/7 AI Concierge — one script tag.

SETUP — ONE SCRIPT FOR ALL 3 CONTEXTS

Include the platform script

Add this once, ideally just before </body>, on every page where you want any of the AI features:

<script src="https://dexa.devsspace.com/widget.js"></script>

The script is ~10 KB, has no dependencies, and does nothing until you initialize one of the three contexts below.

CONTEXT 1

AI Property Insights

Shows a pre-computed, investor-grade AI analysis of the property the visitor is viewing — positioning summary, estimated gross rental yield, price per area (computed from listing data), ROI potential, market outlook, investor highlights and risk considerations. Place an empty container where the summary should appear (e.g. under the listing description), then initialize it with the listing's property reference (Salesforce ID or unique identifier from the feed). Results are cached server-side, so repeat page loads are instant and cost nothing.

Pilot scope: this experimental integration is enabled for 50 selected Chestertons properties. For any other reference the widget automatically shows: "This is an experimental feature currently available for selected properties only."

<!-- 1. Container in your property template -->
<div id="ai-insights"></div>

<!-- 2. Initialize with the current listing's data -->
<script>
    new AIPropertyInsights({
        container: '#ai-insights',
        propertyRef: 'z0Ab1000002Lj1OuAa',  // the listing's sfid or unique identifier
        themeColor: '#1e3c72'
    });
</script>

Tip: on Chestertons, populate propertyRef from the listing template's Salesforce ID (sfid) or unique identifier — no property data needs to be passed; the platform already has the listing details.

Live demo (pilot property — 4BR villa, Marrakech):
Live demo (property outside the pilot):
CONTEXT 2

Tailored Property Suggestions

Recommends similar properties to the one being viewed, using vector similarity against the property database. Place a container in your sidebar or below the listing:

<!-- 1. Container -->
<div id="ai-suggestions"></div>

<!-- 2. Initialize -->
<script>
    new AIPropertySuggestions({
        container: '#ai-suggestions',
        propertyRef: 'z0Ab1000002Lj1OuAa',  // current listing, used to find similar ones
        heading: 'You may also like',
        themeColor: '#1e3c72'
    });
</script>

Matching criteria: each candidate is scored against the property being viewed — location 35%, property type 25%, price closeness 25%, bedroom count 15%. If the visitor has browsed other pilot properties, their browsing profile (recency-weighted, kept in the browser's localStorage only) contributes 35% of the final score, with the current listing contributing 65%. Already-viewed properties are not re-suggested. Unsupported references show the experimental-feature notice.

Live demo:
CONTEXT 3

24/7 Live AI Concierge

A floating multi-lingual chat widget that answers property questions, calculates ROI and captures after-hours leads. No container needed — it attaches itself to the bottom-right corner of the page:

<script>
    new AIConciergeWidget({
        themeColor: '#1e3c72',
        welcomeMessage: 'Welcome to Chestertons! How can I help you today?',

        // Optional: on a property page, pass the listing reference so the
        // concierge answers questions about THIS property specifically
        propertyRef: 'z0Ab1000002Lj1OuAa'
    });
</script>

On general pages (home, search results) omit propertyRef — the concierge acts as a general agent. On listing pages include it so answers are grounded in that property. If the reference is outside the 50-property pilot, the chat shows the experimental-feature notice.

Live demo: use the chat bubble in the bottom-right corner of this page.

Complete example — property detail page

Everything together, as you would place it on a listing page (e.g. preprod.chestertons.com):

<!-- containers, placed where you want them in the layout -->
<div id="ai-insights"></div>
<div id="ai-suggestions"></div>

<!-- before </body> -->
<script src="https://dexa.devsspace.com/widget.js"></script>
<script>
    // The listing's Salesforce ID (sfid) or unique identifier from your template
    var propertyRef = 'z0Ab1000002Lj1OuAa';

    new AIPropertyInsights({    container: '#ai-insights',    propertyRef: propertyRef, themeColor: '#1e3c72' });
    new AIPropertySuggestions({ container: '#ai-suggestions', propertyRef: propertyRef, themeColor: '#1e3c72' });
    new AIConciergeWidget({     themeColor: '#1e3c72', propertyRef: propertyRef,
                                welcomeMessage: 'Welcome to Chestertons! How can I help you today?' });
</script>