Use this when every store, sign, or mailer needs its own QR code with its own destination, so you don't have to build them one at a time.
User Permissions | Admins, and Editors with the Flow Editor additional role. |
Note: Short URLs work the same way from the Short URLs tab with Many short URLs.
Prepare your CSV
One row per code, with column names in the first row.
One column with a unique name per code, such as a store number. Codes and Analytics both use these names.
One column per value that differs between codes, such as each store's web address. Each column becomes a data property.
Save as CSV UTF-8. Excel workbooks (.xlsx) aren't accepted.
For a template, click Download sample CSV under the upload box.
Upload the CSV
On the QR codes tab, click the arrow next to Add.
Select Many codes. If you see Upload CSV file, click it.
Click Click to upload a CSV, or drag the file onto the box.
Map the columns and import
Under Entry point naming, select the column that names the codes.
Leave Treat first row as header turned on if row 1 has column names.
Under Field mapping, set Map to for each column:
New Property: then pick its Data type, such as Url for web addresses.
Existing Property: fills a property the flow already has. Matching column names are set for you.
Ignore: skips the column.
Click Import. The button shows the row count, for example "Import 3 codes".
A short file shows "Bulk codes are being created. Please refresh the page". A longer one says you'll get a confirmation email when it finishes, and the app estimates about 1 minute per 1,000 rows. If rows fail, the email links to a file of those rows.
Refresh the editor to see the new codes, with a column per property.
Send each code to its own URL
Click the destination on the canvas.
Clear Destination URL.
Click {}.
Select the property that holds the URLs.
Note: The {} button inserts a data property: variable data stored on each QR code or short URL, so one flow can show a different value for every code (a 1:1 flow). See Data properties - Personalize one flow for many placements.
Update codes by re-uploading
Upload a CSV with the same code names and map each column to Existing Property. A row whose name matches a code in the flow overwrites that code's values, so printed codes keep working. Rows with new names create new codes.
A new column adds a property.
A column you leave out of the CSV leaves that property's values untouched.
Typed columns, such as Url, are checked row by row.
Download every code in the flow
Open the flow (not the editor) and click Download next to Edit flow.
In Bulk download, set Choose download type to Codes or Short URLs.
For codes, select a format under Select file type and click Download.
Codes come in these formats:
RGB: PNG, SVG, JPG, PDF, EPS, or TIFF.
CMYK: JPG, PDF, EPS, or TIFF.
Note: EPS files are rasterized at about 100 DPI, so they aren't true vector files.
Small flows download as a ZIP file. Large flows are emailed, because they take longer to build: you see "The download link will be sent to your email!" and "The link will be valid for 1 week."
Publish and test
After you click Publish, each code opens its row's address.
Best practices
Keep your CSV, since you can't export the current values from Flowcode. Edit that file and re-upload it to change codes later.
Give each code a unique name in the CSV, since re-uploads and Analytics both match codes by name.
Troubleshooting
"I get 'Please upload a file of type text/csv'."
The file isn't a CSV. In Excel, save it as CSV UTF-8 and upload again.
"I get 'Values in row 4 do not match total columns in header'."
That row has more or fewer cells than row 1, often from a stray comma. Fix it, or put values that contain commas in quotes.
"I get 'We found an unknown character in row … please check the format of your csv'."
The file isn't UTF-8, so accents or symbols broke. Save it again as CSV UTF-8.
"I get 'Validation failed. 2 errors occurred.'"
The table lists the Row, Field, and Validation error for each problem. Fix those cells and upload again.
"I get 'Must specify a property' or 'Properties must have unique names'."
The first means a column is set to Existing Property with no property chosen. The second means a New Property name is taken, so pick Existing Property or rename it.
FAQs
Is there a row or file size limit?
The upload screen doesn't set one.
Can two codes have the same name?
Avoid it. Re-uploads match codes by name, and Analytics lists them by name.
Can I change a property's data type after importing?
No. Create a new property with the right type and re-upload.
Why does Bulk download say "An upload request is in progress."?
A CSV import is still running. Wait for its email, refresh, and download again.
Why is there no Download button on my flow?
The flow has no QR codes or short URLs yet, or bulk download isn't on for your organization, so contact your Flowcode CSM. To download one code, see Change the design or logo of a QR code you've already published.








