Skip to content

QR codes in n8n and Make

Create QR codes and short links in a workflow, and re-point printed ones. Verified by n8n. The Make app works by invite link while Make reviews it.

The render step, running here

Same renderer the connector calls. Drawn in this browser; nothing is sent or saved.

Show it in

QRSalt → QR Image → Render (Free)

Format

PNG or SVG. JPG, WebP and PDF are on Render, which uses a key.

No account and no credential.

Scan it off the screen

Make an API key

A Free key runs the render steps.

n8n or Make

Pick your tool: how to add QRSalt and where it stands today.

Add it

  1. Open the nodes panel, search QRSalt and choose Install. Only an owner or admin can.
  2. Add a QRSalt API credential with your key. Saving it checks the key.
  3. Self-hosted by hand? Run npm install n8n-nodes-qrsalt in the n8n data folder and restart.

What you get

27 operations across 9 resources, and a trigger for 5 events. The node also works as a tool for n8n’s AI Agent. Package: n8n-nodes-qrsalt 0.2.0.

Every step and the plan it needs

What a workflow can do

Under every route is the same REST API, so one key works in all of them.

  • Make a dynamic codePrint it, mail it, and change where it points later.
  • Re-point printed codesOne at a time, or up to 500 in one call.
  • Draw the picturePNG, SVG, JPG, WebP or PDF, sized in pixels or millimetres.
  • Read a code from an imageNo key needed for this one.
  • Run on a scanInstant triggers fire on each scan, from Business.
  • Keep things tidyFolders, tags, UTM presets, scans and QR Form answers.

Asking in a chat instead of building a workflow? Use the MCP server.

What’s free, and what needs a plan

Installing any connector is free. The key decides which steps run.

No account
Read a code from an image; n8n’s Render (Free)
Any key, Free included
Render in every format and size
Starter, $5 a month
Codes, short links, scans, folders, tags, forms and polling triggers
Business, $39 a month
Instant triggers

Delete steps also need the Delete box on the key, which a new key doesn’t have.

Last reviewed , against the product as it works today.

Licence and terms

The connector code has a licence, and your account has terms. You agree to each separately.

  • MIT licence. The n8n node and the Make app both ship under the MIT licence, as is, with no warranty. Use, change and redistribute the code, keeping the licence with it.
  • Source. The n8n node is on GitHub. The Make app carries the same licence but isn’t in a public repository.
  • Your account. Every step with your key is a request to us, so the terms, acceptable use policy and privacy notice apply as in the dashboard.
  • Where data goes. Your key goes to us and nobody else. No connector sends telemetry or calls a third party.

Connector questions, answered

Do I need a connector, or will an HTTP step do?

An HTTP step works, since the connectors call the same REST API. A connector adds named fields, folder and tag dropdowns, image files and instant triggers.

Can a workflow delete my codes by accident?

Only with a key that has the Delete box ticked, and a new key doesn’t. Give each workflow its own key and leave that box off.

What happens to a workflow if my plan ends?

Account steps start refusing and name the plan they need, and instant triggers stop. Codes keep redirecting; one nobody scans for 90 days stops.

Plans behind the connectors

Account steps count as API requests: 500 API requests a month on Starter, 5,000 on Pro and 100,000 on Business, a fair-use ceiling. Render and read steps don’t.

Free

$0/mo

Unlimited static codes. Three editable ones that never expire.

  • Short links on their own, no QR code needed
  • Up to 1 of the 3 can be a QR Menu
  • Add your logo to QR codes
  • Every shape, corner and frame

3dynamic codes

Starter

Recommended

$5/mo

For one business with codes out in the world.

  • 5 QR Menus
  • QR Forms
  • GS1 Digital Links we host, so a printed pack can be re-pointed
  • Advanced tracking and analytics

100dynamic codes

Pro

$15/mo

For agencies and teams running codes at scale.

  • 50 QR Menus
  • Unlimited analytics history
  • 10 custom domains
  • 5,000 API requests a month

