{"id":5,"date":"2018-11-28T03:38:59","date_gmt":"2018-11-28T11:38:59","guid":{"rendered":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/create-business-apps-using-powerapps-and-azure-functions\/"},"modified":"2025-06-11T08:06:03","modified_gmt":"2025-06-11T15:06:03","slug":"create-business-apps-using-powerapps-and-azure-functions","status":"publish","type":"post","link":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/create-business-apps-using-powerapps-and-azure-functions\/","title":{"rendered":"Create Business Apps using PowerApps and Azure Functions"},"content":{"rendered":"<p style=\"margin:0in;margin-bottom:.0001pt;line-height:14.9pt;vertical-align:\nbaseline\">Our team works in <a href=\"https:\/\/cm-edgetun.pages.dev\/itshowcase\" target=\"_blank\" rel=\"noopener\">Core Services Engineering (formerly Microsoft IT)<\/a> and recently we upgraded a legacy on-prem application which was written in .NET, SQL &amp; SharePoint to the cloud using <a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/powerapps-overview\" target=\"_blank\" rel=\"noopener\">PowerApps canvas apps<\/a> as the front-end and serverless <a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/functions\/\" target=\"_blank\" rel=\"noopener\">Azure Functions<\/a> as the middle tier with <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/storage\/tables\/table-storage-overview\" target=\"_blank\" rel=\"noopener\">Azure Table Storage<\/a> as the back-end, protected by <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/active-directory\/develop\/index\" target=\"_blank\" rel=\"noopener\">Azure Active Directory<\/a>.\u00a0<\/p>\n<p style=\"margin:0in;margin-bottom:.0001pt;line-height:14.9pt;vertical-align:\nbaseline\">\u00a0<\/p>\n<p style=\"margin:0in;margin-bottom:.0001pt;line-height:14.9pt;vertical-align:\nbaseline\">The business team was quite happy with this upgrade since there were multiple benefits. It saved a lot of cost because we could get rid of the on-prem servers as well as freeing up the dedicated manpower that was reserved to support the legacy application. This also made the application more maintanable and it is now easy to add a lot more functionality faster with less effort.<\/p>\n<p style=\"margin:0in;margin-bottom:.0001pt;line-height:14.9pt;vertical-align:\nbaseline\">\u00a0<\/p>\n<p style=\"margin:0in;margin-bottom:.0001pt;line-height:14.9pt;vertical-align:\nbaseline\">In this blog post, I will share our learnings through a sample PowerApps canvas app which uses an Azure function along with Azure Storage Tables via custom connectors protected by Azure AD. I hope this helps the community replicate similar patterns in their organizations and reap the benefits of a serverless design for moving legacy apps to the cloud.<\/p>\n<p style=\"margin:0in;margin-bottom:.0001pt;line-height:14.9pt;vertical-align:\nbaseline\">\u00a0<\/p>\n<p>Below are the steps involved in building the app:<\/p>\n<p>\u2022\u00a0\u00a0\u00a0 Build an Azure Function which talks to the Azure Table Storage<\/p>\n<p>\u2022\u00a0\u00a0\u00a0 Azure Active Directory app registrations for the Azure Function and the PowerApps custom connector<\/p>\n<p>\u2022 \u00a0\u00a0 Register a <a href=\"https:\/\/docs.microsoft.com\/en-us\/connectors\/custom-connectors\/\" target=\"_blank\" rel=\"noopener\">custom connector<\/a> for PowerApps<\/p>\n<p>\u2022\u00a0\u00a0\u00a0 Create Powerapps app and use the data from the custom connector to bind the controls<\/p>\n<p>\u00a0<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2018\/11\/architecture.png\"\/><\/p>\n<p>Let\u2019s explore all the steps mentioned above in detail.<\/p>\n<p><strong>Creating Azure function:<\/strong><\/p>\n<p>We can create Azure function directly from the Azure portal or <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-functions\/functions-develop-vs\" target=\"_blank\" rel=\"noopener\">using Visual Studio 2017<\/a>. I prefer to use Visual Studio for creating Azure Functions as I can add my code to a git repository and directly publish from within the IDE itself. It also allows me to debug &amp; diagnose the API at any time. In this blog, I am going to walk through the steps using the Visual Studio 2017.<\/p>\n<p>I have uploaded all the code for this Azure Function app in GitHub. You can download the code or clone the repo for the Function App <a href=\"https:\/\/github.com\/santoshsinha100\/PowerApp_Azure_Functions\" style=\"border-bottom-color: currentColor; border-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; border-left-color: currentColor; border-left-style: none; border-left-width: 0px; border-right-color: currentColor; border-right-style: none; border-right-width: 0px; border-top-color: currentColor; border-top-style: none; border-top-width: 0px; color: rgb(95, 151, 175); font-family: inherit; font-size: 100%; font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: invert; outline-style: none; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;\" target=\"_blank\" rel=\"noopener\">from here<\/a>.\u00a0<\/p>\n<p>You need to create a Azure Table Storage by the name Inventory. Here is the structure of the table:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2018\/11\/TableStorageStructure.png\"\/><\/p>\n<p>Below is the snapshot of the solution:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2018\/11\/SolutionExplorerView.png\"\/><\/p>\n<p>It has 2 main operations:<\/p>\n<ul>\n<li><strong>Displayfunc<\/strong> is to list down the inventory list from an Azure storage table.<\/li>\n<li><strong>AddFunc<\/strong> will add to the inventory list. Azure Table Storage <a href=\"https:\/\/docs.microsoft.com\/en-us\/rest\/api\/storageservices\/Understanding-the-Table-Service-Data-Model#system-properties\" target=\"_blank\" rel=\"noopener\">uses Partitionkey and RowKey<\/a> in combination to uniquely identify the table rows.<\/li>\n<\/ul>\n<p>The solution is using <a href=\"https:\/\/autofac.readthedocs.io\/en\/latest\/#\" target=\"_blank\" rel=\"noopener\">Autofac<\/a> to Inject a dependency injection. Using <a href=\"http:\/\/codingsoul.de\/2018\/01\/19\/azure-function-dependency-injection-with-autofac\/\" target=\"_blank\" rel=\"noopener\">Autofac on Azure Functions<\/a>, we can use the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Dependency_injection\" target=\"_blank\" rel=\"noopener\">Dependency Injection pattern <\/a>to allow the user to &#8220;inject&#8221; a dependency from outside the class.<\/p>\n<p>In this sample \u201cInventoryHelper\u201d and \u201cTableHelper\u201d objects are injected to the Function library to retrieve and insert inventory item details from and into the Azure Table storage.<\/p>\n<p>Our next step would be to login into the Azure portal and create a brand-new Azure Function App inside the portal. We can deploy our function code into the Function app using the <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-functions\/functions-develop-vs#publish-to-azure\" target=\"_blank\" rel=\"noopener\">Publish to Azure feature<\/a> in Visual Studio. Once the code is deployed in Azure portal, it will get displayed like below.<\/p>\n<p>\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/powerusers.microsoft.com\/t5\/image\/serverpage\/image-id\/42818iB28D173CE3A6169E\/image-size\/large\/is-moderation-mode\/true?v=1.0&amp;px=999\" style=\"width: 999px; height: 586px;\"\/><\/p>\n<p>\nIn the Azure portal, InventoryWeb is a FunctionApp consisting of underlying functions like \u201caddfunc\u201d and \u201cdisplayfunc\u201d.\u00a0<\/p>\n<p>The next step is to protect and secure the function endpoint by Azure AD. We will now follow the steps to configure AAD settings for the Azure Function and PowerApps custom connector.<\/p>\n<p>\n<strong style=\"font-size: 13.008px;\">Azure Active Directory configurations for Azure Function and PowerApps custom connector:<\/strong><\/p>\n<p>This is a two-step process:<\/p>\n<ul>\n<li>Protect the API with Azure AD authentication<\/li>\n<li>Register an app in Azure AD for the PowerApps custom connector<\/li>\n<\/ul>\n<p>You can also refer to <a href=\"https:\/\/docs.microsoft.com\/en-us\/connectors\/custom-connectors\/create-web-api-connector\" target=\"_blank\" rel=\"noopener\">this documentation article<\/a> for understanding the steps. \u00a0<\/p>\n<p><strong>Protect the API with Azure AD authentication:<\/strong><\/p>\n<p>Launch the Azure AD portal: <a href=\"https:\/\/aad.portal.azure.com\/\">https:\/\/aad.portal.azure.com<\/a> and provide inputs to highlighted controls marked in a circle. In this example, we will use my first AAD, i.e., MYADD to secure my functions<\/p>\n<p>\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/powerusers.microsoft.com\/t5\/image\/serverpage\/image-id\/41122iFB0736B2511868E5\/image-size\/large\/is-moderation-mode\/true?v=1.0&amp;px=999\" style=\"width: 707px; height: 582px;\"\/><\/p>\n<p style=\"margin-left:.5in;\">a)\u00a0\u00a0\u00a0\u00a0 ClientID \u2013 This will be the app key to AAD where we are going to register our function app.<\/p>\n<p style=\"margin-left:.5in;\">b)\u00a0\u00a0\u00a0\u00a0 Issuer URL should contain TenantID. In our example, it should be <a href=\"https:\/\/sts.windows.net\/TenantId\">https:\/\/sts.windows.net\/TenantId<\/a><\/p>\n<p style=\"margin-left:.5in;\">c)\u00a0\u00a0\u00a0\u00a0 The third circle will contain a valid token audience.<\/p>\n<p style=\"margin-left:.5in;\">\u201cfunctionURL\/auth\/login\/aad\/callback\u201d<\/p>\n<p><strong>Register another app in Azure AAD for the PowerApps custom connector:\u00a0<\/strong><\/p>\n<p>To secure the PowersApps Custom Connector with AAD, we need to register a second App in AAD so that the users within the organization can use their credentials to connect with Powerapp.\u00a0 Here, I am naming second AAD as <strong>MYADDAPI. <\/strong>The first AAD created earlier needs to have redirect permission in second AAD (<strong>MYADDAPI<\/strong>).<\/p>\n<p>In second AAD app, we need to add below reply URL<\/p>\n<ul>\n<li><a href=\"https:\/\/msmanaged-na.consent.azure-apim.net\/redirect\">https:\/\/msmanaged-na.consent.azure-apim.net\/redirect<\/a><\/li>\n<li><a href=\"https:\/\/login.windows.net\/\">https:\/\/login.windows.net<\/a><\/li>\n<li>Function app Host URL\/.auth\/login\/aad\/callback<\/li>\n<\/ul>\n<p>We need to enable Authentication in our custom Function App if we are trying to use it for PowerApps.<br \/>\n\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/powerusers.microsoft.com\/t5\/image\/serverpage\/image-id\/41124i006C080A03F8575C\/image-size\/large\/is-moderation-mode\/true?v=1.0&amp;px=999\" style=\"width: 563px; height: 809px;\"\/><\/p>\n<p>In above UI we need to select \u201cLog in with Azure Active Directory\u201d to configure external redirect URL from PowerApp-&gt; Custom Connector -&gt; Security -&gt; Redirect URL (this field is auto-populated in power app custom connectors).<\/p>\n<p>To configure AAD authentication we have to provide valid \u201cClientId\u201d, \u201cIssuer Url\u201d as mentioned below.<br \/>\n\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/powerusers.microsoft.com\/t5\/image\/serverpage\/image-id\/41128iCB69F8A7DFF4011B\/image-size\/large\/is-moderation-mode\/true?v=1.0&amp;px=999\" style=\"width: 999px; height: 744px;\"\/><br \/>\nThis complete all the required settings in the Azure Portal. Now the next set of steps are to create and configure PowerApps custom connector and use it inside our Inventory PowerApps app.\u00a0 \u00a0\u00a0<\/p>\n<p><strong>In PowerApps creating custom connectors in Data sections:<\/strong><\/p>\n<p>Now I am going to create a custom connector and connection which uses various operations to provide data into the application.\u00a0<\/p>\n<p>PowerApps custom connectors come with a default wizard to create and configure custom connectors. You can refer to <a href=\"https:\/\/docs.microsoft.com\/en-us\/connectors\/custom-connectors\/define-blank\" target=\"_blank\" rel=\"noopener\">this documentation article for reference<\/a>.<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/powerusers.microsoft.com\/t5\/image\/serverpage\/image-id\/41131iA00E038A987CAFFE\/image-size\/large\/is-moderation-mode\/true?v=1.0&amp;px=999\" style=\"width: 999px; height: 738px;\"\/><\/p>\n<p>In custom connector general section, we need to provide a Host URL. The Host URL provided here will be used to retrieve data from API.<\/p>\n<p>Under the security tab, we need to configure App ID of first AAD (<strong>MYADD<\/strong>) and second AAD (<strong>MYAAD<\/strong>) as indicated in below screenshot.<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/powerusers.microsoft.com\/t5\/image\/serverpage\/image-id\/41127i768926F1867EF0A2\/image-size\/large\/is-moderation-mode\/true?v=1.0&amp;px=999\" style=\"width: 999px; height: 499px;\"\/><\/p>\n<p>\nThe next step is to add\/validate the operations. To add a new operation, go to the \u201cDefinition\u201d tab and follow the instructions as mentioned in UI. There are few operations listed under the left side; we can provide description and summary of respective operation on the highlighted area.<br \/>\n\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/powerusers.microsoft.com\/t5\/image\/serverpage\/image-id\/42819i87B22917761674BC\/image-size\/large\/is-moderation-mode\/true?v=1.0&amp;px=999\" style=\"width: 999px; height: 539px;\"\/><\/p>\n<p>\u00a0<\/p>\n<p>We can test each of the operation listed above to verify the JSON output. In order to run the Test operation, a valid connection needs to be created and we can do that via \u201cNew Connection\u201d link mentioned below<\/p>\n<p>\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/powerusers.microsoft.com\/t5\/image\/serverpage\/image-id\/42820i738536927A66AF92\/image-size\/large\/is-moderation-mode\/true?v=1.0&amp;px=999\" style=\"width: 998px; height: 540px;\"\/><br \/>\n\u00a0<\/p>\n<p>To view the result of \u201cdisplayfunc \u201coperation one has to select the desired operation from left-hand side and click Test operation button. Clicking the Test Operation button uses a custom connector to retrieve the data from selected operation endpoint.\u00a0\u00a0<br \/>\n\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/powerusers.microsoft.com\/t5\/image\/serverpage\/image-id\/42821i4CDFAC8EBCDF24BE\/image-size\/large\/is-moderation-mode\/true?v=1.0&amp;px=999\" style=\"width: 998px; height: 664px;\"\/><\/p>\n<p>\u00a0<\/p>\n<p>Above UI shows 200 status on \u201cdisplayfunc\u201d operation. I personally see Test UI which is out of the box from Powerapp as useful to verify the output. It\u2019s always useful to verify the preview of operation output under this tab rather directly using it inside PowerApps.<\/p>\n<p>We can use the connectors mentioned above for controls\u00a0data binding within the application.<\/p>\n<p>\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/powerusers.microsoft.com\/t5\/image\/serverpage\/image-id\/42823i93F3D3092E41E531\/image-size\/large\/is-moderation-mode\/true?v=1.0&amp;px=999\" style=\"width: 999px; height: 66px;\"\/><\/p>\n<p>\u00a0<\/p>\n<p>Once connectors are created it will be visible inside PowerApps-&gt; data -&gt; Custom Connectors like above.<\/p>\n<p>At this stage, all the perquisites to use custom connectors inside an app is done. Now next step is to create an app and use these connectors. Here I am using a Canvas type app to create our first Inventory application (Tablet type). By default, the power app provides two types of Canvas app (Mobile and Tablet type).<\/p>\n<p>App creation is just like a drag and drop. In below sample on \u201cOnVisible\u201d event, I wrote below syntax<br \/>\n\u00a0<\/p>\n<p><strong>ClearCollect(inventorydata,InventoryWeb.displayfunc())<\/strong><\/p>\n<p>\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/powerusers.microsoft.com\/t5\/image\/serverpage\/image-id\/42827iF5223CCBAC785B15\/image-size\/large\/is-moderation-mode\/true?v=1.0&amp;px=999\" style=\"width: 999px; height: 602px;\"\/><br \/>\n\u00a0<\/p>\n<p>Above command syntax will invoke \u201cdisplayfunc\u201d operations using custom connectors and stores the result into collection \u201cinventorydata\u201d. This gets initiated on screen load for the very first time and we can use this collection in UI wherever required.\u00a0\u00a0<br style='color: rgb(67, 67, 67); font-family: Tahoma, \"Helvetica Neue\", Arial, Helvetica, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255);'\/><br \/>\n\u200b<br style='color: rgb(67, 67, 67); font-family: Tahoma, \"Helvetica Neue\", Arial, Helvetica, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255);'\/><br \/>\nI am using this collection created above to bind the DataGrid to display the inventory list. I also need a function to provide a crud operation where the user can provide inventory details like Item No, name, price etc. and it should get added to DataGrid mentioned below.\u00a0To achieve this, I have placed few input controls and command button \u201cAdd Inventory\u201d and on \u201cOnSelect\u201d event of the command button, I have placed below code.<\/p>\n<p><strong>InventoryWeb.addfunc({itemtitle:txtItemTitle.Text,price:txtItemPrice.Text,quantity:txtQuantity.Text,description:txtItemDescription.Text});ClearCollect(inventorydata,InventoryWeb.displayfunc())<\/strong><\/p>\n<p>\u00a0<\/br><\/br><\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2024\/06\/NewImage9.0&amp;px=999\" style=\"font-style: normal; font-weight: 400; background-color: transparent; border-style: none; border-color: rgb(67, 67, 67); font-size: 13px; font-variant-numeric: normal; font-variant-east-asian: normal; height: 521px; outline-style: none; width: 999px;\"\/><\/p>\n<p>\u00a0<\/p>\n<p style=\"margin-top:9.0pt;margin-right:0in;margin-bottom:9.0pt;margin-left:\n0in;background:white\">This function calls \u201caddfunc\u201d operation and inserts input controls values into a storage table. There is also a ClearCollect command just after add operation to display the recent changes into DataGrid. After placing all the required controls, we can save the screen and deploy an app to the desired environment. Power app supports multiple environments and one can easily switch and swap between environment. I will recommend any app development first to happen in a dev environment to observe and verify the changes. Once tested we can copy and deploy the app to a \u201cPROD\u201d equivalent environment. This will be the right process for any app development using Powerapp, it will help us to keep track of past changes on App. We can any time restore to any selected version.\u00a0<\/p>\n<p style=\"margin:0in;margin-bottom:.0001pt;line-height:14.9pt;background:white;\nvertical-align:baseline;box-sizing: inherit;font-variant-ligatures: normal;\nfont-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px;\ntext-decoration-style: initial;text-decoration-color: initial;word-spacing:\n0px\">PowerApps is a powerful platform to build applications quickly by connecting to multiple data sources. It also provides an <a href=\"https:\/\/powerapps.microsoft.com\/en-us\/blog\/new-app-checker-helps-you-fix-errors-and-make-accessible-apps\/\" target=\"_blank\" rel=\"noopener\">App Checker feature<\/a> to fix all the accessibility-related issues. Refer <a href=\"http:\/\/www.w3.org\/WAI\/fundamentals\/accessibility-intro\/\" target=\"_blank\" rel=\"noopener\">this article to learn more about accessibility<\/a>.<\/p>\n<p style=\"margin:0in;margin-bottom:.0001pt;line-height:14.9pt;vertical-align:\nbaseline\">\u00a0<\/p>\n<p>\u200b<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/powerusers.microsoft.com\/t5\/image\/serverpage\/image-id\/42826i332855ECB8738624\/image-size\/large\/is-moderation-mode\/true?v=1.0&amp;px=999\" style=\"width: 999px; height: 503px;\"\/><\/p>\n<p>\nBelow is the final output of Inventory application. In this sample, underlying foundations are the Azure function which makes it cost effective.<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/powerusers.microsoft.com\/t5\/image\/serverpage\/image-id\/42825iE9C99CE3925ABBAC\/image-size\/large\/is-moderation-mode\/true?v=1.0&amp;px=999\" style=\"width: 999px; height: 464px;\"\/><\/p>\n<p style=\"margin-top:0in;margin-right:0in;margin-bottom:9.75pt;margin-left:\n0in;line-height:14.9pt;vertical-align:baseline\">Using custom connectors, we can migrate REST API based\u00a0legacy applications to the Powerapps platform. Using PowerApps we can create a wide variety of Applications targeting cross-platform devices which can use rich controls. The application developer doesn&#8217;t require any specific coding skills to create a business app.\u00a0<\/p>\n<p style=\"margin-top:0in;margin-right:0in;margin-bottom:9.75pt;margin-left:\n0in;line-height:14.9pt;vertical-align:baseline\">I hope this blog post helps the community replicate similar patterns in their organizations and reap the benefits of a serverless design for moving legacy apps to the cloud.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Read this blog post to create a sample PowerApps canvas app which uses an Azure function along with Azure Table Storage via custom connectors protected by Azure AD<\/p>\n","protected":false},"author":84,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"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":[],"coauthors":[2043],"class_list":["post-5","post","type-post","status-publish","format-standard","hentry","audience-it-professional","content-type-tips-and-guides","product-power-apps"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Create Business Apps using PowerApps and Azure Functions - 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:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/28\/create-business-apps-using-powerapps-and-azure-functions\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create Business Apps using PowerApps and Azure Functions - Microsoft Power Platform Blog\" \/>\n<meta property=\"og:description\" content=\"Read this blog post to create a sample PowerApps canvas app which uses an Azure function along with Azure Table Storage via custom connectors protected by Azure AD\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/create-business-apps-using-powerapps-and-azure-functions\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Power Platform Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-11-28T11:38:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-11T15:06:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2018\/11\/architecture.png\" \/>\n<meta name=\"author\" content=\"Santosh Kumar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Santosh Kumar\" \/>\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:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/11\\\/28\\\/create-business-apps-using-powerapps-and-azure-functions\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/11\\\/28\\\/create-business-apps-using-powerapps-and-azure-functions\\\/\"},\"author\":[{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/author\\\/santosh-kumar\\\/\",\"@type\":\"Person\",\"@name\":\"Santosh Kumar\"}],\"headline\":\"Create Business Apps using PowerApps and Azure Functions\",\"datePublished\":\"2018-11-28T11:38:59+00:00\",\"dateModified\":\"2025-06-11T15:06:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/11\\\/28\\\/create-business-apps-using-powerapps-and-azure-functions\\\/\"},\"wordCount\":1705,\"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\\\/2018\\\/11\\\/28\\\/create-business-apps-using-powerapps-and-azure-functions\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/11\\\/architecture.png\",\"keywords\":[\"Code first\",\"Connectors\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/11\\\/28\\\/create-business-apps-using-powerapps-and-azure-functions\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/11\\\/28\\\/create-business-apps-using-powerapps-and-azure-functions\\\/\",\"url\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/11\\\/28\\\/create-business-apps-using-powerapps-and-azure-functions\\\/\",\"name\":\"Create Business Apps using PowerApps and Azure Functions - 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\\\/2018\\\/11\\\/28\\\/create-business-apps-using-powerapps-and-azure-functions\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/11\\\/28\\\/create-business-apps-using-powerapps-and-azure-functions\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/11\\\/architecture.png\",\"datePublished\":\"2018-11-28T11:38:59+00:00\",\"dateModified\":\"2025-06-11T15:06:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/11\\\/28\\\/create-business-apps-using-powerapps-and-azure-functions\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/11\\\/28\\\/create-business-apps-using-powerapps-and-azure-functions\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/11\\\/28\\\/create-business-apps-using-powerapps-and-azure-functions\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/11\\\/architecture.webp\",\"contentUrl\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/11\\\/architecture.webp\",\"width\":1140,\"height\":720,\"caption\":\"diagram\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/2018\\\/11\\\/28\\\/create-business-apps-using-powerapps-and-azure-functions\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create Business Apps using PowerApps and Azure Functions\"}]},{\"@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\\\/29033b126a95198bb5b98fb3d2ab12f8\",\"name\":\"Santosh Kumar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4372e3712ab83f8dbe64e321a7c1f93bc027036b54928f08d8ee035d3cccbc75?s=96&d=mm&r=g5fcd4d57ead202aca40b52ade2f504d7\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4372e3712ab83f8dbe64e321a7c1f93bc027036b54928f08d8ee035d3cccbc75?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4372e3712ab83f8dbe64e321a7c1f93bc027036b54928f08d8ee035d3cccbc75?s=96&d=mm&r=g\",\"caption\":\"Santosh Kumar\"},\"url\":\"https:\\\/\\\/cm-edgetun.pages.dev\\\/en-us\\\/power-platform\\\/blog\\\/author\\\/sasinha\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Create Business Apps using PowerApps and Azure Functions - 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:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/28\/create-business-apps-using-powerapps-and-azure-functions\/","og_locale":"en_US","og_type":"article","og_title":"Create Business Apps using PowerApps and Azure Functions - Microsoft Power Platform Blog","og_description":"Read this blog post to create a sample PowerApps canvas app which uses an Azure function along with Azure Table Storage via custom connectors protected by Azure AD","og_url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/create-business-apps-using-powerapps-and-azure-functions\/","og_site_name":"Microsoft Power Platform Blog","article_published_time":"2018-11-28T11:38:59+00:00","article_modified_time":"2025-06-11T15:06:03+00:00","og_image":[{"url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2018\/11\/architecture.png","type":"","width":"","height":""}],"author":"Santosh Kumar","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Santosh Kumar","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/28\/create-business-apps-using-powerapps-and-azure-functions\/#article","isPartOf":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/28\/create-business-apps-using-powerapps-and-azure-functions\/"},"author":[{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/santosh-kumar\/","@type":"Person","@name":"Santosh Kumar"}],"headline":"Create Business Apps using PowerApps and Azure Functions","datePublished":"2018-11-28T11:38:59+00:00","dateModified":"2025-06-11T15:06:03+00:00","mainEntityOfPage":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/28\/create-business-apps-using-powerapps-and-azure-functions\/"},"wordCount":1705,"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\/2018\/11\/28\/create-business-apps-using-powerapps-and-azure-functions\/#primaryimage"},"thumbnailUrl":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2018\/11\/architecture.png","keywords":["Code first","Connectors"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/28\/create-business-apps-using-powerapps-and-azure-functions\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/28\/create-business-apps-using-powerapps-and-azure-functions\/","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/28\/create-business-apps-using-powerapps-and-azure-functions\/","name":"Create Business Apps using PowerApps and Azure Functions - 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\/2018\/11\/28\/create-business-apps-using-powerapps-and-azure-functions\/#primaryimage"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/28\/create-business-apps-using-powerapps-and-azure-functions\/#primaryimage"},"thumbnailUrl":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2018\/11\/architecture.png","datePublished":"2018-11-28T11:38:59+00:00","dateModified":"2025-06-11T15:06:03+00:00","breadcrumb":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/28\/create-business-apps-using-powerapps-and-azure-functions\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/28\/create-business-apps-using-powerapps-and-azure-functions\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/28\/create-business-apps-using-powerapps-and-azure-functions\/#primaryimage","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2018\/11\/architecture.webp","contentUrl":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2018\/11\/architecture.webp","width":1140,"height":720,"caption":"diagram"},{"@type":"BreadcrumbList","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/28\/create-business-apps-using-powerapps-and-azure-functions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/"},{"@type":"ListItem","position":2,"name":"Create Business Apps using PowerApps and Azure Functions"}]},{"@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\/29033b126a95198bb5b98fb3d2ab12f8","name":"Santosh Kumar","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4372e3712ab83f8dbe64e321a7c1f93bc027036b54928f08d8ee035d3cccbc75?s=96&d=mm&r=g5fcd4d57ead202aca40b52ade2f504d7","url":"https:\/\/secure.gravatar.com\/avatar\/4372e3712ab83f8dbe64e321a7c1f93bc027036b54928f08d8ee035d3cccbc75?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4372e3712ab83f8dbe64e321a7c1f93bc027036b54928f08d8ee035d3cccbc75?s=96&d=mm&r=g","caption":"Santosh Kumar"},"url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/sasinha\/"}]}},"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\/5","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\/84"}],"replies":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/comments?post=5"}],"version-history":[{"count":4,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/5\/revisions"}],"predecessor-version":[{"id":124350,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/5\/revisions\/124350"}],"wp:attachment":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/media?parent=5"}],"wp:term":[{"taxonomy":"audience","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/audience?post=5"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/content-type?post=5"},{"taxonomy":"job-role","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/job-role?post=5"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/product?post=5"},{"taxonomy":"property","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/property?post=5"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/topic?post=5"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/coauthors?post=5"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}