cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
SquirrelntraNut
Frequent Visitor

Typeform connector "skipping" unanswered questions in Typeform and communicating different numbering for questions in PowerAutomate

My Typeform connector is "skipping" fields not filled in by users on typeform. This means that once the Typeform submission reaches PowerAutomate, the question fields appear in different orders numerically speaking, depending on what fields the user chose not to fill in.

 

Have a look at 2 runs below.

 

In Run 1, I filled in Question 3 in my typeform.

In Run 2, I did not fill in Question 3 in my Typeform

 

SquirrelntraNut_1-1706759995566.png

SquirrelntraNut_2-1706760004266.png

 

Notice how in Run 1, Question 3 is properly accounted for.

In Run 2, Question 3 is now Question 4, making the rest of the numbers out of order.

 

At this point, my flow relies on these numbers being in order, as this is how it recognises these fields.

 

Perhaps you have a suggestion that would make it so that PowerAutomate doesn't rely on the numbering here?
Or Perhaps you would suggest something else?

 

Please note that I am already using PARSE JSON in this flow, as so:

 

SquirrelntraNut_3-1706759380155.png

 

Also, please note that I have no plans to make all questions obligatory in my Typeform.

 

1 ACCEPTED SOLUTION

Accepted Solutions

Hi , @SquirrelntraNut 

Thanks for your response! In my understand , the Select action should return the questions && answers:

Oh! Sorry i add the wrong expression here:

vyueyunmsft_1-1707209601091.png

split(item(),':"')?[1]
 
vyueyunmsft_2-1707209681113.png

 

Best Regards,

Yueyun Zhang

 

 

 

View solution in original post

16 REPLIES 16
v-yueyun-msft
Community Support
Community Support

Hi , @SquirrelntraNut 

According to your screenshot , the trigger return can not be modified and will confuse the numbers.

So , you need to convert the json return from Trigger in the flow. In my understand , you need to extract the question and the answers.

For example , you can refer to my test flow, we can convert the json to array like this without the number:

vyueyunmsft_0-1706769826673.png

This is my test flow:

vyueyunmsft_1-1706769873463.png

xpath(xml(json(concat('{ "root": ', string(outputs('Compose') ), ' }') )) ,'/root/*')

replace(xpath(item(), 'name(/*)'),'_x0020_','')

xpath(item(), concat('/',xpath(item(), 'name(/*)'),'/text()') )[0]

 

If this can not help you ,you can give the format of the data you want to convert to in Power Automate.

 

If this reply can help you , you can click mark this reply as solution (Accept solution) which can help more people, thanks in advance! 

 

Best Regards,

Yueyun Zhang

 

SquirrelntraNut
Frequent Visitor

@v-yueyun-msft Thank you!

 

So how do I take the fields returned by the Typeform connector (which start with numbers like 1., 2., 3.) and get my Compose Array to recognise the questions separate from those numbers?

 

For example, if we take the example I provided in Run 1 the question is:

 

3. Do you go by a different name?

 

and in Run 2 the question is:

 

3. What is your last name?

 

How do we get the array to recognise these returned fields as separate from the number they are returned by the connector with?

 

Hi , @SquirrelntraNut 

According to your description, do you mean you need each question number in your side?

In my test flow , i have remove the question number :

vyueyunmsft_0-1706771694253.png

And dose your all the question number and the questions  that will never change? Do you mean you want to get the Numbers+ Questions + Answers both and keep all the Questions even though the trigger do not return?

 

Best Regards,

Yueyun Zhang

SquirrelntraNut
Frequent Visitor

@v-yueyun-msft Alright, I think I understand now.

 

Could you provide me a step-by-step to creating my flow after my trigger using the actions you've outlined above?

SquirrelntraNut
Frequent Visitor

@v-yueyun-msft 

 

So far, I've set my flow up this way:

 

SquirrelntraNut_0-1706823493579.png

However, this is the error I'm getting on the select field:

 

SquirrelntraNut_2-1706823856155.png

So I can see that the 'Select' action is pulling in the questions, which is great! But there is also something wrong with it, can you see what that issue is?

 

Additionally, I later need to be able to access each answer from Typeform in dynamic content later on in the flow. After your actions, how do I turn my parsed Typeform answers into dynamic content?

 

SquirrelntraNut_3-1706824081381.png

 

 

Hi , @SquirrelntraNut 

Thanks for your quick response! Can you show me which expressions you put in your select action?

vyueyunmsft_0-1706838259184.png

 

Best Regards,

Yueyun Zhang

SquirrelntraNut
Frequent Visitor

@v-yueyun-msft 

I tried your initial expression: xpath(xml(json(concat('{ "root": ', string(outputs('Compose') ), ' }') )) ,'/root/*')

and got this error in the flow:

SquirrelntraNut_0-1706846388909.png

So I updated your that expression to the following:

xpath(xml(json(concat('{ "root" ', string(outputs('Compose') ), ' }') )) ,'/root/*')
And am now getting this error:
SquirrelntraNut_2-1706846522496.png

 


 

Hi, @SquirrelntraNut 

Thanks for your quick response ! Can your show your output of your Compose action or your Trigger output in your run history.

vyueyunmsft_1-1706846989190.png

 

As you can try to replace the compose to your output from your trigger.

We need to put this in the string() function:
{

"1:xxxx":"xxx",

"2:xxxx":"xxx"

}

vyueyunmsft_0-1706846785299.png

xpath(xml(json(concat('{ "root" ', string(triggerOutputs()?['body'] ), ' }') )) ,'/root/*')

 

 

 

Best Regards,

Yueyun Zhang

SquirrelntraNut
Frequent Visitor

 
Here is the output of my trigger:
 
{
"1: To begin, we just need to cover your privacy rights. Do you consent to disclose your *personal information *to Company for the purposes of employment candidacy enquiry?": "True",
"2: We love that you want to apply!\n\nWhat's your *first name*?": "FirstName",
"3: Do you go by a different name in everyday life?\n\nIf so, what name do you prefer being called?": "PreferredName",
"4: And what is your* last name*?": "LastName",
"5: What about your* email address*?": "emailaddress",
"6: And would you mind providing us with your *mobile number*?": "5555555",
"7: Do you currently hold the right to work here?": "Yes, I currently have the right to work",
"8: Amazing! Now to upload your *CV:*": "link",
"9: And {{field:d6211152d8003e69}}, if we were to look you up on Linkedin, at what URL might we find you?": "link",
"10: Now for the good stuff, what department are applying to?": "Department",
"11: And {{field:d6211152d8003e69}}, what *specific role* are you interested in applying for?": "Role",
"12: Just so we have the full picture, what *prompted* you to apply?": "Someone who works for you thought I'd be a great fit and encouraged me to apply",
"13: And who *referred* you?": "ReferrerName",
"14: And how do you know them?": "Former Colleague",
"Submitted date-time": "2024-02-01T21:25:10.000Z",
"Sent date-time": "2024-02-01T21:23:45.000Z"
}
 
Please also let me know if I've set up my flow correctly so far:
 
SquirrelntraNut_0-1706849048425.png

 

The goal is to have dynamic content for each typeform answer that is separate from the numbers the trigger delivers each question with (as these numbers change from flow to flow depending on how many fields are filled in on Typeform by each user). I will then apply each typeform answer to pre-determined fields in a sharepoint list in the flow.

SquirrelntraNut
Frequent Visitor

@v-yueyun-msft  I've tried your new Select expression but am still getting errors:

 

SquirrelntraNut_0-1706851260124.png

Hi , @SquirrelntraNut 

Thanks for you quick response and your sample json for me to test !

As the json have the ':' so when we use the xml() function will return error in flow. So we may need to change the method..

This is my test flow:

vyueyunmsft_0-1706852690661.png

vyueyunmsft_1-1706852744898.png

split(replace( replace( string(outputs('Compose')) ,'{' ,'') ,'}',''),'",')
reverse(skip(reverse(outputs('Compose_2')),2))
replace(trim( slice(split(item(),':"')[0], indexOf( split(item(),':"')[0] , ' ')  )),'"','')
split(split(item(),':"')?[0],':')?[1]
 
json(replace(replace(replace(replace(string(body('Select')) ,'{','') , '}','') , '[','{'),']','}') )
 

If this reply can help you , you can click mark this reply as solution (Accept solution) which can help more people, thanks in advance! 

 

Best Regards,

Yueyun Zhang

 

 

SquirrelntraNut
Frequent Visitor

Thanks for this, @v-yueyun-msft. I now need the outputs of each question/answer to use as dynamic content later in the flow. Here is how I was trying to use the original trigger outputs. How do I go about doing that using your new actions?

SquirrelntraNut_2-1707190038797.png

 

 

 

Hi , @SquirrelntraNut 

Thanks for your response! In my understand , we can delete the number in your question in my above reply.

vyueyunmsft_0-1707190267438.png

Then we can use the Parse Json action :

vyueyunmsft_1-1707190290583.png

 

And then we can select the question Name and then get each answer:

vyueyunmsft_2-1707190316776.png

 

 

Best Regards,

Yueyun Zhang

SquirrelntraNut
Frequent Visitor

@v-yueyun-msft Thanks for all the time you have spent assisting me.

 

However, it looks like your Select function is taking the Questions (with numbers) & Answers and turning it into the Questions (without numbers) and no Answers.

 

SquirrelntraNut_0-1707208528882.png

 

I know this because when I use the Parse JSON dynamic content, it is only returning the questions and not the answers.

 

Do you know how to return only the answers to use for dynamic content?

 

Please note that I still need the questions without numbers to identify the proper answers for this dynamic content.

Hi , @SquirrelntraNut 

Thanks for your response! In my understand , the Select action should return the questions && answers:

Oh! Sorry i add the wrong expression here:

vyueyunmsft_1-1707209601091.png

split(item(),':"')?[1]
 
vyueyunmsft_2-1707209681113.png

 

Best Regards,

Yueyun Zhang

 

 

 

SquirrelntraNut
Frequent Visitor

@v-yueyun-msft You have resolved this issue for me. Thank you!

 

For anyone else reading this trying to figure out the solution (across all our comments), here is the flow that Yueyun Zhang so kindly put together, that works perfectly to solve this problem:

 

SquirrelntraNut_0-1707211964017.png

SquirrelntraNut_1-1707212134984.png

split(replace( replace( string(outputs('Compose')) ,'{' ,'') ,'}',''),'",')
reverse(skip(reverse(outputs('Compose_2')),2))
replace(trim( slice(split(item(),':"')[0], indexOf( split(item(),':"')[0] , ' ')  )),'"','')
split(item(),':"')?[1]
 
json(replace(replace(replace(replace(string(body('Select')) ,'{','') , '}','') , '[','{'),']','}') )

 

Important: Ensure you have set up your flow with the exact action names here:

SquirrelntraNut_5-1707212401158.png

 

If you have never worked with Parse JSON before, add all actions up until Parse JSON and save the run. Then, run a test through it. Don't worry, this will fail, but what you will get from it will be the outputs of your Compose 3 action. Copy the outputs of Compose 3, and click back into edit the flow. Now create the the Parse JSON action, add the Compose 3 dynamic content to the Content field. Then click 'Generate from Sample', and paste the outputs of Compose 3 from your test run flow as a sample body of content. Your schema will auto-generate from that.

 

SquirrelntraNut_6-1707212475449.png

 

Then click Save on your flow again, and go back to editing it again. You will now find your answers from Typeform, named according to the questions under the Parse JSON action without numbers attached:

 

SquirrelntraNut_3-1707212175294.png

 

Amazing, right? 

Helpful resources

Announcements

Community will be READ ONLY July 16th, 5p PDT -July 22nd

Dear Community Members,   We'd like to let you know of an upcoming change to the community platform: starting July 16th, the platform will transition to a READ ONLY mode until July 22nd.   During this period, members will not be able to Kudo, Comment, or Reply to any posts.   On July 22nd, please be on the lookout for a message sent to the email address registered on your community profile. This email is crucial as it will contain your unique code and link to register for the new platform encompassing all of the communities.   What to Expect in the New Community: A more unified experience where all products, including Power Apps, Power Automate, Copilot Studio, and Power Pages, will be accessible from one community.Community Blogs that you can syndicate and link to for automatic updates. We appreciate your understanding and cooperation during this transition. Stay tuned for the exciting new features and a seamless community experience ahead!

Summer of Solutions | Week 4 Results | Winners will be posted on July 24th

