Fixing frequent Zapier errors
Last updated
Last updated
If you get an expired Download URL error during the building of your Zap, try reloading the example record in your trigger.
Since the Download URL is only valid for 1h, you need to refresh the Documents in Zapier to get new Download URL. You can do so by clicking the Load More button in the Test section of your trigger.
Generation output
This tip is for the trigger but it will not apply for the output of a Generate Document action. Is this case you will need to generate a new Document in order to get fresh data and a valid Download URL.
This error will usually happen if you use the custom JSON option to write your Zap but have values that need escaping before being sent to PDFMonkey.
Let's say you defined the following custom JSON:
If the value in Dynamic Field From Zapier
contains quotes, the constructed JSON will end-up broken. Let's take Peter "Spiderman" Parker
as an example. Here is what the end JSON would look like:
As we can see, it will not be a valid JSON payload when it's sent over the wire.
HTML attributes
If you send HTML for instance this will happen a lot as 99% of the time attributes use double quotes to set their value (ex: <div class="test">
)
What you actually want is to escape those double quotes so that your JSON remains valid:
JSON doesn't support values that include line breaks, so this is invalid JSON:
What you want to do instead is escape those line breaks by either replacing them with a <br>
tag or transform them to the text representation of a line break (\n
).
Do you really need custom JSON?
The first question to ask yourself is "Do you really need custom JSON?". In most cases, the simple mapping approach will be good enough and will make your life easier as it will take care of escaping everything automatically.
If you can't escape the values before they reach Zapier, the next best solution is to add a Code by Zapier action before calling PDFMonkey.
Let's say you data contain both line breaks and double quotes and are looking like this:
Trigger App User Bio
This is the bio of the user.
It's a free form text that the user can edit so it can contain line breaks.
It could even be split in a few paragraphs… why not?
Trigger App User Name
Peter Parker
Trigger App User Full Name
Peter "Spiderman" Parker
Here we need to escape values for both Trigger App User Bio
and Trigger App User Full Name
. Let's start by adding a Code by Zapier action to our Zap and selecting Run Javascript :
We can now give our fields names that will help us identify them in the following steps:
And now we'll add the magic that will solve our issue, the actual code:
It will give you the same fields in the output but with their value properly escaped:
You can now use those values when building your PDFMonkey payload.
Notice how here we used the fields coming from the second step and not from the trigger.