cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
freddiejoseph1
Helper IV
Helper IV

Emailing MS Form Responses

Hi all,

 

I have created a flow which emails the responses of an MS Form to the responder but also to a team mailbox in my org. It works fine, however, there is a lot of branching in the Form because it is quite complex. And I don't have Form Pro. I know that if a questions does not get answered then the field will just appear as blank in the body of the email.

 

Is there any way I can remove the question from the body of the email if all of the possible answer fields are blank? 

 

freddiejoseph1_0-1623421508231.png

 

 

For example above. If the responder doesn't answer the "Contract Title" question in the MS Form, how can I remove the "Contract Title" text from the body of the email in the flow?

 

I haven't yet found a way to do this.

 

Any help would be much appreciated.

 

Thanks,

 

Freddie

1 ACCEPTED SOLUTION

Accepted Solutions
freddiejoseph1
Helper IV
Helper IV

I have managed to work out how to do this myself (after a LOT of trial and error). There is probably a nicer/more efficient way of doing this but here is how I achieved only including answered questions and their responses, collected from a form, in an email.

My flow steps are: When a new response is submitted > get response details > create item in SharePoint > send an email (V2). I also have some variables so I can convert some date answers. But you probably won't need these. My send an email currently looks like this in flow: 

freddiejoseph1_0-1623773126973.png

 

But it looks worse than it really is. I will explain the logic now.

The first 4 questions & answers you see at the top of the screenshot are mandatory, hence I haven't added any special logic to them. You would replace the SharePoint dynamic content/Output logic with your MS Form Answers whenever you see me use one here.

Rather than hard coding the question name, you wrap the question name in an 'if' statement. My first example of this would be 'ContractTitle' and the first if statement you see in the screenshot is: 

if(empty(outputs('Create_item')?['body/ContractTitle']), '', 'Contract Title: ') and what this logic does is sees whether there is an answer for the contract title question. If there is no answer submitted, it enters two single quote marks '' (which is effectively just a blank), if the user has answered that specific question then it enters 'Contract Title: '. After the first if, I then put the response to the question. Obviously if no answer is submitted then this will just show as blank anyway (which is the functionality we want). Then after the question response I have another if statement which is: 

if(empty(outputs('Create_item')?['body/ContractTitle']), '', '

<br>')

This looks up to see whether contract title has been answered. If there is no answer in that field then I have another double single quote mark ('') which again is just blank. If there is an answer for contract title I have a '<br>' which is HTML code for a carriage return (so it will drop down a line if an answer has been submitted).

 

I then start the exact same process all over again for the next question following the same logic. So without leaving any spaces or hitting the return button I just carry straight on with another if statement:

if(empty(outputs('Create_item')?['body/ContractOwnerName']), '', 'Contract Owner Name: ')

Followed by the answer field

Followed by: if(empty(outputs('Create_item')?['body/ContractOwnerName']), '', '

<br>')

 

Following that logic throughout means my email looks like this and only includes answered form questions 🙂

freddiejoseph1_1-1623773187303.png

 

Let me know if you want me to explain/help further. This has worked for me!

Thanks,

 

Freddie

 

View solution in original post

3 REPLIES 3
PrasadAthalye
Super User
Super User

You will have to write expression and do a null check something like below...

 

if(not(equals(outputs('Get_response_details')?['body/r6c6ad0ab931a4a26b0564e655ebd153c'], null)), outputs('Get_response_details')?['body/r6c6ad0ab931a4a26b0564e655ebd153c']  )
Please Like and Mark this as Answer if it resolves your Issue.

Power Automate Community

Hi Prasad,

 

Thanks for coming back to me. I have tried implementing something similar and I get the below error: 

freddiejoseph1_3-1623661025961.png

 

The formula I put in is: 

if(not(equals(outputs('Compose_Start_Date'), null)), 'Contract Start Date: ')
 
What I want to happen is, if the output from either a question in the form, or from a variable/compose function (which is based on the answer to a question in the form anyway) is blank/null, I want that question to disappear from the body of the email.
 
I also tried using the variable directly and I get the below error:
freddiejoseph1_2-1623660486966.png

With formula: 

if(not(equals(variables('varStartDate'), null)), 'Contract Start Date: ')
 
Any advice would be appreciated,
 
Thanks,
 
Freddie
freddiejoseph1
Helper IV
Helper IV

I have managed to work out how to do this myself (after a LOT of trial and error). There is probably a nicer/more efficient way of doing this but here is how I achieved only including answered questions and their responses, collected from a form, in an email.

My flow steps are: When a new response is submitted > get response details > create item in SharePoint > send an email (V2). I also have some variables so I can convert some date answers. But you probably won't need these. My send an email currently looks like this in flow: 

freddiejoseph1_0-1623773126973.png

 

But it looks worse than it really is. I will explain the logic now.

The first 4 questions & answers you see at the top of the screenshot are mandatory, hence I haven't added any special logic to them. You would replace the SharePoint dynamic content/Output logic with your MS Form Answers whenever you see me use one here.

Rather than hard coding the question name, you wrap the question name in an 'if' statement. My first example of this would be 'ContractTitle' and the first if statement you see in the screenshot is: 

if(empty(outputs('Create_item')?['body/ContractTitle']), '', 'Contract Title: ') and what this logic does is sees whether there is an answer for the contract title question. If there is no answer submitted, it enters two single quote marks '' (which is effectively just a blank), if the user has answered that specific question then it enters 'Contract Title: '. After the first if, I then put the response to the question. Obviously if no answer is submitted then this will just show as blank anyway (which is the functionality we want). Then after the question response I have another if statement which is: 

if(empty(outputs('Create_item')?['body/ContractTitle']), '', '

<br>')

This looks up to see whether contract title has been answered. If there is no answer in that field then I have another double single quote mark ('') which again is just blank. If there is an answer for contract title I have a '<br>' which is HTML code for a carriage return (so it will drop down a line if an answer has been submitted).

 

I then start the exact same process all over again for the next question following the same logic. So without leaving any spaces or hitting the return button I just carry straight on with another if statement:

if(empty(outputs('Create_item')?['body/ContractOwnerName']), '', 'Contract Owner Name: ')

Followed by the answer field

Followed by: if(empty(outputs('Create_item')?['body/ContractOwnerName']), '', '

<br>')

 

Following that logic throughout means my email looks like this and only includes answered form questions 🙂

freddiejoseph1_1-1623773187303.png

 

Let me know if you want me to explain/help further. This has worked for me!

Thanks,

 

Freddie

 

View solution in original post

Helpful resources

Announcements
MPA_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

V3_PVA CAmpaign Carousel.png

Community Challenge - Giveaways!

Participate in the Power Virtual Agents Community Challenge

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

R2 (Green) 768 x 460px.png

Microsoft Dynamics 365 & Power Platform User Professionals

DynamicsCon is a FREE, 4 half-day virtual learning experience for 11,000+ Microsoft Business Application users and professionals.

Top Solution Authors
Users online (1,144)