Chennai

Main Entrance View A - Casagrand Northern Star

CasaGrand Northern Star in Madhavaram, Chennai

1
CasaGrand Northern Star is the new premium residential Apartments project launched in Madhavaram, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about CasaGrand Northern Star in Madhavaram by CasaGrand Builders.
Destino At Brigade Xanadu A

Destino at Brigade Xanadu in Mogappair, Chennai

1
Destino at Brigade Xanadu, Mogappair, Chennai | Check Reviews, Price, Exact Location just off Mumbai Highway, Chennai. Find Floor Plans, Master Plan, Amenities, Apartments Address, Brochure, Complete Residential Project Details of the luxury apartments in Destino at Brigade Xanadu in Mogappair by Brigade Group.
Elevation Main A - Purva Windermere Chennai

Purva Windermere in Pallikaranai, Chennai

1
Purva Windermere is the Ready to Move In premium residential Apartments project launched in Pallikaranai just off Velachery, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about Purva Windermere in Pallikaranai by Puravankara.
Main Elevation A - Casagrand Sereno Chennai

CasaGrand Sereno in Thalambur, Chennai

1
CasaGrand Sereno is the new premium yet affordable residential Apartments project launched in Thalambur near Sholinganallur, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about CasaGrand Sereno in Thalambur by CasaGrand Builders.
Elevation Main A - CasaGrand Supremus Chennai

Casagrand Supremus in Thalambur, Chennai

1
CasaGrand Supremus is the premium residential Apartments project launched in Thalambur, just off OMR, near Sholinganallur, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about CasaGrand Supremus in Thalambur by CasaGrand Builders.
Talk to an Expert
Main View A Sobha Evergreens

Sobha Evergreens in Kundrathur, Chennai

1
Sobha Evergreens Plots in Kundrathur Road, Nandambakkam close to Sriperumbudur, Chennai | Check Reviews, Detailed pricing, Master Plan, Site Photos, Latest Availability, Expert Opinions and more on Sobha EverGreens Plots by SOBHA Limited in Chennai
Main Elevation - CasaGrand ECR14 Signature Chennai

CasaGrand ECR14 Signature in ECR, Chennai

1
CasaGrand ECR14 Signature is the new super-luxury sea-facing Apartments project launched in East Coast Road, Reddipakkam, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about CasaGrand ECR14 Signature in ECR by CasaGrand Builders.
Main A - Mahindra World City Aqualily Chennai

Mahindra World City Aqualily in GST Road, Chennai

1
Mahindra World City Aqualily is the new premium yet affordable residential Apartment and Villas project launched in GST Road, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about Aqualily in Mahindra World City, Chengalpattu
Main A - CasaGrand Crescendo Chennai

CasaGrand Crescendo in Nolambur, Chennai

1
CasaGrand Crescendo is the new high-rise Signature and Elite residential Apartments project launched in Mogappair, Nolambur, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about CasaGrand Crescendo in Nolambur by CasaGrand Builders.
Main A - Alliance Humming Gardens

Alliance Humming Gardens in Kelambakkam, OMR, Chennai

3
Alliance Humming Gardens is a close to possession residential Villas project launched in OMR, Kelambakkam, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing, plans, and complete information about Alliance Humming Gardens in OMR by Alliance Group.
Main Elevation - TVH Quadrant Adyar Chennai

TVH Quadrant in Adyar, Chennai

1
TVH Quadrant is a new luxury residential Apartment project launched in Adyar, Near Guindy at the heart of Chennai | Find Complete Information, Luxury Unit Plans, Pricing Details, Expert Reviews, Exact Location, and more about TVH Quadrant in Central Chennai by TVH.
Elevation Main - CasaGrand Vistaaz Chennai

CasaGrand Vistaaz in Perungalathur, Chennai

1
Casagrand Vistaaz is the new British-styled Villa development launched in Perungalathur near Kolapakkam, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about Casagrand Vistaaz in Perungalathur by Casagrand Builders.
Talk to an Expert
Main Aerial View - RWD Corniche Egmore Chennai

RWD Corniche in Egmore, Chennai

1
RWD Corniche is close to possession residential Apartment project launched in Egmore, near Triplicane, Chennai | Find Expert Reviews, Floor Plans, Detailed pricing, Complete Information, and more about RWD Corniche by RWD.
Main Pool View - TVS Emerald Green Enclave

TVS Emerald Green Enclave in Porur, Chennai

