I have a TypeForm with Hidden Data Fields in It that is not passing those hidden fields to Flow/Logic Apps. The fieds are present but the data that is passed is always null despite the data existing on the typeform side.
Hi WiggityZwiggity,
I am afraid that Typeform Hidden fields have not been supported yet. Please create a request at Flow Ideas Forum:
https://powerusers.microsoft.com/t5/Flow-Ideas/idb-p/FlowIdeas
I will also collect and report this request on my side.
Best regards,
Mabel Mao
Never got communication that this launched, but this is now working for folks who are interested.
This was working properly, until recently. There appear to have been some changes in the Typeform API and this severely affects the form data available in Flow. For example:
This has broken several of our flows, since they were built using these elements.
Any indication whether this will be fixed any time soon? Not having this work again would mean a serious setback in some of our business processes.
Thanks for any feedback!
Any updates on this? Still doesn't seem to be able to pass through question in a question group.
This is very important. I could not access the idea forum suggested above to vote for this (it says access denied).
Any suggestion on how to circumvent this?
I'm also suggesting Typeform to be able to have a hidden field as a prepopulated response. This could also help.
@ricardoj wrote:This is very important. I could not access the idea forum suggested above to vote for this (it says access denied).
Any suggestion on how to circumvent this?
I'm also suggesting Typeform to be able to have a hidden field as a prepopulated response. This could also help.
No idea, sorry.
But, for what it's worth- we've found a workaround for getting all data from our TypeForms into Power Automate:
Note: we had to build in a delay because triggering this flow right after the submission is done, yielded no results- TypeForm needs some time to store the data.
Let me know if you need more details. This also solves the issue with questions placed under question groups.
Thank you! How do you extract the response_id from the TypeForm trigger body?
I can't seem to find it under the Dynamic Content available fields.
Thanks in advance. Your workaround looks great.
@ricardoj wrote:Thank you! How do you extract the response_id from the TypeForm trigger body?
I can't seem to find it under the Dynamic Content available fields.
Thanks in advance. Your workaround looks great.
It's all the way down the complete list of Dynamic Content in the initial TypeForm dynamic content list. Search for "Response Submission ID", thats what you need in the HTTP request to TypeForm Responses API.
The code associated with that ID is @{triggerBody()?['form_response']?['token']}
You should be able to use that as well (if you Copy/Paste that into the Value field, it should refer to the correct ID.
Thank you very much for your suggestion @sdefesche .
We are trying to replicate your solution, I don't have much knowledge about HTTP stuff, do you know what am i supposed to put in the Tenant, Audience, Client ID Credential Type and Secret? Or this is not the right way to do it?
It's a shame that we have to go through all this hassle just to get the Hidden Fields.
Hi @sdefesche ,
I'm walking into the same issue as you had, I need some hidden details.
I've the response ID, but I didn't know how to do they other steps. For example: the HTTP request, what are the correct steps to get that information?
Is it possible for you to drop some printscreens of your steps and how you come to the correct information?
Thanks in advance.
Hi @dennisb88 and @cjhenrique ,
I apologize for not answering sooner, I must have missed the question.
I'll walk you through our solution step-by-step.
So, we need the 'Response Submission ID' from the initial TypeForm trigger:
Then we build in a delay. That's very important, since it takes some time for the data from the response to actually be stored and available to use. I usually build in a one-minute delay.
After that, we use the HTTP connector:
I'm using the Dutch UI, but you'll get the drift.
That's basically it!
MPA will then return a JSON object in the Dynamic Data under the HTTP connector ('Body'), which you will have to Parse using the 'Parse JSON' action. The schema depends on the contents of your actual TypeForm, but can be obtained by running the flow as a test. You can then copy-paste the actual JSON into the 'Parse JSON' connector. MPA will then correctly parse the code into usable items.
In order to get the hidden fields, we will need the item called 'hidden'.
In order to make it work, we then need to also parse this object, using the same method as above. So, we use the 'Parse JSON' action on the 'hidden' object. Then we end up with the actual values of the hidden field available for further use:
It's quite a dense process, but it does deliver.
I hope this helps, let me know if you need more info.
One of the processes we run using this method looks like this:
Addressing this question directly, you should choose 'None' under Authentication, since we use the Authorization method with an API key (see my response below). Then you just need to fill in 'Authorization' as a key and 'Bearer' and the actual token in the value field.
Thank you @sdefesche ,
That's helping a lot. I got my hidden field now!
The last part what's not directly working is to get only the hidden object value.
For example, my output of the second parse JSON action is:
{
"email": "yourname@gmail.com"
}
I was try to do this with some expressions, but that wasn't help me. How did you that in your flow?
In one of our flows, we use two hidden fields, a SharePoint id and a first name.
The actual JSON object looks as follows:
I've ran the flow once to generate this schema, then use it as an example load in the 'Parse JSON' connector:
{
"type": "object",
"properties": {
"type": {
"type": "string"
},
"properties": {
"type": "object",
"properties": {
"id": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
}
},
"vn": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
}
}
}
}
}
}
Both these values are then available as dynamic data in the rest of the flow:
Does that help?
Hi @sdefesche ,
I can get the value of the response. Thank you.
Only one this that's still strange, that I get the last 25 responses back from my http request..
I don't know why, but I've exactly done as you described:
After the test run, you see that there are 25 results, that's not what we need, we need only the last response.
Do you know why that's happens?
That is strange, since you use the specific Response Submission ID in the http call, right? You might want to check and re-check since there are quite a number of dynamic values that bear some resemblance to the Response Submission ID.
Also, in the last 'Apply to Each', to what object are you applying these actions and what is it that is returned exactly? Do you get 25 different values for 'relatie' from 25 different submissions?
Yes that's the strange part. I'm using the Response Submission ID in the http call.
What I see is that the Responses API from typeform is set on 25 responses.
Yes I get the value of 25 different submissions. So that's not what I expected. I don't know how to filter it to exactly the right submission.
The apply to each is set to "items" I put the value of relatie in a string variable, to use it later in my flow.
User | Count |
---|---|
88 | |
37 | |
26 | |
13 | |
13 |
User | Count |
---|---|
127 | |
54 | |
38 | |
24 | |
21 |