CINXE.COM
Service Level Agreement
<!doctype html> <html class="no-js" lang="en" data-vp-page-id="394801381407" data-vp-page-template="article"> <head> <!--CDP_HEAD_START--> <!--CDP_HEAD_END--> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="repository-base-url" content="../home"> <meta name="source-last-modified" content="2023-04-14T08:19Z"> <meta name="Help Center Version" content="1.4"> <link rel="icon" href="https://docs.storyteq.com/__assets-7375bbea-cbb4-42bd-8052-aec5fb125808/image/teq_favicon-big2.png"> <link rel="apple-touch-icon" href="https://docs.storyteq.com/__assets-7375bbea-cbb4-42bd-8052-aec5fb125808/image/teq_favicon-big2.png"> <link rel="canonical" href="https://docs.storyteq.com/home/service-level-agreement"> <link rel="alternate" hreflang="en" href="https://docs.storyteq.com/home/service-level-agreement"> <link rel="alternate" hreflang="x-default" href="https://docs.storyteq.com/home/service-level-agreement"> <!-- HelpCenter config --> <!-- Primary Meta Tags --> <meta name="title" content="Service Level Agreement"> <meta name="description" content="4th October 2022 We understand that service interruptions of our platform can have an effect on your customer contact and your business. We’ve set ..."> <meta property="og:description" content="4th October 2022 We understand that service interruptions of our platform can have an effect on your customer contact and your business. We’ve set ..."> <meta property="twitter:description" content="4th October 2022 We understand that service interruptions of our platform can have an effect on your customer contact and your business. We’ve set ..."> <!-- Open Graph / Facebook --> <meta property="og:type" content="website"> <meta property="og:url" content="https://docs.storyteq.com/home/service-level-agreement"> <meta property="og:title" content="Service Level Agreement"> <meta property="og:image" content="https://docs.storyteq.com/__assets-7375bbea-cbb4-42bd-8052-aec5fb125808/image/docs_new.png"> <!-- Twitter --> <meta property="twitter:card" content="summary_large_image"> <meta property="twitter:title" content="Service Level Agreement"> <meta property="twitter:image" content="https://docs.storyteq.com/__assets-7375bbea-cbb4-42bd-8052-aec5fb125808/image/docs_new.png"> <script> var hasCookieNotice = false; var usesCookieOptInStrategy = true; var cookieRelatedFeatures = []; function isSitePreview() { var previewStagingUrlMatcher = /\/~preview-([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})\//; return previewStagingUrlMatcher.test(window.location.href); } function hasSiteViewerGivenConsentForTracking() { try { return window.localStorage.getItem('shc-cookies') === 'enabled'; } catch (e) { return false; } } function hasSiteViewerRefusedConsentForTracking() { try { return window.localStorage.getItem('shc-cookies') === 'disabled'; } catch (e) { return false; } } function areCookiesEnabled() { if (!hasCookieNotice) { return true; } if (usesCookieOptInStrategy) { if (hasSiteViewerGivenConsentForTracking()) { return true; } } else { if (!hasSiteViewerRefusedConsentForTracking()) { return true; } } return false; } var registerCookieRelatedFeature = function (featureFunction) { if (typeof featureFunction === 'function') { cookieRelatedFeatures.push(featureFunction); } } var initializeCookieRelatedFeatures = function () { if (!areCookiesEnabled()) { return; } window.scrollHelpCenter.areCookiesEnabled = true; for (const cookieRelatedFeature of cookieRelatedFeatures) { try { cookieRelatedFeature(); } catch (e) { console.error(e); } } } window.scrollHelpCenter = { collection: JSON.parse('{\"members\":[{\"name\":\"Storyteq Docs\",\"prefix\":\"home\"}],\"currentContentSource\":{\"name\":\"Storyteq Docs\",\"prefix\":\"home\"}}'), source: { confluenceBaseUrl: 'https://storyteq.atlassian.net/wiki', confluencePageId: '394801381407', confluenceSpaceKey: 'SD', }, contentSourceKey: 'SPACE:SD', siteKey: 'a2b009e9-d044-426e-ac7b-4a5d2ad6d38f', customJsSrc: '../__assets-7375bbea-cbb4-42bd-8052-aec5fb125808/js/custom.js', isSitePreview: isSitePreview(), areCookiesEnabled: areCookiesEnabled(), excludePageLabel: 'scroll-help-center-exclude-page', hasCookieNotice: hasCookieNotice, usesCookieOptInStrategy: usesCookieOptInStrategy, registerCookieRelatedFeature: registerCookieRelatedFeature, initializeCookieRelatedFeatures: initializeCookieRelatedFeatures, isPortal: false, isSearch: false, isError: false, isOverview: false, viewportLink: '../home/', relSiteRootPath: '../', siteInstanceId: '7375bbea-cbb4-42bd-8052-aec5fb125808', theme: { root: { absoluteLink: '../home/' }, header: { displaySpaceName: false, links: JSON.parse('[{\"url\":\"https:\/\/storyteq.com\/\",\"text\":\"Storyteq website\"}]'), logo: { url: '../__assets-7375bbea-cbb4-42bd-8052-aec5fb125808/image/docs_new.png', alt: 'Storyteq Docs' }, }, cookieNotice: { display: false, headingText: 'Cookie Notice', descriptionText: 'Please read our privacy statement.', link: { url: '', text: '' } } }, integrations: { jiraServiceDesk: { key: '' }, intercom: { appId: '' }, zendesk: { url: '' }, aiSearch: { enabled: false } }, repository: { link: '../home', name: 'Storyteq Docs' }, versionLinksForPage: JSON.parse('null'), variantLinksForPage: JSON.parse('null'), languageLinksForPage: JSON.parse('[{\"displayName\":\"English\",\"code\":\"en\",\"toLanguageLink\":\"..\/home\/service-level-agreement\",\"fallback\":false}]'), defaultLanguageCode: 'en' }; </script> <!-- Google Tag Manager --> <script> window.scrollHelpCenter.registerCookieRelatedFeature(function () { if (!window.scrollHelpCenter.isSitePreview) { (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-TP9VPWP'); } }); </script> <!-- End Google Tag Manager --> <link rel="stylesheet" href="../__theme/css/app--b6a416c0af4cf77d3f2c.css"> <link rel="stylesheet" id="theme-asset-custom-css" href="../__assets-7375bbea-cbb4-42bd-8052-aec5fb125808/css/custom.css"> <style> :root { --_vpt-INTERNAL-footer-background: #222; --_vpt-INTERNAL-footer-foreground: #FFF; --_vpt-INTERNAL-header-background: #ffffff; --_vpt-INTERNAL-header-foreground: #222222; /* @deprecated */ --vp-portal-banner-background-image: url('../header-background--b27bdbd2502a69f032bd.jpg'); /* @deprecated */ --vp-portal-banner-text-color: #FFF; /* @deprecated */ --vp-space-banner-background-image: url('../header-background--b27bdbd2502a69f032bd.jpg'); /* @deprecated */ --vp-space-banner-text-color: #FFF; } </style> <title>Service Level Agreement</title> </head> <!-- pageid attribute is deprecated - please use data-vp-page-id on html element instead --> <body pageid="394801381407" class="flex flex-col min-h-screen"> <div id="vp-js-cookies__notice"></div> <vp-a11y-skip-controller> <a class="vp-a11y-skip-trigger" href="#content"> <i18n-message i18nkey="navigation.skip.to.main.label"> Skip to main content </i18n-message> </a> </vp-a11y-skip-controller> <button type="button" class="vp-a11y-skip-trigger vp-js-a11y-navigation-toggle"> <i18n-message i18nkey="navigation.open.label"> Show navigation </i18n-message> </button> <header data-vp-component="header" class="header hc-header-background-color"> <div class="header__navigation relative"> <div class="hc-header-background-color relative z-10" id="site-navigation"> <div class="top-bar header__navigation--large vp-container hc-header-background-color hc-header-font-color"> <div class="top-bar-left"> <ul class="flex flex-wrap flex-row gap-4 items-center relative m-0 p-0 list-none hc-header-background-color"> <li class="leading-none align-self-center header__navigation--logo"> <vp-localized-link> <a href="../home/"> <img src="../__assets-7375bbea-cbb4-42bd-8052-aec5fb125808/image/docs_new.png" alt=""> <i18n-message class="sr-only" i18nKey="header.home.label"> Go to homepage </i18n-message> </a> </vp-localized-link> </li> </ul> </div> <div class="top-bar-right no-print"> <div class="header__navigation--large__menu hc-header-background-color"> <ul class="flex flex-row m-0 p-0 list-none render-links"> <li class="order-6 lg:order-2 render-links--link render-links--link--border"> <a href="https://storyteq.com/" class="block px-4 py-3 hc-header-font-color" rel="noopener"> Storyteq website </a> </li> </ul> <div class="my-auto list-none ml-4"> <div data-vp-id="search-bar-placeholder" data-vp-component="search-bar" data-vp-variant="" class="vp-search-bar " aria-hidden="true" > <form action="/search.html" method="GET" class="vp-search-bar__input-container" > <div data-vp-component="search-input" data-vp-variant="border" class="vp-search-input vp-search-input--border" > <input type="search" autocomplete="off" value="" class="vp-search-input__input" style="margin-right: 0;" > </div> </form> </div> <script data-vp-id="search-bar-config" type="application/json"> { "hasContentSourceFilter": false, "hasQuickSearch": true, "variant": "" } </script> </div> </div> <button type="button" class="vp-js-header-search-toggle vp-button header__navigation--button hc-header-font-color"> <svg data-vp-id="header-search-toggle-icon" data-vp-component="icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true" > <path d="M8.99452 14.5C10.5121 14.5 11.809 13.9669 12.8854 12.9007C13.9618 11.8345 14.5 10.5361 14.5 9.00548C14.5 7.48794 13.9631 6.19097 12.8893 5.11458C11.8155 4.03819 10.519 3.5 9 3.5C7.46786 3.5 6.16816 4.0369 5.1009 5.11071C4.03363 6.18453 3.5 7.48096 3.5 9C3.5 10.5321 4.0331 11.8318 5.09929 12.8991C6.1655 13.9664 7.46391 14.5 8.99452 14.5ZM9 16C8.02913 16 7.11974 15.816 6.27185 15.4479C5.42395 15.0799 4.68056 14.5799 4.04167 13.9479C3.40278 13.316 2.90278 12.576 2.54167 11.728C2.18056 10.88 2 9.97053 2 8.99956C2 8.04152 2.18403 7.13542 2.55208 6.28125C2.92014 5.42708 3.41864 4.68387 4.04758 4.0516C4.67653 3.41935 5.41569 2.91935 6.26508 2.5516C7.11449 2.18387 8.02548 2 8.99806 2C9.95769 2 10.8646 2.18403 11.7188 2.55208C12.5729 2.92014 13.316 3.42014 13.9479 4.05208C14.5799 4.68403 15.0799 5.42612 15.4479 6.27835C15.816 7.13058 16 8.0381 16 9.00094C16 9.83365 15.8615 10.6213 15.5846 11.3638C15.3078 12.1062 14.9254 12.7836 14.4375 13.3958L18 16.9583L16.9375 18L13.375 14.4583C12.7668 14.9459 12.0939 15.3247 11.3564 15.5948C10.6188 15.8649 9.83333 16 9 16Z" fill="currentColor"></path> </svg> <i18n-message class="sr-only" i18nKey="search.form.show.label"></i18n-message> </button> </div> </div> </div> </div> </header> <div class="flex flex-col flex-grow hc-main-wrapper"> <div class="vp-article vp-container article"> <div class="vp-article__aside-left no-print"> <div id="vp-js-desktop__navigation" class="vp-article__aside-left__inner"></div> </div> <main id="article-content" class="vp-article__content-panel"> <i18n-message i18nkey="breadcrumb.label" attribute="aria-label" class="vp-breadcrumbs__wrapper"> <nav class="vp-breadcrumbs" aria-label="Breadcrumb" role="navigation"> <div class="breadcrumbs-wrapper"> <ol class="breadcrumbs breadcrumbs--fit-content"> <li> <a href="../home/" rel="prev">Storyteq Docs</a> <span aria-hidden="true">/</span> </li> <li> <a href="../home/data-legal" rel="prev" class="js-breadcrumbs-truncate">Data & Legal</a> </li> </ol> </div> </nav> </i18n-message> <div id="content" class="vp-a11y-skip-target" tabindex="-1"></div> <div class="vp-article__aside-right no-print"> <vp-toc data-vp-component="toc" for="main-content"> <vp-a11y-skip-controller slot="afterbegin"> <a class="vp-a11y-skip-trigger" href="#article-inner-content"> <i18n-message i18nkey="navigation.skip.toc.label"> Skip table of contents </i18n-message> </a> </vp-a11y-skip-controller> </vp-toc> </div> <div id="article-inner-content" class="vp-article__wrapper" tabindex="-1"> <header class="article-header"> <!-- CSS class article__heading is deprecated and will be removed in the future --> <h1 class="vp-article__heading article__heading"><span>Service Level Agreement</span></h1> </header> <section id="main-content" class="vp-article__content wiki-content article__content"> <p><em>4</em><sup><em>th</em></sup><em> October 2022</em></p><p>We understand that service interruptions of our platform can have an effect on your customer contact and your business. We’ve set a high bar for service uptime because we believe that you should be able to depend on Storyteq to add value to your company.</p><hr><h3 id="ServiceLevelAgreement-1.TheBasics"><strong>1. The Basics</strong></h3><ul><li><p>We guarantee a 99.5% monthly uptime.</p></li><li><p>We’ve designed our SLA to be simple and transparent.</p></li><li><p>If we fall short of our 99.5% uptime guarantee, we’ll refund customers the monthly license fee of the month in which we fall short.</p></li></ul><hr><h3 id="ServiceLevelAgreement-2.TheDetails"><strong>2. The Details</strong></h3><p>Service Level Agreements can be chock-full of terminology that is difficult to decipher. We’d like to take the opportunity to explain, in real words, what the details of our SLA are:</p><hr><h3 id="ServiceLevelAgreement-3.Downtime"><strong>3. Downtime</strong></h3><p>To fairly assess the overall magnitude of downtime for everyone using Storyteq, “Downtime” is based on two factors: 1) the number of minutes Storyteq was unavailable, and 2) the percentage of Storyteq customers that were affected.</p><p>We use server monitoring software to monitor when Storyteq is down — specifically, measuring the server-side error rate, looking at results from ping tests, web server tests, TCP port tests, and website tests.</p><p>At the end of each month, every individual downtime is added together to give us the entire month’s “Downtime Period.”</p> <div class="panel-macro panel-macro--panel-note-adf panel-macros--panel-note-adf" role="note" aria-label="Note" data-type="note"> <div class="panel-macro__icon panel-macros--panel-note-adf__icon"> <img aria-hidden="true" src="../__theme/images/common/panel-note-adf-macro-icon--f94ec48c51b48057505c.svg"> </div> <div class="panel-macro__content panel-macros--panel-note-adf__content"> <p><em>Calculating downtime can be a complicated exercise, so we aim to keep it as simple and transparent as possible by tying our SLA guarantee to a single monthly uptime number. Downtime doesn’t affect everyone at the same time or in the same way. Storyteq could be experiencing an outage, but your campaign or application may be completely unaffected, and vice versa.</em></p> </div> </div> <p>Here are some scenarios that will not be counted towards downtime:</p><ul><li><p>Slowness with specific features (such as render time, page load time, etc.)</p></li><li><p>Issues related to external apps or caused by third parties specific to your Storyteq usage.</p></li><li><p>Delays with API calls or form submits.</p></li><li><p>Network problems external to our systems which are beyond our control, such as bad routing tables between your ISP and our servers.</p></li><li><p>“Scheduled Downtime” to complete maintenance.</p></li></ul><hr><h3 id="ServiceLevelAgreement-4.Uptime"><strong>4. Uptime</strong></h3><p>“Monthly Uptime” is the percentage of total possible minutes Storyteq was available to you. To calculate this, we subtract the number of downtime minutes from the total possible minutes in a given month.</p><hr><h3 id="ServiceLevelAgreement-5.ScheduledDowntime"><strong>5. Scheduled Downtime</strong></h3><p>Occasionally, we need to perform maintenance to keep Storyteq working as smoothly as possible. If scheduled downtime is necessary, we’ll give you 48 hours advance notice. In a calendar year, there will not be more than 10 hours of scheduled downtime.</p><hr><h3 id="ServiceLevelAgreement-6.ServiceCredit"><strong>6. Service Credit</strong></h3><p>If we miss our 99.5% uptime guarantee, we’ll refund you the monthly fee of the particular month that Storyteq was down to you according to the above-mentioned terms.</p><hr><h3 id="ServiceLevelAgreement-7.ANoteAboutPerformanceIssues"><strong>7. A Note About Performance Issues</strong></h3><p>Storyteq’s SLA excludes performance issues:</p><ul><li><p>Caused by factors outside Storyteq’s reasonable control</p></li><li><p>That resulted from any actions or inactions of you or any third party</p></li><li><p>That resulted from your equipment and/or third-party equipment (not within the primary control of Storyteq)</p></li><li><p>Arising from our suspension and termination of your right to use Storyteq in accordance with the Storyteq Terms of Service</p></li></ul><p>That being said, happy customers are our main priority. So if you are experiencing any performance issues, do let us know, so we can resolve them ASAP.</p><hr><h3 id="ServiceLevelAgreement-8.SecurityIssues"><strong>8. Security Issues</strong></h3><p>Security issues are a different beast altogether. We try our utmost to protect our systems and your data. More about our data policy can be found <a shape="rect" href="https://docs.storyteq.com/home/data-policy" class="external-link" rel="nofollow">here</a>. Whenever there is a security issue, we’ll notify you as soon as possible but in any case within 24 working hours after we found the issue. We’ll tell you what happened and what we’ve done to mediate the issue and/or going to do. We’ll also give a classification to the issue, namely:</p><ul><li><p>Priority 1: High Security / Vulnerability risks, e.g. software vulnerabilities that have been discovered and exploited or published, unauthorized breaches of (part of) the system containing core functionality or access to data, unauthorized access to personal data</p></li><li><p>Priority 2: Medium Security / Vulnerability risks, e.g. software vulnerabilities that have been discovered and attempted to be exploited, unauthorized breaches of non-core parts of the system</p></li><li><p>Priority 3: Low Security / Vulnerability risk, e.g. access of known users to data beyond their permissions</p></li></ul><p>Per classification, our response time to the issue is:<br clear="none">Prio 1: asap but not longer than 2 hours, Prio 2: asap but no longer than 4 hours, Prio 3: asap but not longer than 8 hours (note: 09:00-23:00 CET)</p><p>The recovery time is:</p><ul><li><p>Priority 1: asap but not longer than 2 hours</p></li><li><p>Priority 2: asap but no longer than 4 hours</p></li><li><p>Priority 3: asap but not longer than 12 hours</p></li></ul><p><em>Note: our operating hours are 09:00-23:00 CET</em></p><p>The recovery point objective is always the nearest point of a full working un-breached version of the system which contains the most recent data. We run incremental backups 6x per day and full backups 1x per day.</p><p>If you have any additional agreements with us as part of your Agreement with us, we’ll adhere to those additional agreements in addition to the above-mentioned actions</p> <div class="table-overlay full reveal article__content" data-vp-id="js-table-overlay"> <i18n-message i18nkey="modal.cta.close.label" attribute="title"> <button class="close-button table-overlay__close" data-close title="Close modal" type="button"> <span aria-hidden="true">×</span> </button> </i18n-message> <div class="table-overlay__content"></div> </div> </section> </div> </main> </div> </div> <footer data-vp-component="footer" class="footer hc-footer-background-color"> <div class="grid lg:flex footer--alignment hc-footer-font-color vp-container"> <div class="flex hc-footer-font-color"> <img src="../__assets-7375bbea-cbb4-42bd-8052-aec5fb125808/image/Storyteq_TEQ%20White%20LBlue_RGB.png" class="footer__logo" alt=""> </div> <div class="grid"> <div class="footer__links"> </div> <ul class="footer__attribution-line--copyright hc-footer-font-color"> <li> <i18n-message i18nkey="footer.copyright.label" options='{ "date": "2024", "by": "Storyteq. All rights reserved." }'> Copyright © 2024 Storyteq. All rights reserved. </i18n-message> </li> <li> <span aria-hidden="true">•</span> <i18n-message i18nkey="footer.poweredBy.label">Powered by</i18n-message>   <a href="https://www.k15t.com/go/scroll-viewport-cloud-help-center" rel="noopener nofollow" > Scroll Viewport </a>   &   <a href="https://www.atlassian.com/software/confluence" rel="noopener nofollow" > Atlassian Confluence </a> </li> <li id="vp-js-cookies__reset-link"></li> </ul> </div> </div> </footer> <div id="vp-js-mobile__navigation"></div> <div class="vp-error-log"> <div class="vp-error-log__backdrop"></div> <div class="vp-error-log__modal"> <div class="vp-error-log__header"> <i18n-message i18nkey="preview.errorLog.header.label" ns="common"> JavaScript errors detected </i18n-message> </div> <div class="vp-error-log__content"> <p> <i18n-message i18nkey="preview.errorLog.content.0" ns="common"> Please note, these errors can depend on your browser setup. </i18n-message> </p> <ul data-error-log-list> <template class="vp-error-log__item--template"> <li></li> </template> </ul> <p> <i18n-message i18nkey="preview.errorLog.content.1" ns="common"> If this problem persists, please contact our support. </i18n-message> </p> </div> <div class="vp-error-log__footer"> <a class="vp-button vp-button--primary" href="https://k15t.jira.com/servicedesk/customer/portal/3" rel="noopener"> <i18n-message i18nkey="preview.errorLog.cta.support.label" ns="common"> Contact Support </i18n-message> </a> <a class="vp-button vp-button--secondary" id="error-log-close-button" tabindex="0"> <i18n-message i18nkey="preview.errorLog.cta.close.label" ns="common"> Close </i18n-message> </a> </div> </div> </div> <script> (function() { // set the inapphelp attributes as early as possible to avoid flashing content that should be hidden const searchParams = new URL(location.href).searchParams; if (searchParams.get('inAppHelp') === 'true') { const inAppHelpClasses = ['vp-in-app-help']; if (searchParams.get('title') === 'false') { inAppHelpClasses.push('vp-in-app-help--no-title'); } document.body.classList.add(...inAppHelpClasses); } }()); </script> <script> if(!false) { window.scrollHelpCenter.initializeCookieRelatedFeatures(); } </script> <script src="../__theme/js/app--3ec0c5a527cb5e835307.js"></script> </body> </html>