Create an Interactive Power Virtual Agent

Want your Power Virtual Agent to do more than just answer static questions? Making your chatbot truly interactive is achievable using Power Automate. When the bot asks the end user a question, it can accept input (entities), pass these to Power Automate and then in return tailor a response, based on the outcome of your flow. In order to demonstrate this, I built a parcel history bot that would query the DHL Tracking API and return to the user the current status and event history for a valid Tracking ID. This method can be re-applied to Microsoft Lists, Dataverse, Connectors and any other 3rd party API. You can watch a demo and see how it was built in more detail below. ...

6 February 2022 · 7 min · DamoBird365

Create a draft Email in Outlook

Sometimes you don’t want Power Automate to send an email directly — you want to review it first. In this post, I’ll show you how easy it is to create a draft email in your Outlook Drafts folder using Power Automate and the Graph API. You can review, edit and send this email directly from your Outlook Mailbox. As well as a video to demonstrate how this is possible, I will further extend the concept below and show you how you can include attachments as part of your draft email. ...

19 January 2022 · 3 min · DamoBird365

Error Handling - Power Automate

Ever had a Power Automate flow fail silently while you were busy with something else? If you’re running multiple flows throughout the day, relying on Microsoft’s delayed failure notifications isn’t enough. In this post, I’ll show you how to build a proactive try-catch error handling pattern that emails you the exact error details and a direct link to the failed run — so you can start fixing issues immediately. Using Scopes for Try-Catch Error Handling Firstly, you need to group your main steps of a flow into a Scope control. There are various advantages of a scope. It makes your flow appear more compact, can make it easier to navigate and understand, and most importantly means you can use the result() expression to obtain the history of an action. In my example below my main steps are in the try scope with the magic all happening in the catch scope. Note that the result expression can only return first level actions but can also be used to retrieve the results of actions in an apply to each. Watch my video to see how this might be possible. ...

15 January 2022 · 4 min · DamoBird365

Building an app is Child's Play - Part 1

Want to learn Power Apps while having fun? Whether you’re building your first app or looking to get your child or class started with Power Apps, this is a great place to start learning by doing. I was challenged by my 9-year-old daughter, Emily, to build a Power App with her and create a YouTube video(s). This marks the first of a few articles demonstrating how to get started with a basic application that will teach you the basics of Power Apps. It is based on a simple data source, an Excel Spreadsheet. It will enable those with basic access to Power Apps, the ability to create the solution. In an ideal world, you would use a Microsoft List or, if licensed, a DataVerse Table(s). As my daughter will be building her solution on her Glow Scotland Education Tenant where she is licensed for Power Apps, she cannot create Teams (for Teams DataVerse or a Microsoft List) and I didn’t want to run the risk of building Custom Tables in the Glow Default Environment. If none of this makes sense, don’t worry as I will try to drop the technical lingo going forward - any questions please ask. ...

15 November 2021 · 9 min · DamoBird365

Create Table in Excel WorkSheet

If you’re receiving daily or weekly Excel workbooks where the data isn’t formatted as a table, you’ll hit a wall trying to query it in Power Automate. The fix? Office Scripts. With a relatively simple piece of TypeScript, you can insert a Table into your Excel Worksheet. Not only can the script detect the used range of rows and columns but it can also run on a specific sheet and specifically name your table. If Table1 isn’t what you are looking for, call it as you please, all automatically, via Power Automate. ...

4 November 2021 · 3 min · DamoBird365

Round Robin in Power Automate

Need to evenly distribute tasks, form submissions, or emails across your team using Power Automate? Round-robin allocation is the answer, and I’ve got two straightforward approaches you can implement — one using a Microsoft List and another using a Security or Distribution Group. Important: For both solutions, you must limit Concurrency Control and set Parallelism to 1 concurrent flow run. This ensures flows run in serial order and assign users in strict chronological sequence. ...

1 November 2021 · 4 min · DamoBird365

Add members to a distribution list - Power Automate

Managing exchange email distribution lists manually is tedious, especially during onboarding. In this post, I’ll show you how to add members to a distribution list using Power Automate — and how to check if a user already exists. Whether you’re feeding this from a Power App or Microsoft Form, it’s easily achieved with a single action. Update January 2023 I’ve written a new bog post detailing how this can be achieved with PowerShell and an Azure Runbook. Check it out here Add user to Distribution List - DamoBird365 ...

11 October 2021 · 4 min · DamoBird365

Mention a Channel or Team - Power Automate

Want to @mention an entire Team or Channel from a Power Automate flow? The default Teams actions don’t support it out of the box — but with a simple Graph API call, it’s surprisingly straightforward. In this post and video, I’ll walk you through exactly how to set it up. First, choose your Team and Channel By using the List Channels Action in Power Automate, we are able to obtain a list of Channels for a particular Group, but not only that, we are able to retrieve the Group ID from the Input Parameters as shown in the last of the four actions below (the Compose - GroupTeamID). We are going to post on the General Channel, and for us to obtain the Channel ID, we filter the array from the List Channels Action for “General” and then retrieve the first() and most likely the only object returned by the filter by using a compose and selecting the Id. ...

11 October 2021 · 3 min · DamoBird365

Unique IDs and pad a string

Need to generate sequential, zero-padded unique IDs in Power Automate — for invoices, filenames, or SharePoint list items? In this post, I’ll show you how to increment your unique ID based on the last file or list item and pad it with leading zeros, all without storing the ID in a separate table. List of Invoices Above is an example Microsoft (SharePoint) List with 3 invoices and a sequential InvoiceID. The key requirement here is that previous invoice ID’s, list items or filenames, will not be deleted as we will use the last known ID as a lookup in the next action. Please also ensure that you DO NOT turn on trigger concurrency, as we must assign the ID during each unique flow run when calling get items. ...

10 October 2021 · 3 min · DamoBird365

Microsoft List - Add Comment

Want to automatically add comments to Microsoft List items using Power Automate? In this post, I’ll show you how to use the SharePoint REST API to both post a comment and read ALL comments on a list item — including how to handle the tricky mentions array. Surprisingly, adding a comment is a single action, reading all comments into a convenient format when there is tagging involved, is rather complex as tagging is handled by a separate array. The SharePoint REST API is well documented here as are the Microsoft List comment features, like the ability to tag and therefore trigger an email, notifying the user of a mention in a list comment. The email is a feature of Microsoft Lists and therefore does not depend on a Flow. If you create a comment on a list item and tag a colleague, they will be emailed with a link direct to the associated item. ...

12 September 2021 · 6 min · DamoBird365