renderform

n8n community node for RenderForm.io - generate images, PDFs and videos from reusable templates

Package Information

Released: 1 mo ago
Downloads: 0 weekly / 0 monthly
Latest Version: 0.1.3
Author: Jakub Pomykala

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 enter
n8n-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/:

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.

License

MIT

Discussion