The new Approvals application emerged in Microsoft Teams everywhere mid- January 2021. While this version needs to be considered version 1, it always packs great possibilities for organizations to use. Creation of an approval request is very easy and you can also attach documents with it.
Everyday, lightweight, approval requests can be for example to this
- approval to attend an event or purchase something
- work order approvals
- OK to start work on something
- Acknowledgement of NDA/practices/code of conduct
- review of a document / code
- Hours approval
- Approval of blog texts or other materials
- etc.. and there is no limit here but the imagination!
What is really good is that approvals are traceable (who did and when ) and it is not possible to remove the earlier entries from the list. Read about using the Approval app with a business process later in this article. Note: you can only add approvals to your default environment.
Approvals also send an email about the approval so the person doesn’t even have to be in Teams to be able to approve the request. While I like to say “that is not possible” I know in the real world there are lots of people who rely Outlook as their #1 tool. With approvals it is up to the receiver where they approve the request: if approved in email the approval app reflects that and vice versa. I love those updatable adaptive cards!
After opening Approvals app you you also check it’s own entry in Teams Settings – Notifications:
In there it is possible to control what kind of Teams notifications you receive concerning Approvals
It is possible to turn those notifications off as well:
First find the application by going to applications and searching for it
You can then add it to yourself, to a chat or you can add approvals to a team as well.
When you open the App you can see following areas in it:
- You can switch between Received (you are approving something) or Sent (you have created the approval request) approvals.
- The request title : what you should be approving
- The status: is it waiting for approval or has it been resolved already (like in the example)
- Who requested the approval
- Who are receivers (ie: who will be approving the request). There can be just a single approver (like in the example) or several.
6. Filtering the view: You can choose to show only Requested (open) approvals or ones with Custom answers.
The requested filter is very handy: you see only the open approval requests you need to act on – or you have sent out if you are looking at Sent folder – when you click that one on.
7. And finally you can create a new ad-hoc approval by using the button “+ New approval request“.
Creating a new approval request (ad hoc approval)
When the dialogue opens you will see the following (you need to do a bit of scrolling down to see all of it – I have used the copy-paste magic to this picture)
- Give your approval a name (title) that defines the approval need in compact form
- Choose people (type names/emails) who will be approving the request in your organization. Unfortunately you can not use guests here. You can – in fact – add a guest user as approver and the request is sent to them. But since they don’t have access to Power Automate, unless specifically licensed, they will see error when they try to open the approval via notification:
The lesson learned: do not put a guest users as approvers. Guests can not create approvals either. This is something you can err with easily so this is really something that must be instructed to users.
3. If you selected multiple approves this flag controls if you need their all approval or is just the first decision enough.
4. Details to what you are asking approval about. It could be something about the document or additional info to it, some insights or even just a summary of costs you need have approved in advance.
5. You can add attachments. You can only upload new files from your computer in this one. The files will be uploaded to your OneDrive under folder “Approvals Document” and shared automatically with approvers. When the approval is done nothing changes in files.
6. You can define custom responses when Approve and Reject isn’t enough. Basically you enter custom names for those answers so they don’t appear as approved or rejected. You could perhaps give two options (seeking approval for work order to 3 or 5 hours) – of course this would have been discussed beforehand with recipients.
7. Finally you send the Request.
In the example we have a approval request we send to Patrick about our blog post document.
We can see our blog post in the Requested (open).
And the document is loaded to OneDrive
Looking at the sharing link it reveals Approval actually creates a organization-wide sharing link , instead of keying that to a specific person. I can see the use here if we can switch the approval process to another person.
Switching to Patrick’s view we see the received approval
This dialogue is really simple. Patrick can
- open and edit the document
- see the timeline
- write comments
- Reject or Approve the request.
In this post we just Approve it with some comments.
Switching back to the original person we see we have a notification that automatically opens Approvals-app when clicked to view it.
From the app we can see the request was approved (the top area) and in the lower area we can see who approved, when and if there were any comments.
And that’s it on the ad hoc part! Really simple way to create approvals to one or more persons to manage! And since approvals don’t appear just in the notification feed but open the app automatically + all open approvals are easily found via the app it makes perfect sense to start using these for smaller use cases as well that have been earlier managed with chatting or atmentioning a person and asking approval in a free form. This one does have more traceability – older approvals can not be removed.
Approvals in a team
Once Approvals-application is added to a team it can be accessed from message extensions.
Or it can be called upon as a bot
And this one can be used to create new approval requests
The dialog that is opened is just like the one we opened earlier
And even the file upload happens the same way (from requestor’s computer).
What is different is that the approval request is visible in the team:
Patrick approves the request normally.
What is again different is that the approval notification directs directly to the team channel and it shows the approval outcome visibly in the channel.
Other team members can also see the approval in the team channel and they can view details of it.
Approval is also shown in my sent approval requests since I was the one creating it. Other team members don’t find the approval request via their Approval app.
How about using approvals in automatic and structured business processes?
Power Automate has had Approval connector for a long time ( since winter 2020 or longer!). This one has only three actions but you can use them to create approval processes in your flows or processes.
Start and wait for an approval is a simple one: you enter details and it creates the approval and waits until the decision has been made (or Flow expires after 30 days). However using that option doesn’t enable you to act between creation of the approval and the moment of decision. That is why I usually prefer to use Create an approval to create it and then it is possible to update information (request is sent) or be in contact with the backend systems about the status – or even ask for approval using adaptive cards in a Teams channel. One big advantage is to have response URL that enables you to write the direct URL for responses if you need to put to a custom location.
When you create an approval request in Flow you choose first the type:
After that (I recommend you not to change that after choosing it – it is better to delete the action and recreate it as a new one) you enter similar details than in Approval app
However you have two major changes here:
- Define the link for the item. It is an URL to a document, web page, other system. list item, page in SharePoint, .. you name it. And you add any title for that you want to
- Add people directly or via a dynamic value / variable – for example filled with all team members so anyone in the team can approve it
- It is possible to disable/enable reassignments
- Additional attachments can be added as well.
- Notifications (sending email & notification) can be turned off.
After that action the approval ID becomes available – as well as the response link, adaptive card about the approval and many other variables.
It is possible to use these actions in several processes very easily
- Approving a request that has been entered via Forms
- When a new file is uploaded, it needs to be approved before added to a team
- Asking to approve an NDA or contract when joining a team or during onboarding process
- Leave requests
- Travel / expense / purchase approvals
- Team practices approval when person joins a team
- Approval of the team creation
- Approval of confirming a task done
- Approving information before it is sent to the back end
- Enable guests approval processes by entering information to the list and then use triggered flow to ignite the process (check potential licensing)
- combine with numerous triggering and integration capabilities Power Automate or Azure Logic Apps offer.
- .. and again – there is no limit.
After the Wait for an approval completes you can check the outcome, who approved/rejected, comments, dates etc information. And since you are working in the Flow this enables the possibility to act on the document automatically: moving it to a specific location or locking it down with changing permissions
Note: You can not add approvals in Dataverse for Teams bot directly: you need to use a list or some other data storage in a step in a middle and then add a triggered Flow to proceed with approval process!
For more information
Read my earlier blog post about approving files for a Power Automate example.
You should also read my good friend’s , who is also a fellow MVP, Chris Hoard’s posts concerning Approval processes:
- Teams Real Simple with Pictures: Forms to the Flow, to the List, to the Team and Yammer using conditions and approvals
- Teams Real Simple with Pictures: An Approval process for List Items using Lists, Teams, Power Automate, Outlook and the new Approvals App
Other fellow MVP and friend Amanda Sterner also wrote about Approvals in her blog. Read her post here: Approvals in Microsoft Teams !
22 thoughts on “How to use the new Approvals app in Microsoft Teams”
I must have over-looked the procedure steps to manually resend or nudge the person the request for approval is sent to. Also what edition/version of the software/app is used in the article above. I utile approval through Teams and my GUI is no where near the same or am able to see the different options the article above is mentioning.
It is the standard Approvals-application in Teams. Some parts of that I used Power Automate Cloud Flow to create the approval request.
Approvals have two ways you can use it
– manually / ad hoc: create the approval request in the Approvals-app (this is getting templates and DocuSign-support in April/soon)
– create approval request in Cloud Flow (in Power Automate) and use Approvals application to decide the outcome
What about the “nudge”. I am awaiting a decision for an approval created in teams and there seem to be no way to resend or even share link to the approval request to be sent via chat. Any suggestions?
Perhaps you could use a parallel action in a Flow and Dataverse for Teams table or a SharePoint list that will track the state – possibly allowing a Nudge process to happen in the side-track while waiting for the Approval result.
That is a kind of hack of course, so the ability to do “something” while Approval is pending would be a good addition to the base model.
I would rather see date and time instead of 40 minutes ago. Can this be changes somewhere in the settings?
Unfortunately not to my knowledge..It follows the ‘friendly’ date & time display and will shift to actual date and time later!
once i send for approval of two bosses in my hierarchy, anyone of them can open first and approve. we cannot control about who should approve first.
I agree it would be awesome to be there put of the box. You can build a sequential approval process with Power Automate. Yes, it needs some low code development but opens the possibility to create multiple step approval processes that can be sequential (in order) and/or parallel. Basically: you can create a lot more versatile processes than what plain UI let’s you do.
Is it possible using Approvals and Power Automate at the same time but keeping only one experience for the user through Teams?
We have plans to use Approvals, but seeing Power Automate screen I can imagine a possibility to insert a field requesting a specific data and then through this field allowing to be tracked (such the number of time that documents were sent for a client, for example).
You can use upcoming Approval Templates to ask for more information from the user. https://myteamsday.com/2021/05/05/approval-templates/
Currently it is not possible to use Approval Templates Approvals with Power Automate, so it is just a once-time process. This hopefully changes in the future, since it would allow to create flows with Approvals and retrieve more information from the user.
Now you could create a PowerApp or a bot that requests information from the user during the process and then store that information to Dataverse for Teams, SharePoint metadata/list or to any storage you find the most usable for your process.
Your scenario sounds like something that could use PowerApps combined with document metadata and/or Dataverse for Teams along with a custom flow that includes approval.
You might store the info along with the document (either document identification and then retrieving info based on that ID or in document metadata) and use standard approval on those decision points. Like is it ok to be sent to the customer.
I set up an approval template in Teams for Purchase Orders (using the approvals app).
All I want to do is to get a URL or a link so that I can post a “This is where you go to make a purchase request”
If I try to add or mention it in the Team or chat, it tries to get me to fill out the form / “collaborate” which breaks it / or see status updates. I want none of those. I am just looking for an easy click to take them to the template.
You would have to provide a deep link to Approvals application, but I don’t think you can open a specific template via a link. You can’t link the Forms only to users because it would miss out the Approval app part.
This means you tell your employees about the Approvals app and how they can use it to create purchase requests. The good side is that when you add other templates there they find them out in the same place.
If that is not the option, you could do the following:
– Create a new Forms form or build a PowerApp where you collect the information from users (you can get a direct link to these)
– Build a Power Automate that catches the Forms response (or whatever the tool you choose to use –> get the response to Power Automate)
– Store form information to Lists or to Dataverse table (depending on licenses you have in use) or to any storage you prefer and have access to (tech & licenses).
– Create the approval process in Power Automate: there is Approvals connector with actions to create the approval & to wait for responses. This allows you to customize the process as you like. Including parallel or sequential approvals.
Yes, this is more complicated than using Approvals Templates but you have lots of flexibility how to use this one.
Test it out with Forms + Lists & Power Automate.
how to get some report – document with status of approvals, if I want to show / send to manager, that my request has been fully approved by stakeholders?
For custom processes you should consider writing a Power Automate Flow and create a process with needed approvals and record responses to a list or table for reporting. This allows also flexibility to create parallel and sequencial processes.
Out of the box there isn’t reporting. You could take a screenshot of the result though. Results are actually in DataVerse table that would theoretically allow reporting but it is not supported to interact with them and not all information is easy to extract or even available.
Is there a limit on number of approval per day or so?
And if any othere limitations that you may want ot highlight.
No, there isn’t any published limits on approval requests per day.
Limits and requirements for Approvals have been highlighted in this Docs article:
“Each team can contain at most 400 approvals templates, and each template can collect a maximum of 50,000 requests based on the current capability in Microsoft Forms.”
This means that a custom template can have a maximum of 50 000 approvals managed with it currently. If you have a high daily amount of processes with that you can count how long it will “last”. You can of course always create a new approval template and disable the old one to extend it – but with high numbers this is surely something that needs to be noted at governance.
This is a very interesting article.
I would like to know how the following can be done: every approval that is sent will also be received by a person from Human Resources.
Is this possible?
In theory, you could hook up to Dataverse tables that hold Approval information and then create actions based on those. I was experimenting with hooking up part earlier ( https://mymetaverseday.com/2021/09/15/approvals1/ ) but that is not by any means supported way and can have various other obstacles on the way.
For keeping some people in the loop about approvals that has been done the hooking up might be possible. Adding a HR to the process automatically might be a totally different story.
It would be a better way to ask people to add HR always to the approvals that are important. Soon there should be a way to add a group (team) and not just a single person. Or perhaps you would do certain templates that needs to be used and those templates always contain HR as approvers.
One way to always add HR to go is to create custom ways how approvals are created – using Forms, App or PVA Bot for example – and that custom process would create the approval inside workflow and made sure that right groups like HR are always added to certain approval processes.
I think in the initial phase what I will do is a template for HR that has the approval of the HR director.
How to add message field in Approvals? When approvals send and open it have only button reject and approve, how to add field where can type reasons to reject. Merci!
When you have Create Approval in Power Automate, choose Custom Responses instead of Approve Reject. In there you can modify different responses.
One trick is that after reject you send a Adaptive card to that user in Teams Chat and ask for the text explanation –> and store that for further process.