{"id":31892,"date":"2021-06-17T04:54:28","date_gmt":"2021-06-17T04:54:28","guid":{"rendered":"https:\/\/inmoment.com\/xi-terms\/net-promoter-score\/good-nps-score\/"},"modified":"2023-11-14T11:24:19","modified_gmt":"2023-11-14T18:24:19","slug":"good-nps-score","status":"publish","type":"glossary-terms","link":"https:\/\/inmoment.com\/en-nz\/xi-terms\/good-nps-score\/","title":{"rendered":"Good NPS Score"},"content":{"rendered":"<p><a href=\"https:\/\/inmoment.com\/en-nz\/xi-terms\/net-promoter-score\/\">Net Promoter Score<\/a> works best as a metric to track your customer loyalty, so you can see, in real-time, how your decisions affect customer satisfaction and success. It\u2019s a tool intended to fuel continuous improvement.<\/p>\n<p>Whatever your starting score is \u2013 and no matter what your industry benchmark NPS may be \u2013 your focus should be on raising your number.<\/p>\n<p>That said, we understand that there\u2019s a lot of curiosity around evaluating your score against the competition and industry standards. So, we\u2019ll go into how NPS is calculated and where you can find the most up-to-date benchmark numbers.<\/p>\n<h3>Calculating NPS for the Uninitiated<\/h3>\n<p>Here\u2019s the quick n\u2019 dirty on calculating NPS: Subtract the percentage of promoters from the percentage of detractors. BOOM.<\/p>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/inmoment.com\/wp-content\/uploads\/2021\/06\/NPS_graphic-calculation-1024x384.png\" alt=\"NPS detractors, passives and promoters\" class=\"wp-image-25031\" style=\"width:512px;height:192px\" width=\"512\" height=\"192\" srcset=\"https:\/\/inmoment.com\/wp-content\/uploads\/2021\/06\/NPS_graphic-calculation-1024x384.png 1024w, https:\/\/inmoment.com\/wp-content\/uploads\/2021\/06\/NPS_graphic-calculation-300x113.png 300w, https:\/\/inmoment.com\/wp-content\/uploads\/2021\/06\/NPS_graphic-calculation-768x288.png 768w, https:\/\/inmoment.com\/wp-content\/uploads\/2021\/06\/NPS_graphic-calculation-1536x576.png 1536w, https:\/\/inmoment.com\/wp-content\/uploads\/2021\/06\/NPS_graphic-calculation-2048x769.png 2048w, https:\/\/inmoment.com\/wp-content\/uploads\/2021\/06\/NPS_graphic-calculation-1920x721.png 1920w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/figure>\n<\/div>\n\n<p>Your Net Promoter Score can range from negative 100 to 100 ( -100 to +100).<\/p>\n<p>At -100, every single person who responds is a detractor. They would not recommend you, and they\u2019re likely to leave bad reviews of your product or service.<\/p>\n<p>At \u201cZero\u201d NPS, everyone is either passive (not a detractor, but not a promoter either), or you have equal numbers of promoters and detractors, essentially canceling each other out.<\/p>\n<p>If 30% of your customers say they\u2019d be happy to recommend you, but 5% would absolutely not, your NPS is 30-5=25.<\/p>\n<p>An NPS of 50 means that at least 50% of your respondents are promoters, and fewer than 50% detractors. To put it another way, an NPS of 50 can result from any of the scenarios below.<\/p>\n<p>And yes, you ignore the passives entirely in the NPS calculation.<\/p>\n\n\n<style>\ntable td {\ndisplay: table-cell;\nborder-bottom: 1px solid transparent !important;\n}\n<\/style>\n\n\n\n<figure class=\"wp-block-table aligncenter is-style-stripes\"><table><thead><tr><th>% Promoters<\/th><th>% Detractors<\/th><\/tr><\/thead><tbody><tr><td>50%<\/td><td>0%<\/td><\/tr><tr><td>60%<\/td><td>10%<\/td><\/tr><tr><td>70%<\/td><td>20%<\/td><\/tr><tr><td>80%<\/td><td>30%<\/td><\/tr><tr><td>90%<\/td><td>40%<\/td><\/tr><tr><td>100%<\/td><td>50%<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<section id=\"block-f503fff27124697c925b7ec3f3462e6d\" class=\"content-block asset-download-cta-block alignfull--\" style=\"\"><div class=\"rounded-md border-marlin border border-solid asset-download-cta-block-container \">\n    <div class=\"asset-download-cta-block-bg--\">\n        <div class=\"innerbackground background-marlin \"><\/div>\n    <\/div>\n\n    <div class=\"container-- p-5\">\n        <!--     if LANDSCAPE-RIGHT\/LEFT, add class to innerbackground for background width and height in mobile -->\n        <div class=\"asset-download-cta-block-content-wrapper-- \">\n\n            <div class=\"image-side-- mb-4\" >\n                                    <img decoding=\"async\" class=\"rounded\" loading=\"lazy\" width=\"438\" height=\"569\" src=\"https:\/\/inmoment.com\/wp-content\/uploads\/2021\/06\/modern-guide-nps.jpg\" \/>\n                            <\/div>\n\n            <div class=\"content-side--\">\n\n                                    <h5 class=\"eyebrow-heading eyebrow-heading-style-default-tsunami\">\n                        E-BOOK                    <\/h5>\n                \n                                    <h4 class=\"color-orca\">\n                        The Modern Guide to Winning Customers with Net Promoter Score                    <\/h4>\n                \n                                    <div class=\"color-orca\">\n                        <p><p>8 Ways to Modernise Your NPS program and Create a Culture of Customer Happiness<\/p>\n<\/p>\n                    <\/div>\n                \n                                    <a href=\"https:\/\/inmoment.com\/en-nz\/lp\/the-modern-guide-to-winning-customers-with-net-promoter-score-in-b2b-tech\/\" class=\"button color-albatross background-tsunami\" target=\"\">\n                        <span>\n                            Download eBook                        <\/span>\n                    <\/a>\n                \n            <\/div>\n\n        <\/div>\n\n    <\/div>\n<\/div>\n\n<\/section>\n\n\n<h3>So, what\u2019s a good NPS?<\/h3>\n<p>Okay, let\u2019s get one thing straight first. You don\u2019t say \u201cNPS score\u201d because \u201cscore\u201d is what the \u201cS\u201d in \u201cNPS\u201d stands for. It\u2019s like saying \u201cchai tea\u201d when chai means tea (yes, it really does).<\/p>\n<p>Now the answer: It depends on\u2026<\/p>\n<h5>Your industry<\/h5>\n<p>A good net promoter score depends on your industry. Some industries (looking at you banking and healthcare) have a very tough time getting numbers above +30. Digital marketing averages around +61 according to recent survey results from Temkin.<\/p>\n<p>For SaaS businesses, we typically like to see an NPS of +50 or more \u2014 that\u2019s a healthy starting goal. But, as long as your numbers are moving in a positive direction, you are strengthening your business.<\/p>\n<h5>Cultural differences<\/h5>\n<p>If you\u2019re a global company, and you notice that your net promoter score is great in the US, but take a dive in France, that may be due to cultural differences. Some cultures are less likely to use the top of *any* scale. Like that college professor who refuses to give an \u201cA\u201d, so even the best student gets a B+.<\/p>\n<h5>Survey methodology and channel<\/h5>\n<p>Where and how you deliver your NPS survey can impact your results. To control for that, think about where your customers expect to hear from you. Keep in mind in-app surveys tend to get higher response rates, but people who respond to email as more likely to leave comments that explain their score.<\/p>\n<h5>Niche expectations<\/h5>\n<p>Every customer niche has a set of preconceived notions and expectations, so keep your customer base in mind. In the B2B sector, you may find that marketers are generally more enthusiastic than, say, engineers. Interestingly, net promoter scores have been slowly lowering over time because all customer expectations for service have been rising, but some niches have higher expectations than others!<\/p>\n<h3>Resources for NPS benchmarks by industry<\/h3>\n<ul>\n<li><a href=\"https:\/\/www.forrester.com\/report\/Net+Promoter+Benchmarks+2020+US\/-\/E-RES162297\" target=\"_blank\" rel=\"noopener\">Forrester\u2019s 2020 report<\/a> of 260 organisations across 16 industries<\/li>\n<li><a href=\"https:\/\/www.satmetrix.com\/npx\/npx-now-research\/\" target=\"_blank\" rel=\"noopener\">Satmetrix<\/a> published B2C and B2B NPS benchmark reports<\/li>\n<\/ul>\n<p>Remember: NPS is a tool, not a judgment. So use whatever number you have as the foundation for a healthier, more productive, more successful relationship with your customers.<\/p>\n\n<section id=\"block-c40386bced7e1ae851bdf6b81a68079f\" class=\"post-cards-block alignfull alignwide no-background\" style=\"\">\n\t<div class=\"container\">\n\n\t\t\t\t\t\t\t<h2 class=\"post-cards-block-heading \">Further Reading<\/h2>\n\t\t\n\t\t<div class=\"post-cards-block-cards\">\n\t\t\t\t\t\t\t\t<div class=\"card post-card \">\n\t\t\t\t\t<p class=\"card-meta\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"post-card-tax\">Digital Listening<\/span>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<\/p>\n\t\t\n\t\t<div class=\"card-content\">\n\t\t\t\t\t\t\t<p class=\"card-title\"><a href=\"https:\/\/inmoment.com\/blog\/net-promoter-score-for-saas\/\">10 Things Every SaaS Business Should Know About Net Promoter Score<\/a><\/p>\n\t\t\t\n\t\t\t\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"card-footer\">\n\t\t\t\t\t\t\t<div class=\"card-image-wrap\">\n\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"211\" src=\"https:\/\/inmoment.com\/wp-content\/uploads\/2020\/05\/saasnps-300x211.jpg\" class=\"attachment-medium size-medium wp-post-image\" alt=\"\" srcset=\"https:\/\/inmoment.com\/wp-content\/uploads\/2020\/05\/saasnps-300x211.jpg 300w, https:\/\/inmoment.com\/wp-content\/uploads\/2020\/05\/saasnps-1024x719.jpg 1024w, https:\/\/inmoment.com\/wp-content\/uploads\/2020\/05\/saasnps-768x539.jpg 768w, https:\/\/inmoment.com\/wp-content\/uploads\/2020\/05\/saasnps.jpg 1280w\" loading=\"lazy\" \/>\t\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t\t<a class=\"button cta cta-card\" href=\"https:\/\/inmoment.com\/blog\/net-promoter-score-for-saas\/\">\n\t\t\t\t\t<span>Continue Reading<\/span>\n\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\n\t<\/div><!-- .card -->\n\t\t<div class=\"card post-card \">\n\t\t\t\t\t<p class=\"card-meta\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"post-card-tax\">Digital Listening<\/span>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<\/p>\n\t\t\n\t\t<div class=\"card-content\">\n\t\t\t\t\t\t\t<p class=\"card-title\"><a href=\"https:\/\/inmoment.com\/?p=23745\">Net Promoter Score for Startups:  Saastr&#039;s Jason Lemkin and Wootric CEO Deepa Subramanian on NPS as a KPI<\/a><\/p>\n\t\t\t\n\t\t\t\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"card-footer\">\n\t\t\t\t\t\t\t<div class=\"card-image-wrap\">\n\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"199\" src=\"https:\/\/inmoment.com\/wp-content\/uploads\/2020\/09\/Untitled-design-15-300x199.png\" class=\"attachment-medium size-medium wp-post-image\" alt=\"CX Elevated EMEA\" srcset=\"https:\/\/inmoment.com\/wp-content\/uploads\/2020\/09\/Untitled-design-15-300x199.png 300w, https:\/\/inmoment.com\/wp-content\/uploads\/2020\/09\/Untitled-design-15.png 660w\" loading=\"lazy\" \/>\t\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t\t<a class=\"button cta cta-card\" href=\"https:\/\/inmoment.com\/?p=23745\">\n\t\t\t\t\t<span>Continue Reading<\/span>\n\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\n\t<\/div><!-- .card -->\n\t\t<div class=\"card post-card \">\n\t\t\t\t\t<p class=\"card-meta\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"post-card-tax\">Digital Listening<\/span>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<\/p>\n\t\t\n\t\t<div class=\"card-content\">\n\t\t\t\t\t\t\t<p class=\"card-title\"><a href=\"https:\/\/inmoment.com\/blog\/blog-nps-calculation-concept\/\">How to Calculate Net Promoter Score (NPS Calculation)<\/a><\/p>\n\t\t\t\n\t\t\t\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"card-footer\">\n\t\t\t\t\t\t\t<div class=\"card-image-wrap\">\n\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"171\" src=\"https:\/\/inmoment.com\/wp-content\/uploads\/2021\/05\/Two-Step-in-app-NPS-Survey-300x171.png\" class=\"attachment-medium size-medium wp-post-image\" alt=\"\" srcset=\"https:\/\/inmoment.com\/wp-content\/uploads\/2021\/05\/Two-Step-in-app-NPS-Survey-300x171.png 300w, https:\/\/inmoment.com\/wp-content\/uploads\/2021\/05\/Two-Step-in-app-NPS-Survey.png 626w\" loading=\"lazy\" \/>\t\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t\t<a class=\"button cta cta-card\" href=\"https:\/\/inmoment.com\/blog\/blog-nps-calculation-concept\/\">\n\t\t\t\t\t<span>Continue Reading<\/span>\n\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\n\t<\/div><!-- .card -->\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<button class=\"button ghost blue\">\n\t\t\t\t<a href=\"https:\/\/inmoment.com\/en-nz\/resources\/\" target=\"\">\n\t\t\t\t\t<span>Experience Improvement (XI) Resources<\/span>\n\t\t\t\t<\/a>\n\t\t\t<\/button>\n\t\t\n\t<\/div> <!-- .container -->\n\n<\/section>\n\n\n\n<section id=\"section-block_40e727c045dba343c01868d741eba1a2\" class=\"block-section bg-orca   bg-cover bg-center bg-no-repeat  alignfull\"\n    style=\" \">\n\n    <div class=\"py-100px\">\n\n        <div class=\"container\">\n\n            \n\n<section id=\"section-block_689ec5a4549d0e0e6c154dc03d43faf3\" class=\" \">\n\n\t<div class=\"cta-block-inner flex bg-albatross rounded-2xl p-2 flex-col lg:flex-row\">\n\n\t\t<div class=\"cta-block-inner-content text-center cta-block-inner-child flex flex-col justify-center bg-gradient-to-b from-albatross to-dory\/10 p-20px sm:p-50px xl:px-80px xl:py-50px rounded-lg relative lg:max-w-1\/2 lg:w-[60%]\">\n\t\t\t<img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/inmoment.com\/wp-content\/themes\/inmoment\/src\/images\/homepage\/cta-bg.webp\" class=\"absolute object-cover object-center left-0 top-0 w-full h-full\" alt=\"\">\n\t\t\t<div class=\"relative grid flex-row-reverse\">\n\t\t\t<h2 class=\"basis-full\">\n\t\t\t\t\t\t\t\t\tSee ROI in\n\t\t\t\t\t<span class=\"text-marine\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tHalf the Time\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\n\t\t\t\t\t\t\t\t<\/h2>\n\n\t\t\t\t\t\t\t<p class=\"text-orca text-[17px] md:basis-1\/2 self-center md:text-left\">InMoment\u2019s integrated CX approach increases customer lifetime value and bottom line performance in just 12 months, significantly faster than the industry average of 25 months!<\/p>\n\t\t\t\n\t\t\t\t\t\t\t<div class=\"flex w-full justify-center items-center flex-col md:basis-1\/2 self-center\">\n\t\t\t\t\t<img decoding=\"async\" width=\"529\" height=\"366\" src=\"https:\/\/inmoment.com\/wp-content\/uploads\/2023\/11\/ROI-With-InMoment.svg\" class=\"attachment-large size-large\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t<p class=\"text-stingray font-mono text-xs text-center\"><\/p>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t<div class=\"cta-block-inner-form cta-block-inner-child w-full md:px-4 flex justify-center items-center flex-col lg:w-[46%]\">\n\t\t\t\t\t\t\n\n\n\t<span class=\"hs-gated-content-reveal-overlay  \"><\/span>\n\t<div class=\"hs-form-sticky-wrap   \">\n\t\t\n\n\t\t<div id=\"hubspot-form-69f4b5d6f186e\" class=\"block-hubspot-form hs-form-outer hs-form-zifc-hide  \" data-chili=\"\" data-form-id=\"cfcd1259-1311-45b4-8f28-f3a9c1c16c91\" >\n\t\t\t\t\t\t\t\t\t<!-- <span class=\"hs-gated-content-reveal-overlay\"><\/span> -->\n\t\t\t\t\t\t\n\n\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t<h3 class=\"hs-form-title   \">Learn More About InMoment<\/h3>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<div class=\"skeleton-loader\" id=\"loading-indicator-hubspot-form-69f4b5d6f186e\">\n\t\t\t\t\t<div class=\"skeleton-field formpulse delay-1\">\n\t\t\t\t\t\t<div class=\"skeleton-label\"><\/div>\n\t\t\t\t\t\t<div class=\"skeleton-input\"><\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"skeleton-field formpulse delay-2\">\n\t\t\t\t\t\t<div class=\"skeleton-label\"><\/div>\n\t\t\t\t\t\t<div class=\"skeleton-input\"><\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"skeleton-field formpulse delay-3\">\n\t\t\t\t\t\t<div class=\"skeleton-label\"><\/div>\n\t\t\t\t\t\t<div class=\"skeleton-input\"><\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<script>\n\t\t\t\t\t\n\n\t\t\t\t\thsformEmbedJs.addEventListener('load', function(event_69f4b5d6f186e) {\n\n\t\t\t\t\tvar gatedContentType = '';\n\t\t\t\t\tvar timeoutTime = 0;\n\n\t\t\t\t\t\t\/\/ Set up functions\n\t\t\t\t\t\tfunction onFormReadyFunction($form) {\n\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ Gated content known user check\n\t\t\t\t\t\t\t\n\n\n\t\t\t\t\t\tif (gatedContentType === 'contentReveal') {\n\t\t\t\t\t\t\tif (localStorage.getItem('hasSubmittedForm') !== 'true') {\n\t\t\t\t\t\t\t\ttimeoutTime = parseInt(timeoutTime * 1000);\n\n\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\tdocument.body.classList.add('gated-lock-screen');\n\t\t\t\t\t\t\t\t\t\tdocument.documentElement.classList.add('gated-lock-screen');\n\t\t\t\t\t\t\t\t\t}, timeoutTime);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\/\/ Init ZI FC\n\t\t\t\t\t\t\t\t$form[0].setAttribute('data-zifc', 'true');\n\t\t\t\t\t\t\t\t\/\/if (!$form[0].closest('.block-hubspot-form').classList.contains('hs-form-zifc-hide'))\n\t\t\t\t\t\t\t\t\/\/\tdocument.getElementById('loading-indicator-hubspot-form-69f4b5d6f186e').style.display = 'none';\n\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tdocument.getElementById('loading-indicator-hubspot-form-69f4b5d6f186e').style.display = 'none';\n\t\t\t\t\t\t\t}, 5000);\n\n\t\t\t\t\t\t\t\t\/\/ Init onEmailChange fn if ZIFC enabled\n\t\t\t\t\t\t\t\tonEmailChange($form);\n\n\t\t\t\t\t\t\t\tif($form[0].classList.contains('mktoForm')) {\n\t\t\t\t\t\t\t\t\tonEmailChange($form[0]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\/\/ inject custom field values into Hubspot hidden input names\n\t\t\t\t\t\t\tvar formIDLastAssetData = formIDLastAssetData || [];\n\t\t\t\t\t\t\tformIDLastAssetData.push({\n\t\t\t\t\t\t\t\tid: 'hubspot-form-69f4b5d6f186e',\n\t\t\t\t\t\t\t\tlast_asset: 'Good NPS Score'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tvar input = $form[0].querySelector('input[name=\"last_asset\"]');\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\/\/lastAssetInputs.forEach(input => {\n\t\t\t\t\t\t\tif(input && input.closest('.block-hubspot-form')) {\n\t\t\t\t\t\t\t\tvar formId = input.closest('.block-hubspot-form').id;\n\t\t\t\t\t\t\t\tvar formData = formIDLastAssetData.find(item => item.id === formId);\n\n\t\t\t\t\t\t\tif (formData) {\n\t\t\t\t\t\t\t\tinput.value = formData.last_asset;\n\t\t\t\t\t\t\t\tinput.dispatchEvent(new Event('input', {\n\t\t\t\t\t\t\t\t\tbubbles: true\n\t\t\t\t\t\t\t\t}));\n\n\t\t\t\t\t\t\t\tconsole.log(formData.last_asset);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\/\/});\n\t\t\t\t\t\t\/\/ if (document.querySelector('input[name=\"last_asset\"]')) {\n\t\t\t\t\t\t\/\/ \tdocument.querySelector('input[name=\"last_asset\"]').value = '<\/\/?php echo $last_asset; ?>';\n\t\t\t\t\t\t\/\/ \tdocument.querySelector('input[name=\"last_asset\"]').dispatchEvent(new Event('input', {\n\t\t\t\t\t\t\/\/ \t\tbubbles: true\n\t\t\t\t\t\t\/\/ \t}));\n\n\t\t\t\t\t\t\t\/\/ }\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\/\/ After button clicked, but before data is sent\n\t\t\t\t\tfunction onBeforeFormSubmitFunction($form) {\n\t\t\t\t\t\tconst submitButton = $form.find('input[type=\"submit\"]').get(0);\n\n\t\t\t\t\t\t\tif (submitButton) {\n\t\t\t\t\t\t\t\tsubmitButton.classList.add('submit-loading');\n\t\t\t\t\t\t\t\tsubmitButton.value = \"Loading...\";\n\t\t\t\t\t\t\t\tsubmitButton.disabled = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\/\/ Next few functions fire only if ZI enabled\n\t\t\t\t\t\tfunction onEmailChange($form) {\n\t\t\t\t\t\t\tlet emailInput = document.querySelector('input[name=\"email\"]');\n\t\t\t\t\t\t\tif(document.querySelector('input[name=\"Email\"]'))\n\t\t\t\t\t\t\t\temailInput = document.querySelector('input[name=\"Email\"]');\n\n\t\t\t\t\t\tif (emailInput && !emailInput.hasListenersAttached) {\n\t\t\t\t\t\t\t['input', 'change'].forEach(eventType => {\n\t\t\t\t\t\t\t\temailInput.addEventListener(eventType, handleInputChange.bind(null, $form, emailInput));\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\temailInput.hasListenersAttached = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction handleInputChange($form, emailInput) {\n\t\t\t\t\t\t\/\/console.log('Email input event triggered:', emailInput.value);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ($form.attr('data-zifc') === 'true' && typeof window._zi_fc !== 'undefined') {\n\t\t\t\t\t\t\t\thandleZoomInfoMatch($form, emailInput);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\tfunction handleZoomInfoMatch($form, emailInput) {\n\t\t\t\t\t\tvalidateEmailWithDelay(emailInput);\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction validateEmailWithDelay(emailInput) {\n\t\t\t\t\t\tvar form = emailInput.closest('form');\n\t\t\t\t\t\tvar submitButton = form.querySelector('[type=\"submit\"]');\n\t\t\t\t\t\t\n\t\t\t\t\t\tfunction disableSubmit() {\n\t\t\t\t\t\t\t\/\/console.log('Disable Submit');\n\t\t\t\t\t\t\tsubmitButton.classList.add('disabled');\n\t\t\t\t\t\t\tsubmitButton.disabled = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfunction enableSubmit() {\n\t\t\t\t\t\t\t\/\/console.log('Enable Submit');\n\t\t\t\t\t\t\tsubmitButton.classList.remove('disabled');\n\t\t\t\t\t\t\tsubmitButton.disabled = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tconst neverBounceStatus = emailInput.getAttribute('data-zi-neverbounce-status');\n\t\t\t\t\t\t\t\/\/console.log(neverBounceStatus);\n\n\n\t\t\t\t\t\t\tfetch(inmomentlocalizedata.theme_path + '\/template-parts\/content-blocks\/blocked-domains.json')\n\t\t\t\t\t\t\t.then(response => response.json())\n\t\t\t\t\t\t\t.then(list => {\n\n\t\t\t\t\t\t\t\tvar emailErrorHtml = document.createElement('div');\n\t\t\t\t\t\t\t\temailErrorHtml.setAttribute('class', 'mktoError mktoErrorCustom');\n\t\t\t\t\t\t\t\temailErrorHtml.innerHTML = 'This email is not allowed.';\n\n\n\t\t\t\t\t\t\t\tfunction isDomainFound(email) {\n\t\t\t\t\t\t\t\t\tconst domain = email.split('@')[1];\n\t\t\t\t\t\t\t\t\treturn list.includes(domain);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (isDomainFound(emailInput.value) || neverBounceStatus === 'invalid' || neverBounceStatus === 'disposable') {\n\t\t\t\t\t\t\t\t\tif(!form.querySelector('.mktoErrorCustom'))\n\t\t\t\t\t\t\t\t\t\temailInput.after(emailErrorHtml);\n\t\t\t\t\t\t\t\t\tdisableSubmit();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif(form.querySelector('.mktoErrorCustom'))\n\t\t\t\t\t\t\t\t\t\tform.querySelector('.mktoErrorCustom').remove();\n\t\t\t\t\t\t\t\t\tenableSubmit();\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch(error => console.error('Error loading list:', error));\n\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\twindow.addEventListener('message', function(event) {\n\t\t\t\t\t\t\tif (event.data.type === 'hsFormCallback' && event.data.eventName === 'onFormReady') {\n\t\t\t\t\t\t\t\tonEmailChange( \/* Pass your form here if needed *\/ );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\n\n\t\t\t\t\tfunction onFormSubmitFunction($form) {\n\t\t\t\t\t\t\/\/console.log('onFormSubmit function');\n\t\t\t\t\t\t\/\/ if ($form.attr('id') === 'hsForm_cfcd1259-1311-45b4-8f28-f3a9c1c16c91') {\n\t\t\t\t\t\t\/\/ \t\/\/console.log(\"cfcd1259-1311-45b4-8f28-f3a9c1c16c91 form submit function\");\n\t\t\t\t\t\t\/\/ }\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction onFormSuccessFunction($form, data) {\n\t\t\t\t\t\tif (gatedContentType === 'contentReveal') {\n\t\t\t\t\t\t\tif (localStorage.getItem('hasSubmittedForm') !== 'true') {\n\t\t\t\t\t\t\t\trevealGatedContent();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (gatedContentType === 'popupVideo' || gatedContentType === 'heroCTAPopupVideo') {\n\t\t\t\t\t\t\trevealPopupVideo($form);\n\t\t\t\t\t\t} else if (gatedContentType === 'popupPdf') {\n\t\t\t\t\t\t\trevealPopupPdf($form);\n\t\t\t\t\t\t} else if (gatedContentType === 'footerCTAPopupVideo') {\n\t\t\t\t\t\t\trevealFooterPopupVideo()\n\t\t\t\t\t\t} else if (gatedContentType === 'innerGate') {\n\t\t\t\t\t\t\trevealInnerGate($form);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\/\/ GTM add event trigger here\n\t\t\t\t\t\twindow.dataLayer = window.dataLayer || []\n\t\t\t\t\t\twindow.dataLayer.push({\n\t\t\t\t\t\t\t'event': 'form_submit',\n\t\t\t\t\t\t\t'lastAsset': 'Good NPS Score',\n\t\t\t\t\t\t\t'formSubmittedPage': window.location.href,\n\t\t\t\t\t\t\t'salesforceCampaignID': 'Good NPS Score',\n\t\t\t\t\t\t\t'formType': 'demo',\n\t\t\t\t\t\t\t'gatedContentType': gatedContentType\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tlocalStorage.setItem('hasSubmittedForm', 'true');\n\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\tfunction revealInnerGate($form) {\n\t\t\t\t\t\tif ($form[0].closest('.block-im-quiz')) {\n\t\t\t\t\t\t\t$form[0].closest('.hs-form-sticky-wrap').classList.add('hidden');\n\t\t\t\t\t\t\t$form[0].closest('.block-im-quiz').querySelector('.im-quiz-finish-screen').classList.remove('hidden');\n\t\t\t\t\t\t\t$form[0].closest('.block-im-quiz').querySelector('.quiz-inner').classList.remove('hidden');\n\t\t\t\t\t\t\t$form[0].closest('.block-im-quiz').querySelector('.restart').style.display = 'inline-block';\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction revealGatedContent() {\n\t\t\t\t\t\t\/\/console.log('content has been revealed');\n\t\t\t\t\t\tdocument.body.classList.remove('gated-lock-screen');\n\t\t\t\t\t\tdocument.documentElement.classList.remove('gated-lock-screen');\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction revealPopupPdf($form) {\n\t\t\t\t\t\t$form[0].closest('.block-hubspot-form').querySelector('.submitted-message-custom').classList.remove('hidden');\n\t\t\t\t\t\t$form[0].closest('.block-hubspot-form').querySelector('.submitted-message').classList.add('hidden');\n\t\t\t\t\t\t$form[0].closest('.block-hubspot-form').querySelector('.hs-form-title').classList.add('hidden');\n\t\t\t\t\t\t$form[0].closest('.block-hubspot-form').querySelector('.more-content').classList.add('hidden');\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t$form[0].closest('.block-hubspot-form').querySelector('.submitted-message-custom .header-cta-button').click();\n\t\t\t\t\t\t}, 3000);\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction revealPopupVideo($form) {\n\t\t\t\t\t\t$form[0].closest('.block-hubspot-form').querySelector('.play-btn.modal-trigger.form-to-video').click();\n\t\t\t\t\t\t$form[0].closest('.block-hubspot-form').querySelector('.form-to-video-wrapper').classList.remove('hidden');\n\t\t\t\t\t\t$form[0].closest('.block-hubspot-form').querySelector('.submitted-message').classList.add('hidden');\n\t\t\t\t\t\t$form[0].closest('.block-hubspot-form').querySelector('.hs-form-title').classList.add('hidden');\n\t\t\t\t\t\t$form[0].closest('.block-hubspot-form').classList.add('to-video');\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction revealFooterPopupVideo() {\n\t\t\t\t\t\tdocument.querySelector('.play-btn.modal-trigger.form-to-video.footer-cta').click();\n\t\t\t\t\t\tdocument.querySelector('.form-to-video-wrapper.footer-cta').classList.remove('hidden');\n\t\t\t\t\t\tdocument.querySelector('.hs-form-title.footer-cta').classList.add('hidden');\n\t\t\t\t\t\tdocument.querySelector('.hs-form-sticky-wrap.footer-cta-popup-video .block-hubspot-form').classList.add('to-video');\n\t\t\t\t\t\tvar submittedMessages = document.querySelectorAll('.submitted-message');\n\t\t\t\t\t\tsubmittedMessages.forEach(function(submittedMessage) {\n\t\t\t\t\t\t\tsubmittedMessage.classList.add('hidden');\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction gotoScorecard(data) {\n\n\t\t\t\t\t\tvar baseURL = '';\n\t\t\t\t\t\tvar thankYouURLParams = [];\n\t\t\t\t\t\tthankYouURLParams['first_name'] = data.submissionValues.firstname ? data.submissionValues.firstname : '';\n\t\t\t\t\t\tthankYouURLParams['last_name'] = data.submissionValues.lastname ? data.submissionValues.lastname : '';\n\t\t\t\t\t\tthankYouURLParams['email'] = data.submissionValues.email ? data.submissionValues.email : '';\n\t\t\t\t\t\tthankYouURLParams['phone_number'] = data.submissionValues.phone ? data.submissionValues.phone : '5555555555';\n\n\t\t\t\t\t\tthankYouURLParams = Object.entries(thankYouURLParams);\n\t\t\t\t\t\tvar queryString = thankYouURLParams.map(([key, value]) =>\n\t\t\t\t\t\t\t`${encodeURIComponent(key)}=${encodeURIComponent(value)}`).join('&');\n\n\n\t\t\t\t\t\tvar finalThankyouURL = `${baseURL}?${queryString}&suppress_fields`;\n\n\t\t\t\t\t\twindow.open(finalThankyouURL, '_blank');\n\n\t\t\t\t\t}\n\t\t\t\t\t\/\/ Returns the redirect URL needed for the Hubspot form\n\t\t\t\t\tfunction generateThankYouURL(customURL, formType, gatedContentType, gatedAsset, $form) {\n\t\t\t\t\t\t\/\/ Check if custom Thank You URL is needed\n\t\t\t\t\t\tif (!customURL) {\n\t\t\t\t\t\t\tvar baseURL =\n\t\t\t\t\t\t\t\t'https:\/\/inmoment.com\/en-nz\/thank-you\/?';\n\t\t\t\t\t\t\tvar thankYouURLParams = [];\n\n\t\t\t\t\t\t\tif (formType === 'gated') {\n\t\t\t\t\t\t\t\tif (gatedContentType === 'pdf') {\n\t\t\t\t\t\t\t\t\tthankYouURLParams['type'] = 'asset';\n\t\t\t\t\t\t\t\t\t\/\/ Gated content needs to be attachment URL\n\t\t\t\t\t\t\t\t\tthankYouURLParams['asset'] = gatedAsset;\n\t\t\t\t\t\t\t\t} else if (gatedContentType === 'video') {\n\t\t\t\t\t\t\t\t\tthankYouURLParams['type'] = 'video';\n\t\t\t\t\t\t\t\t\t\/\/ Gated content needs to be attachment URL\n\t\t\t\t\t\t\t\t\tthankYouURLParams['asset'] = gatedAsset;\n\t\t\t\t\t\t\t\t} else if (gatedContentType === 'popupVideo') {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t} else if (gatedContentType === 'contentReveal') {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t} else if (gatedContentType === 'heroCTAPopupVideo') {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t} else if (gatedContentType === 'footerCTAPopupVideo') {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t} else if (gatedContentType === 'popupPdf') {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t} else if (gatedContentType === 'innerGate') {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\/\/console.log('gatedAsset -> ', gatedAsset);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (formType === 'demo') {\n\t\t\t\t\t\t\t\tthankYouURLParams['type'] = 'contact';\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (formType === 'contact') {\n\t\t\t\t\t\t\t\tthankYouURLParams['type'] = 'contact';\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (formType === 'event') {\n\t\t\t\t\t\t\t\tthankYouURLParams['type'] = 'event';\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\/\/console.log('thankYouURLParams -> ', thankYouURLParams);\n\t\t\t\t\t\t\t\/\/ Construct the query string by joining the key-value pairs\n\t\t\t\t\t\t\tthankYouURLParams = Object.entries(thankYouURLParams);\n\n\t\t\t\t\t\t\tvar queryString = thankYouURLParams.map(([key, value]) =>\n\t\t\t\t\t\t\t\t`${encodeURIComponent(key)}=${encodeURIComponent(value)}`).join('&');\n\n\t\t\t\t\t\t\t\/\/console.log('queryString -> ', queryString);\n\t\t\t\t\t\t\t\/\/ Combine the base URL with the query string\n\t\t\t\t\t\t\tvar finalThankyouURL = `${baseURL}${queryString}`;\n\n\t\t\t\t\t\t\t\/\/console.log('finalThankyouURL -> ', finalThankyouURL);\n\t\t\t\t\t\t\treturn finalThankyouURL;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\/\/console.log('customURL -> ', customURL);\n\t\t\t\t\t\t\treturn customURL;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (document.querySelector('#hubspot-form-69f4b5d6f186e')) {\n\t\t\t\t\t\t\t\t\tvar observer = new IntersectionObserver(function(el) {\n\t\t\t\t\t\t\t\t\t\t\tel = el[0] ? el[0] : el;\n\t\t\t\t\t\t\t\t\t\t\tif (el.isIntersecting) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\tfunction mktoFormLoaded(form) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar formEl = form.getFormElem();\n\t\t\t\t\t\t\tconsole.log('mktoform', form, formEl[0].querySelector(\"style\"))\n\t\t\t\t\t\t\t\/\/MktoForms2.whenReady(function() {onFormReadyFunction(formEl)});\n\t\t\t\t\t\t\tdocument.getElementById('mktoForms2BaseStyle').remove();\n\t\t\t\t\t\t\tdocument.getElementById('mktoForms2ThemeStyle').remove();\n\t\t\t\t\t\t\tformEl[0].querySelector(\"style\").remove();\n\t\t\t\t\t\t\tconsole.log(formEl[0].querySelector(\"style\"))\n\n\t\t\t\t\t\t\tonFormReadyFunction(formEl);\n\n\t\t\t\t\t\t\tformEl[0].querySelector('[type=\"submit\"]').innerText = 'Submit';\n\n\n\t\t\t\t\t\t\tif(formEl[0].closest('.block-hubspot-form').querySelector('.skeleton-loader'))\n\t\t\t\t\t\t\t\tformEl[0].closest('.block-hubspot-form').querySelector('.skeleton-loader').style.display = 'none';\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\tform.onSubmit(function() {onFormSubmitFunction(formEl)});\n\t\t\t\t\t\t\tform.onSuccess(function() {\n\t\t\t\t\t\t\t\tonFormSuccessFunction(formEl);\n\t\t\t\t\t\t\t\twindow.location.assign(generateThankYouURL('',\n\t\t\t\t\t\t\t\t\t'demo', '',\n\t\t\t\t\t\t\t\t\t''));\n\n\t\t\t\t\t\t\t\treturn false;\n\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\/\/onFormSubmitFunction($form);\n\t\t\t\t\t\t\t\/\/onFormSuccessFunction($form, data);\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(document.getElementById('mktoForm_2101') && !document.getElementById('mktoForm_2101' ).innerHTML.trim())\n\t\t\t\t\t\t\t\tMktoForms2.loadForm(\"\/\/go.forsta.com\", \"972-OEC-621\", 2101, mktoFormLoaded);\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\n\t\t\t\t\t\t\/\/ Main hubspot code\n\t\t\t\t\t\thbspt.forms.create({\n\t\t\t\t\t\t\tregion: \"na1\",\n\t\t\t\t\t\t\tportalId: \"1787915\",\n\t\t\t\t\t\t\tlocale: \"en\",\n\t\t\t\t\t\t\ttarget: \"#hubspot-form-69f4b5d6f186e .form_target\",\n\t\t\t\t\t\t\tcss: '',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tredirectUrl: generateThankYouURL('',\n\t\t\t\t\t\t\t\t\t'demo', '',\n\t\t\t\t\t\t\t\t\t''),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tformId: \"cfcd1259-1311-45b4-8f28-f3a9c1c16c91\",\n\t\t\t\t\t\t\tmanuallyBlockedEmailDomain: [\"mailinator.com\",\"mailor.com\",\"yahoi.co.uk\",\"art.suez.edu.eg\",\"eol.com\",\"info.com\",\"weizixu.com\",\"naymedia.com\",\"compny.com\",\"linator.com\",\"edu.com\",\"mailinaor.com\",\"sportrid.comm\",\"tufufacenurimyv.com\",\"eeeqwe2.com\",\"armyspy.com\",\"info.net\",\"hinoon.com\",\"ainator.com\",\"busniess.com\",\"GMAIL1.com\",\"alright.com\",\"example.com\",\"poverts.com\",\"mailt.com\",\"apxby.com\",\"gmail.com\",\"yahoo.com\",\"hotmail.com\",\"live.com\",\"aol.com\",\"outlook.com\",\"qq.com\",\"comcast.com\",\"icloud.com\",\"ctpagent.com\",\"wesolvecx.com\",\"getthematic.com\",\"merkle.com\",\"getlocalmeasure.com\",\"localmeasure.com\",\"asknicely.com\",\"nielseniq.com\",\"momentive.com\",\"reputation.com\",\"zenloop.com\",\"eloquant.com\",\"hellocustomer.com\",\"skeepers.io\",\"yabble.com\",\"resonate.com.au\",\"smg.com\",\"altointelligence.co.uk\",\"altointelligence.com\",\"auracorp.com\",\"bareinternational.com\",\"bestmark.com\",\"blauw.com\",\"clarabridge.com\",\"concentrix.com\",\"concur.com\",\"confirmit.com\",\"copytimize.com\",\"critizr.com\",\"crowdicity.com\",\"customerradar.com\",\"customersat.com\",\"gallup.com\",\"getfeedback.com\",\"gfk.com\",\"globis-consulting.de\",\"glowfeed.com\",\"insync.com.au\",\"intervista.ch\",\"iperceptions.com\",\"jacada.com\",\"ka-brandresearch.com\",\"kantar.com\",\"kantartns.com\",\"kunden-insights.de\",\"link.ch\",\"livinglens.tv\",\"Loyalty360.org\",\"management-consult.de\",\"medallia.com\",\"morpace.com\",\"nice.com\",\"niceincontact.com\",\"op2ma.com.au\",\"opinionlab.com\",\"oracle.com\",\"pangealabs.com\",\"pidas.com\",\"potentiate.com\",\"quadient.com\",\"qualtrics.com\",\"questback.com\",\"rateitapp.com\",\"rateitapp.com.au\",\"responsetek.com\",\"rightnow.com\",\"salesforce.com\",\"sap.com\",\"satmetrix.com\",\"slmedien.de\",\"smg.com\",\"sphanalytics.com\",\"stellarbpo.com\",\"stellarxm.com\",\"strikedeck.com\",\"surveygizmo.com\",\"surveymonkey.com\",\"tele-research.de\",\"themsrgroup.com\",\"tns-global.com\",\"tns-infratest.com\",\"tnsglobal.com\",\"touchpointgroup.com\",\"ttr-group.de\",\"united-research.com\",\"usabilla.com\",\"verint.com\",\"vovici.com\",\"walkerinfo.com\",\"zendesk.com\",\"zingle.com\"],\n\n\t\t\t\t\t\t\t\t\t\t\t\t\/\/ Arbitrary in case there are two of same form on page\n\t\t\t\t\t\t\t\t\t\t\t\tformInstanceId: \"hubspot-form-69f4b5d6f186e\",\n\n\n\n\t\t\t\t\t\t\t\t\t\t\t\tonFormReady: function($form) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tonFormReadyFunction($form);\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tonBeforeFormSubmit: function($form) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tonBeforeFormSubmitFunction($form);\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tonFormSubmit: function($form) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tonFormSubmitFunction($form);\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tonFormSubmitted: function($form, data) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tonFormSuccessFunction($form, data);\n\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tsubmitText: \"Submit\",\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t observer.unobserve(el.target);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\t\t\troot: null,\n\t\t\t\t\t\t\t\t\trootMargin: '0px 0px 50% 0px',\n\t\t\t\t\t\t\t\t\tthreshold: 0.1\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tvar targetElement = document.querySelector('#hubspot-form-69f4b5d6f186e'); observer.observe(targetElement.parentElement);\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t}) \/\/ on hs script loaded\n\t\t\t<\/script>\n\n\n\t\t\t\t\t\t\t<script>\n\t\t\t\t\t(function() { \/\/ Start of IIFE\n\t\t\t\t\t\t\/\/console.log(\"Zi Enabled for form hubspot-form-69f4b5d6f186e, waiting to add FC onReady\");\n\t\t\t\t\t\tif (!window._zi_fc) {\n\t\t\t\t\t\t\twindow._zi_fc = {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!window._zi_fc.onReadyList) {\n\t\t\t\t\t\t\twindow._zi_fc.onReadyList = [];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst formId = \"hubspot-form-69f4b5d6f186e\";\n\t\t\t\t\t\t\/\/ Check if a function for this formId already exists\n\t\t\t\t\t\tconst isFuncAlreadyAdded = window._zi_fc.onReadyList.some(func => func.tag === formId);\n\n\t\t\t\t\t\tlet onReadyCalled = false;\n\n\t\t\t\t\t\t\tconst func = (data) => {\n\t\t\t\t\t\t\t\tconst formDivElement = document.getElementById(formId);\n\t\t\t\t\t\t\t\tonReadyCalled = true; \/\/ Set the flag to true\n\t\t\t\t\t\t\t\tif(document.getElementById('loading-indicator-' + formId).nextElementSibling.getAttribute('data-hubspot-rendered') === 'true' || document.getElementById('loading-indicator-' + formId).nextElementSibling.classList.contains('mktoForm')) {\n\t\t\t\t\t\t\t\t\tdocument.getElementById('loading-indicator-' + formId).style.display = 'none';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (formDivElement) {\n\t\t\t\t\t\t\t\t\tformDivElement.classList.remove('hs-form-zifc-hide');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isFuncAlreadyAdded) {\n\t\t\t\t\t\t\t\/\/console.log(\"isFuncAlreadyAdded\");\n\t\t\t\t\t\t\tfunc.tag = formId; \/\/ Add a tag to the function for uniqueness check\n\t\t\t\t\t\t\twindow._zi_fc.onReadyList.push(func);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\/\/ Timer to handle the case when onReady is not called within 4000ms\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tif (!onReadyCalled) {\n\t\t\t\t\t\t\t\tfunc();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 500);\n\n\t\t\t\t\t\twindow._zi_fc.onReady = (data) => {\n\t\t\t\t\t\t\tconsole.log(\"onReady triggered\");\n\t\t\t\t\t\t\tonReadyCalled = true; \/\/ Set the flag to true\n\t\t\t\t\t\t\twindow._zi_fc.onReadyList.forEach((func) => {\n\t\t\t\t\t\t\t\tfunc(data);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t};\n\t\t\t\t\t})(); \/\/ End of IIFE\n\t\t\t\t<\/script>\n\t\t\t\n\n\t\t\t\n\n\n\t\t\t\t\t\t\t\t\t\t\t\t<form id=\"mktoForm_2101\" data-zifc=\"true\"><\/form>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t<\/div>\n\n\t<\/div>\n\n\n\t\t<\/div>\n\t<\/div>\n\n<\/section>\n\n\n        <\/div>\n\n    <\/div>\n\n<\/section>","protected":false},"featured_media":25716,"parent":0,"menu_order":0,"template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-31892","glossary-terms","type-glossary-terms","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/inmoment.com\/en-nz\/wp-json\/wp\/v2\/glossary-terms\/31892","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inmoment.com\/en-nz\/wp-json\/wp\/v2\/glossary-terms"}],"about":[{"href":"https:\/\/inmoment.com\/en-nz\/wp-json\/wp\/v2\/types\/glossary-terms"}],"version-history":[{"count":0,"href":"https:\/\/inmoment.com\/en-nz\/wp-json\/wp\/v2\/glossary-terms\/31892\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inmoment.com\/en-nz\/wp-json\/wp\/v2\/media\/25716"}],"wp:attachment":[{"href":"https:\/\/inmoment.com\/en-nz\/wp-json\/wp\/v2\/media?parent=31892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}