{"id":224,"date":"2017-05-01T08:36:10","date_gmt":"2017-05-01T15:36:10","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-apps\/validation\/"},"modified":"2025-06-11T08:14:23","modified_gmt":"2025-06-11T15:14:23","slug":"validation","status":"publish","type":"post","link":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-apps\/validation\/","title":{"rendered":"A Few Best Practices in Data Validation"},"content":{"rendered":"<p>Data Validation within apps and business forms is critical to prevent errors, and to ensure data transactions occur without errors and uncomfortable bottlenecks during submission. In this blog I will be sharing my personal best practices for data validation in the PowerApps that I design. I hope these will help you to enhance your organization&#8217;s PowerApps too.<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/DataValidationFeatureImage.png\" style=\"width: 350px; height: 115px;\"\/><\/p>\n<p>Having spent many years designing business forms using technologies such as Adobe Acrobat, InfoPath, Nintex, Claysys, and simple javascript,\u00a0I recognize that there are things we must do to protect the format of data entries, as well as to facilitate form entry. Any seasoned form designer knows that data validation is a big part of being able to design forms that people enjoy using. Poor data validation on the other hand can send consumers running for the hills, because they either end up unable to enter the data they want to enter, or bottlenecked by error messages that they rarely understand. Therefore, I spend some effort checking all my business apps for proper data validation. Questions you may want to use to challenge the effectiveness of your own forms include:<\/p>\n<ul>\n<li>\u200bIs it very clear what type of data I&#8217;m looking to get from those filling out my forms?<\/li>\n<li>Is there any possibility that the end user can enter something that is incompatible with my data source?<\/li>\n<li>Can I do anything\u00a0in behalf of\u00a0my end user to help them to avoid making mistakes?<\/li>\n<li>Is there something I can do to help my end users to fill out\u00a0the form\u00a0more completely and\u00a0honestly?<br \/>\n\t(this\u00a0includes removing the risk of influencing the person filling out the form in a way which will skew results)<\/li>\n<li>Can I include on-submission, as well as pre-submission, data validation messaging?<\/li>\n<\/ul>\n<p>By running through these simple questions above, you&#8217;ll be able to make a list of form enhancement targets. Although\u00a0there is no &#8220;perfect&#8221; form designer tool,\u00a0there is quite a lot you can do to improve the experience. You will definitely be able to use\u00a0your list of targets to plan out data validation goals in PowerApps too. Here are my top tips\u00a0regarding things you should know as you get started down this path:<\/p>\n<p>1. <strong>APP FROM DATA BUILDS IT IN <\/strong>&#8211; Whenever you build an app from data, there is a layer of error management built in for you. It occurs whenever forms are submit, and\u00a0is configured to\u00a0report back to the end user whatever error messages are coming from the data source. These error messages are hard coded, as they rely on the data source for any verbiage used.<\/p>\n<p>Example: If you build an app from data on SharePoint which has a column called &#8220;Title&#8221; which is a &#8216;required&#8217; field, then if you attempt to submit a new item to SharePoint where the &#8216;Title&#8217; field value\u00a0is blank, then you&#8217;ll see the error message provided by SharePoint beneath the text input control (and as a red banner at the top):<\/p>\n<p><img decoding=\"async\" alt=\"red text below blank field value\" src=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/TitleBlank.png\" style=\"width: 531px; height: 126px;\"\/><\/p>\n<p>These error messages are considered <strong>on-submission<\/strong> error messages because there is no warning to the user before the submit icon is clicked. Take a look at <a href=\"https:\/\/powerapps.microsoft.com\/en-us\/tutorials\/control-form-detail\/\" target=\"_blank\" rel=\"noopener\">this documentation<\/a> on our community portal\u00a0to learn more about the form error messages that are pre-configured for you when you build an app from data. You can use this information to configure those error messages yourself when you are patching data rather than using auto-generated apps.<\/p>\n<p><strong><em>What else can you do?&#8230;.<\/em><\/strong><\/p>\n<p style=\"text-align: center;\"><strong><em><img decoding=\"async\" alt=\"\" src=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Data_Validation_Options.gif\" style=\"width: 400px; height: 514px;\"\/><\/em><\/strong><\/p>\n<p>\u00a0<\/p>\n<p>2. <strong>EVALUATE ERRORS WHILE TYPING<\/strong> &#8211; In the animation above I demonstrate the user experience for evaluation of errors during typing. This relies on\u00a0a property within the error message itself,\u00a0rather than on the\u00a0Text Input\u00a0Control (named: TextInputRefund)\u00a0used to enter the data. It is displayed based on a condition set\u00a0in the\u00a0&#8216;Visible&#8217; property of\u00a0the label containing the error text:<br \/>\n<strong>If(IsNumeric(TextInputRefund.Text) || IsBlank(TextInputRefund.Text),false,true)<br \/>\n\u200b<\/strong>Simply stated it means that\u00a0if the refund text is completely numeric,\u00a0or completely blank, then don&#8217;t show the message, otherwise it\u00a0will be\u00a0shown.\u00a0How you format the error message (text control named: <strong>errorMessageTxt<\/strong>) is entirely up to you.<\/p>\n<p>3. <strong>EVALUATE ERRORS ON CHANGE<\/strong> &#8211; In the animation above I also demonstrate the user experience for evaluation of errors on change (or on focus loss as some form designers refer to this). It is displayed based on a variable, plus a\u00a0condition set\u00a0in the\u00a0&#8216;Visible&#8217; property of\u00a0the label containing the error text.<u> However, it is not evaluated until the end user leaves the text input control.<\/u> Let&#8217;s start with the variable first; I dynamically create a variable called\u00a0<strong>VarRefund<\/strong> whenever the value changes in that control. I did this by setting an OnChange\u00a0condition directly on the Text Input Control:<br \/>\n<strong>UpdateContext({VarRefund:Value(TextInputRefund.Text)})<\/strong><br \/>\n\u200bI choose to use the <strong>OnChange property<\/strong> so that the value\u00a0of the variable\u00a0is not evaluated while they are typing (that would be annoying).\u00a0Lastly, I moved to the error message text label\u00a0to set the condition on the &#8220;Visible&#8221; property like we did on the other one, but with this shorter formula (only a true statement is needed):<br \/>\n<strong>VarRefund&gt;5000<br \/>\n\u200b<\/strong>Simply stated it means that\u00a0if the refund\u00a0variable\u00a0VarRefund\u00a0is\u00a0&gt;\u00a05000, then show the message, otherwise it is not visible.\u00a0Again, how you format the error message (text control named: <strong>errorMessageAmt<\/strong>) is entirely up to you.<\/p>\n<p>4. <strong>REMOVE NON-RELEVANT DATA<\/strong> &#8211; This is one that even new form designers think about; removing any data that could confuse the user, or enable them to make a bad selection. In this case, leverage PowerApp controls to do smart form design by:<\/p>\n<ul>\n<li>defaulting values for the end user whenever contextual <strong>user profile information<\/strong> can be leveraged using the <strong>Office 365 Users<\/strong> connection. Remember that they can change default values, so prepare for that possibility<br \/>\n\t\u200b(see <a href=\"https:\/\/powerapps.microsoft.com\/en-us\/tutorials\/connection-office365-users\/\" target=\"_blank\" rel=\"noopener\"><u>this article<\/u><\/a> on using the Office 365 Users connection)<\/li>\n<li>setting up <strong>cascading dropdowns<\/strong> to ensure that the data that <em>can be<\/em> selected is the only data that\u00a0<em>should be<\/em> selected, as it applies to the end user filling out the form (leverage\u00a0PowerApp dropdown controls and any helpful data sources to achieve this)<br \/>\n\t(see <a href=\"https:\/\/powerusers.microsoft.com\/t5\/PowerApps-Community-Blog\/SharePoint-Cascading-Dropdowns-in-4-Easy-Steps\/bc-p\/18905#M15\" target=\"_blank\" rel=\"noopener\"><u>this blog entry<\/u><\/a> on cascading dropdowns using SharePoint data)<\/li>\n<li><strong>removing spaces from input data<\/strong> for data sources, or analytics, that may be affected by extra spaces in the response data by using <strong>the Trim() function<\/strong><br \/>\n\t\u200b(see <a href=\"https:\/\/powerapps.microsoft.com\/en-us\/tutorials\/function-trim\/\" target=\"_blank\" rel=\"noopener\"><u>this article<\/u><\/a> on the Trim() Function)<\/li>\n<li><strong>reformatting data to all upper, lower, or proper case <\/strong>before submission, if that is best for consistency within the data source receiving the submission. This is easy to do using the Upper(), Lower() and Proper() functions.<br \/>\n\t\u200b(see <a href=\"https:\/\/powerapps.microsoft.com\/en-us\/tutorials\/function-lower-upper-proper\/\" target=\"_blank\" rel=\"noopener\"><u>this article <\/u><\/a>on the Upper(), Lower(), and Proper()\u00a0Functions)<\/li>\n<\/ul>\n<p>5. <strong>BE CAREFUL WITH DEFAULT VALUES<\/strong> &#8211; Text input boxes, drop down lists, check boxes etc can all have default values configured. However, <strong>be careful that you are not influencing your end users inappropriately, and\/or setting your data up for failure<\/strong>. For example, statistics indicate that American survey respondents will often allow a form default value to remain as-is more often than not, just <u>to expedite the completion of the form<\/u>. This means that they may not entirely\u00a0agree with the selection they submit, as they may not have stopped to review the other choices, or to think about their response. In other cases, default values can <em>provoke <\/em>error, rather than prevent it. Imagine a gender field that defaults to &#8220;male&#8221;. Since it is possible that\u00a0a female\u00a0filling out the form will entirely\u00a0miss the field (especially since no data validation error will probably occur since it&#8217;s no longer\u00a0a &#8216;blank&#8217; answer),\u00a0I bet that some females will\u00a0be recorded as males (and I would attribute that fault\u00a0primarily to\u00a0the form designer). However, if this form was for the YMCA, I might agree with the default, but only if it is possible that female instructors might fill out the form too (otherwise it&#8217;s not needed at all). To clarify, I&#8217;m suggesting that you think of things like this carefully&#8230;.I promise you&#8217;ll be glad you did\u00a0once you plug in Power BI and start analyzing the data being collected.<\/p>\n<p>\u200b<b>HEADS UP:<\/b>\u00a0We currently have a connector\u00a0issue logged where <strong>the SharePoint default field value for choice lists is only\u00a0recognized by PowerApps\u00a0if it is the very first option in the list of choices on SharePoint<\/strong>.\u00a0Because of this,\u00a0if you want to use a default value for that SharePoint choice field within your PowerApp;\u00a0<strong>make sure\u00a0it&#8217;s at the top of the choice list<\/strong>. You can see this setting in the screen shot below. (in that case, we set this default because\u00a099% of the end users will be\u00a0lodging in the &#8220;Seattle&#8221; area). In addition to this note, I will sometimes\u00a0enter &#8220;<strong>Select One<\/strong>&#8221; at the top of the choice list whenever I want my PowerApp to default to a blank value&#8230;.then I&#8217;ll set a pre-submission data validation (like the OnChange one in this article) to trap that &#8220;Select One&#8221; value if left unchanged, and if I don&#8217;t want blanks in my data. (We hope to have this SP connector\u00a0issue resolved very soon, but I wanted to be transparent on it so you&#8217;d know -smiles.)<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/ChoiceTop.png\" style=\"width: 521px; height: 161px;\"\/><\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/ChoiceBottom.png\" style=\"width: 410px; height: 640px;\"\/><\/p>\n<p>\u00a0<\/p>\n<p><strong>FINAL\u00a0THOUGHTS:<\/strong><\/p>\n<p>Remember that in all the cases listed above, you may also want to<strong> edit your OnSelect statement for your submit icon&#8230; especially if you want to actually &#8216;prevent&#8217; something from being submitted incorrectly (messages don&#8217;t prevent, they alert). <\/strong>\u200bFor example, you could use an <strong>If<\/strong> function on your submit icon that checks that all the values are accurate, and does not\u00a0attempt to submit before errors are corrected.<\/p>\n<p><strong>In closing, we all will want to include data validation\u00a0with strong &#8216;design empathy&#8217;, in order to facilitate form data\u00a0entry, and to\u00a0protect data quality!<\/strong> I hope this helps you to achieve that ultimate goal. Please\u00a0feel free to reach out to me with questions or comments, or even if you need help in planning your next app!<\/p>\n<p>Thank you for your time today!\u00a0We want\u00a0your PowerApps engagement to be enjoyable and scalable with best practices like these. I&#8217;ll be posting more\u00a0tips for you later this month, so\u00a0please come back and visit again!<\/p>\n<p>Audrie<br \/>\n@ArtsyPowerApper<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Data Validation within apps and business forms is critical to prevent errors, and to ensure data transactions occur without errors and uncomfortable bottlenecks during submission. In this blog I will be sharing my personal best practices for data validation in the PowerApps that I design. I hope these will help you to enhance your organization&#8217;s PowerApps too.<\/p>\n","protected":false},"author":106,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ms_queue_id":[],"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","ms-ems-related-posts":[],"footnotes":""},"audience":[3378],"content-type":[],"job-role":[],"product":[3473],"property":[],"topic":[3421],"coauthors":[2058],"class_list":["post-224","post","type-post","status-publish","format-standard","hentry","audience-it-professional","product-power-apps","topic-application-modernization"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>A Few Best Practices in Data Validation - Microsoft Power Platform Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Few Best Practices in Data Validation - Microsoft Power Platform Blog\" \/>\n<meta property=\"og:description\" content=\"Data Validation within apps and business forms is critical to prevent errors, and to ensure data transactions occur without errors and uncomfortable bottlenecks during submission. In this blog I will be sharing my personal best practices for data validation in the PowerApps that I design. I hope these will help you to enhance your organization&#039;s PowerApps too.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-apps\/validation\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Power Platform Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-05-01T15:36:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-11T15:14:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/DataValidationFeatureImage.png\" \/>\n<meta name=\"author\" content=\"Audrie Gordon\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Audrie Gordon\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/\"},\"author\":[{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/author\/audrie-gordon\/\",\"@type\":\"Person\",\"@name\":\"Audrie Gordon\"}],\"headline\":\"A Few Best Practices in Data Validation\",\"datePublished\":\"2017-05-01T15:36:10+00:00\",\"dateModified\":\"2025-06-11T15:14:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/\"},\"wordCount\":1717,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/DataValidationFeatureImage.png\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/\",\"name\":\"A Few Best Practices in Data Validation - Microsoft Power Platform Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/DataValidationFeatureImage.png\",\"datePublished\":\"2017-05-01T15:36:10+00:00\",\"dateModified\":\"2025-06-11T15:14:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#primaryimage\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/DataValidationFeatureImage.webp\",\"contentUrl\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/DataValidationFeatureImage.webp\",\"width\":350,\"height\":115},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Few Best Practices in Data Validation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#website\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/\",\"name\":\"Microsoft Power Platform Blog\",\"description\":\"Innovate with Business Apps\",\"publisher\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization\",\"name\":\"Microsoft Power Platform Blog\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png\",\"contentUrl\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png\",\"width\":194,\"height\":145,\"caption\":\"Microsoft Power Platform Blog\"},\"image\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/person\/5622f11b1629eeff57465c794c80c936\",\"name\":\"Audrie Gordon\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/8a060fc178064c33f81ec0c74cf167a845dc0a9f86c71fd9a276c1eae2d7ae30?s=96&d=mm&r=g84a7fd97215038815e0a810e606188f3\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8a060fc178064c33f81ec0c74cf167a845dc0a9f86c71fd9a276c1eae2d7ae30?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8a060fc178064c33f81ec0c74cf167a845dc0a9f86c71fd9a276c1eae2d7ae30?s=96&d=mm&r=g\",\"caption\":\"Audrie Gordon\"},\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/author\/audrie\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A Few Best Practices in Data Validation - Microsoft Power Platform Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/","og_locale":"en_US","og_type":"article","og_title":"A Few Best Practices in Data Validation - Microsoft Power Platform Blog","og_description":"Data Validation within apps and business forms is critical to prevent errors, and to ensure data transactions occur without errors and uncomfortable bottlenecks during submission. In this blog I will be sharing my personal best practices for data validation in the PowerApps that I design. I hope these will help you to enhance your organization's PowerApps too.","og_url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-apps\/validation\/","og_site_name":"Microsoft Power Platform Blog","article_published_time":"2017-05-01T15:36:10+00:00","article_modified_time":"2025-06-11T15:14:23+00:00","og_image":[{"url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/DataValidationFeatureImage.png","type":"","width":"","height":""}],"author":"Audrie Gordon","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Audrie Gordon","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#article","isPartOf":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/"},"author":[{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/author\/audrie-gordon\/","@type":"Person","@name":"Audrie Gordon"}],"headline":"A Few Best Practices in Data Validation","datePublished":"2017-05-01T15:36:10+00:00","dateModified":"2025-06-11T15:14:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/"},"wordCount":1717,"commentCount":0,"publisher":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization"},"image":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/DataValidationFeatureImage.png","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/","name":"A Few Best Practices in Data Validation - Microsoft Power Platform Blog","isPartOf":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#primaryimage"},"image":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/DataValidationFeatureImage.png","datePublished":"2017-05-01T15:36:10+00:00","dateModified":"2025-06-11T15:14:23+00:00","breadcrumb":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#primaryimage","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/DataValidationFeatureImage.webp","contentUrl":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/DataValidationFeatureImage.webp","width":350,"height":115},{"@type":"BreadcrumbList","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2017\/05\/01\/validation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/"},{"@type":"ListItem","position":2,"name":"A Few Best Practices in Data Validation"}]},{"@type":"WebSite","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#website","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/","name":"Microsoft Power Platform Blog","description":"Innovate with Business Apps","publisher":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization","name":"Microsoft Power Platform Blog","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","contentUrl":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","width":194,"height":145,"caption":"Microsoft Power Platform Blog"},"image":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/person\/5622f11b1629eeff57465c794c80c936","name":"Audrie Gordon","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/8a060fc178064c33f81ec0c74cf167a845dc0a9f86c71fd9a276c1eae2d7ae30?s=96&d=mm&r=g84a7fd97215038815e0a810e606188f3","url":"https:\/\/secure.gravatar.com\/avatar\/8a060fc178064c33f81ec0c74cf167a845dc0a9f86c71fd9a276c1eae2d7ae30?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8a060fc178064c33f81ec0c74cf167a845dc0a9f86c71fd9a276c1eae2d7ae30?s=96&d=mm&r=g","caption":"Audrie Gordon"},"url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/author\/audrie\/"}]}},"bloginabox_animated_featured_image":null,"bloginabox_display_generated_audio":false,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Power Platform Blog","distributor_original_site_url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/users\/106"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/comments?post=224"}],"version-history":[{"count":5,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/224\/revisions"}],"predecessor-version":[{"id":125004,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/224\/revisions\/125004"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/media?parent=224"}],"wp:term":[{"taxonomy":"audience","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/audience?post=224"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/content-type?post=224"},{"taxonomy":"job-role","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/job-role?post=224"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/product?post=224"},{"taxonomy":"property","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/property?post=224"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/topic?post=224"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/coauthors?post=224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}