Featured image of post Quick Approvals - Send with Options

Quick Approvals - Send with Options

As I digitally transform the club I am involved with, stardiving.org I come across ways in Power Automate that are pretty useful. I have previously talked about Adaptive Cards for approvals and this works great, but only for internal use. Same with Approvals, they are perfect for what I wanted to achieve, but limited to internal users.

Send Email with options is a great way of getting approval or an answer to a specific question for any user, external or internal. I use this action, along with a Form & some parallel branching to move our little club another step towards total digitisation

The Scenario

My club, for a new member, requires entry of their personal details, medical information and contact details, and the way we store this and allow for access necessitates that we use online, secure storage. With my background, it is clear we should use SharePoint lists to store this data (yes, I know SharePoint is not a data repository, but it works great when you do not have a lot of data and limited monetary resources).

Forms is also a great tool to publish these questions out to our members or their parent or guardian. It gives a great look and feel, is pretty easy to set up and, again, is free in the licensing Microsoft generously gives the club due to its charitable status. The problem with Forms is that you can not collate signatures. You can’t do this via Forms Pro either, there are several really good business reasons for this, especially as Adobe or Docusign make a whole business out of this.

For my scenario, we had to get agreement to various parts of the entry, particularly around the consent to store their data and use it run the club. This would be easy in a paper form, just ask for a signature, but to bring this electronically, I needed to create a way of ensuring that they have agreed and capture that agreement.

Power Automate has a great approvals engine, but you can not send an approval outside of your organisation (you can if the user is a guest, but I don’t want to add all our parents as guests). So this is out.

Adaptive Cards are also great, but this is restricted to internal users as well, and you are reliant on the receiver of the card having the appropriately supported viewer, which is only Microsoft applications currently.

Power Automate also has a “Send email with Options” which allows a much simpler approval process, but you can send it to anyone. Perfect for my scenario, free and any email address!

The solution

  • Forms data entry
  • Copy information to SharePoint list
  • Ask for approval via email
    • Approve email given
    • Have a record that they acknowledged.
  • If approval is not given, notify an administrator

Form

Megan Walker is the Forms queen, not going to try and compete with the knowledge she has imparted since Forms came out.

My form is pretty simple, asks a host of questions on behalf of the diver and the parent. There are a couple of sections, branched depending on whether the user is entering this form as a member or their parent/guardian.

I ask in the form for them to confirm a couple of key points, by asking for the name of the diver to confirm their agreement. This is obviously not foolproof, but gives enough confirmation, backed up with the email approval that comes as part of the Flow.

Create SharePoint Item

My trigger is “When a New response is submitted”. As I have no CDS, this is the only one available to me. I then get the response details, which helps later when you want to copy the details across to SharePoint list.

Next step is to create the SharePoint list

Because we will have different user groups, there are separate questions in the survey which populate the same data fields in the list. This is done with a simple if ( equals (field,’’), value1, value2) function. The random field names are those linking to the questions, which look prettier when you insert them.

1
if(equals(body('Get_response_details')?['r11eaea5575824aa8b515f76fd43d1332'],''),body('Get_response_details')?['r6d52d6567ea1425aaf91c6d678c125e8'],body('Get_response_details')?['r11eaea5575824aa8b515f76fd43d1332'])

Emailing for approval

After the list item is created, I put in a parallel branch. The left branch sends out the email for approval, the right branch waits for a week. If the week is reached, send an email to our administrator to chase the person, as the user who entered the information has not done the confirmation.

On the left parallel branch, I create the email with options

This formatted email converts into the email below, shown in GMail. You can see the formatting that was applied, and the 2 buttons I defined in the action.

Clicking on the Approve or Deny button shows the user this screen, thanking them for their response

Waiting for Approval

Back in the Flow, we wait for a response.

If it is not Approve, then send an email to our administrator, to check what part they don’t agree with.

If it is Approve, update the item to confirm that the member is registered successfully

Either way, cancel the flow. As the other parallel branch is waiting for a week and then responding to our administrator, cut this short by cancelling the flow.

comments powered by Disqus
My views, nothing to do with anyone else
Built with Hugo
Theme Stack designed by Jimmy