Document Acknowledgement and Attestation with Microsoft’s PowerPlatform - Step by Step

Published Oct 03 2019 08:32 AM 10.6K Views

0.jpg    The following is a guest post by Microsoft's Michael Trachtenberg

Organizations large and small require employees and even external entities to read, review, and accept terms.  This is can be part of on-boarding, regulation and compliance acceptance, or even terms of service.

Leveraging Microsoft’s PowerPlatform and Office 365 we can securely store policy related documents, use Flow to automate document acknowledgement and attestation, use PowerApps to provide a mobile friendly app to review and accept policy documents, and finally we can build beautiful dashboards to visualize that status of a given document acceptance process.

We can start with a simple Teams site back ended with a SharePoint library that acts as secure file repository.


We can allow policy managers to control the data through edit permissions and groups to allow them to enter required users\groups whom must attest or acknowledge specific policies.


Leveraging this repository, we can build a Microsoft Flow that will allow the same policy managers to send out acknowledgement and attestation requests.

First, we must build the Flow that follows a simple process of: Trigger->Get Information->Perform action

The trigger we are using is executed when the manager selects a file in the document library, this flow can be executed on a specific document.


Can this be automated? Yes it can.


With the file selected and the Flow triggered we need to gather information on the selected file and build a list (Array) of all of the users\groups to send the acknowledgment\attestation request to.


With that information gathered we perform the action on each member of the array.  This will execute the actual acknowledgment\attestation process for each user\group that the manager has added to the SharePoint list.


There are 2 parts happening here, first we are writing an item to a sperate SharePoint list.  This will act as a log for active requests and historical acknowledgment\attestation acceptance.


Second, we are using a custom approval that will ask the user to “Attest” to the policy or “Deny” it.  We then use a switch to build parallel processes for the different outcomes.  We can of course allow more or less outcomes.


Each person that is being processed can receive a Teams message or email with a card that has a link to the policy and their respective options.


If the user selects “Attest” as part of the approval process, the SharePoint log list is updated, and that user’s process ends. 

If the user selects “Deny” they will be engaged with a bot to discuss with them their concerns as to why they have denied the policy.  Their transcript with the bot can then be logged or sent to a manager to discuss the policy.


We can then review the SharePoint Log to review the status of any given policy.


Leveraging Microsoft Power BI we can visualize this data to better interpret it.  We can also setup alerts and notifications for requests that are older than x days.


Lastly, we can leverage Microsoft PowerApps to build a robust web\mobile friendly application that allows people to see all their policies.


Within the details of a specific item, we can acknowledgment\attestation right through the app!


And then get confirmation of acceptance.


So, leveraging all of the components of the PowerPlatform we can build complete end to end solutions that help to automate business process and simplify the way we work.


Want to learn more? Michael Trachtenberg will be presenting a walk-through of building the solution live online on October 14. So grab the calendar invite and bring your questions! :)

Thanks for visiting – Michael Gannotti   LinkedIn | Twitter | Facebook | Instagram

Michael GannottiMichael Gannotti


Occasional Visitor

Hello -- My Attesters array seems to be empty. I must be missing a step on populating the array from the "required" list column. Is there something required for the initial value?   -- Thanks


@AshleyMallory Jut seeing your question. I will pass along to the author

Occasional Visitor

Thanks -- would like to see how to pull a group's members from the "Required" column and send the notice to each member. 

Senior Member

Hi, I unfortunately missed this in October. My organization is interested in building a tool for this, and I was wondering if you are willing to share your work as a template? It's almost exactly what we are needing.


Hi @PamKaiser-Rabobank He may be. Ping Michael Trachtenberg on LinkedIn here and see what he thinks. 

New Contributor

Hi, this is great, just what I've been looking for. Just one thing how would you go about handling new starters through the middle of the year after the initial message has been sent out to groups? would it ignore entries in the SharePoint list already created or double up


Hi @PashJugpal I would encourage you to reach out directly to Michael T on LinkedIn with your question  

Senior Member



I am trying to create the same Flow, need help with List and Library as I dont get the same variables to prompt?

New Contributor

I will admit to not having tried this, but surely the "start and wait for approval" will "hang" the process while the first person responds. When they respond only then will the next person in the list receive an email, and repeat until the process eventually times out and you will have to send everything out again meaning the first person will get the email again.


I am not convinced that there is ANY in-built sharepoint flow that gives admins  the ability to receive "I agree" responses. I have talked to many sharepoint gurus at companies, all of whom are initially convinced it's trivial to implement using a flow. They soon find out it is not. No one has ever been able to use sharepoint to offer this service. Of course there are third party solutions at a huge cost for the small amount of times the service is needed. 


However as I said, I have not tried it ...anyone?


@MrJohnson1905 You might want to contact the author, Michael Trachtenberg, directly on LinkedIn as he has done this. 

Occasional Visitor

Hi, going for a longshot here but I have read through this post and watched the video with Michael. But I still sadly dont have the entire picture of how to use this when you want a group of people to attest. Michael says and shows that you need to normalize and setup an array but never shows how that is done. And the pictures its not shown. I have send Michael a message on linkedin but no response, might this be to old? Does someone have information about this and how it should be setup when wanting to send it to groups of people. Got it working when tying in the full email but never with groups.


Hi @Spetschristopher Michael T. has moved on to another group within Microsoft so not able to leverage him here further. 

Version history
Last update:
‎Oct 03 2019 08:38 AM
Updated by: