cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
WiggityZwiggity
Helper V
Helper V

Hidden TypeForm Fields Not Showing

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.

22 REPLIES 22
v-yamao-msft
Community Support
Community Support

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

Community Support Team _ Mabel Mao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

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:

 

  • hidden fields are now no longer available
  • answers to questions that are part of a "question group" are now no longer available

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.

No, it's still not functioning properly.
ricardoj
Regular Visitor

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:

 

  • We extract the Response Submission ID from the initial dynamic data retrieved from the TypeForm response. 
  • Then we delay the flow for a couple of minutes
  • Then we use the HTTP action to use the Responses API, using the above ID 
  • Then we use the 'Parse JSON' action to extract a part of the answers from the AnswersObject that came with the initial dynamic data
  • Then we use the 'Parse JSON' action to extract the missing answers from the data retrieved by using the Responses API
  • Now we have all the data from the response available to use as we wish

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?

 

cjhenrique_1-1595866913211.png

 

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:

sdefesche_0-1610550168058.png

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:

 

sdefesche_2-1610550540312.png

 

 

I'm using the Dutch UI, but you'll get the drift.

 

  • For 'Method' choose GET, since we want to retrieve a specific response.
  • FOR 'URI' the syntax is https://api.typeform.com/forms/{formID}/responses?included_repsonse_ids={actual responseSubmission ID} 
  • Then we enter a header with key 'Authorization' and a value of Bearer {API key}. (Let's say the API key you got from TypeForm is 12345, the value would look like this: Bearer 12345.
  • You can generate API keys (tokens) under Settings>Profile>Personal Tokens in TypeForm
  • TypeForm's Responses API basically covers all of it, you can find it here: https://developer.typeform.com/responses/

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.

 

parsejson.jpg

 

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:

 

pjson2.jpg

 

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:

 

flow.jpg

 

 

 

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?

hi @sdefesche ,

 

Thank you, all works here! 

Great examples you've shared here. Thanks again!

In one of our flows, we use two hidden fields, a SharePoint id and a first name. 

 

The actual JSON object looks as follows:

sdefesche_0-1610635900127.png

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:

sdefesche_1-1610635963421.png


Does that help?

 

 

dennisb88
Resolver III
Resolver III

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:

dennisb88_0-1610697135690.png

 

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?

dennisb88_1-1610697250091.png

 

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.

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.

Users online (1,661)