{"id":8807,"date":"2020-04-15T09:00:00","date_gmt":"2020-04-15T16:00:00","guid":{"rendered":""},"modified":"2025-06-11T07:59:27","modified_gmt":"2025-06-11T14:59:27","slug":"building-an-approval-experience-in-canvas-apps","status":"publish","type":"post","link":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-apps\/building-an-approval-experience-in-canvas-apps\/","title":{"rendered":"Building an Approval experience in Canvas Apps"},"content":{"rendered":"<p>In a previous\u00a0<a href=\"https:\/\/powerapps.microsoft.com\/blog\/using-business-process-flows-in-a-canvas-app\/\">blog post<\/a>, we used a custom connector to access a set of Common Data Services APIs to create a Business Process Flow component within Canvas app.\u00a0Similarly, we can extend the <a href=\"https:\/\/docs.microsoft.com\/connectors\/approvals\/\">Approvals<\/a> connectors functionality by exposing additional operations via a custom connector.\u00a0 Specifically, we will use a set of APIs to list received and sent Approvals as well as approve and reject Approvals from within a Power Apps canvas app.<\/p>\n<p>You can download the app here: <a href=\"https:\/\/github.com\/microsoft\/powerapps-tools\/raw\/master\/Apps\/Approvals\/PowerAutomateApprovalCenter_20200410163826.zip\">https:\/\/aka.ms\/approvalsapp<\/a><br \/>\nGet the swagger file for the Approval custom connector here:\u00a0<a href=\"https:\/\/aka.ms\/swaggerapproval\">https:\/\/aka.ms\/swaggerapproval<\/a><br \/>\n<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" alt=\"\" class=\"aligncenter size-large wp-image-8808\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/03\/Approval-1024x575.png\"\/><\/p>\n<p>To retrieve sent and received approvals, we use the GetApprovals operation available in our custom connector:<\/p>\n<p><img decoding=\"async\" alt=\"UpdateContext({ top:10, environment:&quot;72e87f56-e215-43d4-8883-5cf7ff5550f5&quot;, receivedFilter:&quot;properties\/userRole eq 'Approver' and properties\/isActive eq 'true' and properties\/isDescending eq 'true'&quot;, sentFilter:&quot;properties\/userRole eq 'Owner' and properties\/isActive eq 'true' and properties\/isDescending eq 'true'&quot; }); ClearCollect(Received, Flow.GetApprovals(environment, {'$top':top, '$filter':receivedFilter}).value); ClearCollect(Sent, Flow.GetApprovals(environment, {'$top':top, '$filter':sentFilter}).value);\" class=\"aligncenter wp-image-9329 size-large\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/04\/SentReceived-1024x182.png\"\/><\/p>\n<p>\u00a0<\/p>\n<p>To approve or reject an approval request, we use the SetApprovalResponse:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"aligncenter size-full wp-image-8813\" height=\"58\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/03\/Approve.png\" width=\"858\" srcset=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Approve.webp 858w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Approve-300x20.webp 300w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Approve-768x52.webp 768w\" sizes=\"auto, (max-width: 858px) 100vw, 858px\" \/><br \/>\n<img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"aligncenter size-large wp-image-8814\" height=\"28\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/03\/Reject.png\" width=\"525\" srcset=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Reject.webp 831w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Reject-300x16.webp 300w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Reject-768x42.webp 768w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><br \/>\n<strong>Custom Connector Deployment<\/strong><\/p>\n<p>Before creating the custom connector using the above swagger file,\u00a0 you will need to register an application with the Azure Active Directory service. For a refresher, read the following article here<a href=\"https:\/\/docs.microsoft.com\/azure\/active-directory\/develop\/v1-oauth2-on-behalf-of-flow#register-the-application-and-service-in-azure-ad\">: https:\/\/docs.microsoft.com\/azure\/active-directory\/azuread-dev\/v1-oauth2-on-behalf-of-flow#register-the-application-and-service-in-azure-ad.\u00a0<\/a>\u00a0While going through that process<span style=\"font-size: 1rem\">, grant permission for the flow service:\u00a0\u00a0<\/span><br \/>\n<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"511\" alt=\"\" class=\"aligncenter size-large wp-image-8819\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/03\/FlowService-1024x511.png\"\/><\/p>\n<p>Ensure Approvals.Manage.All &amp; Approvals.Read.All are checked.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"844\" height=\"835\" alt=\"\" class=\"aligncenter size-full wp-image-8820\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/03\/Permissions.png\" srcset=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Permissions.webp 844w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Permissions-300x297.webp 300w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Permissions-768x760.webp 768w\" sizes=\"auto, (max-width: 844px) 100vw, 844px\" \/><\/p>\n<p>Finally, download and import the swagger file for the custom connector.\u00a0 Enter Client Id, Client Secret and Resource URL: https:\/\/service.flow.microsoft.com\/.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"712\" alt=\"\" class=\"aligncenter size-large wp-image-8821\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/03\/CSSecurity-1024x712.png\"\/><br \/>\n<img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"789\" alt=\"\" class=\"aligncenter size-full wp-image-9333\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/04\/FlowService2.png\" srcset=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/04\/FlowService2.webp 975w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/04\/FlowService2-300x243.webp 300w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/04\/FlowService2-768x621.webp 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/p>\n<p>You can now import the app and give it at try !<\/p>\n<h3>Disclaimer<\/h3>\n<p>The assets \/ samples provided in this blog are not supported by the Power Platform product team (which is true for all tools available in\u00a0<a href=\"https:\/\/github.com\/microsoft\/powerapps-tools\">this GitHub repo<\/a>). We are a small team in Engineering who built this community sample solution for anyone to use and modify as their own, made available to customers on an as-is basis via an\u00a0<a href=\"https:\/\/github.com\/microsoft\/powerapps-tools\/blob\/master\/LICENSE\">MIT license<\/a>. It\u2019s possible you might run into some issues, such as installation problems, authorization issues, or bugs in the apps and flows within the solution. If you encounter an issue, please raise it in the\u00a0<a href=\"https:\/\/github.com\/microsoft\/powerapps-tools\/issues\">issues tab<\/a>\u00a0of the GitHub repo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This post describes how to manage Approvals in a Power Apps canvas app by leveraging a Custom connector that extends the capabilities of the Approvals connector.<\/p>\n","protected":false},"author":101,"featured_media":8808,"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":[3423],"job-role":[],"product":[3473],"property":[],"topic":[3421],"coauthors":[2051],"class_list":["post-8807","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","audience-it-professional","content-type-tips-and-guides","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>Building an Approval experience in Canvas Apps - 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\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building an Approval experience in Canvas Apps - Microsoft Power Platform Blog\" \/>\n<meta property=\"og:description\" content=\"This post describes how to manage Approvals in a Power Apps canvas app by leveraging a Custom connector that extends the capabilities of the Approvals connector.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-apps\/building-an-approval-experience-in-canvas-apps\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Power Platform Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-15T16:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-11T14:59:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Approval.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1094\" \/>\n\t<meta property=\"og:image:height\" content=\"614\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Mehdi Slaoui Andaloussi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mehdi Slaoui Andaloussi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 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\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/\"},\"author\":[{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/author\/mehdi-slaoui-andaloussi\/\",\"@type\":\"Person\",\"@name\":\"Mehdi Slaoui Andaloussi\"}],\"headline\":\"Building an Approval experience in Canvas Apps\",\"datePublished\":\"2020-04-15T16:00:00+00:00\",\"dateModified\":\"2025-06-11T14:59:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/\"},\"wordCount\":335,\"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\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Approval.webp\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/\",\"name\":\"Building an Approval experience in Canvas Apps - 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\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Approval.webp\",\"datePublished\":\"2020-04-15T16:00:00+00:00\",\"dateModified\":\"2025-06-11T14:59:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#primaryimage\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Approval.webp\",\"contentUrl\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Approval.webp\",\"width\":1094,\"height\":614,\"caption\":\"graphical user interface, application\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building an Approval experience in Canvas Apps\"}]},{\"@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\/cb94deacde69a416821745caea3a4ea9\",\"name\":\"Mehdi Slaoui Andaloussi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/7d08f4b5403b8c9bcddc1a86d1029fe871d0429f3b1bcf391b42f4f6de826c74?s=96&d=mm&r=gee4168e8cdfe65faaf608acb5baeaed5\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/7d08f4b5403b8c9bcddc1a86d1029fe871d0429f3b1bcf391b42f4f6de826c74?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/7d08f4b5403b8c9bcddc1a86d1029fe871d0429f3b1bcf391b42f4f6de826c74?s=96&d=mm&r=g\",\"caption\":\"Mehdi Slaoui Andaloussi\"},\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/author\/mehdis\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Building an Approval experience in Canvas Apps - 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\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/","og_locale":"en_US","og_type":"article","og_title":"Building an Approval experience in Canvas Apps - Microsoft Power Platform Blog","og_description":"This post describes how to manage Approvals in a Power Apps canvas app by leveraging a Custom connector that extends the capabilities of the Approvals connector.","og_url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-apps\/building-an-approval-experience-in-canvas-apps\/","og_site_name":"Microsoft Power Platform Blog","article_published_time":"2020-04-15T16:00:00+00:00","article_modified_time":"2025-06-11T14:59:27+00:00","og_image":[{"width":1094,"height":614,"url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Approval.png","type":"image\/png"}],"author":"Mehdi Slaoui Andaloussi","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Mehdi Slaoui Andaloussi","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#article","isPartOf":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/"},"author":[{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/author\/mehdi-slaoui-andaloussi\/","@type":"Person","@name":"Mehdi Slaoui Andaloussi"}],"headline":"Building an Approval experience in Canvas Apps","datePublished":"2020-04-15T16:00:00+00:00","dateModified":"2025-06-11T14:59:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/"},"wordCount":335,"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\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Approval.webp","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/","name":"Building an Approval experience in Canvas Apps - 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\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#primaryimage"},"image":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Approval.webp","datePublished":"2020-04-15T16:00:00+00:00","dateModified":"2025-06-11T14:59:27+00:00","breadcrumb":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#primaryimage","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Approval.webp","contentUrl":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Approval.webp","width":1094,"height":614,"caption":"graphical user interface, application"},{"@type":"BreadcrumbList","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2020\/04\/15\/building-an-approval-experience-in-canvas-apps\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/"},{"@type":"ListItem","position":2,"name":"Building an Approval experience in Canvas Apps"}]},{"@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\/cb94deacde69a416821745caea3a4ea9","name":"Mehdi Slaoui Andaloussi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/7d08f4b5403b8c9bcddc1a86d1029fe871d0429f3b1bcf391b42f4f6de826c74?s=96&d=mm&r=gee4168e8cdfe65faaf608acb5baeaed5","url":"https:\/\/secure.gravatar.com\/avatar\/7d08f4b5403b8c9bcddc1a86d1029fe871d0429f3b1bcf391b42f4f6de826c74?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7d08f4b5403b8c9bcddc1a86d1029fe871d0429f3b1bcf391b42f4f6de826c74?s=96&d=mm&r=g","caption":"Mehdi Slaoui Andaloussi"},"url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/author\/mehdis\/"}]}},"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\/8807","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\/101"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/comments?post=8807"}],"version-history":[{"count":1,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/8807\/revisions"}],"predecessor-version":[{"id":130634,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/8807\/revisions\/130634"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/media\/8808"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/media?parent=8807"}],"wp:term":[{"taxonomy":"audience","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/audience?post=8807"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/content-type?post=8807"},{"taxonomy":"job-role","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/job-role?post=8807"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/product?post=8807"},{"taxonomy":"property","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/property?post=8807"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/topic?post=8807"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/coauthors?post=8807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}