> For the complete documentation index, see [llms.txt](https://docs.diaflow.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.diaflow.io/workflow-builder/nodes/built-in-tools/qr-code-generator.md).

# QR Code Generator

## QR Code Generator

### What does it do?

The **QR Code Generator** node turns a web link into a scannable QR code. Think of it like printing a shortcut button that someone can scan with their phone.

Use it when you want to share landing pages, checkout links, event pages, or product pages faster.

#### Smart features

* **Checks the link before creating the QR code**: Diaflow only generates a QR code for valid web links.
* **Works with dynamic values**: insert a link from an earlier step with **@**.
* **Lets you choose how the result is returned**: use **Image** to embed the QR code directly, or **Link** to get a shareable file link.
* **Supports PNG and SVG**: choose **PNG** for simple image use, or **SVG** for sharper scaling.
* **Includes ready-to-use size options**: pick **128px**, **256px**, **512px**, or **1024px**.
* **Lets you control the look**: set the background color, foreground color, border, and scan durability level.
* **Supports transparent SVG backgrounds**: useful when the QR code needs to sit cleanly on branded designs.

<figure><img src="/files/FGKU15rwFQPK5MCanp03" alt=""><figcaption></figcaption></figure>

### Real-World Business Value

* Add a QR code to event emails so attendees can open the registration page instantly.
* Generate product or payment QR codes from live links created earlier in the workflow.
* Create branded QR codes for flyers, packaging, or printed handouts without manual design work.

### Step-by-Step Setup

* Drag **QR Code Generator** onto the canvas.
* In **Input**, enter the full web link or select one from an earlier step with **@**.
* In **Output Size**, select **128px**, **256px**, **512px**, or **1024px**.
* In **Background Color**, enter a color like `#FFFFFF` or choose **transparent** if you use **SVG**.
* In **Foreground Color**, enter the QR code color, such as `#000000`.
* In **Output Format**, choose **PNG** or **SVG**.
* In **Output Type**, choose **Image** if another step should use the QR code directly, or choose **Link** if you want a downloadable file link.
* In **Border Width**, keep the default unless you have a specific design need.
* In **Error Correction**, choose a higher level if the QR code may be printed, handled often, or partially covered.

### The Transformation: Before & After

**Before link and display settings entering the node**

<figure><img src="/files/5zaUEIVLhVqnPuN0YgLO" alt=""><figcaption></figcaption></figure>

**After ready-to-use QR code result**

<figure><img src="/files/PbB3ROEQ13eEr2Zlb11C" alt=""><figcaption></figcaption></figure>

If you choose **Image** instead of **Link**, the result is returned as an inline image value you can place directly into emails or pages.

### Tips & Warnings for First-Timers

#### Best practices

* Paste the full web link, including `http://` or `https://`.
* Use **SVG** for print designs or large displays.
* Use a higher **Error Correction** level when the QR code may be scratched, folded, or partly covered.
* Use **Image** when the next step should embed the QR code directly.
* Use **Link** when you need a file you can share, store, or reuse elsewhere.

#### Warnings

* Do not enter plain text, email addresses, phone numbers, or non-web formats. This node only accepts web links.
* Do not leave out `http://` or `https://`. A link without the protocol will fail.
* Do not use **transparent** as the background for **PNG**. Use it only with **SVG**.
* Do not expect the same settings to reuse an older file automatically. A new QR code is created each time.
* Do not rely on **Link** mode for permanent storage without checking your file retention setup. Temporary files may be cleaned up later.
* Do not expect a built-in logo in the center of the QR code. Add branding in a later design step if needed.
* Do not assume every protocol works. `mailto:`, `tel:`, and `ftp://` are not supported here.

### Need help?

* Learn the basics in [How a node works](/getting-started/lets-start-with-the-basics/how-a-node-works.md)
* Build the full flow in [Create a workflow](/workflow-builder/create-a-workflow.md)
* Browse related nodes in [Component List](/workflow-builder/component-list.md)
