qr-logo

n8n community node that generates a QR code and embeds a logo in the center

Package Information

Released: 1 mo ago
Downloads: 0 weekly / 0 monthly
Latest Version: 0.4.0

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

  1. Add QR Code With Logo to your workflow.
  2. Text / URL — the string to encode (e.g. a UPI link, a website URL).
  3. 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.
  4. Output Binary Property — where the resulting PNG is attached
    (default data).
  5. 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
    Level H; 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.

Discussion