44
TVS Emerald Green Enclave is the new premium yet affordable residential Apartments project launched in Porur, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about TVS Emerald Green Enclave in Porur near Manapakkam by TVS Emerald.
Main A - Embassy Residency Perumbakkam

Embassy Residency in Perumbakkam, Chennai

1
Embassy Residency is the new premium yet affordable residential Apartments project launched in Perumbakkam, Off Sholinganallur, OMR, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about Embassy Residency in Perumbakkam by Embassy Group.
Main A - Radiance Icon Chennai

Radiance Icon in Koyambedu, Chennai

1
Radiance Icon is the new premium residential Apartments project launched in Koyambedu, West Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about Radiance Icon in Koyambedu, Poonamallee by Radiance Realty.
Main Elevation - Brigade Residences At WTC Chennai

Brigade Residences at WTC, Perungudi, Chennai

1
Brigade Residences at WTC in Perungudi, OMR, Chennai | Check Reviews, Price, Exact Location just off ECR, OMR, Chennai. Find Floor Plans, Master Plan, Amenities, Apartments Address, Brochure, Complete Residential Project Details of the luxury apartments in Brigade Residences at World Trade Center in Perungudi, OMR by Brigade Group.
Main Elevation A - Sobha Blossom Plots

Sobha Blossom in Tambram, Chennai

1
Sobha Blossom Plots is the new premium yet affordable residential plotted development launched in Tambram just off Outer Ring Road, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about Sobha Blossom Plots in Tambram, Sriperumbudur by Sobha Limited.
Main Elevation - TVS Emerald Flourish Apartments

TVS Emerald Flourish in Padappai, Chennai

7
TVS Emerald Flourish is the new premium residential Plots and Apartment development launched in Padappai, Oragadam Highway just off SH 57, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about TVS Emerald Flourish in Oragadam, SH57 by TVS Emerald.
Talk to an Expert
Mahindra Lakewoods World City Main B

Mahindra Lakewoods in World City, GST Road, Chennai

1
Mahindra LakeWoods is the new premium yet affordable residential Apartments project launched in World City, GST Road, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about LakeWoods in Mahindra World City, Chengalpattu
Main A - Radiance The Pride Pallavaram

Radiance The Pride in Pallavaram, Chennai

2
Radiance The Pride is an under-construction premium residential Apartments project launched in Pallavaram, off Chennai International Airport, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about Radiance The Pride in Pallavaram by Radiance Realty.
Elevation G - RWD Grand Corridor Chennai

RWD Grand Corridor in Vanagaram, Chennai

1
RWD Grand Corridor is the new premium residential Apartments project launched in Vanagaram, near Poonamallee, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about RWD Grand Corridor in Vanagaram near Poonamallee by RWD.
Entrance-View - Radiance Smartville Plots

Radiance Smartville Plots in Mannivakkam, Chennai

1
Radiance Smartville Plots is the brand new ready to build Plotted development project launched in Mannivakkam near Oragadam, Chennai | Find Expert Reviews, Detailed Pricing, Project Specifications, User Reviews, and Complete Information about Radiance Smartville Villa Plots by Radiance Realty.
Elevation Main A - DRA Centralia Navalur

DRA Centralia in Navalur, Chennai

1
DRA Centralia is the new premium yet affordable residential Apartments project launched in Navalur near Sholinganallur, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about DRA Centralia in Navalur on Thalambur Road by DRA Homes.
Main Elevation Radiance Rajshri

Radiance Rajshri in T Nagar, Chennai

1
Radiance Rajshri is the Close to Ready ultra-premium residential Apartments project launched in T Nagar, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about Radiance Rajshri in T Nagar by Radiance Realty.
Main View - TVS Emerald Hamlet Plots

TVS Emerald Hamlet in Karapakkam, Chennai

24
TVS Emerald Hamlet is the new premium residential Plotted development project launched in Karapakkam, Sholinganallur just off Old Mahabalipuram Road (OMR), Chennai | Find Expert reviews, Group Buy deals, and Detailed pricing information about TVS Emerald Plots by TVS Emerald.
Talk to an Expert
Main A Radiance Elite Teynampet

Radiance Elite in Teynampet, Chennai

1
Radiance Elite is the under-construction ultra-premium residential Apartments project launched in Teynampet near T Nagar, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about Radiance Elite in Teynampet by Radiance Realty.
Radiance Jade Garden Elevation

Radiance Jade Garden in Mannivakkam, Chennai

