0:00
Welcome, everyone. Welcome to my session about building the ultimate issue tracker using Microsoft Teams, Microsoft LIS, and Power Automate
0:11
Like we saw at the outset of the introduction, my name is Norman Young. I'm coming to you from a very sunny St. Catharines, Ontario, Canada
0:20
It's okay if you don't know what St. Catharines is or where it is. If I look out this window, I can see some of the mist coming up from Niagara Falls
0:28
And if I look out the other window, I can see the skyline of Toronto. So I'm kind of between places, but I'm very happy to be living in St
0:36
Catharines, especially on a nice sunny day like today. We're going to talk about these technologies that I'm passionate about, and it's the Microsoft
0:46
Lists and Power Automate. And so let's take a closer look at Microsoft Lists in the context of Teams
0:55
And as part of the Microsoft list rollout, there was a number of ready-made templates, including the issue tracker
1:06
And the intention there was to give you a head start when building up your own solutions
1:12
And this particular one, it allows you to track and manage issues and bring them to a close visually with some of the column formatting and some of the built-in things that is there
1:23
So as we're seeing it, we'll start clicking through the demo. I'm in a Microsoft Teams team
1:29
I've gone in to add a new app for Microsoft Lists, and this in turn will create a tab for us
1:36
I'm in the experience now where I'm selecting the issue tracker, and you see all these other templates that are available to us
1:43
And so we see some of the column attributes like the issue, the description, the priority, the status
1:49
You get a sense of what it will look like in function. We see some date columns, days old
1:55
That's an interesting one, which we'll talk about later. We could add images
1:59
We could link back to the issue. And it is a great starting point for those teams or organizations looking for a way to start logging and tracking issues that they can remediate
2:11
There's plenty of tools out there, but not all of them will work for those dynamic teams or people who don't want to jump from planner to task to all this other thing
2:22
So centralizing your task to a team specific, to a product specific, to an initiative specific settings makes sense
2:31
So as we scroll through, we get this template. It's delivered. It's in the context of teams
2:35
This is our hub for teamwork. We don't have to go to a separate app or a different site unless we wanted to
2:41
We still have those options, of course. And just like that, we were able to get our one step forward and bring the ability to track issues intelligently using the issue tracker in our team
2:54
It's just it's a great choice and it's a great way to start. And like all Microsoft products that are coming out now, the intent is to give you a starting point and then extend it to meet your requirements to suit your team's working ability
3:09
So we'll use this out of the box experience, but we'll add more value and we'll do that by adding new columns
3:17
We'll do some column formatting. we will leverage power automate to create workflows that enhance the list so let's jump
3:29
into the next slide and so skip over this you know it's great we have our list but it would be
3:37
great if we it would excuse me it would be better if we had some data to start with to illustrate
3:44
the value that we're doing. And so what we're going to do in this next demo
3:48
is import Excel data into an existing SharePoint list. So it may not seem like a big deal
3:55
And believe me, a number of years ago, this was a very complicated process
4:01
using some of the classic SharePoint apps where you would install this weird app
4:06
using Internet Explorer version like 10 and hope that you could import an Excel spreadsheet one time
4:14
and build a new list from it. We've moved and we've progressed from that point
4:18
and now we can create a new list from an Excel spreadsheet
4:22
And I'm a big advocate of that because it's a great way to modernize
4:27
or digitally transform legacy processes that have embedded themselves into Excel and move them into something more centralized
4:36
and online like Microsoft List. but to repeatedly import data into an existing list is something that doesn't exist out of the box
4:48
So as I'm populating this list, and it's a one-time thing, imagine scenarios in your own work where you might have a consistent set of output from Excel
4:59
maybe it's from an ERP system or something of the such, and you need to import it into lists for further work or manipulation or whatever the case might be
5:07
Using Power Automate as a tool to bring that data in is definitely something that you can do
5:14
Let's get the video of the demo rolling. Here we are. This is our starting data, and it's just sitting in a SharePoint library associated with our team
5:25
You'll notice in the Teams experience, there wasn't many options for us to use Power Automate
5:30
I've jumped into Microsoft list, and now we can see we have more command bar functions
5:35
including automate Power Apps. I'm going to hop into Power Automate, and I'm going to create a scheduled Cloudflow
5:43
Because this is a one-time import for our purposes, we're just using a scheduled flow
5:49
which simply means it runs on a timer. If you had a repeated cadence or cycle
5:54
of when you were going to import the data, you would set this trigger accordingly
5:59
But for us, we're just doing a one-time thing. First thing we're going to do is find our data
6:03
It sits in Excel. So it's sits in the SharePoint site. So I'm just copying the URL
6:10
I'll put that into the location and then I'll navigate through and find
6:13
the file through the document libraries. And while we're doing that, I'll recaffeinate
6:20
So it's sitting in the documents. I can browse with this nice user experience
6:25
I find my file, very important that your data has been formatted as a table
6:29
So Excel and Power Automate know how to interpret that column data
6:34
Now, I need to create a variable. I need to create this variable to store my date
6:39
My Excel sheet has one date. If I had multiple dates, I'd have to make multiple corresponding variables
6:44
So in this case, I'm calling it var date. It will be a string. And later in the flow build, we will leverage that because we have to do a very funny conversion
6:54
to bring those Excel dates into a SharePoint list date. So now I'm creating a loop
6:59
the loop will be based on the output from reading all of those rows in that Excel table
7:04
And so now I'm going to go back to my variable that I created
7:09
You'll notice that I'm taking the time to rename all of my steps when I remember to
7:14
And the idea there is that if I have to reference the output from these actions
7:19
or variables, whatever the case might be, I need some type of clue to let me know that this is the right output that I want to be manipulating or leveraging It a best practice to start renaming your variables your actions and all of these things that make sense with what you doing
7:35
So I've taken the date from Excel and I've assigned it to the variable
7:41
Now I'm going to start creating the item. So I'm going to go back to my list SharePoint address
7:48
I'm pointing to the issue tracker list. And so now it's a matter of lining up the Excel columns to the list columns
7:55
So the big assumption here is that you do have that mapping. The data coming out into Excel is going to actually line up with what is expected in the list
8:04
It can't be random. It has to be something very consistent and standardized for you to leverage
8:09
You'll see that any time that there's a status value, sorry, a value column, which is like a pick list or a lookup value
8:19
I have to override the choice and go with custom settings. Here I'm doing the funky stuff with the dates
8:25
So I'm using this expression and I'm going to add days. And I don't know where this formula came from
8:30
but this is what's required to convert an Excel date. We use the year 1899, December 30th
8:37
We convert our string date variable into an integer. And then we format it to year, month, day
8:44
and that will present back the correct date from Excel converted into list
8:52
So the final things we have to do is just do the issue source and the issue logged by
8:57
So I'm doing a custom value. This is a name column or a person column in SharePoint doc
9:02
It's taking it as text. So it's, you know, perhaps it says Norm Young
9:07
It's going to add it to the list, but it will resolve that name. If there was two people named Norm Young, then we'd have some conflicts
9:15
We might have to approach that differently. But in this case, there's only one of my tenants, so the odds of it resolving correctly are good
9:22
So I've tested, I'm running, and now it's looping through all of the rows in that Excel spreadsheet
9:28
And we see that we're all green. And just like that, we have all of this data now in our list
9:35
And now we can start extending the rest of the solution. For our purposes, it's to illustrate and have some data to test and demo with
9:46
A takeaway for you is to consider how you can move any type of file-based data, CSV, JSON, Excel, and move it into different areas
9:59
It's very much like what you'd expect to see in the data warehouse world where you're extracting, transforming, and loading data
10:05
This is very lightweight. This is like an integration, if you will. you can create an integration using Power Automate
10:11
You know, enterprise-grade integrations might have dedicated tools, especially for those in the ERP space
10:18
You might be using something specific to that vendor. But for others who have this amazing toolbox of Microsoft 365
10:27
you have these types of things at your disposal where you can extend and use
10:33
And it's a great way to bring value and automation to your business processes
10:39
So we've got our data. It's now on the list. Now we're going to start moving towards. Skip over that
10:47
Now we're going to update the issue tracker. So we've we've got our template. We've got our data
10:55
We see what it looks like. But there are some things that that stood out as missing
11:00
One of the things that I think is missing is the ability for teams to make collaboration or content in the context of that item
11:14
So adding a simple comments column will address that. And you may have noticed I had the append the values to the existing
11:22
That's just so we can have a lineage of data. I'm looking at this days old column and I'm, I'm, I'm assessing the
11:28
the column formatting, anything greater than 30 days, it gets special formatting. So we're going to copy that forward
11:34
But what I want to point out is it's based on a calculated column and this
11:39
and this is interesting. This is, you know, comes from the classic SharePoint space
11:43
but it's going to calculate those days old, regardless of whether the issue is a closed out or, or whatever
11:52
Like if it's not open, it's going to if it's always calculating, excuse me
11:57
And that doesn't make sense. If the status of an issue is complete, why do we care about the date anymore
12:05
So what we're going to do is create a new days old column. We're going to roll forward the same conditional formatting that we saw on the original days old
12:13
but we're going to add some more logic through Power Automate to only calculate that days-old
12:20
value when the issue is still active. And so I'm going through this business of formatting the
12:26
columns, and I'm essentially copying what we saw in the delivered one. It's a nice format. It draws
12:33
visual attention. It's got a fill color. It's got an icon. It's got all of this other stuff that
12:38
let you know that, hey, business process rules are kicking in. We're over this thing. So now I'm
12:44
creating a due date column. And the due date column is just so practical. People raise an issue
12:50
and there's a very good chance that they have a date where they're going to need that back. The due date, and I pre-populated it here, I'm going to do some more column formatting
13:00
And in this case, I'm going to make it so if it's still an active status item, then we're going to
13:08
draw some visual attention to it by formatting it. Excuse me, the due date column and the assigned to column become the anchor points for the rest of
13:21
the value that we add to the solution. So a due date gives us something to trigger on. We can say
13:27
like, are we approaching that date? Have we exceeded that date? Let's let the person who's
13:33
assigned to that issue know. So we're going to leverage those two columns for the rest of our
13:37
demo to extend the functionality and bring value. So as you see, as I'm clicking through
13:42
I'm essentially saying, are we past the due date? Isn't it still active
13:47
So as I'm slowly, sometimes painfully, clicking through all of this stuff
13:51
I'm just making sure that if it's in progress, if it's new
13:56
there we go, or blocked, that these are things that are still being worked on and they need our attention
14:05
So once the columns are set, we've applied some of our column formatting
14:09
we're going to jump back into our favorite tool, Power Automate, and we're going to look at
14:14
calculating that days old new function. So as you see, I'm doing the final formatting
14:21
to really draw visual attention to our due date. And there in bold red
14:27
we can see the items that have passed. And so the idea is not to overwhelm our users
14:32
with the whole breadth of information that we get on the screen, draw visual attention
14:37
to what's important to give them a frictionless experience where possible. So here we go
14:44
I'm going to go into Power Automate. Forgive me as I click around, see my flows
14:55
And now we going to create another flow This is going to be a scheduled flow So this needs to run every day And every day this is going to do our housekeeping type of activities
15:10
It doesn't need to be an event-driven type of thing. It's just I need it to run every day
15:16
I need it to calculate those days old. And I might have other things that I do down the road
15:21
Perhaps I'm checking a status column or whatever. The idea here is that it's that once a day type of thing
15:28
So I'm going to declare a variable. Here we go
15:39
And call this one var date reported. And we will pull this from the list
15:51
That'll just be a string. New step. And this action, if I can figure out how to type SharePoint correctly, will be a SharePoint get items
16:02
And so what this action will do is it'll go back to our base list. You may notice that I'm using the terms lists and SharePoint interchangeably
16:10
That's because lists are SharePoint and there probably will never be any power automate list actions because it is the same thing behind the scenes
16:18
It just has a nice front-end experience. Perhaps this is to help lessen the clutter of all of the different apps
16:33
like named apps especially, and Microsoft 365. Teams is your collaboration tool of choice
16:40
SharePoint communication pages and site pages are how you build up your corporate intranet
16:46
And lists are where you go to, you know, collaborate on business data
16:51
So you can see I've pointed it to our site, to our list, and now I'm doing what's called an OData filter query
16:57
It's very similar to what we were doing when we were doing the conditional formatting on the list
17:02
I'm saying where that status column is equal to in progress or that status column is equal to new or that status column is equal to block
17:10
Only pull back those rows. There's no need for me to get the whole data set
17:15
I just need what's in scope. I check Flow Checker. It's got no problems
17:20
I'm going to save and then I'm going to test. I'm testing because I don't want to get too far down the path of
17:26
building this flow only to find out that I made a mistake
17:30
I click Done. It's going to give me all kinds of green
17:35
and I'm going to simply click the download to see the output
17:39
There's a lot going on in here. It's not the easiest thing to read, but it does give me validation that data came back and I just need that simple validation
17:47
So now I'm going to start to edit my flow again. I'm going to add another step
17:55
I'm going to do it in the inside of a loop or an applied to each control
18:00
And this will be based on the output from the previous SharePoint get items command that we
18:05
had. So we will have that data set that we just retrieved, and then we'll cycle through
18:10
and loop through it in our apply to each control so i'll grab the output or the value from the
18:16
previous sharepoint step and now i'll add my steps and these steps will be the ones that
18:22
will do the calculation for so i'll set my variable that i previously declared rename it
18:32
i'll recaffeinate while that's doing that set the variable name to var j reported i select that now
18:38
Now I'm going to enter the value. Steven, any questions coming in from our friends that are watching, please bring them up at any time
18:55
I'm happy to speak to them. Also curious to know where our viewers are coming from today
19:00
If anyone wants to share where they're viewing from today, that would be interesting as well
19:04
So now that I've set my var date reported, I'm going to go back into SharePoint and I'm going to update that days old new column
19:17
I know it can be painful watching me type slowly. It's because I only used one finger at a time
19:23
Okay, back to our site. And then to our list. So the ID will be what we retrieved from the previous get items
19:39
It's in these situations that you see as I'm picking from the dynamic content where the renaming variables or renaming actions really helps to clarify
19:48
And one of the other demos that we will do, you'll see it in action where I'll have multiple get items and it can be very easy to confuse them
19:57
So right now I'm doing the days old new. So we're going to use an expression
20:08
This one is not pretty. This is another one of those things where you have to do a pretty serious conversion
20:17
You'll see this ticks and all these other things, but I've got this posted in my blog of how to use this correctly
20:27
put in the dynamic VAR date reported. And so you can see why it was important
20:32
to put that date in there. So it's another conversion that we're having to do. And Excel just has its own peculiarities
20:39
about how it stores data, especially date data. So we did a save, doesn't seem to be an issue
20:46
So now we will test. And remember, this is going to be a once a day type run
20:51
So it only needs to calculate the days old, once a day. So as it's running
20:56
like we'd see it's chipping through. We're only expecting to see the days old calculated
21:01
for those issue tracker items that are still active. So the ones that are new, the ones that are in progress
21:09
the ones that are blocked and so on. And that's what we see. And the other days old column that you see just beside it
21:15
every day going forward for new button not working, that's the second entry, it would go to days old 20
21:23
days old 21, like forever. And so in my opinion, it doesn't bring a lot of value to the user experience
21:31
Business users need to focus their attention on what is important. So, and this is how we do it
21:38
Let's click into our next demo. So one of the things that I've countered in working with SharePoint and list solutions
21:51
was that, yes, a list item can attach a file or files
21:57
And that's great, but it's not the most seamless experience if you're wanting to collaborate
22:02
So what we're going to do in this next section is we're going to create a new column
22:07
where we're going to store a folder location. And so what our next flow will do
22:12
is every time a new row is created, and that's why we're using an automated cloud flow
22:19
It will grab that information about the new entry and it will create a dynamically named folder And then it will link back in a very friendly URL into the list
22:35
So this is really valuable for people who are using lists for things like case management
22:42
where the volume of lists is significant and the amount of documents that are being collected
22:48
or need to be collaborated on need to be in that collaboration-friendly, user experience-friendly
22:54
a share point online experience. And so my trigger is whenever a new item is created
23:01
in the issue tracker, and now I'm creating a new variable and we'll call this the var folder name
23:10
And this will store the name of the folder. And in the past I've seen this done where it has to
23:14
that folder name has certain compliance or regulatory naming conventions that get implied
23:21
And so it could have, you know, a business acronym like in this case, Issue Tracker
23:28
it might be ISS, unique number, and some text that metadata attributes
23:35
that you need to build this out. So in my case, I'm going to do something simple just to illustrate the value of using the dynamic data
23:43
that you get from Power Automate when you do this. So right now I'm just doing the ID
23:49
ID is a unique identifier, a unique number, auto incrementing number that is built into SharePoint
23:54
I'm going to do a dash and then I'm going to put in the title. So if there are multiple issues with the same name
24:05
that identifier will uniquely identify them. And so what we're doing is just trying to imagine a list with hundreds
24:14
thousands of entries and you have one of our knowledge workers going through
24:20
that list trying to quickly find information, visually navigating, like they're going to be there a while
24:27
or if they go into the SharePoint site and the document library that supports it
24:31
and again, I don't want them visually scanning through there. It's not the best use of their time
24:36
But if I create a link in that list, they are for sure going to hit the right person
24:42
the right case information, the right issue in our case here, and that will add some value to them
24:49
So I'm going to the underlying SharePoint site so you can see it. This is what's sitting behind Teams
24:56
And so here's the general folder. So that, you know, think the general channel in Teams
25:00
Every channel in Teams has an associated folder inside of the document library and the hosting site
25:08
So this is why I'm putting general. That's the channel I wanted to go to, slash folder name
25:12
And so when it creates it, it'll go to SharePoint site, share document library name, general folder
25:18
and then it'll create that new folder name. So I'm going to do a manual test just to get the folder created
25:26
just to make sure the first half is working. I'll hop back into Microsoft Lists
25:31
I'll create a new item. And we'll look over to Power Automate
25:44
and we'll see that it created it correctly. And now I'll go into the document library inside the general folder, and we'll see that the test issue that I created was successfully created the folder
26:00
But now I need to bring that link back into the site, and it's not as easy as you would like
26:09
We have to use a special power automate action called the send an HTTP request to SharePoint
26:15
And now I'm not a developer, but now we're into the business of this
26:20
Essentially, we're doing Graph API calls using this very nice front end
26:24
And so I will set it to the site address that we've been using throughout
26:29
And then there's methods. Perhaps if you're a developer, you've done work in Graph, you'll know this stuff better than I do
26:35
We're going to post a transaction to the site. We have a URI that I'll just paste in here
26:42
If I can just pause it. We can see that we're calling the API
26:49
we're going to the web, we're going to the list, we're looking for the list called issue tracker
26:55
and then inside of the issue tracker, we're trying to find the item with the ID that I've specified dynamically
27:02
and now we'll get into the business of plopping in the headers and the body information
27:10
Headers are pretty standard, I just switch it over to text so I can just paste in
27:15
And now the body is a bit more trickier. And there's, you know, there's enough documentation on the web to learn how to do this
27:24
But I do have this covered off in a number of my blogs. So I'm just going to put in the dynamic information and try and explain what the body is doing
27:35
And so we see that, you know, the metadata is describing that we're manipulating SharePoint
27:43
Here's the list name. So our issue space tracker is the name, but you'll notice the title, which I'm moving my mouse over, is just a simple space
27:55
But when we get into the body call, we have to use the internal name of the list
28:00
So this underscore X0020 underscore, that's how SharePoint, unfortunately, converts spaces. You know, in a web browser, you would expect to see a percent 20
28:11
and SharePoint internal for column names, list names. This is the business we get
28:16
Folder location is the name. Even though I did put a space in it behind the scenes
28:21
it removed the space. That's great. The description, this is going to be the friendly name
28:27
like the vanity URL, if you will, of the link. And here's the link to the item
28:31
This is a piece of dynamic data that we're pulling from the create new folder action
28:36
that we did previously. If all goes well and we test, save and test
28:42
we will create another folder, and then we will grab that transactional information about the folder create
28:51
use that variable folder name that we piece together, and plug that into our new folder location name as a clickable link for our users
29:03
Okay, so that's there. I'll do a refresh. There's our new issue, test issue one
29:11
And I look on my list and we see test issue one. If I click into that, it brings us into the SharePoint experience, but this is our folder
29:22
This is one of those things where you're putting up essentially a guardrail for your users
29:30
So they won't accidentally put or look up information from the wrong folder
29:40
This virtual pointer is the path that they need to follow to get to their work
29:45
And so at volume, at scale, or where situations where the data is highly sensitive
29:55
this is a great way of protecting your users from uh inadvertently updating the wrong file going to the wrong location think of all the people with
30:06
the same names in your own organizations think of the the john smiths of the world you need to
30:12
you can't assume that john smith one is not the same as john smith number five like you need to
30:18
have a physical connection between the two of them and this is a great way of doing it
30:26
so I said earlier that the due date was going to be our anchor point where we would do more automation and add value
30:36
And so there's many ways of sending information to users. Emails has been a traditional way of people of sending out reminders
30:48
This is especially good in situations where teams are cross-departmental, inter-departmental collaboration
30:56
and you need to send a message out. But in this case, we're working in Teams
31:03
This is our, you know, since March, this is now everyone's virtual work office
31:08
as we've gone into this pandemic lockdown. So the more we can bring into Teams for our users
31:15
the less they have to come out of that experience and we remove some of the friction
31:19
So I'm going to build upon our daily issue tracker flow, the one that will run once a day to calculate the days old
31:30
and we'll add more functionality here. What I'm doing is, let me pause this so I can talk through this expression
31:37
I added a new variable and let me just rewind just a titch
31:42
What I want to do is take today's date, which is UTC now
31:48
and then I want to add two weeks to it. This is the add days expression to today's date
31:54
UTC now 14 days and then format it in a way that is friendly. And so this will be a reminder date
32:01
And so any issue that's due in 14 days, I want to send a notice to the owner. So I'm doing a test
32:08
here. I want to get the date and then I'm going to, you know, check my list and manually set a date
32:13
so we can see what's happening there. So we've got the output. Let's see what it gives us. So 321
32:19
is the date that I need to plug in. So I'll just arbitrarily grab one of the issue items
32:26
I'll come into this awesome form that comes default into Microsoft lists
32:31
which you can easily update without having to get into this business of power apps
32:38
which is a great platform, but not all users wanna invest the time
32:42
So lots to do on that front. Here we go. We've got our date
32:46
We've got our test row set. and now we're going to go back to SharePoint Get Items
32:51
and we're going to find any entry where that date matches our reminder date
32:56
So here I go again. I'm copying the SharePoint list name. And it's in this type of flow
33:03
where you can see the value of taking the time to rename
33:08
We have multiple Get Items actions on the screen. One is going after the Days Old column
33:15
The other one's going after Reminders or setting reminders and calculating days old. You need some way that you especially and your
33:24
colleagues who might be supporting your work can follow the logic of what you're doing
33:30
Renaming an action will help clarity as you're coming through and setting dynamic values
33:37
Another thing that you can do is I need to pause to explain that. The other thing that you can do
33:42
is use comments. So just before the test runs, I want to say what we've done. So, excuse me
33:49
we're going to our issue tracker list, and now we're looking again towards our good friend
33:54
filter query using OData commands, due date. This is the column we created. This is our anchor point
34:00
It must be equal to the reminder date. So I think that was March 21 in our example. But what you may
34:08
or may not be able to see on the screen because of the resolution or those single quotes that
34:13
encompass this is so important and because it's so small it's easy to uh to to to miss them so we
34:19
do another test you know we're going to get into this business of click download results just to
34:23
make sure we're getting something back because if we don't then i've done something wrong so here we
34:27
go a bunch of gobbledygook if you read between the lines of everything that was there you will see that I did actually get the row back that I was looking for So next business Again I sending a reminder to Teams
34:39
So I'm going to use the Teams Power Automate actions, and there's a lot of them
34:44
It is a heavy investment, as you are probably aware of Microsoft
34:49
And it's not just in the front-end tool. It's also the things that support it. So the Power Automate actions are growing
34:55
The access to new Graph API endpoints is always coming out. It's like Teams has got an amazing growth trajectory
35:06
and the investment that Microsoft is putting into it is just amazing
35:10
And it's not just the tooling. It's also the user adoption. I can tell you that if you go on to like
35:18
the Microsoft tech community and you post a question about Teams, that, you know, Microsoft is watching that
35:25
and they're making sure that the right people are getting out there to answer. Doesn't replace a support call of course
35:30
but we're trying to get community members to do that. And so here we are, we're going to post a message
35:35
to our user as the Flowbot. So we grab that dynamic information of who it's assigned to
35:40
and then we start, you know, a static message supplemented with some dynamic information
35:45
And we'll do that and we'll say, you know, reminder issue, issue name is due on, you know
35:51
the 30 day date from now I clicked on. Let's let that run. So once a day, if something was coming due in two weeks, our users would get a message. So we see in my chat window, and I'm just, we see it here, third party app support is due on March 21st
36:10
And what a great way to extend the functionality of that list to give your users an opportunity to intervene on things before they expire or before it's too late
36:28
You are probably like me and like everyone else. You're just so busy. any opportunity you get to bring value through automation
36:36
where someone can give you a reminder that you need to do something
36:40
is worth your while and is worth the ad. One of the last demos that I want to do is the ability to archive list items
36:52
And so what we'll do is we'll create another list, and this time we'll build it from an existing list
36:59
And so this case we're just cloning the issue tracker. This flow is interesting and I've come across it in the real world because we have issues or other types of business processes where they might change state
37:16
And by state, I mean, they move out of one area and let's say it's a perspective customer turns into a customer
37:25
So, you know, maybe they don't need to be in the pre-sales list, but they need to move over to the customer's list
37:33
So in this way, we can move the right metadata over and then, you know, either hide, delete or whatever you think is appropriate, the source list
37:43
So this is a great power automate pattern in list for dealing with changes in state
37:50
where one bit of information needs to move over to another to continue down the process
37:58
So what I've done is I need to rewind just a sec
38:03
because I think I glossed over too quickly here. Bear with me
38:09
Here we go. This is the part I wanted to make. This is called an Instant Flow
38:16
This means that it's like a button transaction. It could be on a Power Apps
38:21
it could be on a number of things. It could be on the Power Automate app on your phone
38:26
The trigger here is like you are physically pressing a button, you're physically doing something that initiates that
38:34
In our case, we're saying for a selected item in SharePoint, run this command
38:38
So let's continue the demo. So for the selected item, then I'm going to copy my issue tracker site address again
38:59
Oops goofed up the Zoom let me fix that All right so we point it back to my list And I used the wrong URL so let me update that
39:12
Sorry about that, folks. Let's do the issue tracker. Issue tracker is our source
39:17
so I'm going to rename it accordingly. I'm going to do another SharePoint get item
39:31
So in our flow, our trigger is to, you know, we're pressing the button and it's giving us just like the ID, maybe the title, but it doesn't give us the full data set
39:42
And in this case, we need the full row of data. So we're going to do another SharePoint action where we get a full item
39:49
And here, again, we're always pointing it back to our SharePoint site, our list name, but the ID, the ID with the asterisk that you see with the red, that is going to come from our selected item
39:59
So here we go. And so now that is going to give us all the information we need
40:04
It's the full contents of the row inside of the list. And now we're going to do another action
40:11
Another SharePoint, and this will be a create item. And so this will be towards our destination
40:20
So our issue tracker archive. Here we go. It'd be the same site, but this could be cross site collection
40:32
if you had the right permissions to do so. Here we go
40:39
I first saw this working in higher education and they had case type of information that was going from short term to long term states
40:51
And this was this was the great way to achieve it. And I've also seen it in other situations where people need to remove the item from
41:01
From from the current operational list and move it into a historical archive
41:05
So they want to delete it without doing that full delete. They still want that the ability to retrieve that information for audit purposes
41:16
So again, just like we imported Excel, we're lining up our columns
41:21
We don't have to do anything fancy with Excel dates this time out
41:25
We're going list to list, so it should be fine. And if you're in the power app space, you're probably familiar with doing these button flows
41:33
they're literally just the the tooling that sits behind those buttons that go off and and do
41:39
automation for you i've seen people use power automate mobile app to to create button flow
41:48
so instead of creating a front end let's say you had to submit a picture to a uh an accident claims
41:56
or an incident claims thing you you just have the flow and it's like this nice interface you take
42:01
the picture you press the button you attach it and boom off it goes and it does all the work so
42:07
you know it's lists is like that it's not every business process needs uh you know a traditionally
42:14
developed uh application um you can use something like lists you empower your users uh lists is the
42:24
the application platform that they're using and the data is the the tooling and so in the in the
42:30
flow, what we're seeing here is that I've created the new item and now I'm going to go back and
42:34
delete it out of the source. So I'm making a point of naming things source and destination just to
42:41
make sure I understand where things are going. So it will look like it's moved, but really what
42:46
it's done is it's on a copy, it's on a create, and then it's done a delete
42:51
Save. And one of the nice things is I don't actually have to create a button
42:59
So we see that my destination list is issue tracker archive. It's empty
43:05
And I'm just going to pause. As you click automate, you get a number of options
43:14
request sign-off is something that comes delivered with any list right now. And it will create a
43:23
workflow for you and ask someone to approve something. Set reminder will do the same thing
43:30
It can say remind me of this column on this date and a bunch of other stuff And you see rules manage rules power automate This is that modernization investment that you getting into lists from Microsoft But what you will see in the middle it issue tracker archive
43:44
That's the name of the flow we just created. So any button flow associated to a list will show up here
43:52
So I don't have to like, I'm giving my users a tool through configuration
43:58
without having to build a button for them. So, you can see the flow is started
44:06
Give that a second to run. And if I go over to my archive
44:10
we'll see that this duplicate entry was moved. And if I just do a screen refresh, it's gone
44:18
So, lots of functionality we're extending. And there's so much more that you can do
44:23
out of the box on that front. so you know what did we do we uh we took that we took microsoft lists we put it in the context of
44:40
our team uh microsoft likes to call teams the the hub for teamwork um and that really is true i mean
44:49
I don't think I've spent time outside of Teams ever since the quarantine and COVID came down in March
44:57
Like, having my work inside of Teams and extending the functionality of Teams is a great thing to do for users
45:05
Not everyone has ultrawide monitors, multiple monitors. A single screen with all the work in there without having to tab out or go to a different window adds value to users just by doing that
45:18
We took Microsoft Lists, added it as an app to our team
45:23
We took that delivered issue tracker template where others have invested the thought, the energy into building out a really good starting point that meets most people's needs
45:36
And then we looked at customizing it to suit our needs. So here we are, and as I'm just playing through, we've taken this base list, and again, we found a shortcoming or two that we addressed for our purposes
45:59
We import data, great opportunity for repeating this process to move data around as an integration
46:09
We've done things like add the due date to create an anchor point and add a column formatting to it
46:16
It gives people a point to work to. It's a very realistic thing to add to the list
46:23
Days old are new, has more logic to it and only calculates going forward
46:29
We have this folder location, a very user-friendly way and a guardrail, as I called it before, to get users from that source list over to that document collaboration area safely
46:41
We have that archive button that we saw. And we've really extended something quite small
46:49
And honestly, we could continue this. One of the great things is that we've given our users an opportunity for intervention before things are due or expire by sending them a friendly reminder to get them ahead of that issue
47:05
And so by using the out-of-a-box experience with an eye on configuration over customization, we really extended issue tracker
47:23
And is it the ultimate issue tracker? Well, I don't know, but I do know that I was able to use tools at my disposal to add a tremendous amount of value to let my users work on what's important, not the platform, but getting the job done
47:42
And so I hope that you can also find opportunities to bring value to your customers by using these out-of-the-box experience, by understanding their needs and bringing things forward
47:57
So I'm probably coming up to the end of my time. Thank you for listening