CINXE.COM

Customer Support - AppSheet

<!doctype html> <html lang="en" class="newLayout accountPage"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://www.appsheet.com/Support","20210121073946","https://web.archive.org/","web","/_static/", "1611214786"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="apple-itunes-app" content="app-id=732548900"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Customer Support - AppSheet</title> <meta name="description" content="Get the help you need. Browse through AppSheet resources and find solutions quick."> <meta name="author" content="AppSheet"/> <meta name="google-site-verification" content="97jAB4aUdRiLxKkCyBUhJnpDEWTQAJ6tOzUKFwE1p8w"/> <meta name="google-site-verification" content="qPkt9TxKqz8fFiALwco4ddvCCsGNrgRwTuE1aCBxG1k"/> <meta property="og:title" content="AppSheet : mobile apps from spreadsheets : Customer Support"/> <meta property="og:image" content="/web/20210121073946im_/https://www.appsheet.com/Support"/> <meta property="og:site_name" content="AppSheet"/> <link rel="canonical" href="https://web.archive.org/web/20210121073946/https://www.appsheet.com/Support"/> <link rel="shortcut icon" href="/web/20210121073946im_/https://www.appsheet.com/Content/img/Favicon-Material.png" sizes="16x16"/> <link rel="shortcut icon" href="/web/20210121073946im_/https://www.appsheet.com/Content/img/Favicon-Material.png" sizes="32X32"/> <link href="/web/20210121073946cs_/https://www.appsheet.com/Content/build/web-main-material.css?build='20210120'.1" rel="stylesheet"> <link href="https://web.archive.org/web/20210121073946cs_/https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i" rel="stylesheet"> <link rel="stylesheet" href="/web/20210121073946cs_/https://www.appsheet.com/Content/css/instantsearch-1.12.1.min.css"> <script nonce="8KB61RHbTA8WvcrW3ADDFQ==" src="/web/20210121073946js_/https://www.appsheet.com/Content/scripts/web/navbar.js"></script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ=="> window.JeeneeAnalyticsNewUser = false; (function (i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) })(window, document, 'script', '//web.archive.org/web/20210121073946/https://www.google-analytics.com/analytics.js', 'ga'); ga('create', 'UA-30866803-2', 'auto'); // https://developers.google.com/analytics/devguides/collection/analyticsjs/sending-hits#specifying_different_transport_mechanisms // Updates the tracker to use `navigator.sendBeacon` if available. ga('set', 'transport', 'beacon'); ga('set', 'anonymizeIp', true); // GA tries to parse out marketing parameters from the query string, and if we try to set them // explicitly it gets confused. a better way turns out to be to parse out their values manually // from an accept-list, then reconstruct the url string using only those acceptable parameters. // The list of GA campaign parameters to allow. var campaignParameters = [ 'utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'gclid', 'dclid', 'gclsrc' ]; // Loop through all allowed campaign parameters and store them when present in the URL. var savedParameters = {}; var urlParameters = new URLSearchParams(window.location.search); campaignParameters.forEach(function (campaignParameter) { if (urlParameters.has(campaignParameter)) { savedParameters[campaignParameter] = urlParameters.get(campaignParameter); } }); // Build a clean URL by appending origin, location and when campaign parameters are present, query string. var newUrl = window.location.origin + window.location.pathname; if (Object.entries(savedParameters).length != 0) { newUrl = newUrl + '?' + new URLSearchParams(savedParameters).toString(); } ga('set', 'location', newUrl); ga('send', 'pageview'); window.ga = ga; /** * Function that tracks a click on an outbound link in Google Analytics. * This function takes a valid URL string as an argument, and uses that URL string * as the event label. Setting the transport method to 'beacon' lets the hit be sent * using 'navigator.sendBeacon' in browser that support it. */ var trackOutboundLink = function (url, new_window) { ga('send', 'event', 'outbound', 'click', url, { 'hitCallback': function () { if (!new_window) { document.location = url; } } }); if (new_window) { window.open(url); } } </script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ=="> (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://web.archive.org/web/20210121073946/https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-NT8SDJW');</script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ==" type="text/javascript"> (function (f, b) { if (!b.__SV) { var a, e, i, g; window.mixpanel = b; b._i = []; b.init = function (a, e, d) { function f(b, h) { var a = h.split("."); 2 == a.length && (b = b[a[0]], h = a[1]); b[h] = function () { b.push([h].concat(Array.prototype.slice.call(arguments, 0))) } } var c = b; "undefined" !== typeof d ? c = b[d] = [] : d = "mixpanel"; c.people = c.people || []; c.toString = function (b) { var a = "mixpanel"; "mixpanel" !== d && (a += "." + d); b || (a += " (stub)"); return a }; c.people.toString = function () { return c.toString(1) + ".people (stub)" }; i = "disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" "); for (g = 0; g < i.length; g++) f(c, i[g]); b._i.push([a, e, d]) }; b.__SV = 1.2; a = f.createElement("script"); a.type = "text/javascript"; a.async = !0; a.src = "//web.archive.org/web/20210121073946/https://cdn.mxpnl.com/libs/mixpanel-2.2.min.js"; e = f.getElementsByTagName("script")[0]; e.parentNode.insertBefore(a, e) } })(document, window.mixpanel || []); // Code to manage mixpanel initialization. Calling mixpanel.init is // async and takes a 'loaded' callback argument. The code below creates a window // global object that allows other parts of the code to register callbacks. Callers // should use window.mixpanelLoader.onLoad(cb). Note: this is only implemented for // the AppSheet Web mixpanel instance. TODO: make it work for both mixpanel projects. window.mixpanelLoader = (function () { var callbacks = [] var isLoaded = false return { // The method that callers should use onLoad: function (cb) { if (isLoaded) { cb() } else { callbacks.push(cb) } }, // The callback that is passed to mixpanel.init loaded: function () { isLoaded = true callbacks.forEach(function (cb) { cb() }) } } })() mixpanel.init('f3f157a3585cb23361a9ace882b7611e', { loaded: window.mixpanelLoader.loaded }); // Makes the AppSheet bucket accessible via mixpanel.appSheet.track(...) mixpanel.init('6460a5084cbe5c139b2cd70d800f9fa0', {}, "appSheet"); // Needed to access the web bucket in a special case for app signups converting app creators mixpanel.init('f3f157a3585cb23361a9ace882b7611e', {}, "web"); </script> <noscript> <img height="1" width="1" src="https://web.archive.org/web/20210121073946im_/https://www.facebook.com/tr?id=1824058264555430&amp;ev=PageView&amp;noscript=1"/> </noscript> <script nonce="8KB61RHbTA8WvcrW3ADDFQ==" type="text/javascript"> // http://stackoverflow.com/questions/25851345/tracking-utm-campaign-params-with-mixpanel-as-people-properties function getQueryStrings() { var assoc = {}; var decode = function (s) { return decodeURIComponent(s.replace(/\+/g, " ")); }; var queryString = location.search.substring(1); var keyValues = queryString.split('&'); for (var i in keyValues) { var key = keyValues[i].split('='); if (key.length > 1) { assoc[decode(key[0])] = decode(key[1]); } } return assoc; } function addDefaultProperties(properties) { if (properties == null) { properties = {}; } var linkFrom = ''; properties.linkedFrom = linkFrom; properties.user = ''; return properties } function setUTMPropertiesOnUser() { var params = getQueryStrings(); for (var i in params) { var match = /utm_[a-z]+/ if (match.test(i)) { var value = params[i]; mixpanel.people.set_once(i, value); } } } window.Track = function (event, properties, callback) { properties = addDefaultProperties(properties) mixpanel.track(event, properties, callback); } window.TrackSuperProp = function (properties) { mixpanel.register(properties) } window.TrackSuperPropOnce = function (properties) { mixpanel.register_once(properties) } window.TrackPeopleProp = function (properties) { mixpanel.people.set(properties) } window.TrackTabClick = function (pageName, tabName, properties) { properties = addDefaultProperties(properties); properties.zType = 'TabClick'; properties.zPage = pageName; properties.zTab = tabName; window.Track('Action', properties); } window.TrackActionClick = function (pageName, buttonName, properties) { properties = addDefaultProperties(properties); properties.zType = 'ButtonClick'; properties.zPage = pageName; properties.zButton = buttonName; window.Track('Action', properties); } // Use this function to track user link clicks. You need a special function for this, since // the browser reloads a new page when the user clicks a link, before Mixpanel has a chance to // log the event. The mixpanel.track_links method waits for 300ms before giving up and moving to // the new link. query should be a jquery selector for the links to track. eventName is the event name // passed to mixpanel. properties is either a function of the DOM node that was clicked that returns the // event props, or a constant object of event props. window.TrackLinks = function (query, eventName, properties) { var newProperties; if (typeof properties === 'function') { // Wrap the function so we get all of the default properites newProperties = function (node) { var result = properties(node) return addDefaultProperties(result) } } else { newProperties = addDefaultProperties(properties); } mixpanel.track_links(query, eventName, newProperties); } </script> <script type="text/javascript" nonce="8KB61RHbTA8WvcrW3ADDFQ=="> (function () { // Utility for running A/B tests on the website. An AB test is defined with a testName and an array of variants. // Each variant consists of a name, a jquery selector, and an initialize function that renders the variant in the website. // When a variant is run, the jquery selector is made visible and the initialize function is called. // The results of the test are saved to mixpanel. The test name is used as a super property in Mixpanel. The value // of the super property is the variant of the test that the user was shown. var ABTest = function (props) { this.name = props.name this.variants = props.variants this.defaultVariant = props.variants[0] this.initialized = false this.currentVariant = null // We need to know if mixpanel has been loaded and we can access the current user's properties. // You can pass in an onMixpanelLoad callback function, or use the default window.mixpanelLoader. // See _TrackingTop.cshtml for the code that loads mixpanel. if (typeof props.onMixpanelLoad === 'function') { this.onMixpanelLoad = props.onMixpanelLoad } else if (window.mixpanelLoader && typeof window.mixpanelLoader.onLoad === 'function') { this.onMixpanelLoad = window.mixpanelLoader.onLoad } else { this.onMixpanelLoad = function () { } } // How long to wait on mixpanel before giving up and showing the default variant this.timeout = 2000 // Gets the variant of the page for the current user. If they've already been assigned to a variant, // give them that one. Otherwise, assign them to a random variant. Parameter specifiedVariant allows // the caller to ask for a particular variant, without setting mixpanel super props. this.getVariant = function (specifiedVariant) { var variantName = specifiedVariant ? specifiedVariant : mixpanel.get_property(this.name) var variant = this.variants.find(function (v) { return v.name === variantName }) if (!variant && !specifiedVariant) { // The user has not yet beeen assigned to a variant and one has not been specified by caller variant = this.getRandomVariant() props = {} props[this.name] = variant.name mixpanel.register_once(props) } return variant } // Picks a variant uniformly at random this.getRandomVariant = function () { return this.variants[Math.floor(Math.random() * this.variants.length)] } this.getVariantSelector = function (variant) { return "." + this.name + "-" + variant.name } // Renders the variant to the page this.showVariant = function (variant, callback) { // Hide all of the variants. this.hideVariants() // Show the dom elements associated with this particular variant $(this.getVariantSelector(variant)).show() // Variant definition can supply a callback if (typeof variant.initialize === 'function') { variant.initialize() } // Caller can supply a callback, either a function or an object with keys named // according to the variants if (typeof callback === 'function') { callback(variant) } else if (typeof callback === 'object' && typeof callback[variant.name] === 'function') { callback[variant.name](variant) } this.currentVariant = variant } // Hides any variants that are currently showing in the page this.hideVariants = function () { var tmpThis = this this.variants.forEach(function (variant) { $(tmpThis.getVariantSelector(variant)).hide() }) } // Runs with a particular variant, but doesn't actually bucket the user (for debugging) this.runVariant = function (variantName, callback) { var variant = this.getVariant(variantName) this.initialized = true this.showVariant(variant, callback) } this.showSpinner = function () { $('.ab-loading.' + this.name).show() } this.hideSpinner = function () { $('.ab-loading.' + this.name).hide() } // Runs the experiment this.run = function (callback) { var tmpThis = this tmpThis.showSpinner() // The run method has already been called if (this.currentVariant && this.initialized) { callback(this.currentVariant) return } // We need to make sure mixpanel is loaded to check whether the user has already been assigned // to a variant. this.onMixpanelLoad(function () { if (tmpThis.initialized) { callback(tmpThis.currentVariant) return } tmpThis.initialized = true var variant = tmpThis.getVariant() tmpThis.showVariant(variant, callback) tmpThis.hideSpinner() }) // Just in case mixpanel doesn't load, we show them the default variant setTimeout(function () { if (tmpThis.initialized) { callback(tmpThis.currentVariant) return } tmpThis.initialized = true tmpThis.showVariant(tmpThis.defaultVariant, callback) tmpThis.hideSpinner() }, this.timeout) return this } } // Set up a global abTests object that's used to add/run tests in particular pages var tests = [] var abTests = {} var menuInitialized = false var isDebug = false abTests.addTest = function (props) { tests.push(new ABTest(props)) } abTests.getTest = function (name) { var test = tests.find(function (t) { return t.name === name }) if (test) { return test } else { console.error('Could not find AB test: ' + String(name)) return { run: function () { } } } } // Functions below allow internal users to select ab test variants. Don't store this state // in mixpanel because mixpanel is not turned on for internal users. var localStorageAvailable = function () { var test = 'test' try { localStorage.setItem(test, test) localStorage.removeItem(test) return true } catch (e) { return false } } abTests.setSelectedVariant = function (testName, variantName) { if (!localStorageAvailable()) return localStorage.setItem(testName, variantName) } abTests.loadSelectedVariant = function (testName) { if (!localStorageAvailable()) return var variantName = localStorage.getItem(testName) if (variantName) { return variantName } else { return } } var highlightMenuVariant = function (testName, callback) { return function (variant) { callback(variant) if (isDebug) { $('.ab-menu-root .ab-test-name').filter(function () { return $(this).data('name') === testName }) .find('.ab-test-variant-name').each(function () { var thisVariant = $(this).data() || {} if (thisVariant.name === variant.name) { $(this).addClass('ab-menu-highlight') } }) } } } abTests.runTest = function (name, callback) { // Check to see if there's a selected variant to override default ab behavior var selectedVariant = abTests.loadSelectedVariant(name) // Update the menu to display ab info if (!menuInitialized) abTests.initializeMenu() abTests.addToMenu(name) var newCallback = highlightMenuVariant(name, callback) if (selectedVariant) { return abTests.runTestVariant(name, selectedVariant, newCallback) } else { return abTests.getTest(name).run(newCallback) } } abTests.runTestVariant = function (name, variantName, callback) { var newCallback = highlightMenuVariant(name, callback) return abTests.getTest(name).runVariant(variantName, newCallback) } abTests.initializeMenu = function () { // Only initialize menu if in debug mode if (!isDebug) return var $menu = $('#ab-menu') if ($menu.length != 1) return $menu.show() var $root = $('.ab-menu-root') $root.hide() $('#ab-menu').find('.title').on('click', function () { $root.toggle() }) menuInitialized = true } abTests.addToMenu = function (testName) { if (!menuInitialized || !isDebug) return var test = abTests.getTest(testName) if (!test) return var $root = $('.ab-menu-root') var $testRoot = $('<li class="ab-test-name">' + testName + '</li>') $testRoot.data({name: testName}) $testRoot.appendTo($root) test.variants.forEach(function (variant) { var $variant = $('<li class="ab-test-variant-name"><a class="link" href="#">' + variant.name + '</a></li>') $variant.data(variant) $variant.appendTo($testRoot) $variant.find('a').on('click', function(e) { e.preventDefault() abTests.setSelectedVariant(testName, variant.name) location.reload() }) }) } window.abTests = abTests /* leaving this here as an example abTests.addTest({ name: 'abSpecClickableHints', variants: [ { name: 'Clickable', useHintLinks: true }, { name: 'Not Clickable', useHintLinks: false } ] }) */ })() </script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ=="> var INTERCOM_APP_ID = "vwrsb6v2"; window.intercomSettings = { app_id: INTERCOM_APP_ID }; window.intercomSettings.hide_default_launcher = true; window.intercomSettings.custom_launcher_selector = '#intercom_overlay_button'; (function () { var w = window; var ic = w.Intercom; if (typeof ic === "function") { ic('reattach_activator'); ic('update', intercomSettings); } else { var d = document; var i = function () { i.c(arguments) }; i.q = []; i.c = function (args) { i.q.push(args) }; w.Intercom = i; function l() { var s = d.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'https://web.archive.org/web/20210121073946/https://widget.intercom.io/widget/' + INTERCOM_APP_ID; var x = d.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x); } if (w.attachEvent) { w.attachEvent('onload', l); } else { w.addEventListener('load', l, false); } } })() function appendIntercomDiv() { // jQuery was not loading var div = document.createElement('div'); div.id = "intercom_overlay_button" div.innerHTML = '<i class="material">chat_bubble_outline</i>'; document.body.appendChild(div); } if (document.readyState === 'loading') { // Loading hasn't finished yet document.addEventListener('DOMContentLoaded', appendIntercomDiv); } else { // DOMContentLoaded has already fired appendIntercomDiv(); } </script> <link rel="stylesheet" type="text/css" href="/web/20210121073946cs_/https://www.appsheet.com/Content/css/cookieconsent2-3.1.0.min.css"/> </head> <body id="support" class="gsuite-root"> <div class="bodyWrapper"> <img src="/web/20210121073946im_/https://www.appsheet.com/Content/img/logo/material/logomark.png" alt="" class="hidden" style="display: none;"/> <script nonce="8KB61RHbTA8WvcrW3ADDFQ=="> var verifiedAjaxPost = function (options) { if (!options.headers) { options.headers = {} } options.headers.RequestVerificationToken = 'QYhDG7S99p0hkjglmv2AjfoNuxZFNuPMt0lHN9z73GSySpZBt9Et8I_h7i36hHPtpF9iOoMj1dZIqBwunp7EdcFhMktVIve7Qeh2tar36lR-QO1DSfxJT1QugYhBSc7d6N5CsMbS1Y4uMenEAmaUZA2:PKkF_YzqBpCPFQNMcEG2F5xyw-jzu0saoqTNdQVlaebAABHtLWkzhmLJVxpKRjtSqA--1eCeWt6i4DLHIOnMzlBxDoBCroPHhJ0nSO03ps4dnXlnB9l059qquHC2dLgM2xdfW9likhEyQsUSqr_9ug2' options.method = 'POST' return $.ajax(options) } window.verifiedAjaxPost = verifiedAjaxPost var reloadPage = function (nonce) { // if there is already a nonce=, remove it var currentSearch = window.location.search var currentSearchSplit = currentSearch.split("&nonce=") if (currentSearchSplit.length > 1) { currentSearchSplit[1] = "" currentSearch = currentSearchSplit.join("") } window.location.search = currentSearch + "&nonce=" + (nonce ? nonce : Math.random()) } // GLOBALS window.DEBUG_MODE = false window.ALLOW_DEBUG_LOGGING = false </script> <div id="cloningClickEater"> <div id="waitingClone"> <div class="loader">Loading...</div> <p>We're setting up your new app...</p> </div> <div id="errorClick"> <div id="errorModal" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close AlwaysEditable" data-dismiss="modal"><i class="material">cancel</i></button> <h5 class="modal-title">Error Cloning App</h5> </div> <div id="modalErrorText" class="modal-body"></div> <div class="modal-footer"> <button id="dismissModal" type="button" class="btn btn-default AlwaysEditable" data-dismiss="modal">Close</button> </div> </div> </div> </div> </div> </div> <header class="topNav"> <div class="primaryNav"> <div class="logo"> <a href="/web/20210121073946/https://www.appsheet.com/"> <img class="material-logo" src="https://web.archive.org/web/20210121073946im_/https://www.appsheet.com/content/img/material/logo.svg"/> <span class="logo-text"> AppSheet </span> <span class="subscriptionType"></span> </a> </div> <nav> <div class="navicon"> <i class="material clickable">arrow_drop_down</i> </div> <ul class="non-mobile"> <li class="returnhome "> <a href="/web/20210121073946/https://www.appsheet.com/" data-label="returnhome" rel="" target=""> <span> Return home </span> </a> </li> </ul> <ul class="mobile"> <li class="returnhome "> <a href="/web/20210121073946/https://www.appsheet.com/" data-label="returnhome" rel="" target=""> <span> Return home </span> </a> </li> </ul> </nav> </div> </header> <script nonce="8KB61RHbTA8WvcrW3ADDFQ==" src="/web/20210121073946js_/https://www.appsheet.com/Scripts/jquery-3.5.1.min.js"></script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ==" src="/web/20210121073946js_/https://www.appsheet.com/Scripts/jquery-migrate-3.3.2.min.js"></script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ=="> $(function () { var width = document.body.clientWidth; $(window).on('resize orientationchange', function () { var resizeWidth = window.innerWidth; }); if (sessionStorage.getItem('stickyState') != 'shown') { $('#sticky-bar').show() } $('.close-sticky').on('click', function () { $('#sticky-bar').slideUp(function () { $('#sticky-bar').hide(); sessionStorage.setItem('stickyState', 'shown'); }); if (width > 768) { $('topNav').animate({ top: '-=50px' }); } else { $('.topNav').animate({ top: '-=60px' }); } }); }); </script> <div id="sticky-bar" style="display: none;"> <div class="sticky-container center-align"> <a class="sticky-tag" href="https://web.archive.org/web/20210121073946/https://blog.appsheet.com/appsheet-acquired-by-google-cloud" target="_blank"> <p class="sticky-text"> AppSheet is now part of Google Cloud </p> </a> </div> <span class="close-sticky hp-promobar-close-gtm">X</span> </div> <main> <div class="pageHeader"> <h2> Customer Support </h2> <div class="more"> </div> </div> <div id="new-search" class="ask"> <h2> Have a question? </h2> <p> Learn the basics of <a target="_blank" rel="noopener" class="link" href="https://web.archive.org/web/20210121073946/https://www.appsheet.com/how_to_make_an_app">how to build an app</a>, <a target="_blank" rel="noopener" class="link" href="https://web.archive.org/web/20210121073946/https://help.appsheet.com/">view our documentation</a>, or <a target="_blank" rel="noopener" class="link" href="https://web.archive.org/web/20210121073946/https://community.appsheet.com/">visit our user community</a>. </p> <br/> <div class="search-input-container"> <input id="search-input" placeholder="Search documentation and community posts"> </div> <div id="filter"></div> <div id="hits"></div> <div id="pagination"> </div> </div> <section class="videos"> <ul class="row"> <li class="col-1-2"> <h2 class="sectionTitle"> Video tutorials and how-to's </h2> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://www.youtube.com/playlist?list=PLZ81nepkT97KAehtQ_Y__bNJX3qZaStvt" target="_blank"> Getting Started </a> <br/> Learn how to get set up and kick things off with AppSheet. </p> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://www.youtube.com/playlist?list=PLZ81nepkT97KYAu8TIGaHgC3omAH5OOOW" target="_blank"> Data Modeling </a> <br/> Learn how to customize the way you model data in your AppSheet apps. </p> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://www.youtube.com/playlist?list=PLZ81nepkT97I1sgrebURqbpo9vl0mtbZD" target="_blank"> Expressions </a> <br/> Learn how to make your app dynamic with formula expressions. </p> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://www.youtube.com/playlist?list=PLZ81nepkT97LEpeEKKH3aSVq2cL6mZnsa" target="_blank"> User Experience </a> <br/> Learn how to customize the look and feel of your AppSheet apps. </p> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://www.youtube.com/playlist?list=PLZ81nepkT97K4dL9ZeGq9I96_rwMVvUUK" target="_blank"> Actions </a> <br/> Learn how to add actions to your apps. </p> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://www.youtube.com/playlist?list=PLZ81nepkT97Kkcs3gmjOxo7-A207PlRWz" target="_blank"> App Behavior + Securi鈥媡y </a> <br/> Learn how to customize how your AppSheet apps behave and how to set the level of security. </p> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://www.youtube.com/playlist?list=PLZ81nepkT97Il1TDPyMs0sw2l31js-sT3" target="_blank"> On-Demand Webinar鈥媠 </a> <br/> Watch recordings of AppSheet's live webinars. </p> </li> <li class="col-1-2 help"> <a class="help-item" target="_blank" href="https://web.archive.org/web/20210121073946/https://solutions.appsheet.com/appsheet-user-training-webinars"> <div class="grid-image-rect"> <img src="/web/20210121073946im_/https://www.appsheet.com/Content/web/img/support/webinars.jpg" alt=""/> </div> <div class="description"> <div>Jump-start your learning with our webinar series.</div> <button class="button icon-button-transparent">Register</button> </div> </a> <a class="help-item" target="_blank" href="https://web.archive.org/web/20210121073946/https://solutions.appsheet.com/partners/get-partner-help"> <div class="grid-image-rect"> <img src="/web/20210121073946im_/https://www.appsheet.com/Content/web/img/support/connect-with-partner.jpg" alt=""/> </div> <div class="description"> <div>Need help building your app?</div> <button class="button icon-button-transparent">Connect with a partner</button> </div> </a> </li> </ul> </section> <section class="documentation"> <h2 class="sectionTitle"> Dig into the documentation </h2> <ul class="row"> <li class="col-1-2"> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://help.appsheet.com/data" target="_blank" rel="noopener"> Data </a> <br/> Learn everything about setting your data up in AppSheet. </p> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://help.appsheet.com/ux" target="_blank" rel="noopener"> UX </a> <br/> Everything you need to know to create user experience views for your app. </p> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://help.appsheet.com/behavior" target="_blank" rel="noopener"> Behavior </a> <br/> Learn how to modify how your app behaves online and offline. </p> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://help.appsheet.com/security" target="_blank" rel="noopener"> Security </a> <br/> Everything you need to know about keeping your data secure. </p> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://help.appsheet.com/users-and-sharing" target="_blank" rel="noopener"> Users and Sharing </a> <br/> Add users and share your app's install link in the users section of the editor. </p> </li> <li class="col-1-2"> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://help.appsheet.com/manage" target="_blank" rel="noopener"> Manage </a> <br/> Learn how to manage and monitor usage and control how your app is deployed. </p> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://help.appsheet.com/expressions" target="_blank" rel="noopener"> Expressions </a> <br/> There are many places in the editor where you can use expressions to change the behavior of your app. </p> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://help.appsheet.com/account-and-billing" target="_blank" rel="noopener"> Account and Billing </a> <br/> All the answers you need for managing your account, subscription types, and purchasing AppSheet subscriptions. </p> <p> <a class="link" href="https://web.archive.org/web/20210121073946/https://help.appsheet.com/frequent-app-design-questions" target="_blank" rel="noopener"> Frequent App Design Questions </a> <br/> See questions other users have asked us to learn more about building apps. </p> </li> </ul> </section> <section class="contact"> <h2 class="sectionTitle"> More resources </h2> <div class="description"> Track our product deployments, follow us on <a class="link" target="_blank" href="https://web.archive.org/web/20210121073946/https://twitter.com/appsheet"> Twitter </a> <br/> <br/> Need help? Access our <a class="link" href="/web/20210121073946/https://www.appsheet.com/Support/Contact"> Premium Support </a>. </div> </section> <div class="modal" id="deleteAccountModal"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button class="AlwaysEditable cancel" data-dismiss="modal">Cancel</button> <h5 class="modal-title"> Delete my account </h5> </div> <form> <div class="modal-body"> <p>We're sorry to see you go! Why are you leaving?</p> <p> <fieldset> <div> <input name="deleteAccountReason" type="radio" value="too hard" id="too-hard" style="width:auto;margin-right:10px"/><label for="too-hard" style="display:inline">It's too hard to figure out</label> </div> <div> <input name="deleteAccountReason" type="radio" value="unmet needs" id="unmet-needs" style="width:auto;margin-right:10px"/><label for="unmet-needs" style="display:inline">It doesn't do what I need it to do</label> </div> <div> <input name="deleteAccountReason" type="radio" value="just browsing" id="just-browsing" style="width:auto;margin-right:10px"/><label for="just-browsing" style="display:inline">I was just browsing</label> </div> <div> <input name="deleteAccountReason" type="radio" value="other" id="other" style="width:auto;margin-right:10px"/><label for="other" style="display:inline">Other</label> </div> </fieldset> </p> <p> <label for="delete-account-comment">Please tell us what we should improve<textarea rows="4" name="deleteAccountComment" id="delete-account-comment"></textarea></label> </p> <p> <a href="https://web.archive.org/web/20210121073946/https://help.appsheet.com/en/articles/962254-resetting-appsheet" class="link clear-devices-help-link"> Deletion of this account will not delete the apps or app data already downloaded to app users' devices. </a> </p> </div> <div class="modal-footer" style="overflow:auto"> <button type="submit">Delete my account</button> </div> </form> </div> </div> </div> </main> <footer class="bottomNav"> <nav> <ul> <li class="company"> <div class="subheader1"><a href="https://web.archive.org/web/20210121073946/https://solutions.appsheet.com/about">Company</a></div> <ul> <li class="about "> <a href="https://web.archive.org/web/20210121073946/https://solutions.appsheet.com/about">About</a> </li> <li class="blog "> <a href="https://web.archive.org/web/20210121073946/http://blog.appsheet.com/">Blog</a> </li> <li class="careers "> <a href="https://web.archive.org/web/20210121073946/https://solutions.appsheet.com/careers">Careers</a> </li> <li class="contactus "> <a href="/web/20210121073946/https://www.appsheet.com/Support/Contact">Contact us</a> </li> </ul> </li> <li class="howitworks"> <div class="subheader1"><a href="https://web.archive.org/web/20210121073946/https://solutions.appsheet.com/application-platform">Platform</a></div> <ul> <li class="box "> <a href="/web/20210121073946/https://www.appsheet.com/HowItWorks/Architecture">Architecture</a> </li> <li class="datasource "> <a href="/web/20210121073946/https://www.appsheet.com/HowItWorks/DataSources">Data Sources</a> </li> <li class="enterprise "> <a href="https://web.archive.org/web/20210121073946/https://solutions.appsheet.com/appsheet-enterprise">Enterprise</a> </li> <li class="trustCenter "> <a href="https://web.archive.org/web/20210121073946/https://solutions.appsheet.com/trust-center">Trust Center</a> </li> </ul> </li> <li class="pricing"> <div class="subheader1"><a href="https://web.archive.org/web/20210121073946/https://solutions.appsheet.com/pricing">Pricing</a></div> <ul> <li class="terms "> <a href="/web/20210121073946/https://www.appsheet.com/Home/Terms">Terms of service</a> </li> <li class="privacy "> <a href="https://web.archive.org/web/20210121073946/https://policies.google.com/privacy">Privacy policy</a> </li> <li class="sales "> <a href="https://web.archive.org/web/20210121073946/https://solutions.appsheet.com/contact">Contact sales</a> </li> </ul> </li> <li class="solutions"> <div class="subheader1"><a href="https://web.archive.org/web/20210121073946/https://solutions.appsheet.com/get-it-done">Solutions</a></div> <ul> <li class="apps "> <a href="/web/20210121073946/https://www.appsheet.com/SampleApps">Sample apps</a> </li> <li class="resources "> <a href="https://web.archive.org/web/20210121073946/https://solutions.appsheet.com/get-it-done#section3-outer-wrap">Resources</a> </li> <li class="industries "> <a href="/web/20210121073946/https://www.appsheet.com/Solutions#industries">Industries</a> </li> <li class="customers "> <a href="https://web.archive.org/web/20210121073946/https://blog.appsheet.com/topic/customers">Customers</a> </li> </ul> </li> <li class="partners"> <div class="subheader1"><a href="/web/20210121073946/https://www.appsheet.com/Partners">Partners</a></div> <ul> <li class="findapartner "> <a href="https://web.archive.org/web/20210121073946/https://solutions.appsheet.com/partners/get-partner-help">Find a partner</a> </li> <li class="becomeapartner "> <a href="https://web.archive.org/web/20210121073946/https://solutions.appsheet.com/partners/become-an-appsheet-partner">Become a partner</a> </li> </ul> </li> <li class="support"> <div class="subheader1"><a href="/web/20210121073946/https://www.appsheet.com/Support">Support</a></div> <ul> <li class="community "> <a href="https://web.archive.org/web/20210121073946/https://community.appsheet.com/">Community</a> </li> <li class="documentation "> <a href="https://web.archive.org/web/20210121073946/https://help.appsheet.com/">Documentation</a> </li> <li class="contactus "> <a href="/web/20210121073946/https://www.appsheet.com/Support/Contact">Contact Us</a> </li> </ul> </li> <li class="account"> <div class="subheader1"><a href="/web/20210121073946/https://www.appsheet.com/Template/Apps">Account</a></div> <ul> <li class="login "> <a href="/web/20210121073946/https://www.appsheet.com/Account/Login">Login</a> </li> <li class="signup "> <a href="/web/20210121073946/https://www.appsheet.com/Home/Start">Start for free</a> </li> </ul> </li> </ul> <div class="bottom-meta"> <div class="socialMedia" itemscope itemtype="http://schema.org/Organization"> <link itemprop="url" href="https://www.appsheet.com"> <a href="https://web.archive.org/web/20210121073946/https://www.youtube.com/channel/UC7xYEO2O_VZWyvctU0LQp8g" itemprop="sameAs"> <i class="material">post_youtube</i> </a> <a href="https://web.archive.org/web/20210121073946/https://www.linkedin.com/company/appsheet" itemprop="sameAs"> <i class="material">post_linkedin</i> </a> <a href="https://web.archive.org/web/20210121073946/https://twitter.com/appsheet" itemprop="sameAs"> <i class="material">post_twitter</i> </a> <a href="https://web.archive.org/web/20210121073946/https://www.facebook.com/appsheet" itemprop="sameAs"> <i class="material">post_facebook</i> </a> </div> </div> </nav> </footer> <!--[if lt IE 9]> <script nonce="8KB61RHbTA8WvcrW3ADDFQ==" src="/Content/scripts/_shared/external/html5shiv-3.7.0.js"></script> <![endif]--> <script nonce="8KB61RHbTA8WvcrW3ADDFQ==" src="/web/20210121073946js_/https://www.appsheet.com/Scripts/jquery-3.5.1.min.js"></script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ==" src="/web/20210121073946js_/https://www.appsheet.com/Scripts/jquery-migrate-3.3.2.min.js"></script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ==" src="/web/20210121073946js_/https://www.appsheet.com/bundles/valjquery"></script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ==" src="/web/20210121073946js_/https://www.appsheet.com/bundles/unobtrusive?v=lWgf8_nB9MzU3N1ztusS2nnyZp9GZERS2J1NvX37gZo1"></script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ==" src="/web/20210121073946js_/https://www.appsheet.com/Content/scripts/web/utilities.js?update='20210120'.1"></script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ==" src="/web/20210121073946js_/https://www.appsheet.com/Content/scripts/web/accountStartup.js"> </script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ==" type="text/javascript"> $(function () { var shouldCheck = false; if (shouldCheck) { var oneHour = 60 * 60 * 1000; initCheckAccountStatus(oneHour); } }); </script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ==" src="/web/20210121073946js_/https://www.appsheet.com/Content/scripts/_shared/external/instantsearch-1.12.1.min.js"></script> <script type="text/html" id="hit-template"> <div class="hit"> <div class="hit-image"> <a target="_blank" class="link" href="{{url}}"> {{doc_type}} <img src="/Content/web/img/support/{{doc_type}}.png" /> </a> </div> <div class="hit-content"> <h3><a target="_blank" class="link" href="{{url}}">{{{_highlightResult.title.value}}}</a></h3> <p class="hit-description">{{{_snippetResult.body.value}}}</p> </div> </div> </script> <script type="text/html" id="no-hits-template"> <div class="no-hits"> Can't find what you're looking for? <a class="link" target="_blank" href="https://web.archive.org/web/20210121073946/https://community.appsheet.com">Ask the community!</a> </div> </script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ=="> var search = instantsearch({ // Replace with your own values appId: 'C69CGKFLSB', apiKey: '29d74dc0781fa30c2ed871b05a3fc8cf', // search only API key, no ADMIN key indexName: 'help', urlSync: true, searchParameters: { ignorePlurals: ['en'], attributesToRetrieve: [ 'app_guid', 'app_logo', 'app_purpose', 'app_name', 'app_industry', 'app_short_name', 'app_title', 'app_department', 'url', 'app_category', 'app_is_chatbot', 'app_function', 'doc_type' ] }, searchFunction: function (helper) { var searchResults = $('.search-results'); if (helper.state.query === '') { searchResults.hide(); return; } helper.search(); searchResults.show(); } }); search.addWidget( instantsearch.widgets.searchBox({ container: '#search-input', queryHook: window.debounce(function (query, search) { search(query) Track('Search', { zSearchBox: 'Support', zQuery: query }) }, 250) }) ); search.addWidget( instantsearch.widgets.refinementList({ container: '#filter', attributeName: 'doc_type', operator: 'or' }) ); search.addWidget( instantsearch.widgets.hits({ container: '#hits', hitsPerPage: 10, templates: { item: document.getElementById('hit-template').innerHTML, empty: document.getElementById('no-hits-template').innerHTML } }) ); search.addWidget({ render: function (data) { var hitNumber = function (index) { return data.state.page * data.state.hitsPerPage + index + 1 } $('.hit').each(function (index, hitElt) { $(hitElt).find('a.link').on('click', function () { var hit = data.results.hits[index] || {} var hitType = hit.doc_type Track('Click Search Result', { zSearchBox: 'Support', zPageNum: data.state.page, zHitNumber: hitNumber(index), zQuery: data.results.query, zHitUrl: $(this).prop('href'), zHitTitle: $(this).text(), zHitType: hit.doc_type, zHitAppCategory: hit.app_category }) }) }) } }); search.addWidget( instantsearch.widgets.pagination({ container: '#pagination' }) ); search.start(); </script> <noscript> <iframe src="https://web.archive.org/web/20210121073946if_/https://www.googletagmanager.com/ns.html?id=GTM-NT8SDJW" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <script type="text/javascript" nonce="8KB61RHbTA8WvcrW3ADDFQ==" id="hs-script-loader" async defer src="//web.archive.org/web/20210121073946js_/https://js.hs-scripts.com/1842736.js"></script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ=="> Track('Support'); </script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ=="> if (window.Intercom) { var intercomOptions = null || {}; intercomOptions.app_id = INTERCOM_APP_ID; intercomOptions.hide_default_launcher = true; intercomOptions.custom_launcher_selector = '#intercom_overlay_button'; var overlay = $('<div id="intercom_overlay_button"><i class="material">chat_bubble_outline</i></div>'); overlay.appendTo(document.body); Intercom('boot', intercomOptions) if ('false' == 'true') { setTimeout(function() { Intercom('shutdown') }, 100) } } </script> <script id="CookieConsent" nonce="8KB61RHbTA8WvcrW3ADDFQ==" src="/web/20210121073946js_/https://www.appsheet.com/Content/scripts/_shared/external/cookieconsent2-3.1.0.min.js" async defer></script> <script nonce="8KB61RHbTA8WvcrW3ADDFQ=="> window.showCookieConsent = function () { window.cookieconsent.initialise({ "palette": { "popup": { "background": "#ffffff", "text": "#3C4043" }, "button": { "background": "#1A73E8", "text": "#ffffff" } }, "position": "bottom-left", "content": { "message": "This website uses cookies to ensure you get the best experience with our platform.", "dismiss": "Got it!", "link": "Learn more", "href": "https://web.archive.org/web/20210121073946/https://www.appsheet.com/Home/Privacy" } }) }; $('#CookieConsent').on('load', showCookieConsent) </script> </div> </body> </html> <!-- FILE ARCHIVED ON 07:39:46 Jan 21, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 07:35:21 Nov 30, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.647 exclusion.robots: 0.034 exclusion.robots.policy: 0.019 esindex: 0.025 cdx.remote: 6.13 LoadShardBlock: 111.4 (3) PetaboxLoader3.datanode: 63.588 (4) PetaboxLoader3.resolve: 70.847 (2) load_resource: 85.567 -->

Pages: 1 2 3 4 5 6 7 8 9 10