Resources · Zapier integration

CustomJS Zapier integrationAutomate CustomJS with Zapier.

The CustomJS Zapier integration gives you 0 triggers, 5 actions and 0 searches. CustomJS never starts a Zap on its own: another app fires first, then CustomJS renders a PDF, a PNG or a screenshot, merges PDFs or runs Puppeteer code.

Verified Trustpilot reviews · AI, automation & growth agency

Overview

What the CustomJS Zapier integration actually does

CustomJS is a document toolkit: it turns HTML into PDF or PNG files, captures web pages, stitches PDFs together and runs Puppeteer code. Plugged into Zapier, it becomes the step that produces a file in the middle of an automation, right after something happens in another app.

Three results you can expect. A PDF quote or certificate, written as an HTML template and filled with the data a previous step carried, through Create PDF From HTML. A social card or badge image, rendered from the same kind of HTML with Create HTML to PNG. A single file that bundles several PDFs, with Merge PDFs, when a client file is spread over separate documents.

Two more actions sit on the technical side: Create Screenshot grabs a website from its URL, and Run Puppeteer runs Puppeteer code you write. That last one is the only place where you write code yourself.

What Zapier does not do for CustomJS: start anything. The app has no trigger and no search on Zapier, so it cannot tell you a file is ready or look up an older one. It always comes second, after a trigger from another tool, and every action it performs counts as one task.

If you are still choosing a platform, read our Make vs Zapier comparison first.

Vocabulary

Zapier vocabulary in one minute

Seven words come back on every line of this page. Here they are in plain English.

Zap
The automation you build on Zapier: one trigger, then one or more actions that run each time the trigger event happens.
Trigger
The event in an app that starts the Zap. Once the Zap is on, Zapier waits for it. CustomJS has none, so it comes from another tool.
Action
What the Zap does once started: the step that writes, sends or produces something. All five CustomJS operations are actions.
Task
The unit Zapier bills: one action your Zap completes successfully. Your plan allowance is a count of those.
Polling vs instant
A polling trigger is checked on a timer by Zapier; an instant trigger is reported by the app the moment it happens. It depends on the app that starts your Zap.
Filter
A step that lets the Zap continue only when the incoming data meets your condition, and stops it otherwise.
Multi-step Zap
Any Zap beyond one trigger and one action. A second action or a filter makes one, and it needs a paid plan.
Cost

What a CustomJS Zap costs you

CustomJS is not a premium app, so it runs on the free Zapier plan. The trigger of your Zap costs nothing, and neither does Zapier checking for new data.

  • Free plan100 tasks per month, two-step Zaps only
  • Trigger and checksNever billed
  • Each successful action1 task
  • Premium appNo, works on the free plan

Each CustomJS action that succeeds counts as one task; one that fails is not counted. Generate a PDF and then merge it with another, and that is two tasks per run, so the number of actions in the Zap matters as much as the number of runs. The free plan stops at two steps, so adding a filter or a second action moves you to a paid plan. A Zap of one trigger and one CustomJS action stays inside the free allowance until you pass 100 successful runs in a month.

Connect

Connect CustomJS to Zapier in 3 steps

  1. 01

    Open the Apps page

    You need a CustomJS account first. In Zapier, go to Apps, then click + Add connection. A connection is your account linked once, then reused by every step that calls CustomJS.

  2. 02

    Find CustomJS and add it

    Type CustomJS in the search box of the dialog, pick it, then click Add connection. Zapier then opens a new tab where you sign in to your CustomJS account.

  3. 03

    Grant access

    Sign in and allow Zapier to use the account. If a document or template you plan to use belongs to someone else, make sure your account can read it before you build the Zap.

First Zap

Your first Zap: a PDF from each order form

GoalEach time a customer submits an order form, build a PDF order summary from an HTML template, but only for completed orders.

  1. 01

    Build: pick the starting event

    Click Build, choose your form tool as the trigger app and its new response event. This is what starts every run of the Zap.

  2. 02

    Test the trigger

    Click Test. Zapier brings back the three most recent responses of the connected account, so you map fields from a real one.

  3. 03

    Add the filter

    Add a Filter step from the plus icon: the status field, a text rule, the value complete. A text rule only works on text, so pick the right type.

  4. 04

    Add Create PDF From HTML

    Choose CustomJS and Create PDF From HTML. Paste your HTML template in the HTML field and drop the form fields into it where the customer name and items go.

  5. 05

    Test, then publish

    Run the test on the CustomJS step and open the result. When it looks right, click Publish to switch the Zap on. A filter makes this a multi-step Zap, so a paid plan is required.

Actions

The 5 CustomJS actions

CustomJS gives you 5 actions. For each one: what it does for you, when to reach for it, and what to watch out for.

1

Create PDF From HTML

Action

In Zapier“Convert an HTML string into a PDF.”

Feed it an HTML string and you get back a PDF document. Write the layout once, then let each run fill it with names, amounts or dates from the trigger.

When to use it
an invoice or a signed-up confirmation that must look the same every time, built from a booking or a payment.
Watch out
the HTML field is mandatory, and the PDF only looks as good as the HTML you paste.
2