600dynamic codes

Business

$39/mo

For organisations running codes across many brands.

  • 400 QR Menus
  • 50 custom domains
  • Up to 25 team members and team management
  • Up to 10 workspaces

2,000dynamic codes

Unlimited scans on every plan. Cancel online in two clicks. Compare every plan and feature

The rest of the toolbox

Open a row to see the screen and which plan has it.

Webhooks

Your server hears about every scan and every change.

Pick events (a scan, a code made, changed or paused, a form answered) and give us a URL. Each arrives as a signed POST, failures are retried, and every delivery is listed.

Business

The API and webhooks
A webhook endpoint that hears about every scan and code update, with who set it up, a signing secret hidden until an owner or admin reveals it, and its last deliveries, each marked delivered with the response it got.
Webhooks · recent deliveries sample data

Bulk QR code generator

A spreadsheet in, one dynamic code per row out.

Paste or upload a list, match the columns, and get one dynamic code per row: a table, a stall, a badge, a product. Each has its own destination and scan count.

Starter and up

The bulk generator
Bulk import after pasting a spreadsheet of twelve café tables - window, patio and bar - with the name and link columns matched to each new code’s name and destination.
Bulk import · twelve café tables sample data

Change many codes at once

Tick the codes, then pause, tag, file or move them together.

Tick codes, or pick every code with a tag, then pause, tag, file or move them onto your domain in one go. When a pop-up shop closes, pause all its codes together.

Pause and resume on every plan · folders and tags on Starter and up

An estate agent’s QR codes - yard signs for two listings, an open-house flyer and neighbourhood flyer drops - each with its short link on the agency’s own domain, its scan count and its folder.
Your QR codes · an estate agent’s list sample data

Campaign presets

Saved UTM parameters, so printed scans are not “direct”.

Untagged, printed scans land in your web analytics as direct traffic. A preset fills in source, medium and campaign in one click, so the flyer and the table tent show up apart.

Starter and up

A coffee company’s Spring flyers campaign preset: source flyer, medium print, campaign spring-2026 and content farmers-market, with a preview of the full link a scan of a code using the preset opens.
Settings · campaign presets sample data

Separate workspaces

One subscription, a workspace per brand or client.

Each has its own codes, team and analytics, so one client never sees another’s. Up to 10 on one subscription.

Business

The Workspaces panel in settings: how many of the plan’s workspaces are in use, what happens to all of them if the subscription ends, and a field to name and create another one.
Settings · workspaces sample data

An API for the codes you print

Make dynamic codes and short links from your own software, re-point them, and change up to 500 in one request. Rendering works on every plan; creating and editing come with Starter and up. No-code setup is in the n8n and Make docs.

Render a code · every plan, Free included

curl -o code.svg \
  -H "Authorization: Bearer $QRSALT_KEY" \
  "https://app.qrsalt.com/api/qr?data=https://example.com"

An SVG comes back, ready for a label, a template or a web page.

Re-point a printed code · Starter and up

curl -X PATCH https://app.qrsalt.com/api/v1/codes/{id} \
  -H "Authorization: Bearer $QRSALT_KEY" \
  -H "content-type: application/json" \
  -d '{"destination":"https://example.com/winter"}'

The printed code opens the new page from the next scan. The old address stays in the code’s history.

Change many codes at once · JavaScript

// Move a campaign's codes onto your own domain
await fetch('https://app.qrsalt.com/api/v1/codes/bulk', {
  method: 'POST',
  headers: {
    authorization: `Bearer ${process.env.QRSALT_KEY}`,
    'content-type': 'application/json',
  },
  body: JSON.stringify({ ids, action: 'domain', domain: 'go.example.com' }),
})

Pause, tag, move or file codes in one request. The response lists what changed and what was skipped.

Every endpoint, with a playground
The API screen listing a coffee company’s keys - one for a menu sync, one for a label printer, one revoked - each with its prefix, who created it, when it was made and when it was last used.
API keys · one per integration sample data