{"id":90557,"date":"2021-04-15T19:25:50","date_gmt":"2021-04-15T19:25:50","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/?p=90557"},"modified":"2022-04-24T21:28:15","modified_gmt":"2022-04-24T21:28:15","slug":"automating-azure-devops-logic-apps","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/devops\/tools\/automating-azure-devops-logic-apps\/","title":{"rendered":"Automating Azure DevOps with Logic Apps"},"content":{"rendered":"<p>The Azure DevOps Services is a cloud offering that offers a quick way for project managers, developers, and infrastructure engineers to set up their project foundation.<\/p>\n<p>The Azure DevOps core services include three components:<\/p>\n<ul>\n<li>Azure Boards, which include native support for Scrum and Kanban, aims to help project managers plan, track, and collaborate work across teams.<\/li>\n<li>Azure Pipelines to support continuous integration (CI) and continuous delivery (CD) while building, testing, and deploying infrastructure and apps artifacts to any cloud platform.<\/li>\n<li>Azure Repos, which offer a cloud-hosted private Git repository for version control.<\/li>\n<\/ul>\n<p>Azure Logic Apps is a cloud service to help you schedule, automate, and orchestrate tasks and workflows between apps and across enterprises and organizations. A Logic App can be built using the Azure portal, or infrastructure as code.<\/p>\n<p>By the end of this article, you will have a good understanding of leveraging a Logic App for Azure DevOps to automate the create of work items, in addition to creating an automated approval-based workflow using Office 365.<\/p>\n<h2>The workflow<\/h2>\n<p>Throughout this article, assume a SCRUM master is leading a team of developers to build cloud applications. As user stories are added, several tasks will be created automatically. Once approved by the product owner, the user story will be moved to the development backlog.<\/p>\n<p>Developers have access to a Dev Team area path where they pick the approved user stories to develop and build.<\/p>\n<p>The workflow will look Figure 1:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1255\" height=\"823\" class=\"wp-image-90558\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/the-automated-workflow-via-logic-app.png\" alt=\"The automated workflow via Logic App\" \/><\/p>\n<p class=\"caption\">Figure 1: the workflow context<\/p>\n<p>The orange squares will be automated using a Logic App and Office 365 approval workflow.<\/p>\n<h2>Azure DevOps Project<\/h2>\n<p>To get started, you need to have a project in Azure DevOps. If you already have one, feel free to skip the next two steps.<\/p>\n<p>Go to <a href=\"https:\/\/dev.azure.com\">https:\/\/dev.azure.com<\/a> and sign in using your account.\u00a0Click <em>New Project<\/em> as shown below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1429\" height=\"205\" class=\"wp-image-90559\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-description-automaticall.jpeg\" alt=\"Graphical user interface\n\nDescription automatically generated with low confidence\" \/><\/p>\n<p class=\"caption\">Figure 2: Create a new Azure DevOps project<\/p>\n<p>On the <em>Create New Project<\/em> page, type the name of the project, fill in the description, select the visibility type, select <em>Agile<\/em> under <em>Work<\/em> <em>Item<\/em> <em>Process<\/em>, and click <em>Create<\/em>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90560\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-application-description.jpeg\" alt=\"The DevOps project\" width=\"1290\" height=\"1171\" \/><\/p>\n<p class=\"caption\">Figure 3: The DevOps project<\/p>\n<h2>Creating the Logic App<\/h2>\n<p>Now that you have created the project in Azure DevOps, sign into Azure Portal.\u00a0From your designated resource group under your Azure subscription, click <em>Add<\/em> as shown in Figure 4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90561\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/figure-1-resource-group.jpeg\" alt=\"Resource Group to add a Logic App\" width=\"1308\" height=\"910\" \/><\/p>\n<p class=\"caption\">Figure 4: Resource Group to add a Logic App<\/p>\n<p>In the search box, type <em>Logic<\/em> <em>App<\/em> and select the one shown in Figure 5.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90562\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/figure-2-select-microsoft-logic-app.png\" alt=\"Select Microsoft Logic App\" width=\"989\" height=\"915\" \/><\/p>\n<p class=\"caption\">Figure 5: Select Microsoft Logic App<\/p>\n<p>Click <em>Create<\/em>, and then provide a name for the Logic App to create as shown in Figure 6:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90563\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-application-description.png\" alt=\"Provide a Logic App name\" width=\"1341\" height=\"1823\" \/><\/p>\n<p class=\"caption\">Figure 6: Provide a Logic App name<\/p>\n<p>Click <em>Review + create<\/em>, then create to deploy the Logic App in your subscription.\u00a0Validate that your deployment is successfully deployed:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90564\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-text-application-descr.png\" alt=\"Validate Logic App is successfully deployed\" width=\"1172\" height=\"760\" \/><\/p>\n<p class=\"caption\">Figure 7: Validate Logic App is successfully deployed<\/p>\n<p>Open the Logic App, click on the <em>Logic App designer<\/em>, and click <em>Blank Logic App<\/em>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90565\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-description-automaticall.png\" alt=\"Select Blank Logic App\" width=\"1108\" height=\"879\" \/><\/p>\n<p class=\"caption\">Figure 8: Select Blank Logic App<\/p>\n<p>A list of all Logic Apps connectors can be found <a href=\"https:\/\/docs.microsoft.com\/en-us\/connectors\/connector-reference\/connector-reference-logicapps-connectors\">here<\/a>.\u00a0In the search connectors and triggers field, type <em>DevOps<\/em>, and select <em>Azure<\/em> <em>DevOps<\/em>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90566\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-application-description-1.png\" alt=\"Select Azure DevOps\" width=\"508\" height=\"448\" \/><\/p>\n<p class=\"caption\">Figure 9: Select Azure DevOps<\/p>\n<p>The Azure DevOps connector is available in all the Logic Apps region <a href=\"https:\/\/azure.microsoft.com\/en-us\/global-infrastructure\/services\/?products=logic-apps&amp;regions=all\">here<\/a> except for the Azure China regions. To use the integration, you will need access to a Visual Studio Team Services account with API access enabled.\u00a0From the <em>Triggers<\/em> list, select <em>When a work item is created<\/em>, and click <em>Sign<\/em> <em>in<\/em> to authenticate to your DevOps Project:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90567\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-funnel-chart-descriptio.png\" alt=\"Sign into your DevOps project\" width=\"1124\" height=\"284\" \/><\/p>\n<p class=\"caption\">Figure 10: Sign into your DevOps project\u00a0<\/p>\n<p>Click <em>Accept<\/em> to grant authorization for the Logic App to access your DevOps item fields:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90568\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-text-application-email.jpeg\" alt=\"Grant access to the Logic App into DevOps\" width=\"1019\" height=\"1178\" \/><\/p>\n<p class=\"caption\">Figure 11: Grant access to the Logic App into DevOps<\/p>\n<p>If you\u2019re not seeing the list of projects you\u2019re expecting, check the account, make sure it has access, and try again.\u00a0The Azure DevOps connector is designed to work on behalf of the current user credentials only, and it\u2019s not possible to change the connection or switch between accounts.\u00a0The first step is to configure a trigger when a new <em>User<\/em> <em>Story<\/em> is created in the Azure DevOps project. The trigger will run every 1 minute as shown below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90569\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-text-application-email-1.jpeg\" alt=\"Configure User Story trigger\" width=\"1086\" height=\"819\" \/><\/p>\n<p class=\"caption\">Figure 12: Configure User Story trigger<\/p>\n<p>Next, you will create a conditional statement to control the workflow actions based on the User Story title.\u00a0Click the <em>+ New step<\/em> to add a new action. Select the Built-in tab and search for <em>Control<\/em><strong>. <\/strong>From the Actions tab, select <em>Condition<\/em>. In the condition box, select the <em>And<\/em> operator, insert <em>Title<\/em>, choose contains <em>Project<\/em> <em>Cloud<\/em>.\u00a0The above step will filter any newly created user story with a title of <em>Project<\/em> <em>Cloud<\/em>.<\/p>\n<p>The condition statement should look like Figure 13.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90570\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-application-description-2.png\" alt=\"The condition statement\" width=\"506\" height=\"285\" \/><\/p>\n<p class=\"caption\">Figure 13: The condition statement<\/p>\n<p>Under True condition, click to <em>add an action<\/em>, search for DevOps, and select <em>Create a work item<\/em> from the actions list.<\/p>\n<p>Select the <em>Organization<\/em> <em>Name<\/em>, the <em>Project<\/em> <em>Name<\/em> and the <em>Work<\/em> <em>Item<\/em> <em>Type<\/em>. In the <em>Title<\/em> field, add Title as a dynamic content to be followed by the designated Task Title. Adding the dynamic content will ensure each created task will start by its parent title and followed by its own title. Add task description in the <em>Description<\/em> field. Select Add new parameter and check <em>Link<\/em> <em>Type<\/em> and <em>Link<\/em> <em>URL<\/em>. On the Link Type, select <em>Hierarchy-reverse<\/em> to attach the task as a child to the newly created user story. In the <em>Link<\/em> <em>URL<\/em>, select URL as dynamic content to add the task URL. The <em>Create a work item<\/em> action should look like Figure 14.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90571\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-text-application-email.png\" alt=\"Create a work item\" width=\"549\" height=\"351\" \/><\/p>\n<p class=\"caption\">Figure 14: Create a work item<\/p>\n<p>You can add as many work items as needed and to make sure they are linked as child items to the user story, select the URL under <em>When a work item is created<\/em> section.\u00a0Under the <em>False<\/em> condition, click to add <em>Terminate<\/em> under <em>Actions<\/em>.<\/p>\n<p>The condition statement should look like the below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90572\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-application-description-3.png\" alt=\"Condition statement configuration\" width=\"1317\" height=\"860\" \/><\/p>\n<p class=\"caption\">Figure 15: Condition statement configuration<\/p>\n<h2>Testing the work item creation<\/h2>\n<p>It\u2019s a good practice to try your Logic App on an incremental basis. That approach will help you test and fix your errors before moving forward with additional steps.\u00a0Save the Logic App by clicking on the Save button on the Azure Portal and browse to your Azure DevOps Project.\u00a0Under <em>Boards<\/em>, click <em>Work<\/em> <em>Items<\/em>, and click the arrow button to create a new <em>User<\/em> <em>Story<\/em> item:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90573\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-application-word-teams.jpeg\" alt=\"User Story Creation\" width=\"616\" height=\"291\" \/><\/p>\n<p class=\"caption\">Figure 16: User Story Creation<\/p>\n<p>Fill in the details of the <em>User<\/em> <em>Story<\/em> and click Save (It\u2019s a good practice to decide on a naming convention ahead of time for consistency). In this example, the Logic App will trigger the actions when a User Story title contains <em>Project<\/em> <em>Cloud<\/em>. Wait for 1 minute and hit refresh. You should see the creation of the new task item as designed and configured in the Logic App above. The task item details should look like the below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90574\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-application-email-team.jpeg\" alt=\"Validate the automation of child task items\" width=\"1288\" height=\"726\" \/><\/p>\n<p class=\"caption\">Figure 17: Validate the automation of child task items<\/p>\n<p>After clicking the child item, it should look like Figure 18.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90575\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-text-application-teams.png\" alt=\"Task Item details\" width=\"2284\" height=\"1090\" \/><\/p>\n<p class=\"caption\">Figure 18: Task Item details<\/p>\n<h2>Setting up validation email<\/h2>\n<p>In the next steps, you will send out an email to the product owner and leverage the approval-based workflow to approve or reject the addition of the user story scope.\u00a0To to ensure that the process gets applied to every user story, you need to create a <em>Foreach<\/em> loop. By default, iterations in the loop run at the same time, or in parallel. This behavior can be changed to sequential iterations from the settings of the <em>Foreach<\/em> action if desired.\u00a0The loop works only on arrays, and hence needs to initialize and append the filtered user story id to an array prior to the <em>Foreach<\/em> loop.<\/p>\n<p>Go back to the Logic App designer. To add a <em>Foreach<\/em> loop, click the <em>+ New Step<\/em> and click Add an action.\u00a0Search for variables, and under Actions click <em>Initialize<\/em> <em>variable<\/em><strong>. <\/strong>Provide a name for the variable and select <em>Array<\/em> for its <em>Type<\/em>. Add another action like the above but select <em>Append<\/em> to array variable. Select the initialized variable and on the <em>Value<\/em> field, select the <em>Id<\/em> from the dynamic box<em> When a work item is created<\/em>.<\/p>\n<p>The variable should look like Figure 19 below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90576\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-text-application-email-1.png\" alt=\"Configure array variable\" width=\"909\" height=\"516\" \/><\/p>\n<p class=\"caption\">Figure 19: Configure array variable<\/p>\n<p>Click to add an action, and select <em>For<\/em> <em>Each<\/em> under <em>Control<\/em> <em>Built<\/em> <em>in<\/em>.\u00a0In the <em>Select an output from previous steps<\/em> field, select the variable <em>UserStoryTaskId.\u00a0<\/em>Select to add an action, and under Office 365 Outlook, choose <em>Send<\/em> <em>approval<\/em> <em>email<\/em><strong>. <\/strong>You may be asked to log in to an Office365 account.\u00a0Select <em>Add new parameter<\/em> and choose <em>Body<\/em> and other options as desired.\u00a0Fill in the details as needed.<\/p>\n<p>The send approval email action should look like the figure below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90577\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-text-application-email-2.jpeg\" alt=\"Configure For each statement\" width=\"946\" height=\"763\" \/><\/p>\n<p class=\"caption\">Figure 20: Configure For each statement<\/p>\n<p>The office 365 Outlook connector is available in all Logic Apps regions <a href=\"https:\/\/azure.microsoft.com\/en-us\/global-infrastructure\/services\/?products=logic-apps&amp;regions=all\">here<\/a>.\u00a0The send approval email operation sends an approval email and waits for a response from the recipient. As a prerequisite, you\u2019d need an email account from an email provider that\u2019s supported by Logic Apps, such as Office 365 Outlook, Outlook.com or Gmail. You can review the connector list <a href=\"https:\/\/docs.microsoft.com\/en-us\/connectors\/\">here<\/a>.<\/p>\n<p>The approval workflow requires an email account in Office 365 Outlook or Outlook.com. A more detailed list of requirements can be found <a href=\"https:\/\/docs.microsoft.com\/en-us\/outlook\/actionable-messages\/#outlook-version-requirements-for-actionable-messages\">here<\/a>.<\/p>\n<p>Once the email is delivered to the product owner, the user story and its child tasks could either be approved or rejected. If the request is approved, the parent work item will move to a different area path <em>Dev<\/em> <em>Team<\/em> which makes it visible to the developers\u2019 team.\u00a0An area path is defined at the project level and leveraged to determine what shows up on the team\u2019s backlog. Do not get confused between the area and the iteration paths.\u00a0 The area path allows you to group work items by team, product, or feature area. Iteration or sprint paths allow you to group work into sprints, milestones, or other time-specific events.<\/p>\n<p>In this example, a Dev Team area path was created with proper permissions to the Dev Team group. Any work item in that area path would become the responsibility of the Dev Team.\u00a0To create an area path, go to <em>project<\/em> <em>settings<\/em> in Azure DevOps project, select <em>Project<\/em> <em>configuration<\/em>, and select <em>Areas<\/em>.<\/p>\n<p>Select <em>new<\/em> <em>child<\/em>, and name the area as shown in Figure 21.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90578\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-application-description-4.png\" alt=\"Configure Area path\" width=\"825\" height=\"1760\" \/><\/p>\n<p class=\"caption\">Figure 21: Configure Area path<\/p>\n<p>You can create a hierarchy of area paths to support sub-areas, up to 14 levels deep.\u00a0To set the security for the Area, click on <em>Team<\/em> <em>Configuration<\/em> and select <em>Areas<\/em>.\u00a0Select the area, hit the <em>\u2026<\/em>, and click <em>Security<\/em>. Set the proper permissions as desired.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1310\" height=\"411\" class=\"wp-image-90579\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-text-application-descr-1.png\" alt=\"Graphical user interface, text, application\n\nDescription automatically generated\" \/><\/p>\n<p class=\"caption\">Figure 22: configure area path security<\/p>\n<p>Once done with the areas, switch back to the Logic App.\u00a0Add a condition statement after the <em>Send<\/em> <em>approval<\/em> <em>email<\/em> by adding a new action to the <em>For<\/em> <em>each<\/em> loop.\u00a0Chose <em>And<\/em> operator with the <em>Selected<\/em> <em>Option<\/em> to be equal to <em>Approve<\/em>.<\/p>\n<p>The condition statement should look like the figure below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90580\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/table-description-automatically-generated.png\" alt=\" Configure Condition statement\" width=\"924\" height=\"296\" \/><\/p>\n<p class=\"caption\">Figure 23: Configure Condition statement<\/p>\n<p>If the condition is true, click a DevOps action and select <em>Update<\/em> <em>a work item<\/em>.\u00a0Fill in the details and select Id from <em>When a work item is created<\/em>.\u00a0Click <em>Add new parameter<\/em>, select <em>Area<\/em> <em>Path<\/em> and type the desired area path.<\/p>\n<p>In this example, the <em>True<\/em> condition look like the figure below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90581\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-text-application-email-3.jpeg\" alt=\"Configure True condition\" width=\"950\" height=\"630\" \/><\/p>\n<p class=\"caption\">Figure 24: Configure True condition<\/p>\n<p>Make sure to save your Logic App.<\/p>\n<h2>Testing the automated email<\/h2>\n<p>In the Azure DevOps project, create a new user story with the title <em>Project Cloud \u2013 Business System 5<\/em>. Child tasks should be created in a minute as configured above. An email will be sent and should look like the following:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90582\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-text-application-email-2.png\" alt=\"Approval email from automating Azure DevOps with Logic Apps\" width=\"1336\" height=\"879\" \/><\/p>\n<p class=\"caption\">Figure 25: Approval email<\/p>\n<p><em>Under<\/em> <em>Request<\/em> for your input, click <em>Approve<\/em>. You should see the following confirmation, along with the updated area path:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1429\" height=\"405\" class=\"wp-image-90583\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-application-description-5.png\" alt=\"Graphical user interface, application\n\nDescription automatically generated\" \/><\/p>\n<p class=\"caption\">Figure 26: Approval email response confirmation<\/p>\n<p>Go back and take a look at the original user story. You can now see the area has been updated.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90584\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-application-word-descr.png\" alt=\"Area path update\" width=\"1157\" height=\"436\" \/><\/p>\n<p class=\"caption\">Figure 27: Area path update<\/p>\n<h2>Completing the Logic App<\/h2>\n<p>Once you\u2019re happy with the Logic App, and it\u2019s working as expected, you can rename the actions to more meaningful terms. This will help you and others better understand the actions you\u2019ve configured. To do so, click on the <em>\u2026<\/em> of the action you want to rename, and click <em>Rename<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90585\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/background-pattern-description-automatically-gene.png\" alt=\"Rename Logic App action\" width=\"1202\" height=\"181\" \/><\/p>\n<p class=\"caption\">Figure 28: Rename Logic App action<\/p>\n<p>In this example, I renamed the Logic App actions to look like the below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90586\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/diagram-description-automatically-generated.png\" alt=\"Logic App actions renamed\" width=\"923\" height=\"517\" \/><\/p>\n<p class=\"caption\">Figure 29: Logic App actions renamed<\/p>\n<p>In case you were having issues running your Logic App, click the Overview section. From the right-hand side of the screen, select Runs history and click to select an item to view its status:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90587\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-text-application-email-3.png\" alt=\"View Logic App status\" width=\"1932\" height=\"794\" \/><\/p>\n<p class=\"caption\">Figure 30: View Logic App status<\/p>\n<p>When the Logic App run window opens, click Run details to view the details of each task. From there, you should be able to troubleshoot which action has failed, succeeded, or got skipped.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90588\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/04\/graphical-user-interface-application-description-1.jpeg\" alt=\"Graphical user interface, application\n\nDescription automatically generated\" width=\"1430\" height=\"827\" \/><\/p>\n<p class=\"caption\">Figure 31: Troubleshoot Logic App<\/p>\n<h2>Using Logic Apps to automate Azure DevOps<\/h2>\n<p>As you\u2019ve seen in this article, you won\u2019t need any code or programming skills to build automation between Azure DevOps and Office 365 Outlook. The automation described in this article allowed you to follow a consistent approach to create child work item tasks based on a specific criterion and getting user stories formerly approved by the product owner and delivered to the developers without any interaction from the project manager.<\/p>\n<p>It&#8217;s important to spend some time and consider leveraging automation in any type of engagement as it will not only save you time but also make your project more scalable on the long run, save you efforts and costs.<\/p>\n<p><em>If you like this article, you might also like\u00a0<\/em><a href=\"https:\/\/www.red-gate.com\/simple-talk\/sysadmin\/devops\/configure-ci-cd-azure-devops\/\"><em>How to Configure CI\/CD in Azure DevOps.<\/em><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Azure Logic Apps can be used to automate steps like sending approval emails. Elie Bou Issa explains automating Azure DevOps with Logic Apps.&hellip;<\/p>\n","protected":false},"author":221874,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[137091,143521],"tags":[95506],"coauthors":[50183],"class_list":["post-90557","post","type-post","status-publish","format-standard","hentry","category-azure","category-tools","tag-automate"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/90557","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/221874"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=90557"}],"version-history":[{"count":4,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/90557\/revisions"}],"predecessor-version":[{"id":90592,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/90557\/revisions\/90592"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=90557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=90557"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=90557"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=90557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}