Create HTML to PNG

Action

In Zapier“Create HTML string to PNG image”

Same idea as the PDF action, but the output is a PNG image. Your HTML becomes a picture you can attach, post or store.

When to use it
a personalised event badge or a quote card for social media, generated from each new registration.
Watch out
the HTML field is mandatory here too; an empty value from the trigger stops the step.
3

Create Screenshot

Action

In Zapier“Create screenshot of any website by providing URL.”

Captures any website from the URL you provide. Handy when you need a visual record of a page at a given moment.

When to use it
keeping a capture of a competitor's landing page each time a teammate logs its address in a form.
Watch out
the URL field is mandatory, so map it to a trigger field that actually holds the address.
4

Merge PDFs

Action

In Zapier“Merge multiple pdfs into one”

Combines several PDF files into one. You give it the addresses of the files and it returns a single document.

When to use it
joining a contract, its appendix and a cover page into one file before sending it to a client.
Watch out
the PDF URLs field expects the links separated by commas, so map them in that format.
5

Run Puppeteer

Action

In Zapier“Run code on puppeteer.”

Runs the Puppeteer code you give it. It is the open-ended action for what the four ready-made ones do not cover, as long as you can write that code.

When to use it
a page job that neither the screenshot nor the HTML conversions handle, and that a developer on your team can code.
Watch out
the Code field is mandatory; without code, the step has nothing to run.
When it breaks

When a CustomJS Zap breaks

Zapier attaches no help article and no documented limit to CustomJS. What breaks is what breaks on every Zap, plus the mandatory inputs of each action.

Four cases to keep in mind before you publish. If a run fails and you cannot see why, our Zapier troubleshooting page is the next stop.

  • Old records are never processed

    A Zap only reacts to what happens after you publish it. Forms submitted before that will never get their PDF; handling the backlog is a separate job.
  • A mandatory input arrives empty

    HTML, URL, PDF URLs and Code are all required. If the trigger sends a blank value for one of them, the CustomJS step cannot run.
  • A Zap that keeps firing itself

    If the file CustomJS produces lands in the place your trigger watches, the Zap starts again on its own output and burns through tasks fast.
  • A bulk import held back

    When the starting app suddenly returns a huge batch, after an import or a migration, Zapier's flood protection can hold those runs back.
Need help

Need help automating CustomJS with Zapier?

A person reads every message.

FAQ

CustomJS and Zapier: common questions

01Is the CustomJS Zapier integration free?
Yes, on the Zapier side. CustomJS is not a premium app, so it works on the free plan, which includes 100 tasks per month. The catch is that the free plan only builds two-step Zaps: one trigger from another app, then one CustomJS action. As soon as you add a filter or a second action, for example a PDF followed by a merge, the Zap becomes multi-step and needs a paid plan.
02How many tasks does a CustomJS Zap use?
One task per CustomJS action that succeeds. The trigger never costs anything, and neither do Zapier's checks for new data. A Zap that creates a PDF uses one task per run. A Zap that creates a PDF and then merges it with another uses two. An action that fails is not counted. So the honest way to size your plan is to count runs per month and multiply by the number of actions in the Zap.
03Does CustomJS work in real time with Zapier?
It depends on the app that starts the Zap, because CustomJS has no trigger of its own. If that app has an instant trigger, it reports the event the moment it happens and the CustomJS step runs straight away, whatever your plan. If it is a polling trigger, Zapier checks on a timer: every 15 minutes on the free plan, every 2 minutes on Professional, every minute on Team and Enterprise. The editor shows a lightning bolt on instant triggers.
04What do you need to connect CustomJS to Zapier?
A CustomJS account, and read or write access to anything you want the Zap to touch that you do not own. The connection itself takes three moves: open the Apps page in Zapier, click + Add connection, search for CustomJS and click Add connection, then sign in and grant access in the tab that opens. Once linked, the connection is reused by every CustomJS step in every Zap you build, so you never sign in again for a second Zap.
05Why does a CustomJS step fail?
The first suspect is the mandatory input. Each action requires one value: HTML for the PDF and PNG actions, a URL for screenshots, comma-separated PDF URLs for merging, and code for Puppeteer. If the trigger step does not send that value on a given run, CustomJS has nothing to work with. Test the trigger, check the field you mapped actually holds data, and remember a failed action does not cost a task.
06What if the CustomJS action you want is not on Zapier?
Zapier only offers the five actions listed on this page, with no trigger and no search. When a job is out of reach, Run Puppeteer is the one flexible entry: it runs Puppeteer code you write yourself, so a developer can cover a case the four ready-made actions miss. Without code, the gap stays, and it is worth checking what the same app offers on another platform before building a workaround.
07Zapier, Make or n8n for CustomJS?
Pick by criteria, not by brand. Zapier gives CustomJS five ready-made actions and a guided editor, billed by successful task, which suits someone who wants a file generated without touching an API. On Make or n8n, check which CustomJS operations exist and how a run is counted there. Then compare how many runs you expect per month, how many steps each run takes, and how comfortable you are with a technical editor.