🏆 #1 Rated in India 2024

Pure Water.
Healthy Family.

Advanced 7-stage RO + UV purification. Removes 99.9% of bacteria, viruses, heavy metals & TDS. Trusted by 2 lakh+ families.

2L+Families
99.9%Pure Water
5 YearWarranty
💧
AquaPure Pro
✅ ISI Certified
🔬 WHO Standard
🚚 Free Installation
🔄 30-Day Returns
📞 24/7 Support

Our Purifiers

Choose the right purification for your home's water quality

Best Value
💧

AquaPure Essential

₹8,999
Free installation included
  • ✓ 6-stage RO purification
  • ✓ 10L storage tank
  • ✓ TDS controller
  • ✓ 1-year warranty
  • ✓ Up to 400 GPD
Get Quote
Premium

AquaPure Elite

₹22,999
EMI from ₹960/month
  • ✓ 9-stage RO+UV+UF+Alkaline
  • ✓ 20L storage tank
  • ✓ Wi-Fi app monitoring
  • ✓ 5-year warranty
  • ✓ Auto sanitization
  • ✓ Hot & cold dispenser
Get Quote

Why Choose AquaPure?

We don't just sell purifiers. We deliver peace of mind.

🔬

99.9% Pure

Our multi-stage filtration removes bacteria, viruses, heavy metals, pesticides, and dissolved solids down to 0.0001 microns.

Fast Delivery

Order today and get installation within 24 hours across 500+ cities. Our certified technicians handle everything.

🛡️

Longest Warranty

Industry-leading 5-year warranty on our Elite model. We stand behind every product with free AMC for year one.

💰

Easy EMI

No-cost EMI available on all models. Zero down payment options. We believe clean water shouldn't be a luxury.

🔧

Free Service

Annual filter replacement + free service visit included in all plans. Our AMC starts at just ₹999/year.

📱

Smart Monitoring

Elite model connects to our app — track water quality, filter life, and consumption from your phone.

7-Stage Purification

Every drop passes through 7 layers of protection

1
Sediment Filter
Removes dirt, rust, dust
2
Pre Carbon
Removes chlorine, odour
3
RO Membrane
Removes dissolved solids
4
UV Lamp
Kills bacteria & viruses
5
UF Membrane
Blocks micro-organisms
6
TDS Controller
Retains essential minerals
7
Post Carbon
Final taste & polish

What Our Customers Say

2 lakh+ happy families across India

⭐⭐⭐⭐⭐

"We were drinking highly contaminated water from our borewell. AquaPure Pro reduced our TDS from 980 to 42. My kids haven't had stomach issues since!"

R
Rajesh KumarHyderabad
⭐⭐⭐⭐⭐

"Installation was done same day. The technician was professional and explained everything. Water tastes amazing — much better than packaged water!"

P
Priya SharmaMumbai
⭐⭐⭐⭐⭐

"Bought the Elite model for my restaurant. The app monitoring is a game changer. I can check water quality remotely. Worth every rupee!"

A
Amit PatelAhmedabad

Get a Free Water Quality Test

Our expert will visit your home, test your water TDS & contamination level, and recommend the right purifier. Completely free, no obligation.

  • ✅ Free home visit & water testing
  • ✅ TDS level report provided
  • ✅ Best product recommendation
  • ✅ Special discount for same-day orders

Book Free Home Visit

📞 Or call us: 1800-123-4567 (Toll Free)