We are excited to announce the Summer of Solutions Challenge!    This challenge is kicking off on Monday, June 17th and will run for (4) weeks.  The challenge is open to all Power Platform (Power Apps, Power Automate, Copilot Studio & Power Pages) community members. We invite you to participate in a quest to provide solutions to as many questions as you can. Answers can be provided in all the communities.    Entry Period: This Challenge will consist of four weekly Entry Periods as follows (each an “Entry Period”)   - 12:00 a.m. PT on June 17, 2024 – 11:59 p.m. PT on June 23, 2024 - 12:00 a.m. PT on June 24, 2024 – 11:59 p.m. PT on June 30, 2024 - 12:00 a.m. PT on July 1, 2024 – 11:59 p.m. PT on July 7, 2024 - 12:00 a.m. PT on July 8, 2024 – 11:59 p.m. PT on July 14, 2024   Entries will be eligible for the Entry Period in which they are received and will not carryover to subsequent weekly entry periods.  You must enter into each weekly Entry Period separately.   How to Enter: We invite you to participate in a quest to provide "Accepted Solutions" to as many questions as you can. Answers can be provided in all the communities. Users must provide a solution which can be an “Accepted Solution” in the Forums in all of the communities and there are no limits to the number of “Accepted Solutions” that a member can provide for entries in this challenge, but each entry must be substantially unique and different.    Winner Selection and Prizes: At the end of each week, we will list the top ten (10) Community users which will consist of: 5 Community Members & 5 Super Users and they will advance to the final drawing. We will post each week in the News & Announcements the top 10 Solution providers.  At the end of the challenge, we will add all of the top 10 weekly names and enter them into a random drawing.  Then we will randomly select ten (10) winners (5 Community Members & 5 Super Users) from among all eligible entrants received across all weekly Entry Periods to receive the prize listed below. If a winner declines, we will draw again at random for the next winner.  A user will only be able to win once overall. If they are drawn multiple times, another user will be drawn at random.  Individuals will be contacted before the announcement with the opportunity to claim or deny the prize.  Once all of the winners have been notified, we will post in the News & Announcements of each community with the list of winners.   Each winner will receive one (1) Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value). NOTE: Prize is for conference attendance only and any other costs such as airfare, lodging, transportation, and food are the sole responsibility of the winner. Tickets are not transferable to any other party or to next year’s event.   ** PLEASE SEE THE ATTACHED RULES for this CHALLENGE**   Week 1 Results: Congratulations to the Week 1 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Community MembersNumber SolutionsSuper UsersNumber Solutions Deenuji 9 @NathanAlvares24  17 @Anil_g  7 @ManishSolanki  13 @eetuRobo  5 @David_MA  10 @VishnuReddy1997  5 @SpongYe  9JhonatanOB19932 (tie) @Nived_Nambiar  8 @maltie  2 (tie)   @PA-Noob  2 (tie)   @LukeMcG  2 (tie)   @tgut03  2 (tie)       Week 2 Results: Congratulations to the Week 2 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 2: Community MembersSolutionsSuper UsersSolutionsPower Automate  @Deenuji  12@ManishSolanki 19 @Anil_g  10 @NathanAlvares24  17 @VishnuReddy1997  6 @Expiscornovus  10 @Tjan  5 @Nived_Nambiar  10 @eetuRobo  3 @SudeepGhatakNZ 8     Week 3 Results: Congratulations to the Week 3 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 3:Community MembersSolutionsSuper UsersSolutionsPower Automate Deenuji32ManishSolanki55VishnuReddy199724NathanAlvares2444Anil_g22SudeepGhatakNZ40eetuRobo18Nived_Nambiar28Tjan8David_MA22   Week 4 Results: Congratulations to the Week 4 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 4:Community MembersSolutionsSuper UsersSolutionsPower Automate Deenuji11FLMike31Sayan11ManishSolanki16VishnuReddy199710creativeopinion14Akshansh-Sharma3SudeepGhatakNZ7claudiovc2CFernandes5 misc2Nived_Nambiar5 Usernametwice232rzaneti5 eetuRobo2   Anil_g2   SharonS2  

Check Out | 2024 Release Wave 2 Plans for Microsoft Dynamics 365 and Microsoft Power Platform

On July 16, 2024, we published the 2024 release wave 2 plans for Microsoft Dynamics 365 and Microsoft Power Platform. These plans are a compilation of the new capabilities planned to be released between October 2024 to March 2025. This release introduces a wealth of new features designed to enhance customer understanding and improve overall user experience, showcasing our dedication to driving digital transformation for our customers and partners.    The upcoming wave is centered around utilizing advanced AI and Microsoft Copilot technologies to enhance user productivity and streamline operations across diverse business applications. These enhancements include intelligent automation, AI-powered insights, and immersive user experiences that are designed to break down barriers between data, insights, and individuals. Watch a summary of the release highlights.    Discover the latest features that empower organizations to operate more efficiently and adaptively. From AI-driven sales insights and customer service enhancements to predictive analytics in supply chain management and autonomous financial processes, the new capabilities enable businesses to proactively address challenges and capitalize on opportunities.    

Updates to Transitions in the Power Platform Communities

We're embarking on a journey to enhance your experience by transitioning to a new community platform. Our team has been diligently working to create a fresh community site, leveraging the very Dynamics 365 and Power Platform tools our community advocates for.  We started this journey with transitioning Copilot Studio forums and blogs in June. The move marks the beginning of a new chapter, and we're eager for you to be a part of it. The rest of the Power Platform product sites will be moving over this summer.   Stay tuned for more updates as we get closer to the launch. We can't wait to welcome you to our new community space, designed with you in mind. Let's connect, learn, and grow together.   Here's to new beginnings and endless possibilities!   If you have any questions, observations or concerns throughout this process please go to https://aka.ms/PPCommSupport.   To stay up to date on the latest details of this migration and other important Community updates subscribe to our News and Announcements forums: Copilot Studio, Power Apps, Power Automate, Power Pages

Users online (1,466)