“My MS Forms form has multiple questions with the same name, how can I recognize in Power Automate which is which?”
The input from MS Forms questions into Power Automate is one the more complicated ones. It’s not a problem for simple forms with unique questions, but it gets complicated for forms with repeated questions. On the surface it looks simple, the dynamic content uses the question name, but what if there’re 2 questions with the same name? How can you recognize which is which to use the right one?
If it was a SharePoint column, or an element from JSON, you could check the background code, but not for MS Forms. Instead of a readable column name it contains that question’s identifier. So, is there a way to connect the identifier to a question?
Get the information from the form
Since you can’t take the information from Power Automate, you must send it from the form. Do a test run with the form and properly describe the columns in the response. The assumption is that you already have a flow to process the forms response.
Check the flow history
Once you submit the response, go to the flow run history into the ‘Get response details’ action. At the end of that action you’ll see the ‘body’ with all the responses. And in the responses you’ll clearly recognize the questions you just described and their identifiers.
...
"r197abc0eaf6c4494805698e60f359481": "Comments question 10, section 1",
"r0af6700a13634485812d37593e434773": "Comments question 11, section 2",
...
Use the right dynamic content
Once you know the question identifier, it’s easy to use the correct dynamic content. If it’s just two or three questions, you can add all of them into the action and remove the ones with different identifier.
But if it’s more than that, you might want to build the dynamic content by yourself. Add one of the dynamic contents into an action and copy/paste it into a text editor.
@{outputs('Get_response_details')?['body/r197abc0eaf6c4494805698e60f359481']}
You can see that the question identifier is in the [‘body/….’] section. Replace that identifier with identifier of the question you need and copy/paste it back.
@{outputs('Get_response_details')?['body/r0af6700a13634485812d37593e434773']}
You just successfully identified the question and added it to your flow.
Summary
In most situations in Power Automate you can recognize the data by its background code, but not with MS Forms. MS Forms will give you just the question identifier and it’s up to you to understand it.
But if you can’t recognize it directly, you can still describe it to yourself. Put a proper description to these questions, do a test run and check the result. Even if you don’t understand coding you can recognize the question key in the response body and use it.
Tom, thanks for the very clear runthrough of how to identify all the question IDs in one swift motion. Excellent article!
For the lazy people, here’s a solution I’ve come up with that doesn’t require sifting through form results (especially if you only need to identify one question) : Edit the forms, and add an exclamation mark or another symbol to the question. Thus, your initial questions “How are you?” and “How are you?” become “How are you?” and “How are you?!”. Notice the exclamation mark on the last variation.
Once your form has saved the changes, save and refresh your flow building tab. You will now be able to identify which question was just modified by looking for the added symbol. When searching for dynamic content, simply pick the one with the new symbol. Now, save your flow.
All that remains is to remove the added symbol in the forms question.
Once you refresh your flow, the dynamic content picker will show the updated name (without the symbol), but since behind the curtains it is still pointing to the correct ID, your flow will reference the correct question.
Seems like a lot of work, but honestly, it’s easier done than said. 🙂
Happy trails,
Louis
Hello Louis,
that’s a good approach, thank you for sharing the solution with everyone.