{"id":63676,"date":"2023-10-18T03:56:53","date_gmt":"2023-10-18T09:56:53","guid":{"rendered":"https:\/\/inmoment.com\/?post_type=resource&#038;p=63676"},"modified":"2023-11-08T07:06:18","modified_gmt":"2023-11-08T14:06:18","slug":"key-learnings-from-customer-experience-experts-at-the-xi-forum-europe-2023","status":"publish","type":"resource","link":"https:\/\/inmoment.com\/en-gb\/resource\/key-learnings-from-customer-experience-experts-at-the-xi-forum-europe-2023\/","title":{"rendered":"Key Learnings from Customer Experience Experts at The XI Forum Europe 2023"},"content":{"rendered":"\n<section id=\"section-block_6e8ff5c4c78dc21be766fd74a8c2c6f4\" class=\"block-section bg-transparent   bg-cover bg-center bg-no-repeat  \"\n    style=\" \">\n\n    <div class=\"pt-100px pb-70px\">\n\n        <div class=\"container\">\n\n            \n\n<div id=\"intro-block_9cf99a37ee7f3da5426645ba06849128\" class=\"block-intro mb-20px \">\n\n\t<div class=\"block-intro-inner bg-inherit-gradient relative\">\n\t\t<div class=\"relative z-10\">\n\t\t\t\t\t\t\t\t\t\t<h1 class=\"title\">Key Learnings from Customer Experience Experts at the XI Forum Europe 2023<\/h1>\n\t\t\t\t\t\t\t\t\t\t<p class=\"description\">After a successful XI Forum Europe featuring 9 EMEA customer experience experts, 8 insightful workshops and 200+ engaged delegates, and plenty of networking, it&#8217;s safe to say that the event was a hit! <\/p>\n\t\t\t\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n        <\/div>\n\n    <\/div>\n\n<\/section>\n\n\n<section id=\"section-block_68cb1596f7f84868ce54a30de770021e\" class=\"block-section bg-transparent   bg-cover bg-center bg-no-repeat  \"\n    style=\" \">\n\n    <div class=\"py-100px\">\n\n        <div class=\"container\">\n\n            \n\n<p>The forum provided a platform for award-winning CX speakers from some of Europe&#8217;s most prominent brands, including Foot Locker, Vue Cinemas, Quilter, MediaMarktSaturn, NPSx by Bain &amp; Company, and Forrester. Over two enriching days, attendees gathered practical tips and best practices to elevate their experience programmes immediately.<\/p>\n\n\n\n<p>If you couldn&#8217;t attend the event, fear not! We\u2019ve compiled the key insights from all the presentations and workshops, ensuring that you are equipped with practical, actionable takeaways that will guide you through 2023 and beyond.<\/p>\n\n\n\n<p>Topics include:<\/p>\n\n\n\n<p>1. Apply The Art of Integrated CX<\/p>\n\n\n\n<p>2. Drive Data-Driven Decisions<\/p>\n\n\n\n<p>3. Embrace Change and Stay Agile in a Shifting Landscape<\/p>\n\n\n\n<p>4. Navigating the Sea of Customer Data to Have a Clear Focus&nbsp;<\/p>\n\n\n\n<p>5. Demonstrate Impact and Prove Your CX ROI&nbsp;<\/p>\n\n\n\n<p>With these key takeaways from the XI Forum Europe, you can elevate your customer experience and ensure your business&#8217;s success.<\/p>\n\n\n        <\/div>\n\n    <\/div>\n\n<\/section>\n\n<section id=\"block-a615dd00446be61a32035ad776434bf4\" class=\"content-block gated-featured-asset-block gated-feature-asset-block-left alignfull no-background\" style=\"\">\n\t\t<div class=\"gated-featured-asset-block-inner\">\n\t\t\t\t\t\t<div class=\"gated-featured-asset-block-form button-\" >\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<script>console.log('');<\/script><script>console.log('63597');<\/script>\t\t<form id=\"mktoForm_342\" class=\"form-dark\"><\/form>\n\t\t<script>\n\t\t\t\/\/ Function to get UTM parameters from local storage\n\t\t\tfunction getUTMParams() {\n\t\t\t\tvar storageData = localStorage.getItem('utm_params');\n\t\t\t\tif (storageData) {\n\t\t\t\t\tstorageData = JSON.parse(storageData);\n\t\t\t\t\tvar currentDate = new Date().getTime();\n\t\t\t\t\tif (currentDate <= storageData.expiration) {\n\t\t\t\t\treturn storageData.data;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tif (undefined !== MktoForms2) {\n\n\t\t\t\tMktoForms2.setOptions({\n\t\t\t\t\tformXDPath:\"\/rs\/645-JLQ-943\/images\/marketo-xdframe-relative.html\"\n\t\t\t\t});\n\n\t\t\t\t\/\/ Load the form.\n\t\t\t\tMktoForms2.loadForm(\"\/\/lp.inmoment.com\", \"645-JLQ-943\", 342, function(form) {\n\t\t\t\t\tconsole.log('https:\/\/inmoment.com\/en-gb\/thank-you\/?type=asset&#038;asset=63597');\n\t\t\t\t\tconsole.log('dynamic url option');\n\n\t\t\t\t\t\/\/ Add display: block to all mktoFormRows if the Email field is focused on\n\t\t\t\t\t\/\/ (they'll remain opacity: 0; max-height: 0; until after the email is scrubbed against the ZoomInfo database)\n\t\t\t\t\t\/\/ All rows except Email and Country are hidden to prevent the jerkiness on page load when they appear and suddenly disappear\n\n\t\t\t\t\t\/\/ var emailElement = document.querySelector(\"#Email\");\n\t\t\t\t\t\/\/ var formRowElements = document.querySelectorAll(\".mktoFormRow\");\n\n\t\t\t\t\t\/\/ function handleEmailEvent() {\n\t\t\t\t\t\/\/ \tformRowElements.forEach(function(formRowElement) {\n\t\t\t\t\t\/\/ \t\tvar emailChild = formRowElement.querySelector(\"#Email\");\n\t\t\t\t\t\/\/ \t\tvar countryChild = formRowElement.querySelector(\"#Country\");\n\n\t\t\t\t\t\/\/ \t\tif (!emailChild) {\n\t\t\t\t\t\/\/ \t\t\tif (!countryChild) {\n\t\t\t\t\t\/\/ \t\t\t\tformRowElement.style.display = \"block\";\n\t\t\t\t\t\/\/ \t\t\t}\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\t\/\/ if (document.documentElement.lang === \"en-US\") {\n\t\t\t\t\t\/\/ \t\/\/ Check if it's a form for Experience Icons or Partner Request\n\t\t\t\t\t\/\/ \tvar parentFormID = emailElement.closest(\"form\").id;\n\t\t\t\t\t\/\/ \tif (parentFormID !== \"mktoForm_726\") {\n\t\t\t\t\t\/\/ \t\tif (parentFormID !== \"mktoForm_986\") {\n\t\t\t\t\t\/\/ \t\t\tif (parentFormID !== \"mktoForm_1225\") {\n\t\t\t\t\t\/\/ \t\t\t\tif (parentFormID !== \"mktoForm_1226\") {\n\t\t\t\t\t\/\/ \t\t\t\t\temailElement.addEventListener(\"focus\", handleEmailEvent);\n\t\t\t\t\t\/\/ \t\t\t\t\temailElement.addEventListener(\"click\", handleEmailEvent);\n\t\t\t\t\t\/\/ \t\t\t\t\temailElement.addEventListener(\"keydown\", handleEmailEvent);\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}\n\t\t\t\t\t\/\/ \t}\n\t\t\t\t\t\/\/ }\n\n\n\t\t\t\t\tvar thankYouUrl = 'https:\/\/inmoment.com\/en-gb\/thank-you\/?type=asset&#038;asset=63597';\n\n\t\t\t\t\tvar baseURL = 'https:\/\/inmoment.com\/en-gb\/thank-you\/?';\n\t\t\t\t\tvar data = {\"type\":\"asset\",\"asset\":63597};\n\n\t\t\t\t\t\/\/ Create an array of key-value pairs from the data object\n\t\t\t\t\tvar params = Object.entries(data);\n\n\t\t\t\t\t\/\/ Construct the query string by joining the key-value pairs\n\t\t\t\t\tvar queryString = params.map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`).join('&');\n\n\t\t\t\t\t\/\/ Combine the base URL with the query string\n\t\t\t\t\tvar finalThankyouURL = `${baseURL}${queryString}`;\n\n\t\t\t\t\tconsole.log(finalThankyouURL);\n\n\n\t\t\t\t\tvar lastDownloadedAssetValue = '2023 - XI Forum Europe - Summary';\n\t\t\t\t\tvar formType = 'asset';\n\n\t\t\t\t\t\/\/ Populate hidden fields\n\t\t\t\t\tif(formType != 'contact'){\n\t\t\t\t\t\t\/\/ form.vals({ \"Last_Downloaded_Asset__c\": '2023 - XI Forum Europe - Summary'});\n\t\t\t\t\t\tconsole.log('2023 - XI Forum Europe - Summary');\n\t\t\t\t\t\tif(lastDownloadedAssetValue) {\n\t\t\t\t\t\t\tform.vals({ \"Last_Downloaded_Asset__c\": lastDownloadedAssetValue });\n\t\t\t\t\t\t\tconsole.log(lastDownloadedAssetValue);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar fallbackLastDownloadedAsset = document.title + '(' + formType + ')';\n\t\t\t\t\t\t\tform.vals({ \"Last_Downloaded_Asset__c\": fallbackLastDownloadedAsset });\n\t\t\t\t\t\t\tconsole.log(fallbackLastDownloadedAsset);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log('contact form');\n\t\t\t\t\t}\n\t\t\t\t\t\/\/ var lastDownloadedAsset = (document.title + '(2023 - XI Forum Europe - Summary)');\n\t\t\t\t\t\/\/ console.log(lastDownloadedAsset);\n\t\t\t\t\t\/\/ form.vals({ \"Last_Downloaded_Asset__c\": lastDownloadedAsset});\n\n\t\t\t\t\tvar invalidEmailDomains = ['@gmail.','@yahoo.','@hotmail.','@live.','@aol.','@outlook.','@qq.','@comcast.','@icloud.', '@ctpagent.', '@wesolvecx.', '@mailinator.']\n\n\t\t\t\t\t\/\/ function to check if email qualifies as business email\n\t\t\t\t\tvar isBusinessEmail = function(email) {\n\t\t\t\t\t\tfor(var i=0; i < invalidEmailDomains.length; i++) {\n\t\t\t\t\t\t\tvar domain = invalidEmailDomains[i];\n\t\t\t\t\t\t\tif (email.indexOf(domain) != -1) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t};\n\n\t\t\t\t\t\/\/ Form validation goes here.\n\t\t\t\t\tform.onValidate(function() {\n\t\t\t\t\t\t\/\/ var utmParams = getUTMParams();\n\t\t\t\t\t\tvar vals = form.vals();\n\t\t\t\t\t\tconsole.log(vals); \/\/ ONLY FOR DEVELOPMENT, REMOVE FOR PRODUCTION.\n\t\t\t\t\t\tconsole.log('Thankyou URL: ', finalThankyouURL);\n\t\t\t\t\t\t\/\/ form.submittable(false); \/\/ ONLY FOR DEVELOPMENT, REMOVE FOR PRODUCTION. Blocks form from submitting\n\t\t\t\t\t\t\/\/ window.dataLayer = window.dataLayer || []\n                        \/\/ window.dataLayer.push({\n                        \/\/     'event': 'form_submit',\n                        \/\/     'Last Downloaded Asset': vals.Last_Downloaded_Asset__c,\n\t\t\t\t\t\t\/\/ \t'Form Submitted Page': window.location.href,\n\t\t\t\t\t\t\/\/ \t'Content': utmParams.utm_content || '',\n\t\t\t\t\t\t\/\/ \t'Term': utmParams.utm_term || '',\n\t\t\t\t\t\t\/\/ \t'Medium': utmParams.utm_medium || '',\n\t\t\t\t\t\t\/\/ \t'Source': utmParams.utm_source || '',\n\t\t\t\t\t\t\/\/ \t'Campaign': utmParams.utm_campaign || ''\n                        \/\/ });\n                        \/\/ console.log(window.dataLayer);\n\n\t\t\t\t\t\t\/\/validate if is business email from invalidEmailDomains array\n\t\t\t\t\t\tif (!isBusinessEmail(vals.Email)) {\n\t\t\t\t\t\t\tform.submittable(false);\n\t\t\t\t\t\t\tvar emailElem = form.getFormElem().find(\"#Email\");\n\t\t\t\t\t\t\tform.showErrorMessage(\"Please provide a valid work email address\", emailElem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse { \/\/ Enable submission for those who met the criteria\n\t\t\t\t\t\t\tconsole.log('all good!');\n\t\t\t\t\t\t\tform.submittable(true); \/\/ ONLY FOR PRODUCTION, COMMENT OUT FOR DEVELOPMENT in order to Blocks form from submitting\n\n\t\t\t\t\t\t}\n\n\n\n\t\t\t\t\t});\n\n\t\t\t\t\tform.onSuccess(function(values, followUpUrl) {\n\t\t\t\t\t\tvar utmParams = getUTMParams();\n\t\t\t\t\t\twindow.dataLayer = window.dataLayer || []\n                        window.dataLayer.push({\n                            'event': 'form_submit',\n                            'Last Downloaded Asset': values.Last_Downloaded_Asset__c,\n\t\t\t\t\t\t\t'Form Submitted Page': window.location.href,\n\t\t\t\t\t\t\t'Content': utmParams.utm_content || '',\n\t\t\t\t\t\t\t'Term': utmParams.utm_term || '',\n\t\t\t\t\t\t\t'Medium': utmParams.utm_medium || '',\n\t\t\t\t\t\t\t'Source': utmParams.utm_source || '',\n\t\t\t\t\t\t\t'Campaign': utmParams.utm_campaign || ''\n                        });\n                        console.log(window.dataLayer);\n\t\t\t\t\t\tconsole.log(values);\n\n\t\t\t\t\t\tlocation.href = finalThankyouURL;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t\/\/ Remove the Marketo form styles. Source: https:\/\/jsfiddle.net\/sanford\/9wvf0zjz\/\n\t\t\t\tMktoForms2.whenReady(function (form) {\n\n\t\t\t\t\t\/\/ ****** This was used for injecting UTM Parameters into the form\n\t\t\t\t\t\/\/ \/\/ Get UTM parameters from local storage\n\t\t\t\t\t\/\/ var utmParams = getUTMParams();\n\n\t\t\t\t\t\/\/ \/\/ Define field names and create JSON object\n\t\t\t\t\t\/\/ var utm_fieldNames = {\n\t\t\t\t\t\/\/ 'PPC_Content__c': utmParams.utm_content || '',\n\t\t\t\t\t\/\/ 'PPC_Keyword__c': utmParams.utm_term || '',\n\t\t\t\t\t\/\/ 'PPC_Medium__c': utmParams.utm_medium || '',\n\t\t\t\t\t\/\/ 'PPC_Source__c': utmParams.utm_source || '',\n\t\t\t\t\t\/\/ 'PPC_Campaign__c': utmParams.utm_campaign || ''\n\t\t\t\t\t\/\/ };\n\n\t\t\t\t\t\/\/ \/\/ Output the JSON object\n\t\t\t\t\t\/\/ console.log(JSON.stringify(utm_fieldNames));\n\t\t\t\t\t\/\/ form.vals(utm_fieldNames);\n\t\t\t\t\t\/\/ ********* end of UTM Parameter to form\n\n\n\t\t\t\t\tvar formEl = form.getFormElem()[0];\n\n\t\t\t\t\t\/\/ Remove element styles from root and children (may want to disable this while debugging)\n\t\t\t\t\tfor (var elsWithStyles = document.querySelectorAll('#' + formEl.id + ', #' + formEl.id + ' [style]'), i = 0, imax = elsWithStyles.length; i < imax; i++) {\n\t\t\t\t\t\telsWithStyles[i].removeAttribute('style');\n\t\t\t\t\t}\n\n\t\t\t\t\t\/\/ Disable all Marketo-sourced stylesheets\n\t\t\t\t\tfor (var styleSheets = document.styleSheets, i = 0, imax = styleSheets.length; i < imax; i++) {\n\t\t\t\t\t\tvar ssLoc = document.createElement('A');\n\t\t\t\t\t\tssLoc.href = styleSheets[i].href;\n\n\t\t\t\t\t\tif ((ssLoc.hostname.search(\/\\lp\\.inmoment\\.com$\/) !== -1) \/\/ External STYLEs\n\t\t\t\t\t\t||\n\t\t\t\t\t\t((styleSheets[i].ownerNode || styleSheets[i].owningElement).parentNode == formEl)) { \/\/ Inline STYLEs within FORM tag\n\t\t\t\t\t\t\tstyleSheets[i].disabled = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}).onFormRender(function (form){\n\t\t\t\t\t\/\/ Add a class to Labels when input is focus\n\t\t\t\t\tvar input = jQuery( '.mktoForm input, .mktoForm select, .mktoForm textarea' );\n\n\t\t\t\t\tinput.focus( function() {\n\t\t\t\t\t\tjQuery( \"label[for='\" + this.id + \"']\" ).addClass( 'labelfocus' );\n\t\t\t\t\t\tconsole.log(this.id);\n\t\t\t\t\t} ).blur( function() {\n\t\t\t\t\t\tif( !jQuery(this).val() ) {\n\t\t\t\t\t\t\tjQuery( \"label[for='\" + this.id + \"']\" ).removeClass( 'labelfocus' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t});\n\t\t\t}\n\t\t<\/script>\n\t \t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t<div class=\"gated-featured-asset-block-text\">\n\t\t\t\t\t\t\t\t\t<h5 class=\"gated-featured-asset-block-eyebrow eyebrow-heading-style- \">Download Today<\/h5>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"gated-featured-asset-block-text-content \">\n\t\t\t\t\t\t<p><span style=\"font-weight: 400\">Complete the form and download the full post-event wrap up here &#8211; including slide decks and recordings of the sessions.<\/span><\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\n\t<\/section>\n\n","protected":false},"featured_media":63763,"template":"template-lp.php","meta":{"_acf_changed":false,"footnotes":""},"industry":[],"resource-type":[655,415],"class_list":["post-63676","resource","type-resource","status-publish","has-post-thumbnail","hentry","resource-type-guide-en-au-en-gb","resource-type-webinar-en-gb"],"acf":[],"_links":{"self":[{"href":"https:\/\/inmoment.com\/en-gb\/wp-json\/wp\/v2\/resource\/63676","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inmoment.com\/en-gb\/wp-json\/wp\/v2\/resource"}],"about":[{"href":"https:\/\/inmoment.com\/en-gb\/wp-json\/wp\/v2\/types\/resource"}],"version-history":[{"count":0,"href":"https:\/\/inmoment.com\/en-gb\/wp-json\/wp\/v2\/resource\/63676\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inmoment.com\/en-gb\/wp-json\/wp\/v2\/media\/63763"}],"wp:attachment":[{"href":"https:\/\/inmoment.com\/en-gb\/wp-json\/wp\/v2\/media?parent=63676"}],"wp:term":[{"taxonomy":"industry","embeddable":true,"href":"https:\/\/inmoment.com\/en-gb\/wp-json\/wp\/v2\/industry?post=63676"},{"taxonomy":"resource-type","embeddable":true,"href":"https:\/\/inmoment.com\/en-gb\/wp-json\/wp\/v2\/resource-type?post=63676"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}