I have some data coming in in json format with Zap.(Attached "Long Answer")
I want to use that json data in Code Step (JavaScript), but when I do JSON.parse, the test succeeds and the Zap execution fails.(Is the input format different between test and runtime?)
For example, the following code will fail.
// *input data // {"object":"AAA", "id":"BBB"}
const fixed_json = JSON.parse(inputData.text);
output = {"result" : fixed_json.object};
How can I get the contents of the incoming json data with inputData?
Page 1 / 1
Hi @kt1111
This worked when tested.
INPUT
OUTPUT
Hi @Troy Tessalone ,
Thank you for verifying.Is your result the result of actually launching the Zap scenario, not the test run?
Also, you input the value directly in the inputData, but what if you are referencing the value from another node as in my first figure?
@kt1111
When you see {{placeholder}} it means the mapped variable was blank/null/empty/missing.
Is the input empty because the format that can be received by Code Step is different?
Hi @kt1111 - You'll need to explicitly map the different values from the Long Answer object in the code step because it can't accept objects.
Hi @ikbelkirasan ,
Does the inability to accept an object mean that I can't refer to the value from another step as shown in the image? Or does it mean that the value entered in the Long Answer field is unacceptable due to the json format?
Hi @kt1111
in your screenshot, it looks like Zapier has already parsed the object Long Answer and in the next zapier steps you will have data fields like Long Answer object, Long Answer id, Long Answer lead_price, etc…
You will need to map the individual fields unless you rebuild or have access to the raw json from the previous step
Question - how do we include error checking in that code above? My zap keeps stopping because there is no data in the object. Can you add some code that would just skip it if the data is empty?
I appreciate the speedy reply Troy! Only issue is that I want the zap to run no matter what. Filters are good for stopping the zap if a condition isn’t met.
Basically, sometimes there is data in the object, and sometimes there isn’t. Even if there isn’t data there, I need the zap to continue firing.
This code is when metadata comes over from stripe and needs to be parsed ONLY when the metadata is present. If the metadata isn’t there, then the output is empty. If it is there, then we output only the “name” that comes from the json array from stripe. Hope that helps!
Thanks so much for sharing your solution with the community, @mattc526! I know this is definitely going to help others.