{"id":134147,"date":"2026-05-13T11:59:00","date_gmt":"2026-05-13T18:59:00","guid":{"rendered":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/?p=134147"},"modified":"2026-05-13T12:09:31","modified_gmt":"2026-05-13T19:09:31","slug":"power-fx-user-defined-types-generally-available","status":"publish","type":"post","link":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/","title":{"rendered":"Power Fx: User Defined Types Generally Available"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>User Defined Types (UDTs) are now generally available<\/strong>! <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As of Power Apps Studio version 3.26044, UDTs are enabled by default for new apps and can be enabled for existing apps under Settings &gt; Updates &gt; New &gt; User-Defined types. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/learn.microsoft.com\/power-apps\/maker\/canvas-apps\/component-properties\" target=\"_blank\" rel=\"noopener noreferrer\">Enhanced Component Properties<\/a>, <a href=\"https:\/\/learn.microsoft.com\/power-platform\/power-fx\/reference\/object-app#user-defined-functions\" target=\"_blank\" rel=\"noopener noreferrer\">User Defined Functions<\/a>, and now User Defined Types have all reached general availability and are ready for your production workloads. You now have powerful tools for breaking large, mission critical apps into more modular, error resistant, and maintainable parts.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"records-and-tables-as-parameters-and-return-values\">Records and Tables as parameters and return values<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/learn.microsoft.com\/power-platform\/power-fx\/reference\/object-app#user-defined-types\" target=\"_blank\" rel=\"noreferrer noopener\">User defined types<\/a>(UDTs) help make your formulas easier to write and understand by bundling information that logically belongs together into data structures. It also helps your formulas be less error prone by strongly typing information, especially useful when working with JSON.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, bundled information on a Book, such as the title, the author, the page count, and the publication year can be grouped together with appropriate types for each element using the <a href=\"https:\/\/learn.microsoft.com\/power-platform\/power-fx\/reference\/function-type\" target=\"_blank\" rel=\"noopener noreferrer\">Type function<\/a> in the App object&#8217;s <a href=\"https:\/\/learn.microsoft.com\/power-platform\/power-fx\/reference\/object-app#formulas-property\" target=\"_blank\" rel=\"noopener noreferrer\">Formulas property<\/a>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Book := Type( {<br>&nbsp;&nbsp;&nbsp;&nbsp;Title: Text,<br>&nbsp;&nbsp;&nbsp;&nbsp;Author: Text,<br>&nbsp;&nbsp;&nbsp;&nbsp;Pages: Number,<br>&nbsp;&nbsp;&nbsp;&nbsp;Published: Date<br>} )<\/code>;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A book can be passed into a User defined function to be stored in a database:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>AddBook( newBook: Book ) : Void = {<br>&nbsp;&nbsp;&nbsp;&nbsp;Collect( Library, newBook )<br>}<\/code>;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And a table of Books can be returned from a User defined function that filters on page count:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Books := Type( [ Book ] )<\/code>;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>FastReads(): Books = Filter( Library, Pages &lt; 20 )<\/code>;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"udts-and-json\">UDTs and JSON<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">UDTs can be very helpful when working with JSON by validating and converting untyped text into a typed Power F object. For example, JSON has no date\/time data type, instead it is stored in a string, often in ISO 8601 format. By providing a UDT, ParseJSON knows it needs to convert the string containing &#8220;1902-03-25&#8221; into a proper Date value, required by the record passed to AddBook():<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>AddBook( <br>&nbsp;&nbsp;ParseJSON( \"{ <br>&nbsp;&nbsp;&nbsp;&nbsp;\"\"Title\"\": \"\"Hound of the Baskervilles\"\",<br>&nbsp;&nbsp;&nbsp;&nbsp;\"\"Published\"\": \"\"1902-03-25\"\" <br>&nbsp;&nbsp;}\", Book )<br>)<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If instead, we give ParseJSON a value that it can&#8217;t convert, say &#8220;03\/25\/1902&#8221; instead, it will generate an error:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>AddBook( <br>&nbsp;&nbsp;ParseJSON( \"{ <br>&nbsp;&nbsp;&nbsp;&nbsp;\"\"Title\"\": \"\"Hound of the Baskervilles\"\",<br>&nbsp;&nbsp;&nbsp;&nbsp;\"\"Published\"\": \"\"03\/25\/1902\"\" <br>&nbsp;&nbsp;}\", Book )<br>)<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Error: Expected value &#8217;03\/25\/1902&#8242; to be a valid RFC 3339 &#8216;full-date&#8217; or &#8216;date-time&#8217; format. Allowed ISO 8601 format(s): &#8216;YYYY-MM-DD&#8217; &#8230;<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"istype-and-astype\">IsType and AsType<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;d like finer control over the conversion to a strongly typed value, to first detect and avoid the error, use the <a href=\"https:\/\/learn.microsoft.com\/power-platform\/power-fx\/reference\/function-astype-istype\" target=\"_blank\" rel=\"noopener noreferrer\">IsType and AsType<\/a> functions. IsType can determine if a Dynamic value is of a particular type without producing an error. For example:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>ForAll( <br>&nbsp;&nbsp;ParseJSON( <br>&nbsp;&nbsp;&nbsp;&nbsp;\"[ { \"\"Published\"\": \"\"03\/25\/1902\"\" },<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ \"\"Published\"\": \"\"1902-03-25\"\" } ]\" <br>&nbsp;&nbsp;),<br>&nbsp;&nbsp;If( IsType( ThisRecord, Book ),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AsType( ThisRecord, Book ),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Blank()<br>&nbsp;&nbsp;)<br>)<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">results in this table, where the missing columns of the valid Book record are filled in with Blank() values:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>[<br>&nbsp;&nbsp;Blank(),<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;Published:Date(1902,3,25),<br>&nbsp;&nbsp;&nbsp;&nbsp;Title:Blank(), <br>&nbsp;&nbsp;&nbsp;&nbsp;Author:Blank(), <br>&nbsp;&nbsp;&nbsp;&nbsp;Pages:Blank()<br>&nbsp;&nbsp;}<br>]<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"recordof\">RecordOf<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, sometimes you have the definition for a table of items, and wish to define a function that takes one of those items as an argument. For example, had we started with the definition of Books (plural):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Books := Type( <br>&nbsp;&nbsp;[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/ defines a single column table<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; \/\/ defines a record<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Title: Text,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Author: Text,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pages: Number,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Published: Date<br>&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;] <br>)<\/code>;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We can define the type for a single book as:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Book := Type( RecordOf( Books ) );<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Exactly as we did above, we can use this Book type to define our AddBook function. The definitions of Book and Books here is identical to what we did before &#8211; here we started with Books (plural) and above we started with Book (singular).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"let-s-go\">Let&#8217;s go!<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Now that UDTs and UDFs are generally available, you can use them with confidence in production workloads. Use them to simplify your formulas and make them more error resistant, especially when working with JSON.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To recap, UDTs are created in the App object&#8217;s <a href=\"https:\/\/learn.microsoft.com\/power-platform\/power-fx\/reference\/object-app#formulas-property\" target=\"_blank\" rel=\"noopener noreferrer\">Formulas property<\/a> with the <a href=\"https:\/\/learn.microsoft.com\/power-platform\/power-fx\/reference\/function-type\" target=\"_blank\" rel=\"noopener noreferrer\">Type and RecordOf functions<\/a>. They are used in UDF definitions (also in App.Formulas) and with the <a href=\"https:\/\/learn.microsoft.com\/power-platform\/power-fx\/reference\/function-parsejson\" target=\"_blank\" rel=\"noopener noreferrer\">ParseJSON<\/a>, <a href=\"https:\/\/learn.microsoft.com\/power-platform\/power-fx\/reference\/function-astype-istype\" target=\"_blank\" rel=\"noopener noreferrer\">AsType, and IsType functions<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;d love your feedback on the <a href=\"https:\/\/community.powerplatform.com\/forums\/thread\/?partialurl=PowerApps1\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft Power Platform Community Forum<\/a> where you can also find answers to your questions. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We can&#8217;t wait to see what you create!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>User Defined Types (UDTs) are now generally available! As of Power Apps Studio version 3.26044, UDTs are enabled by default for new apps and can be enabled for existing apps under Settings &gt; Updates &gt; New &gt; User-Defined types.<\/p>\n","protected":false},"author":86,"featured_media":134281,"comment_status":"open","ping_status":"closed","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":[3424],"job-role":[],"product":[3473,3497],"property":[],"topic":[],"coauthors":[2332],"class_list":["post-134147","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","audience-it-professional","content-type-news","product-power-apps","product-power-fx","review-flag-1593580362-167","review-flag-1593580428-604","review-flag-3-1593580443-447","review-flag-gener-1593580751-312","review-flag-new-1593580248-627"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Power Fx: User Defined Types Generally Available - Microsoft Power Platform Blog<\/title>\n<meta name=\"description\" content=\"User Defined Types are now generally available! Use them to simplify formulas and make them more error resistant, especially when working with JSON.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Power Fx: User Defined Types Generally Available - Microsoft Power Platform Blog\" \/>\n<meta property=\"og:description\" content=\"User Defined Types are now generally available! Use them to simplify formulas and make them more error resistant, especially when working with JSON.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Power Platform Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-13T18:59:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-13T19:09:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2026\/05\/2026-05-11_15h46_15-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"745\" \/>\n\t<meta property=\"og:image:height\" content=\"406\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Greg Lindhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Greg Lindhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/power-apps\\\/power-fx-user-defined-types-generally-available\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/power-apps\\\/power-fx-user-defined-types-generally-available\\\/\"},\"author\":[{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/author\\\/greg-lindhorst\\\/\",\"@type\":\"Person\",\"@name\":\"Greg Lindhorst\"}],\"headline\":\"Power Fx: User Defined Types Generally Available\",\"datePublished\":\"2026-05-13T18:59:00+00:00\",\"dateModified\":\"2026-05-13T19:09:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/power-apps\\\/power-fx-user-defined-types-generally-available\\\/\"},\"wordCount\":581,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/power-apps\\\/power-fx-user-defined-types-generally-available\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/2026-05-11_15h46_15-1.webp\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/power-apps\\\/power-fx-user-defined-types-generally-available\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/power-apps\\\/power-fx-user-defined-types-generally-available\\\/\",\"url\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/power-apps\\\/power-fx-user-defined-types-generally-available\\\/\",\"name\":\"Power Fx: User Defined Types Generally Available - Microsoft Power Platform Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/power-apps\\\/power-fx-user-defined-types-generally-available\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/power-apps\\\/power-fx-user-defined-types-generally-available\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/2026-05-11_15h46_15-1.webp\",\"datePublished\":\"2026-05-13T18:59:00+00:00\",\"dateModified\":\"2026-05-13T19:09:31+00:00\",\"description\":\"User Defined Types are now generally available! Use them to simplify formulas and make them more error resistant, especially when working with JSON.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/power-apps\\\/power-fx-user-defined-types-generally-available\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/power-apps\\\/power-fx-user-defined-types-generally-available\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/power-apps\\\/power-fx-user-defined-types-generally-available\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/2026-05-11_15h46_15-1.webp\",\"contentUrl\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/2026-05-11_15h46_15-1.webp\",\"width\":745,\"height\":406,\"caption\":\"User Defined Types are now generally available! They are enabled by default for new apps and can be enabled for existing apps under Settings > Updates > New > User-Defined types. As of Power Apps Studio version 3.26044.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/power-apps\\\/power-fx-user-defined-types-generally-available\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Power Fx: User Defined Types Generally Available\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/\",\"name\":\"Microsoft Power Platform Blog\",\"description\":\"Innovate with Business Apps\",\"publisher\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/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:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#organization\",\"name\":\"Microsoft Power Platform Blog\",\"url\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/Microsoft-Logo-e1685482038800.png\",\"contentUrl\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/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:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/#\\\/schema\\\/person\\\/dbd4cb8af4503e696f240353831f05d4\",\"name\":\"Greg Lindhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d2e26bc357423265c4eeeb6a4ed51bd71fb29b8eced3e31f4bc1ccd5bedaf80f?s=96&d=mm&r=g0133d144d5ed416197bd3b29ccd9a59c\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d2e26bc357423265c4eeeb6a4ed51bd71fb29b8eced3e31f4bc1ccd5bedaf80f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d2e26bc357423265c4eeeb6a4ed51bd71fb29b8eced3e31f4bc1ccd5bedaf80f?s=96&d=mm&r=g\",\"caption\":\"Greg Lindhorst\"},\"url\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/author\\\/gregli\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Power Fx: User Defined Types Generally Available - Microsoft Power Platform Blog","description":"User Defined Types are now generally available! Use them to simplify formulas and make them more error resistant, especially when working with JSON.","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:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/","og_locale":"en_US","og_type":"article","og_title":"Power Fx: User Defined Types Generally Available - Microsoft Power Platform Blog","og_description":"User Defined Types are now generally available! Use them to simplify formulas and make them more error resistant, especially when working with JSON.","og_url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/","og_site_name":"Microsoft Power Platform Blog","article_published_time":"2026-05-13T18:59:00+00:00","article_modified_time":"2026-05-13T19:09:31+00:00","og_image":[{"width":745,"height":406,"url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2026\/05\/2026-05-11_15h46_15-1.png","type":"image\/png"}],"author":"Greg Lindhorst","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Greg Lindhorst","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/#article","isPartOf":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/"},"author":[{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/greg-lindhorst\/","@type":"Person","@name":"Greg Lindhorst"}],"headline":"Power Fx: User Defined Types Generally Available","datePublished":"2026-05-13T18:59:00+00:00","dateModified":"2026-05-13T19:09:31+00:00","mainEntityOfPage":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/"},"wordCount":581,"commentCount":0,"publisher":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/#primaryimage"},"thumbnailUrl":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2026\/05\/2026-05-11_15h46_15-1.webp","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/","name":"Power Fx: User Defined Types Generally Available - Microsoft Power Platform Blog","isPartOf":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/#primaryimage"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/#primaryimage"},"thumbnailUrl":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2026\/05\/2026-05-11_15h46_15-1.webp","datePublished":"2026-05-13T18:59:00+00:00","dateModified":"2026-05-13T19:09:31+00:00","description":"User Defined Types are now generally available! Use them to simplify formulas and make them more error resistant, especially when working with JSON.","breadcrumb":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/#primaryimage","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2026\/05\/2026-05-11_15h46_15-1.webp","contentUrl":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2026\/05\/2026-05-11_15h46_15-1.webp","width":745,"height":406,"caption":"User Defined Types are now generally available! They are enabled by default for new apps and can be enabled for existing apps under Settings > Updates > New > User-Defined types. As of Power Apps Studio version 3.26044."},{"@type":"BreadcrumbList","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/power-fx-user-defined-types-generally-available\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/"},{"@type":"ListItem","position":2,"name":"Power Fx: User Defined Types Generally Available"}]},{"@type":"WebSite","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/","name":"Microsoft Power Platform Blog","description":"Innovate with Business Apps","publisher":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cm-edgetun.pages.dev\/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:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization","name":"Microsoft Power Platform Blog","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","contentUrl":"https:\/\/cm-edgetun.pages.dev\/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:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/person\/dbd4cb8af4503e696f240353831f05d4","name":"Greg Lindhorst","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d2e26bc357423265c4eeeb6a4ed51bd71fb29b8eced3e31f4bc1ccd5bedaf80f?s=96&d=mm&r=g0133d144d5ed416197bd3b29ccd9a59c","url":"https:\/\/secure.gravatar.com\/avatar\/d2e26bc357423265c4eeeb6a4ed51bd71fb29b8eced3e31f4bc1ccd5bedaf80f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d2e26bc357423265c4eeeb6a4ed51bd71fb29b8eced3e31f4bc1ccd5bedaf80f?s=96&d=mm&r=g","caption":"Greg Lindhorst"},"url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/gregli\/"}]}},"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:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/134147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/users\/86"}],"replies":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/comments?post=134147"}],"version-history":[{"count":11,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/134147\/revisions"}],"predecessor-version":[{"id":134288,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/134147\/revisions\/134288"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/media\/134281"}],"wp:attachment":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/media?parent=134147"}],"wp:term":[{"taxonomy":"audience","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/audience?post=134147"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/content-type?post=134147"},{"taxonomy":"job-role","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/job-role?post=134147"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/product?post=134147"},{"taxonomy":"property","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/property?post=134147"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/topic?post=134147"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/coauthors?post=134147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}