Track and Process Digital Applications with Customer Voice & Power Automate
In this series of posts I will focus on how I leveraged specific parts of Power Automate to create a seamless process from application initiation, through to submission, follow up and beyond. There are two key Power Automate flows - one to send the application to the enquirer and one to receive the completed application from the customer. Previous posts have covered error handling application send failures & Sending personalised application invites with dynamics content
This post will focus on what happens after the application is sent to the customer and how we can support the users in processing the applications upon return. In terms of customer experience of completing applications with Customer Voice check out this post.
Track
As a unique invitation is sent to the applicant and linked back to the specific enquiry. The user can pick up the invite from the enquiry in Dynamics and check in on the invite status as it moves from sent to opened, started and finally submitted. Additional logic could also be built in here to nudge the applicant to complete the form.
Process
Receive the application
Currently there is no Customer Voice trigger/action for a survey or application response being received, but fortunately the Microsoft Forms trigger does the job just wonderfully. Using the ‘When a new form response is submitted’ trigger and ‘Get response details’ action we can instantly instigate the processing without any manual intervention.
Get the Customer Voice Survey Response record
One the application is received, a Customer Voice Survey Response record is created in Dataverse automatically by the Customer Voice integration. I have a separate flow that updates that response back to the enquiry, so adding a wait condition here ensures that is complete before we proceed. So if we can find the response record, it will give us the keys to get back to the enquiry this application relates to. We can combine the Form and Response ID to create a unique key to filter out the correct response record using the ‘List rows’ action. Plus leverage the wonderful $expand to get the information we need from the related enquiry & invitation.
msfp_sourcesurveyidentifier eq '@{triggerOutputs()?['body/resourceData/FormId']}' and msfp_name eq '@{triggerOutputs()?['body/resourceData/ResponseId']}'
regardingobjectid_lead_msfp_surveyresponse($select=pnp_enquiryid,leadid, msfp_surveyinviteid_msfp_surveyresponse($select=_createdby_value;$expand=createdby_msfp_surveyinvite($select=fullname))
Identify the key contact
One of the first key questions in the application is to find out who is completing the application - the persona applying for the care home place or someone on their behalf e.g. their child or carer. We need to know this to ensure we communicate with the correct party to ask for the supporting documents.
First we will declare three string variables - one to append the required documents to and the other two to capture the correct name and email for the applicable contact person on this application.
In terms of the evidence string - all applications must return their NSAF form, so this is added to all the supporting document requests, it’s also used to open the <ul> tags which allows us to create a bulleted list in the email.
Create a required supporting documents checklist
Every customer application is unique and the additional evidence & supporting documents they need to provide depends on lots of factors which we find out about by them completing the application form. Ideally we would capture these in the process of filling in the application but unfortunately external users cannot upload files to Customer Voice forms (for now…!)
So once they submit their response we are able to use their answers to given them clear and personalised guidance on what they need to do next. I use a series of conditions to iterate though the relevant questions, and based on the responses append the details of the required document(s) to the list. Ensuring each is nested within <li></li> tags to create that bulleted list. Some are simpler than others.
A simple yes/no question, if yes you need to provide the supporting docs and therefore append this items to the ‘EvidenceString’
The multi select option sets/choices are a little tricky - they are created in a comma separated string surrounded with [ and “ without any spaces e.g. ["Power of attorney","Guardianship","Financial management order"]. So we use the two below '‘Replace’ statements to clean it up to a comma separate string with spaces which can be put into the email
replace(replace(replace(outputs('Get_Application_responses')?['body/r7a32d2e27f484375bf52487e4ea4e70a'],'","',','), '["',''), '"]','')
Inputs: ["Power of attorney","Guardianship","Financial management order"]
Outputs: Power of attorney,Guardianship,Financial management order
replace(outputs('Remove_characters_''[_"_]'''),',',', ')
Inputs: Power of attorney,Guardianship,Financial management order
Outputs: Power of attorney, Guardianship, Financial management order
Close out the ‘EvidenceString’ list
These conditions are repeated until all questions relating to supporting evidence have been checked. Finally we need to end the HTML bullet list by appending a closing </ul> tag
Add an enquiry note for required supporting documents
So anyone who picks up the enquiry at a later day can clearly see what is/was required and help move the application process along
Notify the user who sent the application
The user who sent the application will be notified by email that a response has come in from their customer, so they know in a timely manner that it is ready for next steps
first(outputs('CustomerVoiceResponseViaFORMID')?['body/value'])?['msfp_surveyinviteid_msfp_surveyresponse/createdby_msfp_surveyinvite/fullname']
first(outputs('CustomerVoiceResponseViaFORMID')?['body/value'])?['regardingobjectid_lead_msfp_surveyresponse/msfp_surveyresponseurl']
Send support document request to applicant
There are many questions throughout the application that require supporting documents and it would be unfair for the customer to remember all of these on completion. So sending this email (which we Dynamically generated and personalised to them) gives them a clear instruction on what they need to do to progress their application.
Update enquiry
Finally we will update back to the enquiry for the date/time the response was received and mark the ‘Application Complete’ step to ‘Yes’
View and download responses
One the application is complete the response can also be tracked back to the enquiry. Users with access can review the submission both in the Dynamics Power App and also in context of the original webform. Previously all this data would have to be manually entered from the paper form into various other systems and forms for future processing, now they can easily copy/paste/search the data from their application. We could use some word template wizardry to produce this as a file which can be shared/stored if required for auditing reasons but for now we could also just convert it straight to a PDF without having to build anything else.
Monitor the Activity Feed
By ensuring all activity records (Emails, Notes, Survey Response, Survey Invites etc.) are set ‘Regarding’ the enquiry it ensures that the activity feed tells a complete story to any user whom may pick the record up to process it.
What’s next?
Digitising the application is just the start, now we have all the data in Dataverse we can also produce the preceding paperwork and documentation required to successfully process the application and get the resident into a bed at the Aged care home. Currently this is all manually entered into multiple disjointed systems and forms. Remember: digital transformation is a journey not a destination.
Questions, Thoughts or Suggestions? drop a comment below.