QR codes fit into Zapier, Make and n8n two ways. An automation can create a code through the QRFLOW API when something happens (an order, a form entry, a new product), and a QRFLOW webhook can start an automation when a code is scanned or changed. Neither needs a line of code, and each takes about 15 minutes to wire.
Both directions run on features every business plan of those tools already has: an HTTP module and a catch-hook trigger. This post shows both, with the exact fields, and the two mistakes that cost people an afternoon.
Which way round do you need?#
You need the API direction when the trigger is in your business (a new order needs its own code) and the webhook direction when the trigger is a scan (someone scanned the poster, log it or tell the team).
| You want | Direction | Tool feature |
|---|---|---|
| A code for every new order, ticket, product or sign-up | Your automation calls QRFLOW | HTTP module, POST |
| A row in a sheet for every scan | QRFLOW calls your automation | Catch hook trigger, event scan |
| A Slack message when a code is created or re-pointed | QRFLOW calls your automation | Catch hook trigger, events code.created, code.updated |
| Re-point a code when a page moves | Your automation calls QRFLOW | HTTP module, PATCH |
Both need the Business plan on QRFLOW, which is where API keys and webhooks live.

How do you create QR codes in Zapier, Make or n8n?#
You create QR codes in Zapier, Make or n8n with one HTTP request to the QRFLOW API, using an API key from your account page.
- On qrflow.codes, open Account, then API keys, and make a key with the scopes codes:read and codes:write. Copy it once; store it in the tool's credential store, never in a step's plain text.
- Add an HTTP step (Zapier: Webhooks by Zapier, Custom Request; Make: HTTP, Make a request; n8n: HTTP Request).
- Method POST, URL:
https://qrflow.codes/api/v1/codes
- Headers: Authorization: Bearer your key, Content-Type: application/json.
- Body, mapped from the trigger:
{ "type": "url", "destination_data": { "url": "https://example.com/orders/10432" }, "label": "Order 10432" }
- Map the response: code.id (save it on your record), code.short_url (what you print or email), code.image_url (the SVG, fetched with the same key). The request returns in under a second; a Business account can make 500 codes a month this way, and the API allows 60 requests a minute.
The developer docs list every field, the Wi-Fi and review kinds, and the error codes with fixes.
How do you start an automation when a code is scanned?#
You start an automation on a scan by giving QRFLOW your tool's catch-hook address as a webhook and picking the scan event.
- In your tool, create a trigger that catches a webhook (Zapier: Webhooks by Zapier, Catch Hook; Make: Custom webhook; n8n: Webhook node) and copy its https address.
- On qrflow.codes, open Account, then Webhooks, add that address and pick the events: scan for scans, code.created, code.updated and code.deleted for changes.
- Press Test on the webhook. A signed ping arrives; use it to see the payload shape in your tool.
- Map the fields. A scan delivery carries data.scans[], each with code_id, label, slug, scanned_at, device, country, city, referrer, browser, os and language. Scans arrive in batches every few minutes, up to 500 per call.

Which recipes do people build most?#
The four recipes people build most are a code per order, a scan log in a sheet, a Slack ping on a scan, and a re-point when a page moves.
- Code per order. Trigger: new order in Shopify or WooCommerce. Action: POST to QRFLOW with the order's tracking page as the destination and the order number as the label. Email the short link with the receipt. About 3 steps.
- Scan log. Trigger: catch hook, event scan. Action: for each item in data.scans[], add a row to Google Sheets with scanned_at, label, city and device. About 3 steps.
- Slack ping. Trigger: catch hook, event scan. Filter: label contains "Trade show". Action: post to a channel with the count. About 3 steps.
- Re-point on move. Trigger: a row changes in a sheet of page URLs. Action: PATCH the code's destination_data.url. The printed code keeps working. About 2 steps.

What are the two mistakes that cost an afternoon?#
The two mistakes are trusting a webhook you cannot verify, and treating a scan batch as one scan.
- Verification. QRFLOW signs every delivery (X-QRFLOW-Signature, an HMAC of the raw body), but no-code tools cannot check it. Your protection is that the catch-hook address is unguessable. Never post it anywhere; if it leaks, make a new one and update the webhook.
- Batches. A scan delivery is a batch, not a single scan. Map over data.scans[] (Make: an Iterator; n8n: Split Out; Zapier: a Looping step). Otherwise you log one scan and drop the rest.
Two smaller ones: answer the webhook with a 2xx within 8 seconds (do the slow work after), and use the delivery's id to skip duplicates if a retry arrives.
What about AI agents in these tools?#
AI agents in Zapier, Make and n8n can use the same two directions, and n8n's agent nodes can call QRFLOW's MCP server directly.
If your workflow has an AI step ("draft the follow-up and make a code for the customer's page"), point the agent at the MCP address. It gets the same eleven tools an assistant does, after the sign-in or with a key:
https://qrflow.codes/mcp
The assistants page explains the connector in plain words; the remote MCP servers post covers adding one to any client.

Questions people ask#
Does this need the Business plan?#
Yes. API keys and webhooks are Business ($29 a month). Premium can make and change codes in the dashboard and from an assistant, but not from an automation.
Can the automation make a Wi-Fi or review code?#
Yes, the automation can make any kind by changing type and destination_data: Wi-Fi is type wifi with ssid, password and encryption, and a Google review is type url with subtype googlereview and placeId. The catalog endpoint lists every kind with its fields.
How fast do scans arrive?#
In batches every few minutes. For instant confirmation of a change, use the code.updated event, which is sent at once from the API and assistants.
What if the webhook stops?#
After twenty consecutive failures QRFLOW switches it off and emails you. Fix the receiver, turn it back on under Account, then Webhooks; queued retries resume.
Is there a native Zapier or Make app?#
Not yet. The HTTP module and the catch hook cover both directions today, and a native app would use the same API underneath.
Need one code right now, by hand? The free QR code generator takes ten seconds.
