Transform your smile with personalised cosmetic dental treatments designed to enhance your smile and achieve natural-looking results — from our experienced Ivanhoe dentists, using modern techniques tailored to your needs.
A member of the Dentists of Ivanhoe team will call you shortly to book your free consultation.
Looking for a cosmetic dentist near you? At Dentists of Ivanhoe, we provide personalised cosmetic dentistry solutions designed to improve the appearance of your smile while maintaining a natural look. Whether you’re considering veneers, professional teeth whitening, Invisalign, dental bonding or a complete smile makeover, our experienced cosmetic dentists work closely with you to create a treatment plan tailored to your goals, lifestyle and budget.
Brighten your smile with professional whitening designed for even, natural-looking results.
Custom-crafted shells designed to reshape and refine your smile while looking natural.
Straighten your teeth discreetly with clear aligners tailored to your lifestyle.
Restore strength and shape to damaged teeth with crowns designed to blend seamlessly.
A combination of treatments tailored to your goals for a complete smile transformation.
A long-term option designed to replace missing teeth and support a natural smile.
We use advanced digital technology and modern equipment to accurately plan your treatment and deliver precise, safe and predictable cosmetic dental results.
Our highly qualified and experienced cosmetic dentists provide personalised treatment focused on beautiful, natural-looking smiles.
We offer flexible interest-free payment options to help make cosmetic dentistry more affordable and accessible, so you can pursue your smile goals sooner.
Every smile is unique. That’s why we create personalised treatment plans tailored to your facial features, dental goals and desired outcome.
Meet our team to discuss your smile goals, with no obligation.
A thorough assessment of your teeth, gums and bite using modern digital tools.
A tailored plan built around your goals, timeline and budget.
Your treatment is carried out with care, using modern techniques.
Leave with a smile designed to look and feel like you.
See how personalised cosmetic dentistry has helped our patients achieve healthier, brighter and more confident smiles.
Everyone deserves to feel confident about their smile. We offer flexible payment options to help make cosmetic dental treatment more accessible. Speak with our team during your consultation to discuss the payment solutions available to you.
Fill in the form and a member of our Ivanhoe team will be in touch to arrange your free, no-obligation consultation.
61 Upper Heidelberg Road, Ivanhoe, VIC 3079
A member of the Dentists of Ivanhoe team will call you shortly to book your free consultation.
const CONFIG = { CLINIC_PHONE_DISPLAY: "(03) 4060 3961", CLINIC_PHONE_TEL: "+61340603961", CLINIC_EMAIL: "info@dentistsofivanhoe.com.au", BOOKING_URL: "https://dentistsofivanhoe.com.au/book-online/", // TODO: confirm live booking URL
// Where lead form submissions are sent (Zapier / Make / CRM webhook). CRM_WEBHOOK_URL: "https://YOUR-CRM-OR-ZAPIER-WEBHOOK.example.com/lead", // TODO
// Google Ads conversion tracking (Website actions → get from Google Ads > Goals > Conversions) GOOGLE_ADS_CONVERSION_ID: "AW-XXXXXXXXX", // TODO GOOGLE_ADS_FORM_LABEL: "XXXXXXXXXXXXXXXXXXXX", // TODO — "Submit lead form" conversion GOOGLE_ADS_CALL_LABEL: "YYYYYYYYYYYYYYYYYYYY" // TODO — "Click to call" conversion };
/* ---- Google Ads gtag loader (uncomment + set ID above before launch) ---- (function(){ var s=document.createElement('script'); s.async=true; s.src="https://www.googletagmanager.com/gtag/js?id="+CONFIG.GOOGLE_ADS_CONVERSION_ID; document.head.appendChild(s); })(); window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', CONFIG.GOOGLE_ADS_CONVERSION_ID); --------------------------------------------------------------------------- */ function fireConversion(label){ if (typeof gtag === 'function' && CONFIG.GOOGLE_ADS_CONVERSION_ID.indexOf('XXX') === -1) { gtag('event', 'conversion', { send_to: CONFIG.GOOGLE_ADS_CONVERSION_ID + '/' + label }); } console.log('[conversion fired]', label); }
// Click-to-call tracking on every phone link document.querySelectorAll('a[href^="tel:"]').forEach(function(el){ el.addEventListener('click', function(){ fireConversion(CONFIG.GOOGLE_ADS_CALL_LABEL); }); });
// Service card → pre-fill treatment + scroll to hero form document.querySelectorAll('.svc-link').forEach(function(btn){ btn.addEventListener('click', function(){ var treatment = btn.getAttribute('data-treatment'); var qf = document.getElementById('qf-treatment'); var ff = document.getElementById('ff-treatment'); if (qf) qf.value = treatment; if (ff) ff.value = treatment; document.getElementById('lead-form').scrollIntoView({behavior:'smooth', block:'center'}); }); });
// Generic form submit handler shared by both forms function handleFormSubmit(formEl, successEl, sourceLabel){ formEl.addEventListener('submit', function(e){ e.preventDefault(); if (!formEl.checkValidity()) { formEl.reportValidity(); return; }
var data = Object.fromEntries(new FormData(formEl).entries()); data.lead_source = sourceLabel; data.page_url = window.location.href; data.submitted_at = new Date().toISOString();
// POST to CRM / webhook — replace CONFIG.CRM_WEBHOOK_URL above. fetch(CONFIG.CRM_WEBHOOK_URL, { method: 'POST', mode: 'no-cors', headers: {'Content-Type':'application/json'}, body: JSON.stringify(data) }).catch(function(err){ console.warn('CRM webhook not reachable yet — configure CONFIG.CRM_WEBHOOK_URL', err); });
fireConversion(CONFIG.GOOGLE_ADS_FORM_LABEL); if (typeof gtag === 'function') { gtag('event', 'generate_lead', {lead_source: sourceLabel}); }
formEl.style.display = 'none'; successEl.style.display = 'block'; }); } handleFormSubmit(document.getElementById('quickForm'), document.getElementById('quickFormSuccess'), 'hero_quick_form'); handleFormSubmit(document.getElementById('fullForm'), document.getElementById('fullFormSuccess'), 'footer_full_form');
// Scroll-reveal if ('IntersectionObserver' in window) { var io = new IntersectionObserver(function(entries){ entries.forEach(function(entry){ if (entry.isIntersecting){ entry.target.classList.add('in'); io.unobserve(entry.target); } }); }, {threshold:.12}); document.querySelectorAll('.reveal').forEach(function(el){ io.observe(el); }); } else { document.querySelectorAll('.reveal').forEach(function(el){ el.classList.add('in'); }); }