Agenda:
1. Overview
Approvals in Microsoft Teams is an simple way to streamline all of an organization's approval requests and processes. Short, Approvals in Microsoft Teams enables your employees to easily create, manage, and share approvals directly from Teams. The below addresses 2 use cases/scenarios - one is a stand-alone approval scenario for internal educational assistance requests and the second one addresses a PO approval scenario within Microsoft Dynamics 365 for Finance and Operations.
2. Internal Educational Assistance Approvals via Teams
Log into Teams either via desktop application or browser under https://teams.microsoft.com/. Navigate on the left hand side to Approvals and Template management.
Note: To create templates, you will need to be a Teams admin.
Create a new Template from scratch.
For now, we choose "Org wide" template - but keep in mind, you could also create templates just for certain teams or users.
Set up the basic configurations for the template such as category and description.
Set up form design such as adding fields for submitter name and today's date.
As a next step, set up if an attachment is required and who should be the approver/s. (in our case, we just have one approver set up for simplicity)
Preview the results.
Publish the template if you all looks good. Voila - we are ready to use the approval template.
End-to-end Demonstration:
Navigate to the Approvals application on Teams.
Create a new request via template.
Choose the educational assistance template and fill out the form.
Send/Submit the approval. After the approval has been given, the below confirmation notification is sent.
3. D365FO PO approval via Teams Approval Application
Now, we will leverage the Teams Approval application to process D365FO PO approvals directly via Teams.
First, set up an automated PowerAutomate flow under flow.microsoft.com. We will set the D365FO business event as trigger and specify the environment as well as which business event itself will trigger the flow to kick off. In that context, I selected my demo box as well as the Purchase order workflow for the USMF legal entity.
As a next step, we add the parse JSON action and pass on the Body from the business event and parse the data via the following JSON schema:
{ "type": "object", "properties": { "BusinessEventId": { "type": "string" }, "ContextRecId": { "type": "integer" }, "ControlNumber": { "type": "integer" }, "EventCategory": { "type": "string" }, "EventId": { "type": "string" }, "EventTime": { "type": "string" }, "LinkToWeb": { "type": "string" }, "ListOfOutcomes": {}, "MajorVersion": { "type": "integer" }, "MinorVersion": { "type": "integer" }, "OutcomeName": { "type": "string" }, "SerializedWorkflowDocumentData": {}, "WorkflowComment": { "type": "string" }, "WorkflowConfigurationId": { "type": "string" }, "WorkflowCorrelationId": { "type": "string" }, "WorkflowCreatedDateTime": { "type": "string" }, "WorkflowDocument": { "type": "string" }, "WorkflowDueDate": { "type": "string" }, "WorkflowInstanceId": { "type": "string" }, "WorkflowOriginator": { "type": "string" }, "WorkflowOwner": { "type": "string" }, "WorkflowSequenceNumber": { "type": "string" }, "WorkflowStepInstruction": { "type": "string" }, "WorkflowTemplateName": { "type": "string" }, "WorkflowUserEmail": { "type": "string" }, "WorkflowVersion": { "type": "string" }, "WorkflowWorkItemInstanceId": { "type": "string" }, "WorkflowWorkItemSubject": { "type": "string" }, "WorkitemOwner": { "type": "string" } } }
As a next step, we validate the work item and set a condition.
If the validation value equals true, then an approval item is created in the Teams approval application.
If the validation value equals false, then an email is sent stating that an action is needed to be executed prior approval can be processed.
Lastly, as soon as the response is recorded, the outcome will be passed back to D365FO.
As a final step, create a new endpoint under business catalog events form in D365FO and select PowerAutomate as endpoint type.
Now, enter a name and PowerAutomate URL.
Navigate to D365FO and the business catalog events form and activate the PO approval work item business event.
Select the prior created endpoint and specify the LE.
Validate that the business event is now active under active business events.
End-to-end demonstration:
For the following end-to-end demo, I set up an easy PO approval work flow. There is no automatic action and all approvals are simply routed to my userID #2.
Create a PO and submit the PO for approval with my userID #1.
You can see that there is a pending work item for my userID #2 in D365FO under workflow history.
The UserID #2 that is logged into teams via browser gets now an approval request notification and can approve the work item directly from Teams - See below.
I can click on the attachment if more details are needed (The attachment is a link to the PO in D365FO).
The link directs you straight to the selected PO approval work item in D365FO.
If all looks good, I can add comments if needed and approve the work item in Teams and submit the response.
The final status is set to "completed" in the teams application and I receive the below notification.
Just to check, I validate that the the approval was passed back smoothly to D365FO. You can see my PO is now in approved status.
Lastly, I check the automated flow that orchestrated the above - the status shows that my run was successful with no errors.
Voila :) Enjoy!
Hi Chris - interesting, thank you for a detailed guide. Do you think it would be possible also to fetch and include a URL from the PO (a link to a supporting document stored in SharePoint) in the approval request?