CINXE.COM
Terms of Service | Userflow
<!DOCTYPE html><!-- Last Published: Wed Nov 27 2024 10:03:50 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="www.userflow.com" data-wf-page="66751e4b207cfc03aafd3433" data-wf-site="666bc9172254723eadc4af82" lang="en" data-wf-collection="66751e4b207cfc03aafd342b" data-wf-item-slug="terms"><head><meta charset="utf-8"/><title>Terms of Service | Userflow</title><meta content="width=device-width, initial-scale=1" name="viewport"/><link href="https://cdn.prod.website-files.com/666bc9172254723eadc4af82/css/userflow-victorflow.webflow.358efe212.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com" rel="preconnect"/><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous"/><script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script><script type="text/javascript">WebFont.load({ google: { families: ["Work Sans:300,regular,500,600,700,800,900","Caveat:regular,500,600,700","Archivo:300,regular,500,600"] }});</script><script src="https://use.typekit.net/rak3tdq.js" type="text/javascript"></script><script type="text/javascript">try{Typekit.load();}catch(e){}</script><script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script><link href="https://cdn.prod.website-files.com/666bc9172254723eadc4af82/66b5b86db8a9fb5be70d77a7_userflow-favicon.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/666bc9172254723eadc4af82/66b5c0b225dfd91ca8f67ac9_userflow-webclip.webp" rel="apple-touch-icon"/><link href="https://www.userflow.com/policies/terms" rel="canonical"/><style> body { -webkit-font-smoothing: antialiased; } .primary-button { color: #f7fdfa; background-image: linear-gradient(180deg, #23d777 0, #00b353 100%); box-shadow: 0 4px 16px -8px rgba(9, 19, 83, .35); text-shadow: 0 1px 6px rgba(0, 51, 17, .35); background-size: 100% 200%; background-repeat: no-repeat; background-position-y: 100%; } .secondary-button { color: #e9f1fb; background-image: linear-gradient(180deg, #0c196e 0, #060d37 100%); box-shadow: 0 4px 16px -8px rgba(9, 19, 83, .5); text-shadow: 0 1px 6px rgba(6, 13, 55, .9); background-size: 100% 200%; background-repeat: no-repeat; background-position-y: 100%; } .navbar.dark { background-color: #1a57e6; } @media screen and (max-width: 991px) { .nav-menu.navigation.dark { background-color: #1a57e6; } } .nav-link.dark { color: var(--white); } .nav-dropdown-link.dark { color: var(--white); } .nav-icon-light.dark { opacity: 1; } .nav-icon-dark.dark { opacity: 0; } .nav-link.dark:hover { background: #1047c6 } .footer-section { background: radial-gradient(100% 100% at 50% 100%, rgba(134, 90, 221, .2) 0, rgba(134, 90, 221, 0) 100%), #060d37; } .quote-bg { background: radial-gradient(50% 150% at 60% 50%, rgba(15, 230, 140, .7) 0, rgba(15, 230, 140, 0) 100%), radial-gradient(40% 100% at 0 0, #9747ff 0, #1a57e6 100%); } .illustration-tab-image-wrap { transform: perspective(2000px) rotateX(25deg) rotateY(0) rotateZ(0) translate3d(0, 0, -120px); } .illustration-userflow-layer, .illustration-tab-pane { transform: perspective(2000px) rotateX(25deg) rotateY(0) rotateZ(0) translate3d(0, 0, -120px); } .in-view { transform: perspective(2000px) rotateX(25deg) rotateY(0) rotateZ(0) translate3d(0, 0, 0); } .box-shadow { box-shadow: 0 0 1px 0 rgba(19, 43, 57, .25), 0 4px 24px -4px rgba(19, 43, 57, .1); background: #fff; } .product-icon-code>svg { height: 28px; vertical-align: -.125em; } .best-practices-code>svg { height: auto; vertical-align: -.125em; } .fa-secondary { opacity: 0.4; } .table_component { width: 100%; margin: 1rem 0; border-radius: 0.25rem; border-left: 1px solid #c3d5e0; border-right: 1px solid #c3d5e0; border-collapse: separate; } .table_header, .table_cell { padding: 0.5rem; border-bottom: 1px solid #c3d5e0; } .table_header { border-top: 1px solid #c3d5e0; } .table_header:first-child { border-top-left-radius: 3px; } .table_header:last-child { border-top-right-radius: 3px; } .table_head { background: #f4f8fb; } </style> <!-- Mixpanel Code--> <script> (function (c, a) { if (!a.__SV) { var b = window; try { var d, m, j, k = b.location, f = k.hash; d = function (a, b) { return (m = a.match(RegExp(b + "=([^&]*)"))) ? m[1] : null }; f && d(f, "state") && (j = JSON.parse(decodeURIComponent(d(f, "state"))), "mpeditor" === j.action && (b.sessionStorage.setItem("_mpcehash", f), history.replaceState(j.desiredHash || "", c.title, k.pathname + k.search))) } catch (n) { } var l, h; window.mixpanel = a; a._i = []; a.init = function (b, d, g) { function c(b, i) { var a = i.split("."); 2 == a.length && (b = b[a[0]], i = a[1]); b[i] = function () { b.push([i].concat(Array.prototype.slice.call(arguments, 0))) } } var e = a; "undefined" !== typeof g ? e = a[g] = [] : g = "mixpanel"; e.people = e.people || []; e.toString = function (b) { var a = "mixpanel"; "mixpanel" !== g && (a += "." + g); b || (a += " (stub)"); return a }; e.people.toString = function () { return e.toString(1) + ".people (stub)" }; l = "disable time_event track track_pageview track_links track_forms track_with_groups add_group set_group remove_group register register_once alias unregister identify name_tag set_config reset opt_in_tracking opt_out_tracking has_opted_in_tracking has_opted_out_tracking clear_opt_in_out_tracking start_batch_senders people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user people.remove".split(" "); for (h = 0; h < l.length; h++) c(e, l[h]); var f = "set set_once union unset remove delete".split(" "); e.get_group = function () { function a(c) { b[c] = function () { call2_args = arguments; call2 = [c].concat(Array.prototype.slice.call(call2_args, 0)); e.push([d, call2]) } } for (var b = {}, d = ["get_group"].concat(Array.prototype.slice.call(arguments, 0)), c = 0; c < f.length; c++) a(f[c]); return b }; a._i.push([b, d, g]) }; a.__SV = 1.2; b = c.createElement("script"); b.type = "text/javascript"; b.async = !0; b.src = "undefined" !== typeof MIXPANEL_CUSTOM_LIB_URL ? MIXPANEL_CUSTOM_LIB_URL : "file:" === c.location.protocol && "//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//) ? "https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js" : "//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js"; d = c.getElementsByTagName("script")[0]; d.parentNode.insertBefore(b, d) } })(document, window.mixpanel || []); </script> <script> mixpanel.init("619494a9fdb43c4bb53cff4560b7155a", { batch_requests: true }) mixpanel.track('page_viewed', JSON.parse(atob('eyJwYXRobmFtZSI6Ii9kZW1vIn0='))) </script> <!-- Google tag manager and Google Analytics code --> <script> (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-5ZL9DTJ'); </script> <script src="https://kit.fontawesome.com/d3dc32f4ba.js" crossorigin="anonymous" nonce=""></script> <script type="text/javascript"> window.heapReadyCb = window.heapReadyCb || [], window.heap = window.heap || [], heap.load = function (e, t) { window.heap.envId = e, window.heap.clientConfig = t = t || {}, window.heap.clientConfig.shouldFetchServerConfig = !1; var a = document.createElement("script"); a.type = "text/javascript", a.async = !0, a.src = "https://cdn.us.heap-api.com/config/" + e + "/heap_config.js"; var r = document.getElementsByTagName("script")[0]; r.parentNode.insertBefore(a, r); var n = ["init", "startTracking", "stopTracking", "track", "resetIdentity", "identify", "getSessionId", "getUserId", "getIdentity", "addUserProperties", "addEventProperties", "removeEventProperty", "clearEventProperties", "addAccountProperties", "addAdapter", "addTransformer", "addTransformerFn", "onReady", "addPageviewProperties", "removePageviewProperty", "clearPageviewProperties", "trackPageview"], i = function (e) { return function () { var t = Array.prototype.slice.call(arguments, 0); window.heapReadyCb.push({ name: e, fn: function () { heap[e] && heap[e].apply(heap, t) } }) } }; for (var p = 0; p < n.length; p++)heap[n[p]] = i(n[p]) }; heap.load("1561782827"); </script> <!-- Start RB2B --> <script>!function () {var reb2b = window.reb2b = window.reb2b || [];if (reb2b.invoked) return;reb2b.invoked = true;reb2b.methods = ["identify", "collect"];reb2b.factory = function (method) {return function () {var args = Array.prototype.slice.call(arguments);args.unshift(method);reb2b.push(args);return reb2b;};};for (var i = 0; i < reb2b.methods.length; i++) {var key = reb2b.methods[i];reb2b[key] = reb2b.factory(key);}reb2b.load = function (key) {var script = document.createElement("script");script.type = "text/javascript";script.async = true;script.src = "https://s3-us-west-2.amazonaws.com/b2bjsstore/b/" + key + "/4N210HEL206Z.js.gz";var first = document.getElementsByTagName("script")[0];first.parentNode.insertBefore(script, first);};reb2b.SNIPPET_VERSION = "1.0.1";reb2b.load("4N210HEL206Z");}(); </script> <!-- Start VWO Async SmartCode --> <link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com" /> <script type='text/javascript' id='vwoCode'> window._vwo_code || (function () { var account_id = 790360, version = 2.1, settings_tolerance = 2000, hide_element = 'body', hide_element_style = 'opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important;transition:none !important;', /* DO NOT EDIT BELOW THIS LINE */ f = false, w = window, d = document, v = d.querySelector('#vwoCode'), cK = '_vwo_' + account_id + '_settings', cc = {}; try { var c = JSON.parse(localStorage.getItem('_vwo_' + account_id + '_config')); cc = c && typeof c === 'object' ? c : {} } catch (e) { } var stT = cc.stT === 'session' ? w.sessionStorage : w.localStorage; code = { nonce: v && v.nonce, use_existing_jquery: function () { return typeof use_existing_jquery !== 'undefined' ? use_existing_jquery : undefined }, library_tolerance: function () { return typeof library_tolerance !== 'undefined' ? library_tolerance : undefined }, settings_tolerance: function () { return cc.sT || settings_tolerance }, hide_element_style: function () { return '{' + (cc.hES || hide_element_style) + '}' }, hide_element: function () { if (performance.getEntriesByName('first-contentful-paint')[0]) { return '' } return typeof cc.hE === 'string' ? cc.hE : hide_element }, getVersion: function () { return version }, finish: function (e) { if (!f) { f = true; var t = d.getElementById('_vis_opt_path_hides'); if (t) t.parentNode.removeChild(t); if (e) (new Image).src = 'https://dev.visualwebsiteoptimizer.com/ee.gif?a=' + account_id + e } }, finished: function () { return f }, addScript: function (e) { var t = d.createElement('script'); t.type = 'text/javascript'; if (e.src) { t.src = e.src } else { t.text = e.text } v && t.setAttribute('nonce', v.nonce); d.getElementsByTagName('head')[0].appendChild(t) }, load: function (e, t) { var n = this.getSettings(), i = d.createElement('script'), r = this; t = t || {}; if (n) { i.textContent = n; d.getElementsByTagName('head')[0].appendChild(i); if (!w.VWO || VWO.caE) { stT.removeItem(cK); r.load(e) } } else { var o = new XMLHttpRequest; o.open('GET', e, true); o.withCredentials = !t.dSC; o.responseType = t.responseType || 'text'; o.onload = function () { if (t.onloadCb) { return t.onloadCb(o, e) } if (o.status === 200 || o.status === 304) { _vwo_code.addScript({ text: o.responseText }) } else { _vwo_code.finish('&e=loading_failure:' + e) } }; o.onerror = function () { if (t.onerrorCb) { return t.onerrorCb(e) } _vwo_code.finish('&e=loading_failure:' + e) }; o.send() } }, getSettings: function () { try { var e = stT.getItem(cK); if (!e) { return } e = JSON.parse(e); if (Date.now() > e.e) { stT.removeItem(cK); return } return e.s } catch (e) { return } }, init: function () { if (d.URL.indexOf('__vwo_disable__') > -1) return; var e = this.settings_tolerance(); w._vwo_settings_timer = setTimeout(function () { _vwo_code.finish(); stT.removeItem(cK) }, e); var t; if (this.hide_element() !== 'body') { t = d.createElement('style'); var n = this.hide_element(), i = n ? n + this.hide_element_style() : '', r = d.getElementsByTagName('head')[0]; t.setAttribute('id', '_vis_opt_path_hides'); v && t.setAttribute('nonce', v.nonce); t.setAttribute('type', 'text/css'); if (t.styleSheet) t.styleSheet.cssText = i; else t.appendChild(d.createTextNode(i)); r.appendChild(t) } else { t = d.getElementsByTagName('head')[0]; var i = d.createElement('div'); i.style.cssText = 'z-index: 2147483647 !important;position: fixed !important;left: 0 !important;top: 0 !important;width: 100% !important;height: 100% !important;background: white !important;'; i.setAttribute('id', '_vis_opt_path_hides'); i.classList.add('_vis_hide_layer'); t.parentNode.insertBefore(i, t.nextSibling) } var o = window._vis_opt_url || d.URL, s = 'https://dev.visualwebsiteoptimizer.com/j.php?a=' + account_id + '&u=' + encodeURIComponent(o) + '&vn=' + version; if (w.location.search.indexOf('_vwo_xhr') !== -1) { this.addScript({ src: s }) } else { this.load(s + '&x=true') } } }; w._vwo_code = code; code.init(); })(); </script> <!-- End VWO Async SmartCode --> <!-- [Attributes by Finsweet] CMS Load --> <script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-cmsload@1/cmsload.js"></script></head><body><div class="header-stickey"><div class="header-bar"><div class="w-layout-blockcontainer container w-container"><div class="header-area"><div class="header-text-wrap"><p class="header-text">🎉 Userflow joins forces with Beamer to create all-in-one growth toolkit</p></div><a href="/blog/userflow-joins-forces-with-beamer" class="header-link w-inline-block"><div>Read more</div><div class="header-link-icon-wrap"><div class="header-arrow w-embed"><svg class="svg-inline--fa fa-long-arrow-right" aria-hidden="true" focusable="false" data-prefix="far" data-icon="long-arrow-right" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M505 273c9.4-9.4 9.4-24.6 0-33.9L369 103c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l95 95L24 232c-13.3 0-24 10.7-24 24s10.7 24 24 24l406.1 0-95 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L505 273z"></path></svg></div></div></a></div></div></div><div class="nav-whole-area"><div data-animation="default" data-collapse="none" data-duration="400" data-easing="ease" data-easing2="ease" role="banner" class="navbar w-nav"><div class="container w-container"><div class="navbar-area navigation"><a href="/" class="brand-link w-nav-brand"><div class="brand-logo-embed w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="150" height="30" fill="none" viewBox="0 0 500 100"> <path class="userflow-logo-fg" fill="#23d777" d="m61.49 30.37-1.652 9.37c-1.762 10-11.293 18-21.244 18h-8.159c-10.011 0-16.628-8.09-14.876-18l3.313-18.77h9.42L24.98 39.74a6.992 6.992 0 0 0 1.405 6.088 7.007 7.007 0 0 0 5.713 2.542h8.16a10.77 10.77 0 0 0 6.58-2.553 10.747 10.747 0 0 0 3.58-6.077L52.9 25.67a5.849 5.849 0 0 1 5.536-4.7h17.43l1.081-6.15C78.4 6.63 72.943 0 64.734 0H24.689C16.499 0 8.67 6.63 7.239 14.82l-7.008 40C-1.21 63 4.236 69.63 12.445 69.63H52.49c8.199 0 16.018-6.63 17.45-14.81l4.314-24.45H61.49Z"></path> <path class="userflow-logo-bg" fill="#1a57e6" d="M87.62 30.37h-4.005l-6.097 34.57c-1.442 8.18-9.26 14.82-17.45 14.82h-36.09l-.951 5.43C21.575 93.37 27.03 100 35.24 100h40.045c8.19 0 16.018-6.63 17.45-14.81l7.008-40c1.531-8.18-3.935-14.82-12.124-14.82Z"></path> <path class="userflow-logo-txt" fill="#060d37" d="m347.79 3-2.253 13.112h-2.97c-5.94 0-6.864.922-8.197 9.22 0 .102-.203.716-.307 1.229h9.63l-2.253 12.497h-9.527c-2.766 15.57-6.863 38.722-6.863 38.722-2.971 17.414-5.634 22.331-20.693 22.331h-6.863l2.253-13.112h2.971c5.532 0 6.864-.922 8.298-9.22l9.219-52.55C323.205 6.073 327.611 3 343.693 3h4.097ZM129.936 26.56c8.093 0 11.474 4.508 9.322 15.571l-2.765 13.932c-1.332 6.556.717 10.346 6.35 10.346 5.123 0 8.708-5.122 10.142-12.497l5.327-27.351h14.341l-6.556 34.009c-.717 3.688-.102 5.02 3.176 5.02h2.048l-2.15 12.19h-6.66c-5.121 0-8.502-1.435-9.936-5.02-3.175 3.688-7.58 6.044-13.624 6.044-12.395.102-19.975-7.785-17.005-22.946l2.561-11.985c.82-3.995 0-5.122-2.868-5.122H120l2.254-12.19h7.682v-.001Zm65.356 52.244c12.6 0 20.692-6.249 22.229-15.263 1.946-11.371-7.273-14.956-15.059-17.312-5.429-1.64-10.243-2.664-9.731-5.327.41-2.459 2.663-4.098 6.453-4.098 4.713 0 8.298 2.356 10.552 5.737l11.37-7.376c-3.79-5.634-11.473-9.629-21.204-9.629-11.064 0-19.566 5.737-21 14.034-2.049 11.78 7.17 15.161 14.956 17.415 5.429 1.536 10.244 2.56 9.731 5.429-.512 2.97-3.175 4.61-6.863 4.61-5.122 0-9.015-2.766-11.576-7.069l-12.087 7.888c3.483 5.839 10.858 10.96 22.229 10.96v.001Zm233.695-52.243c8.093 0 11.27 4.507 9.116 15.57l-2.766 14.137c-1.33 6.863.31 10.346 5.84 10.346 5.326 0 9.22-5.634 10.653-13.112l4.713-26.941h14.24l-5.43 31.55c-.923 5.635 1.127 8.195 5.02 8.195 8.194 0 12.907-8.707 14.854-19.872 1.636-8.912.51-15.161-1.127-19.873h14.443c1.127 5.224 2.357 12.292.51 22.126-2.763 15.468-11.88 30.117-28.886 30.117-8.194 0-12.704-2.561-14.854-7.273-4.61 4.712-10.653 7.273-17.72 7.273-11.986 0-19.463-8.4-16.596-22.946l2.356-11.985c.82-3.995 0-5.122-2.87-5.122h-1.536l2.256-12.19h7.784Zm-40.77 52.243c15.263 0 25.713-10.346 28.273-23.458 2.867-15.264-6.453-29.81-24.277-29.81-14.65 0-25.713 10.346-28.273 23.458-2.87 15.264 6.453 29.81 24.277 29.81ZM233.468 57.19l.052.118-.044-.016c1.23 5.634 5.737 9.322 12.805 9.322 5.02 0 9.117-2.151 12.395-6.351l10.756 7.068c-5.02 6.863-12.087 11.473-23.97 11.473-18.644 0-27.146-14.649-24.483-29.605 2.327-13.03 13.617-21.916 25.65-23.432a25.133 25.133 0 0 1 3.41-.23h.237c.092 0 .18 0 .265.003 15.372.25 24.59 11.935 22.957 26.528l-.574 5.122h-39.456ZM366.64 3l-10.347 58.594c-.513 2.664.307 3.688 2.97 3.688h1.537l-2.253 12.498h-6.35c-11.474 0-11.68-7.069-10.04-16.288L352.4 3h14.24ZM284 26.56c6.658 0 9.116 3.176 9.526 8.093 3.688-5.531 8.912-8.092 15.366-8.092h6.556l-2.561 14.136h-5.634c-7.069 0-11.986 3.176-13.83 12.702l-4.814 24.38h-14.341l6.556-33.906c.922-3.688 0-5.122-3.278-5.122h-1.64l2.152-12.19h5.941l.001-.001Zm104.933 39.234c-7.99 0-12.803-7.273-11.473-15.16 1.23-7.478 7.683-12.293 14.033-12.293 8.197.205 12.807 7.478 11.474 15.366-1.227 7.478-7.374 12.087-14.034 12.087ZM260.05 45.921c-1.248-5.326-5.343-8.092-11.284-8.092-5.941 0-10.816 3.278-13.506 8.092h24.79Z"></path> </svg></div></a><div class="nav-menu-area"><nav role="navigation" class="nav-menu navigation w-nav-menu"><div class="nav-menu-wrap navigation"><div data-hover="true" data-delay="0" class="nav-dropdown w-dropdown"><div class="nav-link w-dropdown-toggle"><div>Product</div><div class="nav-dropdown-icon-wrap"><div class="dropdown-arrow-code w-embed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="currentColor" d="M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"/></svg></div></div></div><nav class="nav-dropdown-list w-dropdown-list"><a href="/product" class="nav-dropdown-link w-dropdown-link">Product Overview</a><a href="/resource-center" class="nav-dropdown-link w-dropdown-link">Resource Center</a><a href="/ai-assistant" class="nav-dropdown-link w-dropdown-link">AI Assistant</a><a href="/in-app-surveys" class="nav-dropdown-link w-dropdown-link">In-app surveys</a><a href="/feature-announcements" class="nav-dropdown-link w-dropdown-link">Feature announcements</a></nav></div><a href="/pricing" class="nav-link w-nav-link">Pricing</a><div data-hover="true" data-delay="0" class="nav-dropdown w-dropdown"><div class="nav-link w-dropdown-toggle"><div>Resources </div><div class="nav-dropdown-icon-wrap"><div class="dropdown-arrow-code w-embed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="currentColor" d="M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"/></svg></div></div></div><nav class="nav-dropdown-list w-dropdown-list"><a href="/blog" class="nav-dropdown-link w-dropdown-link">Blog</a><a href="https://docs.userflow.com/docs" class="nav-dropdown-link w-dropdown-link">Documentation</a><a href="/customers" class="nav-dropdown-link w-dropdown-link">Customers</a><a href="/best-practices" class="nav-dropdown-link w-dropdown-link">Best practices</a><a href="https://docs.userflow.com/docs/dev" class="nav-dropdown-link w-dropdown-link">Developer Docs</a></nav></div><div class="nav-button-wrap navigation"><a href="https://app.userflow.com/app/sign-in?__hstc=17958374.732a3001c521056a8c4cee5bb17d47c5.1721370265869.1729849049053.1730088044328.24&__hssc=17958374.3.1730088044328&__hsfp=3499748124" class="nav-link icon w-inline-block"><div class="nav-icon-wrap"><img loading="lazy" src="https://cdn.prod.website-files.com/666bc9172254723eadc4af82/671b266ef78f063b3417c33b_sign-in-light.svg" alt="sign" class="nav-icon-light"/><img loading="lazy" src="https://cdn.prod.website-files.com/666bc9172254723eadc4af82/671b210cefebad642f8669a1_sign-in.svg" alt="sign" class="nav-icon-dark"/></div></a><a href="/demo#schedule" class="secondary-button small navigation w-button">Book a Demo</a><a href="https://app.userflow.com/app/create-account" class="primary-button navigation w-button">Start Free Trial</a></div></div></nav><div class="nav-menu-button-area"><a href="https://app.userflow.com/app/create-account" class="primary-button navigation mobile w-button">Start Free Trial</a><div data-w-id="70b3e3bc-be99-b6f6-e925-a9f4623c3870" class="nav-menu-button"><div class="nav-menu-line"></div><div class="nav-menu-line"></div><div class="nav-menu-line"></div></div></div></div></div></div></div></div></div><div class="policies-section mt120"><div class="w-layout-blockcontainer container w-container"><div class="policies-area"><div class="policies-top-bar"><a href="/policies" class="policies-bar-text link">Policies</a><div class="policies-arrow-wrap"><img src="https://cdn.prod.website-files.com/666bc9172254723eadc4af82/66752765ed2d0f19112c2c82_policies-arrow.svg" loading="lazy" width="Auto" height="Auto" alt="icon" class="policies-arrow-icon"/></div><p class="policies-bar-text">Terms of Service</p></div><h1 class="section-title">Userflow Terms of Service</h1><div class="policies-summary-wrap"><div class="policies-summary w-richtext"><p><em>Last updated: April 13, 2023</em></p><p>By using the Userflow (“Service”), you are agreeing to be bound by the following terms and conditions (“Terms of Service”).</p><p>Userflow, Inc. (“Company”) reserves the right to update and change these Terms of Service without notice.</p><p>Violation of any of the terms below may result in the termination of your account.</p><h3>Account Terms</h3><ol role="list"><li>You are responsible for maintaining the security of your account and password. The Company cannot and will not be liable for any loss or damage from your failure to comply with this security obligation.</li><li>You are responsible for all content posted and activity that occurs under your account (even when content is posted by others who have their own logins under your account).</li><li>You may not use the Service for any illegal purpose or to violate any laws in your jurisdiction (including but not limited to copyright laws).</li><li>You must provide your legal full name, a valid email address, and any other information requested in order to complete the signup process.</li><li>Your login may only be used by one person – a single login shared by multiple people is not permitted. You may create separate logins for as many people as you’d like.</li><li>You must be a human. Accounts registered by “bots” or other automated methods are not permitted.</li></ol><h3>API Terms</h3><p>Customers may access their Service data via the Application Program Interface (“API”). Any use of the API, including use of the API through a third-party product that accesses the Service, is bound by the terms of this agreement plus the following specific terms:</p><ol role="list"><li>You expressly understand and agree that the Company shall not be liable for any damages or losses resulting from your use of the API or third-party products that access data via the API.</li><li>Abuse or excessively frequent requests to the Service via the API may result in the temporary or permanent suspension of your account’s access to the API. The Company, in its sole discretion, will determine abuse or excessive usage of the API. The Company will make a reasonable attempt via email to warn the account owner prior to suspension.</li></ol><h3>Payment, Refunds, Upgrading and Downgrading Terms</h3><ol role="list"><li>The Service is offered with a free trial for 14 days. If you need more than 14 days, you will only be able to continue using the Service by paying in advance for additional usage. If you fail to pay for additional usage, your account will be frozen and inaccessible until payment is made.</li><li>For any upgrade or downgrade in plan level, will result in the new rate being charged immediately, possibly pro-rated for the current billing cycle.</li><li>Downgrading your Service may cause the loss of features or capacity of your account. The Company does not accept any liability for such loss.</li><li>All fees are exclusive of all taxes, levies, or duties imposed by taxing authorities, and you shall be responsible for payment of all such taxes, levies, or duties, excluding only United States (federal or state) taxes. Where required, The Company will collect those taxes on behalf of taxing authority and remit those taxes to taxing authorities.</li><li>As a general rule, there are no refunds, but we are fair people, so if you forgot to cancel your subscription and we charge you for the next month, we’ll happily refund.</li></ol><h3>Cancellation and Termination</h3><ol role="list"><li>You are solely responsible for properly canceling your account. An email or phone request to cancel your account is not considered cancellation. You can cancel your account at any time by navigating to Settings, then Billing. The Billing screen provides a simple cancellation link.</li><li>All of your content will be inaccessible from the Service immediately upon cancellation. You can request to have your data deleted on <a href="mailto:privacy@userflow.com"><strong>privacy@userflow.com</strong></a>. Userflow furthermore reserves the right to delete your data 60 days after cancellation. This information can not be recovered once it has been permanently deleted.</li><li>If you cancel the Service before the end of your current paid up month or year, your cancellation will take effect immediately, and you will not be charged again. But there will not be any prorating of unused time in the last billing cycle.</li><li>The Company, in its sole discretion, has the right to suspend or terminate your account and refuse any and all current or future use of the Service for any reason at any time. Such termination of the Service will result in the deactivation or deletion of your Account or your access to your Account, and the forfeiture and relinquishment of all content in your account. The Company reserves the right to refuse service to anyone for any reason at any time.</li></ol><h3>Modifications to the Service and Prices</h3><ol role="list"><li>The Company reserves the right at any time and from time to time to modify or discontinue, temporarily or permanently, any part of the Service with or without notice.</li><li>Prices of all Services are subject to change upon 30 days notice from us. Such notice may be provided at any time by posting the changes to the Company web site or the Service itself.</li><li>The Company shall not be liable to you or to any third party for any modification, price change, suspension or discontinuance of the Service.</li></ol><h3>Copyright and Content Ownership</h3><ol role="list"><li>All content posted on the Service must comply with U.S. copyright law.</li><li>We claim no intellectual property rights over the material you provide to the Service. All materials uploaded remain yours.</li><li>The Company does not pre-screen content, but reserves the right (but not the obligation) in their sole discretion to refuse or remove any content that is available via the Service.</li><li>The look and feel of the Service is copyright© to the Company. All rights reserved. You may not duplicate, copy, or reuse any portion of the HTML, CSS, JavaScript, or visual design elements without express written permission from the Company.</li></ol><h3>Security and Privacy</h3><ol role="list"><li>We take many measures to protect and secure your data through backups, redundancies, and encryption. Please refer to our <a href="https://userflow.com/policies/security"><strong>Security Policy</strong></a> for full details.</li><li>When you use our Services, you entrust us with your data. We take that trust to heart. You agree that Userflow may process your data as described in our Privacy Policy and for no other purpose. We as humans can access your data for the following reasons:<ul role="list"><li><strong>To help you with support requests you make.</strong> We’ll ask for express consent before accessing your account.</li><li><strong>On the rare occasions when an error occurs that stops an automated process partway through.</strong> We get automated alerts when such errors occur. When we can fix the issue and restart automated processing without looking at any personal data, we do. In rare cases, we have to look at a minimum amount of personal data to fix the issue. In these rare cases, we aim to fix the root cause as much as possible to avoid the errors from reoccurring.</li><li><strong>To safeguard Userflow.</strong> We’ll look at logs and metadata as part of our work to ensure the security of your data and the Services as a whole. If necessary, we may also access accounts as part of an abuse report investigation.</li><li><strong>To the extent required by applicable law.</strong> As a US company with all data infrastructure located in the US, we only preserve or share customer data if compelled by a US government authority with a legally binding order or proper request under the Stored Communications Act. If a non-US authority approaches Userflow for assistance, our default stance is to refuse unless the order has been approved by the US government, which compels us to comply through procedures outlined in an established mutual legal assistance treaty or agreement mechanism. If Userflow is audited by a tax authority, we only share the bare minimum billing information needed to complete the audit.</li></ul></li><li>We use third party vendors and hosting partners to provide the necessary hardware, software, networking, storage, and related technology required to run the Services. You can see a list of all <a href="https://userflow.com/policies/subprocessors"><strong>subprocessors</strong></a> who handle personal data.</li><li>Under the California Consumer Privacy Act (“CCPA”), Userflow is a “service provider”, not a “business” or “third party”, with respect to your use of the Services. That means we process any data you share with us only for the purpose you signed up for and as described in these Terms of Service, Privacy policy, and other policies. We do not retain, use, disclose, or sell any of that information for any other commercial purposes unless we have your explicit permission. And on the flip-side, you agree to comply with your requirements under the CCPA and not use Userflow’s Services in a way that violates the regulations.</li><li>These Service Terms incorporate the <a href="https://userflow.com/policies/userflow-gdpr-dpa.pdf"><strong>Userflow Data Processing Addendum (“DPA”)</strong></a>, when the General Data Protection regulation (“GDPR”) applies to your use of Userflow Services to process Customer Data as defined in the DPA. <strong>Follow the instructions below to execute a signed copy of the Data Processing Addendum (DPA):</strong></li></ol><ul role="list"><li>Download the <a href="https://userflow.com/policies/userflow-gdpr-dpa.pdf"><strong>Data Processing Addendum</strong></a></li><li>Complete and sign the DPA as described under “HOW TO EXECUTE THIS DPA”</li><li><a href="mailto:support@userflow.com"><strong>Send the DPA to us</strong></a></li><li>We’ll sign the DPA and return it to you</li></ul><p>Regardless of whether you execute a signed copy or not, we protect and secure your data to the high standards set out in the addendum.</p><h3>General Conditions</h3><ol role="list"><li>Your use of the Service is at your sole risk. The service is provided on an “as is” and “as available” basis.</li><li>You understand that the Company uses third party vendors and hosting partners to provide the necessary hardware, software, networking, storage, and related technology required to run the Service.</li><li>You must not modify, adapt or hack the Service.</li><li>You must not modify another website so as to falsely imply that it is associated with the Service or the Company.</li><li>You agree not to reproduce, duplicate, copy, sell, resell or exploit any portion of the Service, use of the Service, or access to the Service without the express written permission by the Company.</li><li>We may, but have no obligation to, remove content and accounts that we determine in our sole discretion are unlawful or violates any party’s intellectual property or these Terms of Service.</li><li>Verbal, physical, written or other abuse (including threats of abuse or retribution) of any Service customer, Company employee or officer will result in immediate account termination.</li><li>We reserve the right to temporarily disable your account if your usage significantly exceeds the average usage of other Service customers. Of course, we’ll reach out to the account owner before taking any action except in rare cases where the level of use may negatively impact the performance of the Service for other customers.</li><li>The Company does not warrant that (i) the service will meet your specific requirements, (ii) the service will be uninterrupted, timely, secure, or error-free, (iii) the results that may be obtained from the use of the service will be accurate or reliable, (iv) the quality of any products, services, information, or other material purchased or obtained by you through the service will meet your expectations, and (v) any errors in the Service will be corrected.</li><li>You expressly understand and agree that the Company shall not be liable for any direct, indirect, incidental, special, consequential or exemplary damages, including but not limited to, damages for loss of profits, goodwill, use, data or other intangible losses (even if the Company has been advised of the possibility of such damages), resulting from: (i) the use or the inability to use the service; (ii) the cost of procurement of substitute goods and services resulting from any goods, data, information or services purchased or obtained or messages received or transactions entered into through or from the service; (iii) unauthorized access to or alteration of your transmissions or data; (iv) statements or conduct of any third party on the service; (v) or any other matter relating to the service.</li><li>The failure of the Company to exercise or enforce any right or provision of the Terms of Service shall not constitute a waiver of such right or provision. The Terms of Service constitutes the entire agreement between you and the Company and govern your use of the Service, superseding any prior agreements between you and the Company (including, but not limited to, any prior versions of the Terms of Service).</li><li>Questions about the Terms of Service should be sent to <a href="mailto:support@userflow.com"><strong>support@userflow.com</strong></a>.</li></ol><p>Any new features that augment or enhance the current Service, including the release of new tools and resources, shall be subject to the Terms of Service. Continued use of the Service after any such changes shall constitute your consent to such changes.</p><h3>Additional Terms for AI Assistant feature</h3><p>When using our AI Assistant (powered by <a href="https://openai.com/"><strong>OpenAI</strong></a>), you agree to the following additional terms:</p><ol role="list"><li><strong>Use of the AI Assistant is at your own discretion and risk.</strong> OpenAI has put a lot of effort into making their models safe, by minimizing the risk of harmful, inappropriate and incorrect answers. Userflow is not liable for any incorrect, inappropriate, or harmful inputs and outputs.</li><li><strong>Sensitive Personal Information.</strong> Customers specifically agrees not to use the AI Assistant to collect, store, process or transmit any sensitive personal information, and customers shall be solely responsible for any sensitive personal information that is inadvertently submitted to the AI Assistant. Userflow and its third party technology providers (including OpenAI) are not subject to any additional obligations that apply to sensitive personal information under these Terms.</li><li><strong>Processing by OpenAI</strong>. Customers acknowledges that by using the AI Assistant, you agree to OpenAI processing your data submitted to the AI Assistant in accordance with their data processing terms and security policy. If your use of the AI Assistant will involve processing of personal data, you must provide legally adequate privacy notices and obtain necessary consents for the processing of such data in accordance with applicable laws.</li></ol><p>This policy have been adapted from the <a href="https://github.com/basecamp/policies"><strong>Basecamp open-source policies</strong></a> / <a href="https://creativecommons.org/licenses/by/4.0/"><strong>CC BY 4.0</strong></a>.</p></div><div class="w-embed"><style> .policies-summary p+h1, .policies-summary p+h2, .policies-summary p+h3, .policies-summary p+h4, .policies-summary ol+h1, .policies-summary ol+h2, .policies-summary ol+h3, .policies-summary ol+h4, .policies-summary ul+h1, .policies-summary ul+h2, .policies-summary ul+h3, .policies-summary ul+h4, .policies-summary blockquote+h1, .policies-summary blockquote+h2, .policies-summary blockquote+h3, .policies-summary blockquote+h4, .policies-summary h1+h1, .policies-summary h1+h2, .policies-summary h1+h3, .policies-summary h1+h4, .policies-summary h2+h1, .policies-summary h2+h2, .policies-summary h2+h3, .policies-summary h2+h4, .policies-summary h3+h1, .policies-summary h3+h2, .policies-summary h3+h3, .policies-summary h3+h4, .policies-summary h4+h1, .policies-summary h4+h2, .policies-summary h4+h3, .policies-summary h4+h4 { margin-top: 2rem; } .policies-summary p+p, .policies-summary p+ol, .policies-summary p+ul, .policies-summary p+pre, .policies-summary p+blockquote, .policies-summary ol+p, .policies-summary ol+ol, .policies-summary ol+ul, .policies-summary ol+pre, .policies-summary ol+blockquote, .policies-summary ul+p, .policies-summary ul+ol, .policies-summary ul+ul, .policies-summary ul+pre, .policies-summary ul+blockquote, .policies-summary pre+p, .policies-summary pre+ol, .policies-summary pre+ul, .policies-summary pre+pre, .policies-summary pre+blockquote, .policies-summary blockquote+p, .policies-summary blockquote+ol, .policies-summary blockquote+ul, .policies-summary blockquote+pre, .policies-summary blockquote+blockquote, .policies-summary h1+p, .policies-summary h1+ol, .policies-summary h1+ul, .policies-summary h1+pre, .policies-summary h1+blockquote, .policies-summary h2+p, .policies-summary h2+ol, .policies-summary h2+ul, .policies-summary h2+pre, .policies-summary h2+blockquote, .policies-summary h3+p, .policies-summary h3+ol, .policies-summary h3+ul, .policies-summary h3+pre, .policies-summary h3+blockquote, .policies-summary h4+p, .policies-summary h4+ol, .policies-summary h4+ul, .policies-summary h4+pre, .policies-summary h4+blockquote { margin-top: 1rem; } </style></div></div><div class="security-policies"><h2 class="security-policies-title">Additional policies</h2><div class="securities-collection"><div class="w-dyn-list"><div role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-acceptable-use" class="policies-link">Acceptable Use Policy</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-asset-management" class="policies-link">Asset Management Policy</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-backup" class="policies-link">Backup Policy</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-business-continuity" class="policies-link">Business Continuity Plan</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-code-of-conduct" class="policies-link">Code of Conduct</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-data-classification" class="policies-link">Data Classification Policy</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-data-deletion" class="policies-link">Data Deletion Policy</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-data-protection" class="policies-link">Data Protection Policy</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-disaster-recovery" class="policies-link">Disaster Recovery Plan</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-encryption" class="policies-link">Encryption Policy</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-incident-response" class="policies-link">Incident Response Plan</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-information-security" class="policies-link">Information Security Policy</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-password" class="policies-link">Password Policy</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-physical-security" class="policies-link">Physical Security Policy</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-responsible-disclosure" class="policies-link">Responsible Disclosure Policy</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-risk-assessment" class="policies-link">Risk Assessment Policy</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-sdlc" class="policies-link">Software Development Life Cycle Policy</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-system-access-control" class="policies-link">System Access Control Policy</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-vendor-management" class="policies-link">Vendor Management Policy</a></li></ul></div><div role="listitem" class="w-dyn-item"><ul role="list" class="policies-list"><li class="policies-item security"><a href="/policies/security-vulnerability-management" class="policies-link">Vulnerability Management Policy</a></li></ul></div></div></div></div></div></div></div></div><section class="footer-section"><div class="w-layout-blockcontainer container w-container"><div class="footer-area"><div class="footer-link-wrap"><a href="/" class="footer-logo-link w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/666bc9172254723eadc4af82/666c4067646925e7d0491ec2_footer-logo.svg" alt="icon" class="footer-logo-image"/></a></div><div class="footer-wrap"><div class="footer-list-area"><div class="footer-list-whole-wrap"><h2 class="footer-list-title">PRODUCT</h2><div class="footer-list-wrap"><a href="/product" class="footer-link">Product overview<br/></a><a href="/resource-center" class="footer-link">Resource Center<br/></a><a href="/ai-assistant" class="footer-link">AI Assistant<br/></a><a href="/in-app-surveys" class="footer-link">In-app survey<br/></a><a href="/feature-announcements" class="footer-link">Feature annoucements<br/></a><a href="/pricing" class="footer-link">Pricing <br/></a><a href="/alternatives" class="footer-link">Alternatives<br/></a></div></div></div><div class="footer-list-area"><div class="footer-list-whole-wrap"><h2 class="footer-list-title">SOLUTIONS</h2><div class="footer-list-wrap"><a href="/user-onboarding" class="footer-link">User onboarding</a><a href="/product-tours" class="footer-link">Product tours</a><a href="/product-led-growth" class="footer-link">Product-led growth</a><a href="/customer-self-service" class="footer-link">Customer self-service</a><a href="/trial-conversion" class="footer-link">Trial conversion</a></div></div><div class="footer-list-whole-wrap"><h2 class="footer-list-title">DEVELOPERS</h2><div class="footer-list-wrap"><a href="https://docs.userflow.com/docs/dev" class="footer-link">Developer docs</a><a href="https://docs.userflow.com/docs/dev/userflow-js-installation" class="footer-link">Userflow.js Installation</a><a href="https://docs.userflow.com/docs/userflow-js#userflow-js-reference" class="footer-link">Userflow.js Reference</a><a href="https://docs.userflow.com/docs/api#userflow-api-reference" class="footer-link">API Reference</a></div></div></div><div class="footer-list-area"><div class="footer-list-whole-wrap"><h2 class="footer-list-title">RESOURCES</h2><div class="footer-list-wrap"><a href="/blog" class="footer-link">Blog</a><a href="/customers" class="footer-link">Customers</a><a href="https://docs.userflow.com/docs" class="footer-link">Documentation</a><a href="/first-userflow-onboarding" class="footer-link">First Userflow onboarding</a><a href="/userflow-tips-and-tricks" class="footer-link">Userflow tips and tricks</a><a href="/onboarding-best-practices" class="footer-link">Onboarding best practices</a><a href="/resource-center-best-practices" class="footer-link">Resource center best practices</a><a href="/product-led-at-userflow" class="footer-link">Product-led at Userflow</a></div></div></div><div class="footer-list-area"><div class="footer-list-whole-wrap"><div class="nav-button-wrap footer"><div class="footer-secondary-button"><a href="https://app.userflow.com/app/create-account" class="primary-button navigation w-button">Start Free Trial</a></div><a href="/demo#schedule" class="secondary-button small navigation w-button">Book a Demo</a></div></div><div class="footer-list-whole-wrap"><h2 class="footer-list-title">© USERFLOW INC. 2024</h2><div class="footer-list-wrap"><a href="https://status.userflow.com/" class="footer-link">System status</a><a href="/policies/security" class="footer-link">Security</a><a href="/policies/privacy-regulations" class="footer-link">Privacy Regulations (GDPR)</a><a href="/policies/terms" aria-current="page" class="footer-link w--current">Terms of Service</a><a href="/policies/privacy" class="footer-link">Privacy Policy</a><a href="/policies" class="footer-link">All policies</a></div></div></div></div><div class="footer-badge-wrap"><img loading="lazy" src="https://cdn.prod.website-files.com/666bc9172254723eadc4af82/66706c96f6aa024c3c6c9d93_footer-badge.png" alt="image" class="footer-badge-image"/></div></div></div></section><div><div class="set-all-components-to-display-none-and-use-this-div-to-create-a-symbol"><div fs-cc="banner" class="fs-cc-banner_component"><div class="cookie-banner"><div>We use cookies to help us improve userflow.com</div><a href="/policies" class="policy-link">Learn more</a><div class="fs-cc-banner_buttons-wrapper"><a fs-cc="open-preferences" href="#" class="fs-cc-banner_text-link hide">Preferences</a><a fs-cc="deny" href="#" class="fs-cc-banner_button fs-cc-button-alt hide w-button">Deny</a><a fs-cc="allow" href="#" class="cookie-accept-link w-button">OK</a><div fs-cc="close" class="fs-cc-banner_close hide"><div class="fs-cc-banner_close-icon w-embed"><svg fill="currentColor" aria-hidden="true" focusable="false" viewBox="0 0 16 16"> <path d="M9.414 8l4.293-4.293-1.414-1.414L8 6.586 3.707 2.293 2.293 3.707 6.586 8l-4.293 4.293 1.414 1.414L8 9.414l4.293 4.293 1.414-1.414L9.414 8z"></path> </svg></div></div></div></div><div fs-cc="interaction" class="fs-cc-banner_trigger"></div></div><div fs-cc="manager" class="fs-cc-manager_component hide"><div fs-cc="open-preferences" class="fs-cc-manager_button"><div class="fs-cc-manager_icon w-embed"><svg viewBox="0 0 54 54" fill="none" xmlns="http://www.w3.org/2000/svg"> <g clip-path="url(#clip0)"> <path d="M52.631 30.3899C52.229 30.4443 51.8161 30.4769 51.3924 30.4769C47.5135 30.4769 44.2322 27.9344 43.1022 24.4358C42.9066 23.8382 42.4177 23.371 41.7984 23.2624C35.3553 22.0346 30.4877 16.3847 30.4877 9.5831C30.4877 6.72555 31.3461 4.07445 32.8237 1.86881C33.1714 1.34728 32.8781 0.641046 32.2588 0.521529C30.5529 0.173843 28.8036 0 27 0C12.093 0 0 12.093 0 27C0 41.907 12.093 54 27 54C40.4402 54 51.5553 44.2213 53.6415 31.3678C53.7392 30.7811 53.2068 30.303 52.631 30.3899Z" fill="#4264D1"/> <path d="M14.8093 21.7738C16.7355 21.7738 18.297 20.2123 18.297 18.2861C18.297 16.3599 16.7355 14.7984 14.8093 14.7984C12.883 14.7984 11.3215 16.3599 11.3215 18.2861C11.3215 20.2123 12.883 21.7738 14.8093 21.7738Z" fill="#6CE2FF"/> <path d="M16.5477 38.3215C17.9879 38.3215 19.1554 37.154 19.1554 35.7138C19.1554 34.2737 17.9879 33.1062 16.5477 33.1062C15.1075 33.1062 13.9401 34.2737 13.9401 35.7138C13.9401 37.154 15.1075 38.3215 16.5477 38.3215Z" fill="#6CE2FF"/> <path d="M38.2129 7.06237L37.963 8.56177C37.7565 9.78953 38.4519 10.9956 39.6254 11.441L41.8419 12.2668C43.2978 12.8101 44.9167 11.9626 45.297 10.4523L46.0901 7.3014C46.5791 5.33481 44.7429 3.58551 42.8089 4.16137L40.06 4.98712C39.093 5.26961 38.3759 6.07364 38.2129 7.06237Z" fill="#6CE2FF"/> <path d="M47.0354 16.5477L45.9815 17.0692C45.1557 17.4821 44.7972 18.4708 45.1557 19.3183L46.0032 21.2958C46.5139 22.4909 48.1111 22.7191 48.9477 21.7195L50.3058 20.0897C50.9469 19.3183 50.8056 18.1774 50.0125 17.5799L48.8608 16.7106C48.3284 16.3195 47.6221 16.2543 47.0354 16.5477Z" fill="#6CE2FF"/> <path d="M52.2615 13.06C53.2216 13.06 53.9999 12.2816 53.9999 11.3215C53.9999 10.3614 53.2216 9.5831 52.2615 9.5831C51.3014 9.5831 50.5231 10.3614 50.5231 11.3215C50.5231 12.2816 51.3014 13.06 52.2615 13.06Z" fill="#6CE2FF"/> <path d="M30.2704 50.7296C15.3634 50.7296 3.27042 38.6366 3.27042 23.7296C3.27042 17.1018 5.66076 11.039 9.61569 6.34528C3.73763 11.2998 0 18.7099 0 27C0 41.907 12.093 54 27 54C35.2901 54 42.7002 50.2732 47.6439 44.3952C42.9501 48.3501 36.8873 50.7296 30.2704 50.7296Z" fill="#4264D1"/> <path d="M42.2222 10.2459C40.7662 9.70263 39.897 8.19236 40.1469 6.64951L40.4403 4.86761L40.0274 4.98713C39.0712 5.26963 38.365 6.07365 38.202 7.06238L37.9521 8.56178C37.7457 9.78955 38.4411 10.9956 39.6145 11.4411L41.831 12.2668C43.0044 12.7014 44.2648 12.2342 44.9167 11.2563L42.2222 10.2459Z" fill="#4264D1"/> <path d="M47.8612 20.1658L46.905 17.9276C46.7203 17.5038 46.7095 17.0584 46.8181 16.6455L45.9815 17.0692C45.1557 17.4821 44.7972 18.4708 45.1557 19.3183L46.0032 21.2958C46.5139 22.491 48.1111 22.7191 48.9477 21.7195L49.2845 21.3175C48.6869 21.198 48.1328 20.8069 47.8612 20.1658Z" fill="#4264D1"/> <path d="M16.6563 19.9268C14.7332 19.9268 13.1686 18.3622 13.1686 16.4391C13.1686 15.961 13.2664 15.4938 13.4402 15.0809C12.1907 15.6133 11.3107 16.8519 11.3107 18.2861C11.3107 20.2093 12.8753 21.7739 14.7984 21.7739C16.2435 21.7739 17.4821 20.8938 18.0036 19.6443C17.6016 19.829 17.1344 19.9268 16.6563 19.9268Z" fill="white"/> <path d="M17.9059 36.9634C16.4608 36.9634 15.2982 35.79 15.2982 34.3557C15.2982 33.9863 15.3743 33.6386 15.5155 33.3235C14.592 33.7256 13.9401 34.6491 13.9401 35.7248C13.9401 37.1698 15.1135 38.3324 16.5477 38.3324C17.6234 38.3324 18.5469 37.6805 18.9489 36.757C18.623 36.8873 18.2753 36.9634 17.9059 36.9634Z" fill="white"/> <path d="M33.0954 41.8093C35.0216 41.8093 36.5831 40.2477 36.5831 38.3215C36.5831 36.3953 35.0216 34.8338 33.0954 34.8338C31.1692 34.8338 29.6077 36.3953 29.6077 38.3215C29.6077 40.2477 31.1692 41.8093 33.0954 41.8093Z" fill="#6CE2FF"/> <path d="M34.9425 39.9513C33.0193 39.9513 31.4547 38.3867 31.4547 36.4636C31.4547 35.9855 31.5525 35.5183 31.7264 35.1054C30.4769 35.6378 29.5968 36.8765 29.5968 38.3107C29.5968 40.2338 31.1614 41.7984 33.0845 41.7984C34.5296 41.7984 35.7682 40.9183 36.2898 39.6688C35.8877 39.8535 35.4314 39.9513 34.9425 39.9513Z" fill="white"/> <path d="M27.8063 22.9281C27.9601 21.9804 27.3165 21.0874 26.3688 20.9336C25.421 20.7798 24.5281 21.4234 24.3743 22.3711C24.2205 23.3188 24.864 24.2118 25.8118 24.3656C26.7595 24.5194 27.6525 23.8758 27.8063 22.9281Z" fill="#6CE2FF"/> <path d="M42.6785 35.6487C42.798 35.6487 42.9284 35.6161 43.0371 35.5618C43.4391 35.3553 43.602 34.8664 43.4065 34.4644L42.5373 32.726C42.3308 32.3239 41.8419 32.161 41.4399 32.3565C41.0379 32.563 40.8749 33.0519 41.0705 33.4539L41.9397 35.1924C42.0918 35.4857 42.3743 35.6487 42.6785 35.6487Z" fill="white"/> <path d="M33.0954 30.4225C33.2149 30.4225 33.3453 30.39 33.4539 30.3356L35.1923 29.4664C35.5944 29.26 35.7573 28.771 35.5618 28.369C35.3553 27.967 34.8664 27.804 34.4644 27.9996L32.726 28.8688C32.3239 29.0753 32.161 29.5642 32.3565 29.9662C32.5087 30.2596 32.802 30.4225 33.0954 30.4225Z" fill="white"/> <path d="M8.85515 28.2386C8.9964 28.5211 9.28976 28.6841 9.58312 28.6841C9.70263 28.6841 9.83302 28.6515 9.94167 28.5972C10.3437 28.3908 10.5067 27.9018 10.3111 27.4998L9.44187 25.7614C9.23543 25.3594 8.7465 25.1964 8.34449 25.392C7.94247 25.5984 7.7795 26.0873 7.97507 26.4894L8.85515 28.2386Z" fill="white"/> <path d="M22.2845 41.9505L20.5461 42.8197C20.1441 43.0262 19.9811 43.5151 20.1767 43.9171C20.3179 44.1996 20.6113 44.3626 20.9046 44.3626C21.0242 44.3626 21.1545 44.33 21.2632 44.2757L23.0016 43.4064C23.4036 43.2 23.5666 42.7111 23.371 42.3091C23.1755 41.907 22.6865 41.7441 22.2845 41.9505Z" fill="white"/> <path d="M23.2189 9.00724L22.3497 8.13802C22.0346 7.82293 21.5131 7.82293 21.198 8.13802C20.8829 8.45311 20.8829 8.97464 21.198 9.28973L22.0672 10.1589C22.2302 10.3219 22.4366 10.398 22.6431 10.398C22.8495 10.398 23.0559 10.3219 23.2189 10.1589C23.5449 9.84385 23.5449 9.32233 23.2189 9.00724Z" fill="white"/> <path d="M19.4596 28.1626C19.1445 28.4777 19.1445 28.9992 19.4596 29.3143L20.3288 30.1835C20.4918 30.3465 20.6982 30.4226 20.9047 30.4226C21.1111 30.4226 21.3175 30.3465 21.4805 30.1835C21.7956 29.8684 21.7956 29.3469 21.4805 29.0318L20.6113 28.1626C20.2853 27.8475 19.7747 27.8475 19.4596 28.1626Z" fill="white"/> <path d="M29.6729 47.0354V47.9046C29.6729 48.3501 30.0423 48.7195 30.4877 48.7195C30.9332 48.7195 31.3026 48.3501 31.3026 47.9046V47.0354C31.3026 46.5899 30.9332 46.2205 30.4877 46.2205C30.0423 46.2205 29.6729 46.5791 29.6729 47.0354Z" fill="white"/> <path d="M25.8374 15.3851L26.7067 14.5159C27.0217 14.2008 27.0217 13.6793 26.7067 13.3642C26.3916 13.0491 25.87 13.0491 25.5549 13.3642L24.6857 14.2334C24.3706 14.5485 24.3706 15.07 24.6857 15.3851C24.8487 15.5481 25.0551 15.6241 25.2616 15.6241C25.468 15.6241 25.6745 15.5372 25.8374 15.3851Z" fill="white"/> </g> <defs> <clipPath id="clip0"> <rect width="54" height="54" fill="white"/> </clipPath> </defs> </svg></div></div><div fs-cc="interaction" class="fs-cc-manager_trigger"></div></div><div fs-cc-scroll="disable" fs-cc="preferences" class="fs-cc-prefs_component w-form"><form id="cookie-preferences" name="wf-form-Cookie-Preferences" data-name="Cookie Preferences" method="get" class="fs-cc-prefs_form" data-wf-page-id="66751e4b207cfc03aafd3433" data-wf-element-id="25c9b353-1b2e-0231-fe50-01f1a7f34005"><div fs-cc="close" class="fs-cc-prefs_close"><div class="fs-cc-prefs_close-icon w-embed"><svg fill="currentColor" aria-hidden="true" focusable="false" viewBox="0 0 16 24"> <path d="M9.414 8l4.293-4.293-1.414-1.414L8 6.586 3.707 2.293 2.293 3.707 6.586 8l-4.293 4.293 1.414 1.414L8 9.414l4.293 4.293 1.414-1.414L9.414 8z"></path> </svg></div></div><div class="fs-cc-prefs_content"><div class="fs-cc-prefs_space-small"><div class="fs-cc-prefs_title">Privacy Preference Center</div></div><div class="fs-cc-prefs_space-small"><div class="fs-cc-prefs_text">When you visit websites, they may store or retrieve data in your browser. This storage is often necessary for the basic functionality of the website. The storage may be used for marketing, analytics, and personalization of the site, such as storing your preferences. Privacy is important to us, so you have the option of disabling certain types of storage that may not be necessary for the basic functioning of the website. Blocking categories may impact your experience on the website.</div></div><div class="fs-cc-prefs_space-medium"><a fs-cc="deny" href="#" class="cookie-pref-button reject w-button">Reject all cookies</a><a fs-cc="allow" href="#" class="cookie-pref-button w-button">Allow all cookies</a></div><div class="fs-cc-prefs_space-small"><div class="fs-cc-prefs_title">Manage Consent Preferences by Category</div></div><div class="fs-cc-prefs_option"><div class="fs-cc-prefs_toggle-wrapper"><div class="fs-cc-prefs_label">Essential</div><div class="fs-cc-prefs_text"><strong>Always Active</strong></div></div><div class="fs-cc-prefs_text">These items are required to enable basic website functionality.</div></div><div class="fs-cc-prefs_option"><div class="fs-cc-prefs_toggle-wrapper"><div class="fs-cc-prefs_label">Marketing</div><label class="w-checkbox fs-cc-prefs_checkbox-field"><input type="checkbox" name="marketing-2" id="marketing-2" data-name="Marketing 2" fs-cc-checkbox="marketing" class="w-checkbox-input fs-cc-prefs_checkbox"/><span for="marketing-2" class="fs-cc-prefs_checkbox-label w-form-label">Essential</span><div class="fs-cc-prefs_toggle"></div></label></div><div class="fs-cc-prefs_text">These items are used to deliver advertising that is more relevant to you and your interests. They may also be used to limit the number of times you see an advertisement and measure the effectiveness of advertising campaigns. Advertising networks usually place them with the website operator’s permission.</div></div><div class="fs-cc-prefs_option"><div class="fs-cc-prefs_toggle-wrapper"><div class="fs-cc-prefs_label">Personalization</div><label class="w-checkbox fs-cc-prefs_checkbox-field"><input type="checkbox" name="personalization-2" id="personalization-2" data-name="Personalization 2" fs-cc-checkbox="personalization" class="w-checkbox-input fs-cc-prefs_checkbox"/><span for="personalization-2" class="fs-cc-prefs_checkbox-label w-form-label">Essential</span><div class="fs-cc-prefs_toggle"></div></label></div><div class="fs-cc-prefs_text">These items allow the website to remember choices you make (such as your user name, language, or the region you are in) and provide enhanced, more personal features. For example, a website may provide you with local weather reports or traffic news by storing data about your current location.</div></div><div class="fs-cc-prefs_option"><div class="fs-cc-prefs_toggle-wrapper"><div class="fs-cc-prefs_label">Analytics</div><label class="w-checkbox fs-cc-prefs_checkbox-field"><input type="checkbox" name="analytics-2" id="analytics-2" data-name="Analytics 2" fs-cc-checkbox="analytics" class="w-checkbox-input fs-cc-prefs_checkbox"/><span for="analytics-2" class="fs-cc-prefs_checkbox-label w-form-label">Essential</span><div class="fs-cc-prefs_toggle"></div></label></div><div class="fs-cc-prefs_text">These items help the website operator understand how its website performs, how visitors interact with the site, and whether there may be technical issues. This storage type usually doesn’t collect information that identifies a visitor.</div></div><div class="fs-cc-prefs_buttons-wrapper"><a fs-cc="submit" href="#" class="cookie-pref-button w-button">Confirm my preferences and close</a></div><input type="submit" data-wait="Please wait..." class="fs-cc-prefs_submit-hide w-button" value="Submit"/><div class="w-embed"><style> /* smooth scrolling on iOS devices */ .fs-cc-prefs_content{-webkit-overflow-scrolling: touch} </style></div></div></form><div class="w-form-done"></div><div class="w-form-fail"></div><div fs-cc="close" class="fs-cc-prefs_overlay"></div><div fs-cc="interaction" class="fs-cc-prefs_trigger"></div></div><div class="hide"></div></div></div><script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=666bc9172254723eadc4af82" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/666bc9172254723eadc4af82/js/webflow.aaddf5e01.js" type="text/javascript"></script><!-- Userflow initialization and identification (For All Pages) --> <script nonce="68a4db1c-aead-432a-b3bb-f1066735b2f6"> !function () { var e = "undefined" == typeof window ? {} : window, t = e.userflow, r = e.history; function n(t, n) { return function () { var o = new CustomEvent(n), s = Array.prototype.slice.call(arguments), a = t.apply(r, s); return e.dispatchEvent(o), a } } if (r) { e.__userflowStatePatched = !0; var o = r.pushState, s = r.replaceState; r.pushState = n(o, "userflow:pushstate"), r.replaceState = n(s, "userflow:replacestate") } if (!t) { var a = "https://js.userflow.com/", l = null; t = e.userflow = { _stubbed: !0, load: function () { return l || (l = new Promise((function (t, r) { var n = document.createElement("script"); n.async = !0; var o = e.USERFLOWJS_ENV_VARS || {}; "es2020" === (o.USERFLOWJS_BROWSER_TARGET || function (e) { for (var t = [[/Edg\//, /Edg\/(\d+)/, 80], [/OPR\//, /OPR\/(\d+)/, 67], [/Chrome\//, /Chrome\/(\d+)/, 80], [/CriOS\//, /CriOS\/(\d+)/, 100], [/Safari\//, /Version\/(\d+)/, 14], [/Firefox\//, /Firefox\/(\d+)/, 74]], r = 0; r < t.length; r++) { var n = t[r], o = n[0], s = n[1], a = n[2]; if (e.match(o)) { var l = e.match(new RegExp(s)); if (l && parseInt(l[1], 10) >= a) return "es2020"; break } } return "legacy" }(navigator.userAgent)) ? (n.type = "module", n.src = o.USERFLOWJS_ES2020_URL || a + "es2020/userflow.js") : n.src = o.USERFLOWJS_LEGACY_URL || a + "legacy/userflow.js", n.onload = function () { t() }, n.onerror = function () { document.head.removeChild(n), l = null; var e = new Error("Could not load Userflow.js"); console.warn(e.message), r(e) }, document.head.appendChild(n) }))), l } }; var u = e.USERFLOWJS_QUEUE = e.USERFLOWJS_QUEUE || [], i = function (e) { t[e] = function () { var r = Array.prototype.slice.call(arguments); t.load(), u.push([e, null, r]) } }, c = function (e) { t[e] = function () { var r, n = Array.prototype.slice.call(arguments); t.load(); var o = new Promise((function (e, t) { r = { resolve: e, reject: t } })); return u.push([e, r, n]), o } }, d = function (e, r) { t[e] = function () { return r } }; i("_setTargetEnv"), i("closeResourceCenter"), i("disableEvalJs"), i("init"), i("off"), i("on"), i("prepareAudio"), i("registerCustomInput"), i("remount"), i("reset"), i("setBaseZIndex"), i("setCustomInputSelector"), i("setCustomNavigate"), i("setCustomScrollIntoView"), i("setInferenceAttributeFilter"), i("setInferenceAttributeNames"), i("setInferenceClassNameFilter"), i("setResourceCenterLauncherHidden"), i("setScrollPadding"), i("setServerEndpoint"), i("setShadowDomEnabled"), i("setPageTrackingDisabled"), i("setUrlFilter"), i("setLinkUrlDecorator"), i("openResourceCenter"), i("toggleResourceCenter"), c("endAll"), c("endAllFlows"), c("endChecklist"), c("group"), c("identify"), c("identifyAnonymous"), c("start"), c("startFlow"), c("startWalk"), c("track"), c("updateGroup"), c("updateUser"), d("getResourceCenterState", null), d("isIdentified", !1) } }(); userflow.init('evao4c7wsve27lu324gtqrtfia') userflow.identify( 'visitor-6cb4e048-408f-4376-af65-a43fe0873aef', { user_type: 'visitor' }, { signature: '2353b8f7a7dd6989a24a6d32a31d4cb9d61b642cd06328dc164182891824bb3e' } ) </script> <script> window.intercomSettings = { api_base: "https://api-iam.intercom.io", app_id: "yq7qhyvw", }; </script> <script> // We pre-filled your app ID in the widget URL: 'https://widget.intercom.io/widget/yq7qhyvw' (function () { var w = window; var ic = w.Intercom; if (typeof ic === "function") { ic('reattach_activator'); ic('update', w.intercomSettings); } else { var d = document; var i = function () { i.c(arguments); }; i.q = []; i.c = function (args) { i.q.push(args); }; w.Intercom = i; var l = function () { var s = d.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'https://widget.intercom.io/widget/yq7qhyvw'; var x = d.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x); }; if (document.readyState === 'complete') { l(); } else if (w.attachEvent) { w.attachEvent('onload', l); } else { w.addEventListener('load', l, false); } } })(); </script> <!--Script to toggle the display of elements with the 'security-policies' class based on the current page (For Security Single Page)--> <script> document.addEventListener('DOMContentLoaded', function () { function isSecurityPoliciesPage() { return window.location.pathname === '/policies/security'; } function toggleSecurityPolicies() { const securityPoliciesElements = document.querySelectorAll('.security-policies'); if (isSecurityPoliciesPage()) { securityPoliciesElements.forEach(element => { element.style.display = 'block'; }); } else { securityPoliciesElements.forEach(element => { element.style.display = 'none'; }); } } toggleSecurityPolicies(); window.addEventListener('popstate', toggleSecurityPolicies); }); </script> <!-- JavaScript code to handle Nav Header Colour Changing Functionality (For All Pages) --> <script> const heroSection = document.querySelector('.hero-section'); if (heroSection) { const headerSticky = document.querySelector('.header-stickey'); const svgPaths = document.querySelectorAll('.header-stickey .nav-whole-area .container .navbar-area .brand-link .w-embed svg path'); // Select all elements to apply the 'dark' class const navbar = document.querySelector('.header-stickey .nav-whole-area .navbar'); const navMenuLinks = document.querySelectorAll('.header-stickey .nav-whole-area .container .navbar-area .nav-menu .nav-menu-wrap .nav-link'); const navDropdownLinks = document.querySelectorAll('.nav-dropdown-link'); // New selector const navIconsLight = document.querySelectorAll('.nav-icon-light'); const navIconsDark = document.querySelectorAll('.nav-icon-dark'); const navMenuNavigation = document.querySelector('.nav-menu.navigation'); // Initial setup - apply dark mode to elements svgPaths.forEach(path => { path.style.fill = '#fff'; }); navbar.classList.add('dark'); navMenuLinks.forEach(link => { link.classList.add('dark'); }); navDropdownLinks.forEach(link => { link.classList.add('dark'); }); // Apply dark class to dropdown links navIconsLight.forEach(icon => { icon.classList.add('dark'); }); navIconsDark.forEach(icon => { icon.classList.add('dark'); }); if (navMenuNavigation) navMenuNavigation.classList.add('dark'); const heroSectionHeight = heroSection.offsetHeight; let scrolledIntoHero = false; window.addEventListener('scroll', function () { const scrollPosition = window.scrollY; const heroTop = heroSection.offsetTop; const heroBottom = heroSection.offsetTop + heroSectionHeight; if (scrollPosition >= heroTop && scrollPosition <= heroBottom) { if (!scrolledIntoHero) { // Apply dark mode to elements svgPaths.forEach(path => { path.style.fill = '#fff'; }); navbar.classList.add('dark'); navMenuLinks.forEach(link => { link.classList.add('dark'); }); navDropdownLinks.forEach(link => { link.classList.add('dark'); }); // Apply dark class to dropdown links navIconsLight.forEach(icon => { icon.classList.add('dark'); }); navIconsDark.forEach(icon => { icon.classList.add('dark'); }); if (navMenuNavigation) navMenuNavigation.classList.add('dark'); scrolledIntoHero = true; } } else { if (scrolledIntoHero) { // Remove dark mode from elements svgPaths.forEach(path => { path.style.fill = ''; }); navbar.classList.remove('dark'); navMenuLinks.forEach(link => { link.classList.remove('dark'); }); navDropdownLinks.forEach(link => { link.classList.remove('dark'); }); // Remove dark class from dropdown links navIconsLight.forEach(icon => { icon.classList.remove('dark'); }); navIconsDark.forEach(icon => { icon.classList.remove('dark'); }); if (navMenuNavigation) navMenuNavigation.classList.remove('dark'); scrolledIntoHero = false; } } }); function resetFunctionalities() { svgPaths.forEach(path => { path.style.fill = ''; }); navbar.classList.remove('dark'); navMenuLinks.forEach(link => { link.classList.remove('dark'); }); navDropdownLinks.forEach(link => { link.classList.remove('dark'); }); // Reset dark class on dropdown links navIconsLight.forEach(icon => { icon.classList.remove('dark'); }); navIconsDark.forEach(icon => { icon.classList.remove('dark'); }); if (navMenuNavigation) navMenuNavigation.classList.remove('dark'); scrolledIntoHero = false; } } </script> <!-- Function to add the box-shadow class on scroll --> <script> function addBoxShadowOnScroll() { const navElement = document.querySelector('.nav-whole-area'); if (!navElement) return; // Exit if the element is not found window.addEventListener('scroll', () => { if (window.scrollY > 0) { navElement.classList.add('box-shadow'); } else { navElement.classList.remove('box-shadow'); } }); } addBoxShadowOnScroll(); </script> <!--Cookie notice functionality <script> import { uLocalStorage } from '../../shared/util/local-storage-wrapper'; const key = 'cookieNoticeDismissed'; if (!uLocalStorage.getItem(key)) { const div = document.createElement('div'); div.className = 'cookie-notice mdh-16'; div.innerHTML = ` <div> We use cookies to help us improve userflow.com </div> <a href="/policies/privacy">Learn more</a>`; document.body.appendChild(div); const button = document.getElementById('cookie-notice-accept')!; button.addEventListener('click', e => { e.preventDefault(); document.body.removeChild(div); uLocalStorage.setItem(key, '1'); }); } </script>--> <script> // Helpers to manipulate localStorage, which also work in tests running in // Node.js environment class StorageWrapper { constructor(type) { this.type = type; this.testState = {}; } formatKey(key) { return `userflow:${key}`; } isSupported() { if (process.env.NODE_ENV === 'test') { return true; } if (typeof window === 'undefined') { return false; } // Check if access is denied by the browser try { return window[this.type] != null; } catch { return false; } } getItem(key) { key = this.formatKey(key); if (process.env.NODE_ENV === 'test') { const v = this.testState[key]; return v == null ? null : v; } else { if (!this.isSupported()) { return null; } return window[this.type].getItem(key); } } setItem(key, value) { key = this.formatKey(key); if (process.env.NODE_ENV === 'test') { this.testState[key] = value; } else { if (!this.isSupported()) { return; } window[this.type].setItem(key, value); } } removeItem(key) { key = this.formatKey(key); if (process.env.NODE_ENV === 'test') { delete this.testState[key]; } else { if (!this.isSupported()) { return; } return window[this.type].removeItem(key); } } clear() { if (process.env.NODE_ENV === 'test') { this.testState = {}; } else { if (!this.isSupported()) { return; } return window[this.type].clear(); } } } const uLocalStorage = new StorageWrapper('localStorage'); const uSessionStorage = new StorageWrapper('sessionStorage'); </script> <!-- Start of HubSpot Embed Code --> <script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/9255119.js"></script> <!-- End of HubSpot Embed Code --> <script> function emptyToNull(val) { if (val === "" || val === undefined) { return null; } return val; } function buildEvent(input, annotations) { var attributes = input.attributes; var path = attributes.path; var event = { metadata: { schema_name: "marketing_routes", }, attributes: { host: emptyToNull(attributes.host), path: emptyToNull(attributes.path), hash_path: emptyToNull(attributes.hash_path), referrer: emptyToNull(attributes.referrer), search: emptyToNull(attributes.search), }, annotations: annotations, }; return event; } function send(geminiEvent) { var xhr = new XMLHttpRequest(); xhr.responseType = "json"; xhr.open("POST", "https://app.userflow.com/gemini-collector"); xhr.setRequestHeader("content-type", "application/json"); xhr.setRequestHeader("accept", "application/json"); xhr.withCredentials = true; return new Promise(function (res) { xhr.onload = function () { return res(xhr.response); }; xhr.send(JSON.stringify(geminiEvent)); }); } function trackPageView() { var attributes = { host: location.host, path: location.pathname, hash_path: location.hash, referrer: document.referrer, search: location.search, }; var event = buildEvent({ attributes: attributes, }); send(event).catch(function (Err) { console.log("Gemini error: ", Err); }); } trackPageView(); </script> <!-- FS Cookie Consent --> <!-- Finsweet Cookie Consent --> <script async src="https://cdn.jsdelivr.net/npm/@finsweet/cookie-consent@1/fs-cc.js" fs-cc-mode="opt-in"></script></body></html>