// const WORKER_URL = window.AQUAPURE_WORKER_URL || null; const BOT_ID = window.AQUAPURE_BOT_ID || 'demo'; const IS_LIVE = !!(WORKER_URL && BOT_ID !== 'demo'); // Demo Gemini key — replace with your own from aistudio.google.com (free) // This is a DEMO key with restricted quota. For production use your Worker. const DEMO_GEMINI_KEY = window.AQUAPURE_GEMINI_KEY || ''; const PRIMARY = '#0ea5e9'; const BOT_NAME = 'Aqua'; const GREETING = 'Hi there! 👋 I\'m Aqua, your personal water quality advisor.\n\nWhat\'s your water source at home — municipal tap or borewell?'; // ── AquaPure knowledge base (for demo mode) ──────────── const KNOWLEDGE = ` You are Aqua, the AI sales assistant for AquaPure India — India's #1 rated water purifier brand. PRODUCTS: 1. AquaPure Essential — ₹8,999 - 6-stage RO + UF + TDS controller - 10L tank, 1-year warranty, free installation - Best for: Municipal water, TDS 200–500 - EMI: Not available 2. AquaPure Pro — ₹14,999 (MOST POPULAR ⭐) - 7-stage RO + UV + UF + Mineral Enhancer - 15L tank, 3-year warranty, free installation - Smart TDS display, filter change alert - EMI: ₹625/month (0% for 24 months) - Best for: Any water source, TDS up to 2000 3. AquaPure Elite — ₹22,999 - 9-stage RO + UV + UF + Alkaline + Wi-Fi app - 20L tank, 5-year warranty, hot & cold dispenser - App monitoring, auto sanitization - EMI: ₹960/month (0% for 24 months) - Best for: Premium households, restaurants, offices KEY FACTS: - Free installation within 24 hours across 500+ cities - 30-day return guarantee — no questions asked - AMC (Annual Maintenance Contract): ₹999/year (filters + 2 visits) - TDS below 50 = too pure, 50-150 = ideal, above 500 = dangerous - RO removes: dissolved salts, heavy metals, bacteria, viruses - UV kills bacteria without removing minerals (for low-TDS water) PAIN POINTS TO WATCH FOR: - High TDS (borewell/tanker water) → recommend Pro or Elite - Health issues (stomach problems, skin) → emphasize filtration quality - Price concern → break into daily cost (₹14,999 Pro = ₹1.37/day over 3 years) - Hesitation → offer free water test + 30-day return guarantee - Already have a purifier → ask when last serviced, most lose efficiency after 3 years YOUR SALES MISSION: 1. Ask about their water source first 2. Find out if they have health concerns or high TDS 3. Recommend the right product confidently 4. Offer free home demo/water test to overcome hesitation 5. Capture their name + mobile number to book 6. Always mention the 30-day return guarantee to close hesitant buyers RESPONSE RULES: - Keep replies SHORT — max 3 sentences + 1 question - Be warm, personal, direct — like a knowledgeable friend - Use ₹ symbol for prices, not "Rs." or "INR" - Never be pushy — be genuinely helpful - If they ask for a price, give it immediately + EMI option - Always end with ONE question to keep the conversation moving `; // ── Session ID (persisted per browser tab) ───────────── const SESSION_ID = (function() { const k = 'aq_sess'; let s = sessionStorage.getItem(k); if (!s) { s = 'sess_' + Math.random().toString(36).slice(2) + Date.now().toString(36); sessionStorage.setItem(k, s); } return s; })(); // ── Conversation history (for Gemini multi-turn) ──────── const history = []; let isTyping = false; let isOpen = false; let greetingShown = false; // ── Detect what section user is looking at ────────────── function getPageContext() { const sections = ['products', 'why', 'testimonials', 'contact']; let visible = null; for (const id of sections) { const el = document.getElementById(id); if (!el) continue; const rect = el.getBoundingClientRect(); if (rect.top < window.innerHeight * 0.6 && rect.bottom > 0) { visible = id; break; } } const contextMap = { products: ' The visitor is currently viewing our product lineup.', why: ' The visitor is reading about why AquaPure is the best choice.', testimonials: ' The visitor is reading customer reviews.', contact: ' The visitor is on the contact/booking section — they are likely ready to take action.', }; return contextMap[visible] || ' The visitor is on the homepage.'; } // ── Call Gemini API directly (demo mode) ──────────────── async function callGemini(userMsg) { if (!DEMO_GEMINI_KEY) { return "I'm ready to help! To activate live AI, add a free Gemini API key in chatbot-config.js. Get one at aistudio.google.com/app/apikey 🔑"; } const pageContext = getPageContext(); const systemInstruction = KNOWLEDGE + '\n\nCURRENT CONTEXT:' + pageContext; const payload = { system_instruction: { parts: [{ text: systemInstruction }] }, contents: [ ...history, { role: 'user', parts: [{ text: userMsg }] } ], generationConfig: { temperature: 0.75, maxOutputTokens: 250, } }; const res = await fetch( `https://generativelanguage.googleapis.com/v1/models/gemini-2.5-flash:generateContent?key=${DEMO_GEMINI_KEY}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload) } ); if (!res.ok) { if (res.status === 429) return "Our AI is taking a quick breather — the demo quota is temporarily full! 😊 Please call us at 📞 1800-123-4567 (Toll Free) or share your number and we'll call you back!"; if (res.status === 400) return "Something went wrong on my end. Please refresh the page and try again!"; if (res.status === 403) return "I'm having trouble connecting right now. Please call us at 📞 1800-123-4567 — we'd love to help!"; return "I'm having a small technical hiccup. Our team is available at 📞 1800-123-4567!"; } const data = await res.json(); return data?.candidates?.[0]?.content?.parts?.[0]?.text || "I'm here to help! Could you tell me more about your water situation?"; } // ── Call Worker API (live mode) ───────────────────────── async function callWorker(userMsg) { const res = await fetch(`${WORKER_URL}/chat`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: userMsg, session_id: SESSION_ID, client_id: BOT_ID, page_url: window.location.href }) }); if (!res.ok) throw new Error('Worker error'); const data = await res.json(); return { reply: data.reply, show_calendly: data.show_calendly, calendly_url: data.calendly_url }; } // ── Main send function ────────────────────────────────── async function sendMessage(userMsg) { if (isTyping || !userMsg.trim()) return; isTyping = true; addMsg(userMsg, 'user'); clearInput(); showTyping(); try { let replyText, showCalendly = false, calendlyUrl = null; if (IS_LIVE) { const r = await callWorker(userMsg); replyText = r.reply; showCalendly = r.show_calendly; calendlyUrl = r.calendly_url; } else { replyText = await callGemini(userMsg); } // Update Gemini history history.push({ role: 'user', parts: [{ text: userMsg }] }); history.push({ role: 'model', parts: [{ text: replyText }] }); if (history.length > 20) history.splice(0, 2); hideTyping(); addMsg(replyText, 'bot'); // Show Calendly banner if applicable if (showCalendly && calendlyUrl) showCalendlyBanner(calendlyUrl); // In demo mode, detect booking intent and show Calendly after 4 exchanges if (!IS_LIVE && history.length >= 8) { const lastUserMsg = userMsg.toLowerCase(); if (/book|demo|visit|appointment|call|meet|price|buy|purchase|order/i.test(lastUserMsg)) { showCalendlyBanner('https://calendly.com/aquapure/free-demo'); } } } catch (e) { hideTyping(); addMsg("Sorry, I'm having trouble connecting. Please call us at 📞 1800-123-4567 (Toll Free)!", 'bot'); } finally { isTyping = false; document.getElementById('aq-send').disabled = false; } } // ── Build the widget DOM ──────────────────────────────── function buildWidget() { const css = ` #aq-wrap * { box-sizing:border-box; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; margin:0; padding:0; } #aq-bubble { position:fixed; bottom:24px; right:24px; width:62px; height:62px; background:${PRIMARY}; border-radius:50%; cursor:pointer; border:none; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 24px rgba(14,165,233,.45); z-index:2147483646; transition:transform .2s,box-shadow .2s; outline:none; } #aq-bubble:hover { transform:scale(1.1); box-shadow:0 6px 32px rgba(14,165,233,.6); } #aq-bubble svg { width:27px; height:27px; fill:white; } #aq-badge { position:absolute; top:-2px; right:-2px; width:20px; height:20px; background:#ef4444; border-radius:50%; border:2px solid white; display:none; align-items:center; justify-content:center; font-size:11px; color:white; font-weight:800; } #aq-win { position:fixed; bottom:98px; right:24px; width:375px; height:560px; background:white; border-radius:20px; box-shadow:0 16px 64px rgba(0,0,0,.18); display:flex; flex-direction:column; z-index:2147483645; overflow:hidden; transform:scale(.92) translateY(12px); opacity:0; pointer-events:none; transition:transform .25s cubic-bezier(.34,1.56,.64,1),opacity .2s; } #aq-win.open { transform:scale(1) translateY(0); opacity:1; pointer-events:all; } #aq-head { background:${PRIMARY}; padding:16px 18px; display:flex; align-items:center; gap:12px; flex-shrink:0; } #aq-avatar { width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.22); display:flex; align-items:center; justify-content:center; font-size:22px; } #aq-head-name { font-weight:700; font-size:15px; color:white; } #aq-head-status { font-size:12px; color:rgba(255,255,255,.85); display:flex; align-items:center; gap:5px; margin-top:2px; } .aq-dot { width:7px; height:7px; background:#4ade80; border-radius:50%; display:inline-block; animation:aq-pulse 2s infinite; } @keyframes aq-pulse { 0%,100%{opacity:1} 50%{opacity:.5} } #aq-close { margin-left:auto; background:rgba(255,255,255,.2); border:none; color:white; width:30px; height:30px; border-radius:50%; cursor:pointer; font-size:16px; display:flex; align-items:center; justify-content:center; transition:background .15s; } #aq-close:hover { background:rgba(255,255,255,.35); } #aq-msgs { flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:10px; scroll-behavior:smooth; } #aq-msgs::-webkit-scrollbar { width:4px; } #aq-msgs::-webkit-scrollbar-thumb { background:#e2e8f0; border-radius:2px; } .aq-msg { display:flex; flex-direction:column; max-width:83%; } .aq-msg.bot { align-self:flex-start; } .aq-msg.user { align-self:flex-end; align-items:flex-end; } .aq-bbl { padding:11px 14px; border-radius:16px; font-size:14px; line-height:1.58; word-break:break-word; white-space:pre-wrap; } .aq-msg.bot .aq-bbl { background:#f1f5f9; color:#1e293b; border-bottom-left-radius:3px; } .aq-msg.user .aq-bbl { background:${PRIMARY}; color:white; border-bottom-right-radius:3px; } .aq-time { font-size:11px; color:#94a3b8; margin-top:3px; } #aq-typing { display:none; align-self:flex-start; } #aq-typing .aq-bbl { background:#f1f5f9; display:flex; gap:5px; align-items:center; padding:14px; } .aq-dot-t { width:7px; height:7px; background:#94a3b8; border-radius:50%; animation:aq-bounce 1.2s infinite; } .aq-dot-t:nth-child(2){animation-delay:.22s} .aq-dot-t:nth-child(3){animation-delay:.44s} @keyframes aq-bounce { 0%,60%,100%{transform:translateY(0)} 30%{transform:translateY(-7px)} } #aq-calendly { margin:0 14px 10px; padding:12px 14px; background:#eff6ff; border:1px solid #bfdbfe; border-radius:12px; display:none; align-items:center; gap:10px; } #aq-calendly span { flex:1; font-size:13px; color:#1e40af; font-weight:600; } #aq-cal-btn { background:${PRIMARY}; color:white; border:none; border-radius:8px; padding:7px 14px; font-size:12px; font-weight:700; cursor:pointer; white-space:nowrap; } #aq-qr { display:flex; gap:7px; padding:0 14px 10px; flex-wrap:wrap; } .aq-qr-btn { background:#f1f5f9; border:1px solid #e2e8f0; border-radius:20px; padding:6px 14px; font-size:12px; color:#374151; cursor:pointer; transition:background .15s,border-color .15s; white-space:nowrap; } .aq-qr-btn:hover { background:#e0f2fe; border-color:${PRIMARY}; color:${PRIMARY}; } #aq-foot { padding:10px 14px; border-top:1px solid #f1f5f9; display:flex; gap:10px; align-items:flex-end; flex-shrink:0; } #aq-input { flex:1; border:1.5px solid #e2e8f0; border-radius:12px; padding:10px 13px; font-size:14px; outline:none; resize:none; transition:border-color .15s; background:#f8fafc; max-height:80px; line-height:1.45; } #aq-input:focus { border-color:${PRIMARY}; background:white; } #aq-send { background:${PRIMARY}; border:none; color:white; width:40px; height:40px; border-radius:12px; cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:opacity .15s; } #aq-send:disabled { opacity:.4; cursor:not-allowed; } #aq-send svg { width:18px; height:18px; fill:white; } #aq-powered { text-align:center; font-size:10px; color:#cbd5e1; padding:5px 0 9px; flex-shrink:0; } @media(max-width:440px){ #aq-win{width:calc(100vw - 20px);right:10px;bottom:86px;height:72vh;} #aq-bubble{right:14px;bottom:14px;} } `; const el = document.createElement('div'); el.id = 'aq-wrap'; el.innerHTML = ` `; document.body.appendChild(el); } // ── Message helpers ───────────────────────────────────── function addMsg(text, role) { const msgs = document.getElementById('aq-msgs'); const div = document.createElement('div'); div.className = `aq-msg ${role}`; const now = new Date().toLocaleTimeString([], { hour:'2-digit', minute:'2-digit' }); div.innerHTML = `
${text}
${now}
`; msgs.appendChild(div); // Hide quick replies after first user message if (role === 'user') document.getElementById('aq-qr').style.display = 'none'; msgs.scrollTop = msgs.scrollHeight; return div; } function showTyping() { const t = document.getElementById('aq-typing'); t.style.display = 'flex'; document.getElementById('aq-msgs').scrollTop = 9999; } function hideTyping() { document.getElementById('aq-typing').style.display = 'none'; } function clearInput() { const inp = document.getElementById('aq-input'); inp.value = ''; inp.style.height = 'auto'; document.getElementById('aq-send').disabled = true; } function showCalendlyBanner(url) { const b = document.getElementById('aq-calendly'); b.style.display = 'flex'; document.getElementById('aq-cal-btn').onclick = () => window.open(url, '_blank'); } // ── Quick replies (called from onclick) ───────────────── window.aqSendQuick = function(text) { sendMessage(text); }; // ── Toggle open / close ───────────────────────────────── function toggle() { isOpen = !isOpen; document.getElementById('aq-win').classList.toggle('open', isOpen); document.getElementById('aq-bubble').setAttribute('aria-expanded', String(isOpen)); document.getElementById('aq-badge').style.display = 'none'; if (isOpen && !greetingShown) { greetingShown = true; // Small delay so animation plays first setTimeout(() => { addMsg(GREETING, 'bot'); history.push({ role:'model', parts:[{ text: GREETING }] }); }, 350); } if (isOpen) { setTimeout(() => document.getElementById('aq-input').focus(), 400); } } // ── Show notification badge after 6s ─────────────────── function showBadge() { setTimeout(() => { if (!isOpen) document.getElementById('aq-badge').style.display = 'flex'; }, 6000); } // ── Wire up events ────────────────────────────────────── function attachEvents() { document.getElementById('aq-bubble').addEventListener('click', toggle); document.getElementById('aq-close').addEventListener('click', toggle); const inp = document.getElementById('aq-input'); const send = document.getElementById('aq-send'); inp.addEventListener('input', function() { send.disabled = this.value.trim().length === 0; this.style.height = 'auto'; this.style.height = Math.min(this.scrollHeight, 80) + 'px'; }); inp.addEventListener('keydown', function(e) { if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); const msg = this.value.trim(); if (msg && !isTyping) sendMessage(msg); } }); send.addEventListener('click', function() { const inp = document.getElementById('aq-input'); const msg = inp.value.trim(); if (msg && !isTyping) sendMessage(msg); }); // Context-aware: auto-open chat when user reaches contact section const contactSection = document.getElementById('contact'); if (contactSection) { const obs = new IntersectionObserver(entries => { if (entries[0].isIntersecting && !isOpen && !greetingShown) { setTimeout(() => { toggle(); }, 1200); } }, { threshold: 0.4 }); obs.observe(contactSection); } } // ── Init ──────────────────────────────────────────────── function init() { buildWidget(); attachEvents(); showBadge(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();