Best answer

Second level data from Rest hook is not being passed to next task

  • 19 October 2020
  • 5 replies
  • 174 views

Userlevel 1

Hi,

I’ve just been using Zapier a few days.

I’ve created a Rest hook trigger which is working mostly ok. Because most of my trigger data is dynamic i.e. there is a varying amount of properties and the property names are unknown I have left the “Define your output” as {} and not run the “Generate Output Field Definitions” in the trigger.

And, I am just using a standard: return [bundle.cleanedRequest]; in the Perform part of the API definition.

My data from the trigger is of the form:

{        

        "responseId": "8545daa6-ee88-42c7-ad99-b4eb23ae9495",       

        "response": {           

            "q1": "sadad"

        }

}

 

I’ve created a Zap in another account which has two tasks: task one is the trigger itself and task two then tries to push some of the data from the trigger into a Google sheet.

 

When I configure my Zap it is getting sample data correctly. When I map the Google sheet fields I can see my sample data. When I test it all of the sample data is pushed into the sheet.

 

Now, when the Zap is actually turned on and triggered it works but only the top level data is pushed to the Google sheet. Everything below the top level is left blank.

 

When I examine the task history of the Zap I can see that my trigger is providing all of the data. When I look at the input for the Google Sheet it is like this:

COL$A:

8545daa6-ee88-42c7-ad99-b4eb23ae9495

COL$B:

{{102495311__response__q1}}

So only the data at the top of the JSON is making it to the sheet.

 

Note. If I change my Zap to send an email rather than update a Google sheet I get the same issue: blanks where the second level data should be.

 

Any ideas what might be wrong / what I need to do?

 

Many thanks,

 

Steve

icon

Best answer by Zane 19 October 2020, 22:00

View original

This post has been closed for comments. Please create a new post if you need help or have a question about this topic.

5 replies

Userlevel 7
Badge +9

Have a look at your test Zap’s task history for that entry (timestamped 2020-10-19 18:18:09) and the “Data Out” that was passed from the trigger.  response.q1 is present but has no data.  There are several other child objects that are populated with data. 

In the earlier task history entry there is data in the q1 field - so I think this explains the inconsistent behavior you’re seeing.

So either this is perhaps a hole in the dataset, or a bug on the server side where that field isn’t getting populated in the outbound hook message consistently somehow?

 

 

Userlevel 1

Hi Zane,

Thanks for your reply. I didn’t expect a Zapier staff member to answer otherwise I would have stated that the actual proper requests have come from a different Zapier account.

The only reason there is not a response.q1 for that entry is that I didn’t provide one. My response actually consists of 4 items (I just cut the example down to the bare minimum in the question to just keep it simple).

The data comes from a survey which consists of four questions. When the user fills in the survey none of the fields are mandatory. When our server gets the survey response it then send the data to Zapier. None of the fields except for the top level data appears in the sheet.

I have subsequently created a survey response where all of the data is filled in (but it is in a different account as I am using a second account to test - I don’t really want to put that account’s email address here but can send it to you in a direct message if you like?):

Trigger output from that request:

 

 

Google sheets input:

Only Column 1 gets populated.

Best regards,

Steve

Userlevel 7
Badge +9

Ah, yes… even the data that is populated isn’t getting passed to sheet step.  Null value was a red herring.  Sorry about that.  

And yes, Zapier staff doesn’t generally look into accounts/logs from community issues - I couldn’t help myself and had to take a peek.  

There’s something obvious I’m missing here.  Something about how the nested field is getting referenced.  Maybe something to do with the casing even.  

I’m going to suggest sending a message at https://zapier.com/app/get-help - I think this could benefit from someone looking at the logs and at your app specifically to see what’s going on.  

Thank you Zane,

 

I will be doing as you say as I’ve tried a few things and I haven’t found a solution yet.

I changed my Perform code so that it took the second level info and copied it into the top level. This is working when it gets to Zapier in that the new data is now in the trigger data bundle. But, when I try to use this info in Google sheets I cannot select the new top-level field. I guess this is because the “Perform list” code that is called to get example data bundles during setup of the Zap does not go through the Perform code.

There must be a pattern for dealing with this situation?

Best regards,

Steve

Userlevel 1

Thank you Zane. I contacted customer support and they were able to find the issue and replied very promptly - very impressed with Zapier support. You suggested it yourself - it does appear that there is a slight difference in casing between what my example outputs and the actual trigger data output. It seems that the fact that the first level data was being pushed into Google Sheets correctly was just because that part of the data had the exact same case as the example whereas the dynamic parts of the data were being sent camel case.

Many thanks.