1
Radiance Jade Garden Plots is the new premium residential plotted development launched in Mannivakkam near Oragadam just Vandalur, Chennai. Find Expert reviews, Group Buy deals, and Detailed pricing information about Radiance Jade Garden in Mannivakkam near Oragadam by Radiance Realty.

GET THE COMPLETE
COSTING DETAILS NOW!


Costing Enquiry Form

Lodha Sarjapur Banner Homz N Space

Group Buy Side Homz N Space B

Lodha Sarjapur Banner Homz N Space

GET THE GROUP BUY ADVANTAGE NOW!


Group Buy Enquiry

(function () { 'use strict'; var CONFIG = { // This points to your OWN site's lead-intake endpoint β€” NOT the // Make.com URL directly. The real Make.com webhook URL lives // server-side (in wp-config.php / the PHP proxy snippet) so it is // never visible in this file or in your page source. See // "Setup and Installation Guide.md" for the WordPress REST proxy // that forwards submissions to Make.com on the server side. webhookUrl: 'https://www.homznspace.com/wp-json/hns/v1/lead', brandName: 'Homz N Space', tagline: 'Real Estate Advisory', phone: '+91 9590 144 144', phoneHref: 'tel:+919590144144', // Colors β€” change these two hex values to re-theme the entire widget. primaryColor: '#142840', // header / bot bubbles / launcher button primaryDark: '#0c1c30', accentColor: '#cf9b3f', // buttons / highlights / links accentDark: '#b9852e', // Cities offered as quick-reply buttons (last one always opens free text) cities: ['Bangalore', 'Hyderabad', 'Chennai', 'Pune', 'Other'], // Auto-open the widget after this many milliseconds of the visitor // being on the page. Set to 0 to disable auto-open entirely. autoOpenDelayMs: 14000, // Avatar letter shown in the bot's chat bubble icon avatarInitial: 'H' }; var CSS = '' + '#hns-cb-root, #hns-cb-root *{box-sizing:border-box;}' + '#hns-cb-root{position:fixed;z-index:2147483000;bottom:20px;right:20px;' + 'font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;' + 'line-height:1.4;}' + '#hns-cb-launcher{width:60px;height:60px;border-radius:50%;background:' + CONFIG.primaryColor + ';' + 'box-shadow:0 6px 20px rgba(0,0,0,.25);border:none;cursor:pointer;display:flex;' + 'align-items:center;justify-content:center;transition:transform .15s ease;position:relative;}' + '#hns-cb-launcher:hover{transform:scale(1.06);}' + '#hns-cb-launcher svg{width:28px;height:28px;}' + '#hns-cb-dot{position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;' + 'background:#e74c3c;border:2px solid #fff;display:none;}' + '#hns-cb-dot.show{display:block;animation:hnsPulse 1.6s infinite;}' + '@keyframes hnsPulse{0%{box-shadow:0 0 0 0 rgba(231,76,60,.6);}70%{box-shadow:0 0 0 8px rgba(231,76,60,0);}100%{box-shadow:0 0 0 0 rgba(231,76,60,0);}}' + '#hns-cb-panel{position:fixed;bottom:90px;right:20px;width:360px;max-width:92vw;' + 'height:540px;max-height:75vh;background:#fff;border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.25);' + 'display:none;flex-direction:column;overflow:hidden;}' + '#hns-cb-panel.open{display:flex;}' + '#hns-cb-header{background:' + CONFIG.primaryColor + ';color:#fff;padding:14px 16px;display:flex;' + 'align-items:center;gap:10px;flex-shrink:0;}' + '#hns-cb-header-avatar{width:36px;height:36px;border-radius:50%;background:' + CONFIG.accentColor + ';' + 'display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;flex-shrink:0;}' + '#hns-cb-header-text{flex:1;min-width:0;}' + '#hns-cb-header-text .hns-cb-name{font-weight:600;font-size:14.5px;}' + '#hns-cb-header-text .hns-cb-sub{font-size:12px;opacity:.8;}' + '#hns-cb-close{background:transparent;border:none;color:#fff;cursor:pointer;padding:4px;opacity:.85;flex-shrink:0;}' + '#hns-cb-close:hover{opacity:1;}' + '#hns-cb-body{flex:1;overflow-y:auto;padding:14px;background:#f4f6f8;}' + '#hns-cb-controls{flex-shrink:0;padding:10px 14px 14px;background:#fff;border-top:1px solid #ececec;}' + '.hns-cb-row{display:flex;margin-bottom:10px;}' + '.hns-cb-row.user{justify-content:flex-end;}' + '.hns-cb-bubble{max-width:80%;padding:9px 13px;border-radius:14px;font-size:13.5px;color:#222;white-space:pre-wrap;word-wrap:break-word;}' + '.hns-cb-row.bot .hns-cb-bubble{background:#fff;border:1px solid #e6e6e6;border-top-left-radius:4px;}' + '.hns-cb-row.user .hns-cb-bubble{background:' + CONFIG.accentColor + ';color:#fff;border-top-right-radius:4px;}' + '.hns-cb-typing{display:inline-flex;gap:3px;padding:10px 13px;background:#fff;border:1px solid #e6e6e6;' + 'border-radius:14px;border-top-left-radius:4px;}' + '.hns-cb-typing span{width:6px;height:6px;border-radius:50%;background:#b6b6b6;animation:hnsTyping 1s infinite;}' + '.hns-cb-typing span:nth-child(2){animation-delay:.15s;}' + '.hns-cb-typing span:nth-child(3){animation-delay:.3s;}' + '@keyframes hnsTyping{0%,60%,100%{opacity:.3;transform:translateY(0);}30%{opacity:1;transform:translateY(-3px);}}' + '.hns-cb-quick{display:flex;flex-wrap:wrap;gap:8px;}' + '.hns-cb-chip{border:1.5px solid ' + CONFIG.primaryColor + ';color:' + CONFIG.primaryColor + ';background:#fff;' + 'padding:8px 14px;border-radius:20px;font-size:13px;cursor:pointer;font-weight:600;transition:background .15s,color .15s;}' + '.hns-cb-chip:hover{background:' + CONFIG.primaryColor + ';color:#fff;}' + '.hns-cb-skip{display:block;margin-top:8px;font-size:12px;color:#888;text-decoration:underline;cursor:pointer;background:none;border:none;padding:0;}' + '.hns-cb-field{margin-bottom:10px;}' + '.hns-cb-field label{display:block;font-size:12px;font-weight:600;color:#444;margin-bottom:4px;}' + '.hns-cb-field input{width:100%;padding:9px 11px;border:1.5px solid #d8d8d8;border-radius:8px;font-size:13.5px;}' + '.hns-cb-field input:focus{outline:none;border-color:' + CONFIG.accentColor + ';}' + '.hns-cb-error{color:#d23b3b;font-size:11.5px;margin-top:3px;display:none;}' + '.hns-cb-error.show{display:block;}' + '.hns-cb-consent{font-size:11px;color:#888;margin:6px 0 10px;}' + '.hns-cb-submit{width:100%;background:' + CONFIG.accentColor + ';color:#fff;border:none;padding:11px;' + 'border-radius:9px;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s;}' + '.hns-cb-submit:hover{background:' + CONFIG.accentDark + ';}' + '.hns-cb-submit:disabled{opacity:.6;cursor:default;}' + '.hns-cb-callbtn{display:inline-block;margin-top:8px;background:' + CONFIG.primaryColor + ';color:#fff !important;' + 'text-decoration:none;padding:9px 16px;border-radius:8px;font-size:13px;font-weight:600;}' + '.hns-cb-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}' + '@media (max-width:480px){#hns-cb-panel{right:10px;left:10px;width:auto;bottom:84px;height:70vh;}' + '#hns-cb-root{right:14px;bottom:14px;}}'; var ICON_CHAT = ''; var ICON_CLOSE = ''; var STORAGE_KEY = 'hnsChatState_v1'; var state = { opened: false, step: 'greeting', // greeting -> requirement -> city -> cityOther -> contact -> done answers: { requirement: '', city: '', name: '', phone: '', email: '' }, submitted: false, autoOpened: false }; function loadState() { try { var raw = sessionStorage.getItem(STORAGE_KEY); if (raw) { var saved = JSON.parse(raw); if (saved && typeof saved === 'object') { state.submitted = !!saved.submitted; state.answers = saved.answers || state.answers; } } } catch (e) { } } function saveState() { try { sessionStorage.setItem(STORAGE_KEY, JSON.stringify({ submitted: state.submitted, answers: state.answers })); } catch (e) { } } function escapeHtml(str) { return String(str).replace(/[&<>"']/g, function (c) { return ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' })[c]; }); } function isValidPhone(v) { var digits = v.replace(/[\s\-()]/g, '').replace(/^\+?91/, ''); return /^[6-9]\d{9}$/.test(digits); } function isValidEmail(v) { return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(v); } function getUtmParams() { var out = {}; try { var params = new URLSearchParams(window.location.search); ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'].forEach(function (k) { if (params.get(k)) out[k] = params.get(k); }); } catch (e) { } return out; } var root, panel, body, controls, launcher, dot; function buildDom() { var style = document.createElement('style'); style.textContent = CSS; document.head.appendChild(style); root = document.createElement('div'); root.id = 'hns-cb-root'; root.innerHTML = '' + ''; document.body.appendChild(root); panel = root.querySelector('#hns-cb-panel'); body = root.querySelector('#hns-cb-body'); controls = root.querySelector('#hns-cb-controls'); launcher = root.querySelector('#hns-cb-launcher'); dot = root.querySelector('#hns-cb-dot'); launcher.addEventListener('click', togglePanel); root.querySelector('#hns-cb-close').addEventListener('click', closePanel); document.addEventListener('keydown', function (e) { if (e.key === 'Escape' && panel.classList.contains('open')) closePanel(); }); } function togglePanel() { if (panel.classList.contains('open')) { closePanel(); } else { openPanel(); } } function openPanel() { panel.classList.add('open'); dot.classList.remove('show'); state.opened = true; if (body.children.length === 0) renderStep(); setTimeout(function () { body.scrollTop = body.scrollHeight; }, 50); } function closePanel() { panel.classList.remove('open'); } function addBotMessage(html, callback) { var typingRow = document.createElement('div'); typingRow.className = 'hns-cb-row bot'; typingRow.innerHTML = '
'; body.appendChild(typingRow); body.scrollTop = body.scrollHeight; setTimeout(function () { typingRow.innerHTML = '
' + html + '
'; body.scrollTop = body.scrollHeight; if (callback) callback(); }, 500); } function addUserMessage(text) { var row = document.createElement('div'); row.className = 'hns-cb-row user'; row.innerHTML = '
' + escapeHtml(text) + '
'; body.appendChild(row); body.scrollTop = body.scrollHeight; } function clearControls() { controls.innerHTML = ''; } function renderStep() { if (state.submitted) { return renderAlreadySubmitted(); } if (state.step === 'greeting') return stepGreeting(); if (state.step === 'requirement') return stepRequirement(); if (state.step === 'city') return stepCity(); if (state.step === 'contact') return stepContact(); } function stepGreeting() { addBotMessage( 'Hi there! πŸ‘‹ Looking for your dream property? I can help you get the right details in under a minute.', function () { state.step = 'requirement'; clearControls(); var wrap = document.createElement('div'); wrap.className = 'hns-cb-quick'; wrap.innerHTML = '' + '' + ''; controls.appendChild(wrap); wrap.querySelectorAll('.hns-cb-chip').forEach(function (btn) { btn.addEventListener('click', function () { var val = btn.getAttribute('data-val'); addUserMessage(btn.textContent); state.answers.requirement = val; saveState(); stepCity(); }); }); } ); } function stepCity() { clearControls(); state.step = 'city'; addBotMessage('Great choice! Which city are you interested in?', function () { var wrap = document.createElement('div'); wrap.className = 'hns-cb-quick'; wrap.innerHTML = CONFIG.cities.map(function (c) { return ''; }).join(''); controls.appendChild(wrap); wrap.querySelectorAll('.hns-cb-chip').forEach(function (btn) { btn.addEventListener('click', function () { var val = btn.getAttribute('data-val'); if (val === 'Other') { addUserMessage('Other'); return stepCityOther(); } addUserMessage(val); state.answers.city = val; saveState(); stepContact(); }); }); }); } function stepCityOther() { clearControls(); var wrap = document.createElement('div'); wrap.className = 'hns-cb-field'; wrap.innerHTML = '' + ''; controls.appendChild(wrap); var input = wrap.querySelector('#hns-cb-city-input'); input.focus(); function go() { var val = input.value.trim(); if (!val) return; addUserMessage(val); state.answers.city = val; saveState(); stepContact(); } wrap.querySelector('#hns-cb-city-go').addEventListener('click', go); input.addEventListener('keydown', function (e) { if (e.key === 'Enter') go(); }); } function stepContact() { clearControls(); state.step = 'contact'; addBotMessage('Perfect β€” last step! Please share your details so our property expert can reach you:', function () { var wrap = document.createElement('div'); wrap.innerHTML = '
' + '' + '' + '
Please enter your name.
' + '
' + '
' + '' + '' + '
Please enter a valid 10-digit mobile number.
' + '
' + '
' + '' + '' + '
Please enter a valid email address.
' + '
' + '' + '' + ''; controls.appendChild(wrap); var nameEl = wrap.querySelector('#hns-cb-name'); var phoneEl = wrap.querySelector('#hns-cb-phone'); var emailEl = wrap.querySelector('#hns-cb-email'); var hpEl = wrap.querySelector('#hns-cb-company'); var submitBtn = wrap.querySelector('#hns-cb-submit-btn'); submitBtn.addEventListener('click', function () { var nameOk = nameEl.value.trim().length > 1; var phoneOk = isValidPhone(phoneEl.value.trim()); var emailOk = isValidEmail(emailEl.value.trim()); wrap.querySelector('#hns-cb-name-err').classList.toggle('show', !nameOk); wrap.querySelector('#hns-cb-phone-err').classList.toggle('show', !phoneOk); wrap.querySelector('#hns-cb-email-err').classList.toggle('show', !emailOk); if (!nameOk || !phoneOk || !emailOk) return; // Honeypot β€” if filled, a bot likely submitted; pretend success, send nothing. if (hpEl.value) { return showConfirmation(true); } state.answers.name = nameEl.value.trim(); state.answers.phone = phoneEl.value.trim(); state.answers.email = emailEl.value.trim(); addUserMessage(state.answers.name + ' Β· ' + state.answers.phone + ' Β· ' + state.answers.email); submitLead(); }); }); } function submitLead() { clearControls(); var submitting = document.createElement('div'); submitting.style.cssText = 'font-size:12.5px;color:#888;padding:4px 2px;'; submitting.textContent = 'Sending your details…'; controls.appendChild(submitting); var payload = { name: state.answers.name, phone: state.answers.phone, email: state.answers.email, requirement: state.answers.requirement, city: state.answers.city, source: 'website-chatbot', pageUrl: window.location.href, pageTitle: document.title, referrer: document.referrer || '', utm: getUtmParams(), submittedAt: new Date().toISOString() }; fetch(CONFIG.webhookUrl, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload) }).then(function () { showConfirmation(false); }).catch(function (err) { console.warn('[HNS Chatbot] Webhook request failed β€” check CONFIG.webhookUrl in hns-chatbot.js', err); // Don't strand the visitor on a broken state β€” still confirm receipt, // since the lead details remain visible in this browser console/network // tab for debugging during setup. showConfirmation(false); }); } function showConfirmation(isHoneypot) { state.submitted = true; saveState(); clearControls(); if (isHoneypot) { addBotMessage('Thanks! πŸŽ‰', function () {}); return; } addBotMessage( 'Thanks, ' + escapeHtml(state.answers.name.split(' ')[0]) + '! πŸŽ‰ Our property expert will call you on ' + escapeHtml(state.answers.phone) + ' shortly. Meanwhile, feel free to keep browsing our latest projects.', function () { var wrap = document.createElement('div'); wrap.innerHTML = 'πŸ“ž Call us now: ' + escapeHtml(CONFIG.phone) + ''; controls.appendChild(wrap); } ); } function renderAlreadySubmitted() { clearControls(); body.innerHTML = ''; addBotMessage( 'Thanks again' + (state.answers.name ? ', ' + escapeHtml(state.answers.name.split(' ')[0]) : '') + '! πŸŽ‰ We\'ve already got your details β€” our team will be in touch shortly.', function () { var wrap = document.createElement('div'); wrap.innerHTML = 'πŸ“ž Call us now: ' + escapeHtml(CONFIG.phone) + ''; controls.appendChild(wrap); } ); } function init() { loadState(); buildDom(); if (state.submitted) { // Quiet launcher, no pulse/auto-open for visitors who already converted. return; } if (CONFIG.autoOpenDelayMs > 0) { setTimeout(function () { if (!state.opened) { dot.classList.add('show'); } }, Math.min(CONFIG.autoOpenDelayMs, 4000)); setTimeout(function () { if (!state.opened) { openPanel(); } }, CONFIG.autoOpenDelayMs); } } if (document.readyState === 'complete' || document.readyState === 'interactive') { setTimeout(init, 0); } else { document.addEventListener('DOMContentLoaded', init); } })();