0:00
So the agenda for this session is firstly we will see how we can use this Microsoft Teams
0:09
and Power Platform both together. Then we will go into the deeper level of each of the component of my Power Platform and then
0:17
we will see how it fits perfect into the Microsoft Teams. So we start with Power BI then we will go into the Power Apps, Power Automate and all
0:26
those things. Again, one more thing is that now that we have dataverse for Teams, which is a new thing
0:32
I know it is not that new because we have been using it over a month now
0:38
But again, we will like to walk you through this dataverse for Teams
0:43
how you can use that dataverse for Teams for developing your application. And again, we have one cool demo wherein previously we created one application
0:51
solely using Power Platform. platform. And now that we have transformed that particular application into data was
0:57
for teams and hosting that on top of Microsoft Teams. But again, they are using the same
1:02
powers of our platform in the background. All right. So with that agenda, a quick introduction
1:09
of myself, myself, Nandarip Natsan, I'm Microsoft MVP as well as C Sharp Corner MVP, Microsoft
1:15
certified trainer, author of couple of books on SharePoint framework as well as SharePoint
1:19
hybrid and on to the attend side here are few social handles to get in touch with me
1:26
and with me today is smitha Smita, I think you're not Audible
1:55
Nandip, are you there? Hi. I'm Audible now. Yeah. All good. Okay
2:01
Yeah. Sorry for it. Yeah. So I'm Smita Nassar and I'm from Pune, India
2:07
I'm having 12 plus years of experience in SharePoint and Office 65
2:12
I'm a Microsoft MVP for Office Development category. Apart from that, I'm MCT also
2:19
I'm author of one book for SharePoint Hybrid, and these are some of my social handlers
2:24
by which you can just get in touch with me. So now let's see how Microsoft Teams and Power Platform
2:34
works together and empower everyone to perform their activities. We want you to think of a single hub from where
2:44
we will able to integrate our business applications. Together, mostly we use Power Apps for this purpose
2:52
So Power Apps help build mobile and web applications with the data our organization already uses
3:01
So secondly, we want to design the process flow automations. So here we can use Power Automate
3:08
to create the workflows between our apps, files, and data to automate time-consuming tasks
3:17
So thirdly, we should be able to create the reports and get the insights
3:22
So Power BI help us here to create those actionable, dynamic and engaging data dashboards, which
3:30
we can share with our colleagues also. So once we have everything with us, we have a power of Microsoft Teams by which we are
3:41
able to collaborate with our colleagues. And when we have all of these things together in a single hub, which is Microsoft Teams
3:50
from where we are able to take the benefits of Power Platform within a Microsoft Teams
3:58
So let's say quickly, what is a Power Platform? So Power Platform is a low-code platform wherein we will be able to create the reports using
4:08
a Power BI to the application development using a Power Apps. So to perform this process automation using a Power Automate and build intelligent virtual
4:20
agents as a bot using a Power Virtual Agent. So these are the main four components of Microsoft Power Platform
4:29
It also offers a few valuable features like data connectors with which we are able to
4:35
connect to various data sources across Office 65 and beyond. Then we have a power of AI builder, which adds AI capabilities to our PowerApps application
4:47
to build intelligence applications. And then we have a data verse, which was previously known as common data service by which we will
4:58
able to get the data from the various systems. So now let's see how we can add the Power BI reports to Microsoft Teams
5:12
So this is how the Power BI tab for Microsoft Teams look like
5:16
So we have this Power BI report which is right now fitting inside a Microsoft Team
5:22
So let's see like how we can use that. So adding a Power BI report to Microsoft Teams where people collaborate helps data-driven decisions making become part of your routine
5:36
Then the tab is added to your channels and chats. It's easier for everyone to find and track the data they need to achieve their objectives
5:47
It's also a great way to manage change in your organization. As new people join a team, the data they need is right there and ready for them to use
5:58
So let's take drive and look at the demo. So for that purpose, I'm here in my teams
6:05
And now from here, we will add the Power BI app. So for that purpose, either you can go from the apps or from here, you can just add a tab
6:14
So I've just clicked and now I'm going to add a Power BI. Yeah, so once you select that Power BI, it is giving over here below the option post your channel about this tab
6:26
So if you don't want to post, then you can just uncheck it. Then over here, you can just define the tab name
6:33
So whatever the tab name you would like to add. Then the second option is select the Power BI report that will show up in this Teams tab
6:42
So you can just select your existing reports available from your workspaces
6:46
workspaces. It will list out all your workspaces and available reports with it. Then the second
6:52
option is from the apps and the third option is shared with me. So reports which are already
6:58
shared with me. So I will go ahead and I will select one of my workspace where I have already
7:04
this sales and return sample form. So before adding that in the bottom there is one message
7:11
that make sure this team tab has given access to this report
7:16
in the Power BI. So once you click over here on this Power BI link
7:21
you will able to see the more details about it. So I will not go into that You can just check it later And I will just click on the Save button So once we click on the Save button it will add this tab over here
7:36
And now you can see if you click, here are the different tabs which is showing your Power BI report
7:42
So now let's see some more details about it. So over here, you can see one conversation icon
7:51
So the conversation icon expands the type conversation. And this makes it easier to ask questions of your team
8:00
and share the insights you find. So everyone in the channels sees the discussion
8:06
and can offer their thoughts like we should. Yes. Then the next team is on the same line
8:13
We have a globe icon. So the globe icon opens the report directly in the Power BI
8:19
And this allows you to do more with your data. So like you can export to PowerPoint or PDF, print, you can yze in Excel and many more things
8:31
Then we have the option of this full screen button. So this full screen button does what you will think
8:39
It hides the channels list giving you more room to work with your reports
8:45
Then the fourth thing is we have this refresh button. so the refresh buttons reloads the tab but it does not refresh the data in your report you need to go
8:57
to the power bi to do that so you don't have to get confused over here so let's keep it in mind
9:03
the refresh button is only to reload the tab and if you want to refresh your data so you have to go
9:08
to the power bi for it yeah and then we have this menu over here and once you click on the menu you
9:16
will find some of the handy features that help you to copy a deep link to the tab you
9:22
created and send it to your colleagues in other channels chats or even in an email
9:29
So they know you added a tab and can find it quickly
9:35
Now let me go back to my slide. Yeah. So some short history about it from where it started
9:44
So let's see from where it exactly started. So in month of July 2020, Microsoft announced something called as Data Flex
9:52
And this Data Flex gives us the flexibility by which we will able to create our apps, flows
10:00
power virtual agents right within a Microsoft Teams. So Data Flex gave us those flexibility
10:07
Then just within a month during the window of late of July or early August 2020
10:13
Microsoft renamed this data flex to project Ogdell. The underlying concept remains the same
10:21
but now that we have this project Ogdell and then by ending of November 2020, Microsoft renamed
10:28
project Ogdell to something called as data verse for teams. So whenever we talk about data verse
10:35
for teams, there are two things or there are two terminologies you will mostly come across
10:41
So the first one is the dataverse and second one is the dataverse for teams
10:47
So while we were working with this power platform, we used something called as common data service
10:55
and which is now renamed to dataverse and the flexibility which was offered by DataFlex
11:02
So Project Ogdell by which we will able to create all of our apps right within a Microsoft team
11:10
is now renamed to Dataverse for Teams. So this is the minor difference, but you will have to keep
11:16
it in mind that Dataverse versus Dataverse for Teams. So now let's see this Microsoft Dataverse
11:24
for Teams. So Microsoft Dataverse for Teams delivers a built-in low-code data platform
11:31
for Microsoft Teams. It provides relational data storage, rich data types, enterprise-grade
11:39
governance and one-click solution deployment. So Dataverse for Teams enables everyone to easily
11:46
build and deploy apps. So the benefits for Dataverse are they are support to build low-code
11:56
and no-code apps, flows and chatbot for or within Teams. So the core data capabilities
12:03
from the same platform behind the Microsoft Power Platform and Dynamic 365
12:10
Its storage reach data types with enterprise capabilities and one-click solution deployment
12:17
A new visual editor that make it even easier to define and populate table data
12:24
Enterprise security that's easy to use and align with the approach used in Teams
12:30
So the inclusion in most existing teams licenses, also the storage of 2 GB per team and support
12:38
for up to 1 million rows. It supports up to 500 teams
12:45
So now let's see some data words for teams environment. So data words for teams environment
12:51
is automatically created for the selected team when you create an app or bot in teams for the first time
12:59
or install a Power Apps app from the app catalog for the first time
13:05
The data was for Teams environment is used to store, manage, and share team specific data
13:12
apps, and flows. Each team can have one environment, and all data apps, bots, and flows created
13:21
with the Power Apps app inside a team are available from the Teams data
13:26
for Teams database. OK, so now that we have a basic understanding of data
13:34
walls as well as data was for Teams, next thing is that what we are going to do
13:38
is we are going to see how we can integrate the Power Apps
13:41
as well as our virtual agents along with Microsoft Teams. Before I move to that part, I just
13:48
want to quickly show you the app which I built previously. So even to the prior release of this data was for Teams
13:56
So this is the app that I have, which was solely created on Power Apps portal
14:02
This one is a Canvas app for the live management kind of system
14:07
So this uses SharePoint as a background or as a backend for storing the data
14:14
But again, SharePoint is something which we should not be used for some kind of relational databases
14:22
So there it lacks a bit. But again, we can still go ahead
14:26
we can create the power power apps by utilizing the SharePoint as the database for us okay so this
14:33
is the calendar list I have and in that calendar list I'm storing all of the details about the leaves
14:41
and their approvals and all those things so once I click on plus it will go ahead and create a new
14:47
item of everything we can add the details about the leaf which we want to do and then it can
14:54
take up my manager from the AD and it can go for the approval and once it is approved we will see a green smiling face or if it is not not approved in that case maybe a crying face
15:08
So all those kind of thing we used to develop with the PowerApps but now that with the introduction
15:15
of Dataverse for team we have revamped this entire solution so that right within the context
15:22
teams will be able to build this entirely so that now we don't have to separately create
15:27
these apps inside power apps as well as a power automate for the approval and even as
15:33
well as maybe using any kind of a power bi report or maybe using any kind of a power
15:39
virtual agent but we can do all those functions at least right within microsoft teams using
15:44
dataverse for teams so with that let's see like how we can build and deploy these apps
15:50
inside Microsoft Teams. So for that what I will do is probably I will close down this and then I
15:56
will again move back to Microsoft Teams. So in the Microsoft Teams from from the left rail that we
16:01
have where we can host our personal apps. I'll just click on more and from here I will choose
16:07
to add power apps. So once I add that power apps you will be seeing that being placed onto the left
16:14
navigation. So what I will do is I will right click on it and pin this because we will need this
16:20
app throughout our demo. One more thing is once you do that from here you can just click
16:27
create an app and this will start the app creation process for you. Again for example
16:32
if you had created the apps before the first window that we get is the canvas app and wherein
16:40
we can place the controls but when it comes to dataverse for teams first option that we
16:44
get is we should select the team and then for that particular team the dataverse environment
16:52
will get created and it will be used to host all of these apps as well as the boards or
16:59
the flows that we will do. So what happens is that for example let's say I select this particular team which is
17:07
Life and Music. So once I click create it will create an app for my team which is Life and Music and in
17:13
the background it will create one environment for me. So in this in this example, I already
17:18
have it. But for example, if I select another one, let's say emergency response in this
17:23
case, and if I click create, it will take some time and then it will create the environment
17:28
in the background here. And all of the apps flows, bots, or whatever the apps that we create
17:34
for this particular functionality will get stored into this environment. So just to save
17:41
the time I will not create this because the creation of that environment also takes two
17:47
to three minutes so probably I will save that for for my demo so once you do that again
17:52
from here you can click new app and from here you will be able to do that but what I will
17:57
do is I will go directly to the see more and from here we'll be able to see all of the
18:03
apps that we have so this is the environment that we have so the first environment is just
18:09
live and music and then the other environment is a project or demo which is the demo environment
18:15
which we will use throughout this particular demonstration and if you compare that with the
18:20
power platform admin center these are the two environments that we have along with the default
18:25
environment that we get as a part of power platform okay so as you create a new app inside your
18:31
teams it will create an environment in the background for for that team right so with that
18:38
let's go ahead and again what we can do from here is I will maybe just click see all and from here
18:46
we'll be able to create something called as in tables or maybe what I will do is let's say I
18:51
will go back and maybe create the app so that it will be easier for you to understand so let
18:57
take the time not an issue so maybe I will create an app for busted minds I will click create
19:02
so what happens in the background is that now that it has started the process of creating the
19:08
environment so for example if i keep refreshing here it should create that environment very soon
19:15
now that you see that the new environment has been prepared with the name of my team okay so now that
19:21
we have this new environment created here and in that particular environment we will be able to
19:27
create our apps as well as we'll be able to host our bots as well as we'll be able to
19:33
create the power automate flows. So it should not take much time. So let it do. It is almost
19:41
done. But only just one thing to know that there will be an environment in the background
19:46
which will host all of these apps. Okay. So I think it is done now. So first thing that
19:52
we are doing here is creating that app and then this is the familiar window for everyone
19:59
like name name name the app and all those things so i will just call it as a demo app
20:03
because the real app that i'm going to demonstrate is already built but i just want to show you
20:09
the capabilities of this by which we'll be able to create the relational tables and then show the
20:16
data here all right so this is how it will look and then onto the top ribbon we have a few controls
20:21
here for saving this app as well as preview and then publishing this to the teams. So for
20:27
example, now if I will go ahead and click preview. So this is some kind of a dummy interface
20:32
that we get. And once I click new record, it will show nothing because we don't have
20:37
anything to be called as in the record now. But this is how it will show. For example
20:42
if I keep clicking the records, it should show that data. So this is this will just
20:48
give you the preview of how our app will look like. Next thing that we need some kind of
20:56
an background background mechanism wherein we can store the data and that comes with
21:03
something called as a table which are again proven for all kind of an relational relational
21:11
entities that we can have. So we'll go ahead click create table. I will just call it as
21:16
There are also advanced settings like what should be the plural table name
21:25
If in case you want to refer that from your power automate, it can be written from here
21:31
Because most of the time what happens is that we do have a spaces between the tables
21:35
But while we are trying to get the information from that table in the background, we don't
21:40
prefer the spaces and at least those should be replaced with the underscore or at least
21:46
spaces should be removed. So in that case we can use this plural table name. So with
21:51
that I will just go ahead and create this table. So this table will be something like
21:56
the table that we keep creating even for the SQL and everything. So here is the default
22:03
column that we will get called as name. So for example, if you have worked with SharePoint
22:09
there we get a default column called as a title. Similarly here we will get the default
22:14
column called as a name but again you can go ahead you can edit this column and rename
22:18
to whatever you want so in this case we will not rename this we will just keep it as a
22:24
name for our customer and from here you will be able to add new columns you can type a name for that particular column and then once you click type from here you will be able to see all of the type of data that you can store inside this table so here we can add table sorry text
22:41
email url phone and many kind of data again we do have a advanced option based on what
22:47
kind of a type you are selecting we'll be able to set those configurations so if it is
22:53
a number than minimum and maximum value. For example, if it is a date, then we don't have
22:58
anything. But for example, if it is text, then what should be the maximum length and
23:02
all those things. Okay, so maybe here I will just say the address for the customer and
23:08
then we will add this. Again, if you want, you can go ahead and create something called
23:14
as choice. So here I will say city and in the choices, maybe I will keep adding a few
23:21
city names which I know so maybe Pune and Mumbai and then I will just click create and
23:27
this is the table that we will have now okay and again we can show or hide certain columns
23:33
when when it will come to the tables for example if you want to show who has created this particular
23:39
entry then even you can turn on this created on or even when it was modified and all those
23:44
things so with that I will just keep it very simple for the first table creation and I will
23:50
close. So as I close this in the background, it should create that particular table. And
23:57
then we will be able to map that particular table to here. Again, one more thing which
24:02
I want to show to you that let's say for example, I will again go back to this build. And then
24:09
we will click see all here. Okay. Maybe let me go back to the build again, I will select
24:16
the previous team that we have which we just created and this is the customer table that
24:24
we have here. And from here we have see all kind of a thing. So if you come to this particular
24:31
wizard or this particular window here you will get some more options. So all that means
24:36
we'll be able to see all of the apps that we have as a part of Dataverse for Teams. And
24:41
And then again, these are specifically the Power Apps app that we will create or even
24:46
the Power Virtual Agent chatbots that we will create or even here the Cloud Apps that is
24:51
all of the Power Automate flows that we will create. And then again, we have a separate space here for tables
24:58
So the customer table that we created is here. Again from here, what we can do is even from here we'll be able to create a new table as
25:08
as well as new environment variable, which can be shared across all of the apps and flows
25:14
So let's say from here we will create one more table and we will call it as a orders table
25:19
So there will be kind of a relationship between these two tables customer and his orders
25:25
So once I click create here, you will be able to see the relationships
25:30
But before I go to that, I just want to pay some more attention onto this columns section
25:35
So I just created one table, nothing fancy was there, only name should have been there
25:40
But if you see, we have various columns here, including the created by name, orders and many more
25:51
So at least these are the, these are not the columns that we have created
25:55
So what happens is that we do have a view here called as default, which will show you
26:01
all of the columns. this all view will show you all of the columns and then we have two specific views here first
26:08
one is managed so managed that means all of the managed columns which are being used in
26:16
the backend for data was for teams and then we have a custom that means it will show you
26:20
all of the columns that you have customly created so just in case if you want to keep
26:25
this view very clean and just want to concentrate on to the your business specific columns you
26:30
You can select this particular view called as custom and from here you can keep adding
26:35
the column types to this particular table. So again, here we can add maybe order ID and other things
26:45
But the major thing that what we can do from here is the relationships by which we'll be
26:50
able to define the relationship between two tables. So now that we have these two tables called as customer and orders and from this other
26:57
relationship will be able to define that relationship. So in this case, it could be many to one
27:04
one to many or many to many based on how what kind of relationship we want to define. So one
27:09
customer can have many orders or even many customers can have many order or many custom
27:14
many orders can be only satisfied by one customer. So I will choose this many to one so that
27:20
many orders can be select or can be used by just one customer okay so even using this will be able
27:31
to define all those kind of an relationships then what happens is for example now that if I again go
27:36
back to this app so from here we'll be able to use that entire table of information into our app
27:44
so that we'll be able to use all these columns even all of the relationship that we have inside
27:51
those tables over here and then again from here we can just click add data probably i will just
27:56
select customers and then it will add all that particular data to here and then we'll be you
28:02
able to use that particular data in inside this particular app so from here maybe if i can even
28:09
click edit data so that i will be able to use that data let's say for example customer one
28:17
address one and then a city maybe and i will just close this okay so it will save the table and then
28:25
what will happen is that once i click here i will be able to drag drop this table here and then
28:31
we'll be able to use this entire table or from here you can just click connect to data and then
28:37
from this connect to data you will be able to select this data and then it can be used
28:44
as a data for your environment okay but just to keep it very simple will what I will do
28:51
is I will again go back to the app which I have already created so which was this live
28:57
management app so let me go there and open up that so for example if I can go back to
29:03
this project OCDL demo and click see all. So from here, we'll be able to see all of the information
29:10
about all of the apps and everything that we have. So here I will go to the apps and then we have
29:16
this leave management app. So this leave management app has the similar interface to the one which we
29:22
saw, which was created on top of SharePoint. But this one is now created on top of Dataverse or
29:30
cds okay so there we can define the relationship between those two tables so again here we do have
29:39
two tables called as a leave request and the approvals before i go into the table probably i
29:45
can just show you the quick preview of how it looks so this is the simple interface that we
29:50
will have wherein we can name for example if i click new record we can name our leave maybe a
29:59
apply for and then we can select the department to which we belong to the leave type and then
30:07
start date and end date for that leave again these two these three fields that we have
30:12
here leave reference number approval status and approval comments those are non-enditable
30:16
fields because those will be handled in the background from the approval okay so we won't
30:24
be able to add any data here but at least what we can do is we can add the data to this
30:30
particular request. So let's say for example I will go ahead and I will just say power
30:37
platform leave. Okay. I know there is no leave as such but I will again select the department
30:43
as R&D. Maybe the annual leave as the leave type start date from here we can pick maybe
30:49
12 to 13 and then we'll just click on save so what it will do is it will create that record
30:58
into the table so from here you will be able to see that record so this is the information that
31:03
has been created and then what we see here is this leave reference number which is lr-0011 okay
31:11
so i will show you how this number gets generated but this is how the look and feel of all of the
31:18
leave request that goes as a part of power app okay so what we will do is i will close this down
31:25
and then probably again go back to the build and show you the tables that we have so again if i go
31:31
to the ce all here and if i go to the table specifically so here we we do have two tables
31:37
first one is for leave request wherein we will store all of the information specific to our leave
31:44
So that will include department, start date, end date, the leave type, leave reference number, status and the comments
31:52
Again, since I have selected this custom view, I'm just concentrating on to the fields or these columns that we will need
32:00
Otherwise, for example, if I go for all, we have too many columns and then it will be cumbersome to search for our own columns
32:08
So if you just want to concentrate on your business specific columns, select this view custom
32:14
And then from here, you'll be able to just concentrate on those part
32:19
So just a quick overview of this particular table. So here we have a approval status, which is of choice column, which is approved, pending or rejected
32:31
And then we have this approval comments, which will come from the approval
32:35
So which one is a text area in this case? Then we have a department which is a lookup
32:41
And then this lookup is onto this particular table, which I will show you in a moment
32:46
And then we have this end date and start date with date only kind of data type
32:52
This leave reference number is something new, which is auto number. So that means to each of the number that gets generated into the system
33:01
we are identifying that with some kind of an auto number. And then we have this new type of choice and name, which is our out of box field
33:10
So for example, if I open up this new reference number from here, you will be able to see that
33:15
to each of the new reference number that gets generated, I'm prefixing that with LR that
33:21
means leave request. And then the minimum number of digits I'm expecting is four
33:25
And then the seed value that means at what interval the next record value should get generated is the seed value
33:34
So I'm just keeping it to 1 so that the next number that we will get is LR00121314 and so on
33:42
So this is how we can use this auto number because what happens is that whenever a leave has been requested into the system or submitted into the system
33:53
we should be able to uniquely identify that system because again, we are going to use this as a reference for our bot
34:02
So I will show you that in a moment, but at least this will just set a background when
34:08
I will explain the bot. The second table that we have is a approver's table, which is a very simple table, wherein
34:15
we just have a name of the approver. So again, this one is the name field, but I just have renamed this to a approver
34:22
And then we have this department. So in the approver, we have email of the approver for that particular department
34:32
For example, if you want to see the data, I will just click on edit data
34:36
So we have department including R&D, Marketing, HR, and Finance. And these are the list of approvals
34:42
So in previous demo or at least in the previous screen, when I created the leave request, it was for R&D departments
34:53
So that means it will go for the approval of this admin user. based on the department that you choose it will go to the approval of that particular
35:02
department admin okay so this is the table structure that we have then i just have explained
35:06
this app like how this app works so probably again i will go back here and then from here
35:13
we'll be able to see that so when we will run this particular application what will
35:18
happen is that it will show all of the data from those tables that we have in the background
35:23
which this app is connected to and then whenever we will add any of the new records those will be
35:30
stored into the rows of that particular table okay so again if you want i will just again click this
35:37
preview and from here we are able to see all that information okay so this was simple uh but maybe
35:43
let go into some more aspect of how we can extend this particular system for for some more advanced features OK so next thing is like how then we can integrate this Power Automate with Microsoft Teams So Power Automate are mostly used for automating all of
36:00
your business processes. And since this is a leave management process or leave management system
36:06
the obvious use case for us is the approval process. So when the leave will be created in
36:12
system. It should go to the approval and then based on what approval says, the result will be
36:21
reflected onto your app again. Okay. So for that, what I can do is again, I will go back to this
36:27
build and then I will again click on see all. This is kind of a very simple window from where you
36:35
will be able to concentrate on the specific part you want to build upon. So for example, if you want
36:40
to build the apps then you can come to this and just create the app if in case you want to create
36:45
the cloud for flows or the power automate flows you can come to this particular section and do
36:50
that so again in order to create new cloud flows we can just click on new and then again from here
36:56
we'll be able to create cloud flows and again we have got those three options of automated
37:02
instant as well as the scheduled so what i did in in this particular flow is i already have this
37:09
flow created for leave approval process wherein what we are doing is as and when there will be a
37:15
leave submitted into the system that means whenever the entry that that gets created into the table
37:24
okay for that let me click on edit and from here we'll be able to see that so whenever that particular
37:30
record gets created into a table called as leave requestable so in the chain type we have various
37:38
things that can happen on to a particular table it includes create create or delete delete update
37:44
and other things so for example if you compare that with sharepoint it is if the item is created
37:51
updated or deleted so similarly we have this this one for records which are specific for for our
37:58
tables so i will select this particular table i will select the change type as created that means
38:04
I want to hook to the event wherein a new leave request is submitted or created into
38:10
the table. Then what I can do is I can go to the other table where we have approvers table or the
38:17
list of approvers based on the department watch what we have selected while submitting
38:21
the leave. And then from here we can filter those rows and this is the ID that you can get from the table
38:29
This is the internal name of that table. Sorry, that column that you can refer here
38:35
So the internal name of that was CR556 underscore approvers ID, which I have
38:40
And then if it is equal to the department, which is selected by the user while submitting
38:46
the request. So what will happen is that we will get all of the approvers matching this particular criteria
38:53
So in our case, I selected the department as R&D. So what it will do is it will go into the approvers table and get all of the approvers
39:03
that we have for R&D department. So this particular activity will just do that
39:09
Next thing is that this is just the variable I'm defining so that for example, if there
39:14
are multiple approvers, I will club them together into this particular string and then I will
39:20
use it while sending the approver email to the approvers. Then I will loop through all those approvers and then I will take that into this particular
39:30
string called as var Approver Email. And then I'm just updating that particular record with pending so that we will able to
39:40
see that this particular request is pending for approval. Then the major activity that we should start the approval process and we will assign that
39:50
to the variable. this variable will include all of the matching approvers. And this is the title for that
39:57
And this is the information that we will present to the approval. Once it is done, we will
40:02
wait for the approval to take the action on it. And if it is approved, in that case, we
40:08
will update the record with leave request as updated into the table. Or if it is rejected
40:16
then it is the same way. So for this particular application, I know that I am the or this
40:21
admin user is the one who is the approval. So what I will do is probably I will open
40:26
up the outlook for this particular user. So let me go ahead and open up the outlook. So
40:34
even I see that this particular flow has been triggered when I created that entry during
40:40
the first demo and this is the email that we have. So this is a leave request email
40:45
that we have received and from here we'll be able to take the action. So I will go ahead
40:49
and approve this leave. And I will just click on submit. So what it will do is it will take
40:58
that action and since I have approved it will mark that particular record as approved and
41:03
even we see the notification here. So again, for example, if I go back to the app and try
41:08
to see that it will be approved. So let's say I will go ahead and again click see all
41:16
and then if I go to the apps again click on leave management app. I know that there are too many
41:22
clicks that you need to do but at least this build will give you a very straightforward option by
41:29
which you'll be able to just concentrate on which of the part you want to work with. It is taking
41:35
some time but okay so for example if I click preview now and go to that specific leave which
41:41
is LR0011 here we see all of the leave status which is approved and these are the comments that we have put in okay i know that this text box is very much slow to sorry very much low
41:54
to read for you but i can read it for you the leave is approved and here we have the
42:00
approved details and when it was approved so one thing is good like we are able to do
42:05
it right within microsoft teams i never opened the power app portal or power automate portal
42:11
differently but right within the context of Microsoft Teams we are able to do that one
42:17
catch here is that now that as a user I always have to come to this particular app and check
42:23
check the status of the leave because whenever we submit the leave it is always kind of an
42:29
exciting exciting moment for us to see whether the leave is approved or not but again we
42:34
cannot wait until leave gets approved and every time we will have to come to this app
42:40
and check for the leave status. So what we can do in the next scenario is that we'll
42:45
try to integrate this power virtual agents with Microsoft Teams. I know that even though
42:50
all of these Power Automate, Power Apps, they look very much good. But we as a human try
42:56
to or like to talk much with the bot. So we will create that simple bot which will help
43:01
us to take the leave request status and present that to the user. So for that particular thing
43:10
what I will do is again, I will again go back to this build tab that we have and again
43:14
click see all so that we will get a neat clean view wherein we'll be able to create those
43:20
chatbots. So these chatbots are nothing but the Power Virtual Agents. So from here you
43:26
you can click new and chat bot and you will be able to create a new bot. So I will just
43:31
open up the bot that I have pre-created. So this bot is very much simple. What it does
43:37
is it calls the tables that we have in the background, the leave status table or leave
43:49
table that we have. And then it tries to get the matching records for all of the things
43:54
Okay, let me extend this trial. Okay, I should have done that before
43:58
All right. So again, these chatbots are based on the topics. So topics are nothing but the intents of the user
44:06
like what the user want to do with my bot. So inside this, I have created one topic called as leave management topics
44:14
So the intention when the user will come to this particular bot
44:19
are very much simple that they want to know the leave status
44:23
So these are the intention that with which user can come to this particular bot. So for
44:28
example, leave status, check leave status, what is my leave status? Is my leave approved
44:34
So this will be the kind of questions the user will have. So these are kind of triggering
44:40
phases for us by which this bot will get invoked. So what I will do is I will go to this authoring
44:47
canvas from where we'll be able to define the flow for this particular bot. So whenever
44:52
someone hits with that particular triggering phase our bot will invoke and it will ask the
44:57
first question like what is your leave reference number so in in our case it was lr-0011 then
45:04
what we will do is we will get that user response which is a text text box in in this case which
45:14
is a text in this case and we will store it into a variable called as where leave reference number
45:19
Okay. And then what we will do is we will go ahead and get those values from the leave
45:27
reference number. And then we have a flow here. I will open up that flow quickly. What that flow
45:34
does is in the background, it queries the tables that we have and it tries to get the information
45:42
about the leave. So this is the triggering point for this particular flow, which is the power
45:47
our virtual agent, which will present this flow with the input as leave reference number
45:54
that we have. And then we have activity called as list all the records. And again, here we
46:00
are filtering the rows based on the leave reference number which was provided by the
46:04
user on this leave request table. And then what we do is we just use this body as the
46:10
compose action so that we can present that information to the user and then again we
46:17
just loop through the status and create that particular body and then we return that particular
46:25
information to the bot so that it will say whether the leave is approved or not. So I
46:33
I will again go back to our authoring flow. And then for example, if it gets some kind
46:40
of an value, it will fall to this particular branch, which is onto the right. And it will
46:46
present that particular information to the user who is the end user of this bot. If in
46:51
case he doesn't get the value from the bot, in that case, we will simply say that, sorry
46:58
did not get the matching request maybe please try again okay so what I will do is I will
47:04
maybe just try to invoke it from here itself I will just type leave status so again the
47:11
intention should not be the exactly same that we have given to the user but at least it
47:17
should be the close matching because again this power virtual agent uses NLP a natural
47:23
language processing when it comes to the processing of those inputs given by the user
47:29
So here it is asking me for the leave reference number. I already had it copied down, which
47:33
is LR0011 I will send that to bot and then bot can invoke this particular flow and then it should be able to get that value from the table and then it is saying that this leave is approved okay
47:47
so this is how we'll be able to create all of these apps flows as well as the bots right within
47:53
the context of microsoft teams one thing now that we have done everything now that how can we get it
47:58
deployed right so maybe for example if I stick to virtual agent again if I go to authoring canvas
48:08
so from here we have this publish okay so from this publish we'll be able to publish this bot
48:15
so I will click publish so that we'll be able to publish the latest content and then next thing is
48:22
that probably we can just open this bot and then we can click on add so this live management bot
48:29
will be added as an app inside my teams and then from here probably I can pin this so that whenever
48:36
I come to this Microsoft Teams I will be able to directly get the live status from here itself okay
48:44
with that again go back to the power apps or this data was for teams and let's see how we can
48:52
publish the apps to to the teams okay so for that purpose again I will go back to the build
48:59
and I will click see all and from the apps section I will go to that specific app that we created
49:07
which is live management app okay so this is the app that we we had created and we just tested that
49:13
into the browser or at least into this microsoft teams creation experience but we will see like
49:21
how we can publish this and then how could be the end user experience for that. So before
49:27
publishing, you can just click on preview. You can see how it is working. And for example
49:32
once you are happy with that, here we do have options to publish to teams. So once you click
49:38
publish to teams, this will get published to the team to which you have created this
49:45
So now that this is saying for everyone to the team, so we'll click next year
49:54
And once I do that, it will present me with the options like to a channel or yeah, to
50:03
a channel we want to add that. So I will just click add app as a tab and then click seven close
50:10
Okay. So once I do that, this particular app should get added as a tab to my general channel
50:19
So since I was working on this project demo here, we see that app has added as the
50:27
tab. And then from here, we'll be able to use that probably I will just close down this
50:33
conversation. So now that this is how it will be seen by the end users of your Microsoft Teams
50:39
So this will be the end user experience of this particular app
50:43
So from here, they will be able to see all of the leaves which are in the system
50:49
And again, you can go ahead and just show the leaves which are applied by them only
50:53
It can be done. And then again, you can just click new record from here, you'll be able to submit the new
50:59
records as well as you'll be able to edit the existing records
51:04
And for example, if you want, even you will be able to see the status from here itself
51:10
So for the end user, the experience will be something like that
51:16
The app will be right inside their teams added as a tab
51:20
And from there, they will be able to see that app, play around with that app
51:25
And again, for example, when they want to look at the leave management, or sorry, leave
51:30
bot. In that case, they can go to this bot and they can see the status. Again, this bot
51:36
can be added directly inside your Teams and from there it can be invoked. So the summary
51:43
of this session is that this project or at least this data was for Teams will give you
51:49
more flexibility by which right within the context of Microsoft Teams, you will be able
51:55
to create your apps, your flows, as well as your Power Virtual Agents without leaving the
52:01
teams, but again, getting the same power of the Power Platform. If you compare this particular experience with the previous experience, it was like in the
52:11
previous experience, we had to go to the Power Apps portal, create the app there, then again
52:16
come back to the Power Automate portal, define our flow there, then again maybe come back
52:21
to the Power Virtual Agent portal and then do it from there
52:25
But with this Dataverse for Teams, we are doing it right within the Team as a native apps
52:31
So with that, here are a few of the resources which will help you to get started your journey
52:37
with Microsoft Teams, Power Platform, Power Automate, as well as Dataverse for Teams
52:42
So these are some good references. And again, for example, if you want to go beyond, then here are some good community
52:49
references, some good in-depth YouTube videos from Reza Dorani. Again, there are a couple of nice articles by Laura Rogers as well as Feshan Upanen
52:58
So I will encourage you to go through these. So this will give you more clear picture and you will be able to create few more advanced
53:06
scenarios for your Teams users. So natively, they will be using the Teams, but you will back them by the power of Power Platform
53:15
So with that, I would just like to say thank you to everyone for attending this session
53:22
And thank you C-Shop Corner for giving this opportunity