Package Information
Available Nodes
Documentation generating…
Documentation
n8n-nodes-qr-logo
A custom n8n community node: QR Code With Logo.
Input: a text/URL string + a logo image (from a previous node's binary
data, or as base64). Output: a QR code PNG with the logo embedded in
the center, at high error-correction so it stays scannable.
Tested end-to-end (compile, execute, and a decode self-check) before
being handed to you.
What's inside
n8n-nodes-qr-logo/
├── nodes/
│ └── QrWithLogo/
│ ├── QrWithLogo.node.ts ← the node implementation
│ └── qrWithLogo.svg ← node icon
├── package.json
└── tsconfig.json
Install into a self-hosted n8n instance
You need a self-hosted n8n (Docker, npm install, or source checkout).
Community nodes are not available on n8n Cloud.
Option A — from this folder, as a local community node
cd n8n-nodes-qr-logo
npm install
npm run build # compiles TypeScript → dist/
# Link it into n8n's custom extensions folder
mkdir -p ~/.n8n/custom
cp -r . ~/.n8n/custom/n8n-nodes-qr-logo
cd ~/.n8n/custom/n8n-nodes-qr-logo
npm install --production
# Restart n8n
n8n auto-loads packages placed under ~/.n8n/custom/.
Option B — Docker
Mount the built package into the container's custom folder:
docker run -it --rm \
-v /path/to/n8n-nodes-qr-logo:/home/node/.n8n/custom/n8n-nodes-qr-logo \
-p 5678:5678 \
n8nio/n8n
Then docker exec into the container and run npm install --production
inside that folder once, and restart the container.
Option C — publish to npm, then install via n8n's UI
If you want it available to install from Settings → Community Nodes
inside the n8n UI (rather than a manual file copy):
npm publish # after choosing a unique package name
Then in n8n: Settings → Community Nodes → Install → enter the package
name.
Using the node
- Add QR Code With Logo to your workflow.
- Text / URL — the string to encode (e.g. a UPI link, a website URL).
- Logo Source — either:
- Binary Property — pulls the logo from a binary field on the
incoming item (e.g. from a Read Binary File / HTTP Request node),
or - Base64 String — paste/inject a base64 logo directly.
- Binary Property — pulls the logo from a binary field on the
- Output Binary Property — where the resulting PNG is attached
(defaultdata). - Options (optional):
- QR Size, Logo Scale, Logo Padding Ratio, Error Correction Level
- Verify Scannable — decodes the output before returning it and
throws a clear error if the logo made the code unreadable
(default on).
Notes
- Keep Logo Scale at or below ~0.25–0.3 with Error Correction
LevelH; larger logos risk covering enough of the code that it
stops scanning, which is exactly what the built-in verify step
catches. - This node only generates new QR codes from text you already have.
If instead you need to swap the logo on an existing QR image (i.e.
decode it first), that's a different tool — happy to add a second
node/operation for that if useful.