Package Information
Available Nodes
Documentation generating…
Documentation
n8n-nodes-renderform
This is an n8n community node. It lets you use RenderForm in your n8n workflows.
RenderForm turns reusable templates into images, PDFs and videos through a single API call, so you can
generate Open Graph images, certificates, social posts, invoices or personalised visuals from any data
already flowing through n8n.
n8n is a fair-code licensed workflow
automation platform.
Installation
Operations
Credentials
Usage
Example workflows
Resources
Installation
Follow the
installation guide in the n8n
community nodes documentation.
In short: go to Settings > Community Nodes, select Install, and entern8n-nodes-renderform.
Operations
Render
- Render Template — render a template into an image, PDF or video.
Capture
- Capture Screenshot — capture a screenshot of any web page.
- Capture PDF — capture a web page as a PDF.
Template
- Get Many / Get / Delete
Result
- Get Many / Get / Delete
Account
- Get Usage — current credit usage of the organization.
- Get Fonts — fonts available to the organization.
Credentials
You need a RenderForm account. Create an API key in the RenderForm dashboard under
Settings > API keys, then add it to n8n as a RenderForm API credential.
Use Test on the credential to confirm the key works before building the workflow.
Usage
Filling in template data
Templates expose their components by ID. Values are merged in using the componentId.property
convention, so a text component called title is filled through the key title.text, and an image
component called background through background.src.
The node offers two ways to provide them:
- Fields Below — add one key/value pair per property. Values accept n8n expressions, for example
={{ $json.headline }}. - JSON — hand over the whole object at once, useful when the keys themselves are dynamic.
Getting the file out
By default the node returns the render metadata, including href — the URL of the finished file.
Turn on Download File to also pull the file into the item as binary data, so the next node
(Slack, Gmail, S3, Google Drive) can use it directly without a separate HTTP Request node.
Videos
Video renders are asynchronous: RenderForm answers immediately with status: "pending". With
Wait For Completion enabled (the default) the node polls the result until the file is ready, so
the rest of the workflow can assume it has a finished video. Turn it off to handle polling yourself
with a Result > Get operation, or use the Webhook URL option.
Saving credits
Identical requests are served from RenderForm's render cache and cost no credits. Set the
Version (Cache Key) option to a stable value per item — a slug or an ID — so re-running a
workflow does not re-render what already exists. Setting Use Cache to false forces a fresh
render.
Example workflows
Two ready-to-import workflows live in workflows/:
- Turn RSS headlines into branded images — needs only the
RenderForm credential, so it runs straight after import. - Generate social images from Google Sheets —
renders an image for every row that does not have one yet and writes the URL back to the sheet.
Import them with Workflows > Import from File.
Resources
Development
npm install --ignore-scripts
npm run build
npm run lint
npm test
The test suite runs the compiled node against a local stub of the RenderForm API and asserts the
requests it actually sends, so it covers request bodies, pagination, the video polling loop, binary
downloads and error handling without touching the live API or spending credits. It needs no
credentials and no test framework - just node --test. Run npm run build first, since the tests
exercise the built node.
--ignore-scripts skips the native build of isolated-vm, which n8n-workflow pulls in and which
nothing in this package needs.
npm run lint mirrors the ESLint gate that @n8n/scan-community-package runs for verified community
nodes, over the same file set: package.json, the nodes and credentials sources, and the compiled
output in dist. Run npm run build before linting, since dist is part of that set. If it passes
here it passes the scan, so keep eslint.config.mjs in sync with that package.
To try the node locally, link the built package into your n8n custom nodes directory:
npm link
cd ~/.n8n/custom && npm link n8n-nodes-renderform
Then restart n8n.