{"CACHEDAT":"2026-04-14 02:26:06","SLUG":"generate-dynamic-qr-codes-NLTrARUZDb","MARKDOWN":"# **QR Code Redirect Sheet – Column Documentation**\n\nThis sheet manages **internal** and **external** QR code destinations, with a global INT/EXT toggle in **A1**.\\nIt combines static values and formulas to build the redirect URLs for the QR code generator.\n\n\n\n| Col | Header | Description | Formula / Type |\n|-----|--------|-------------|----------------|\n| **A** | EXT | Global or per-row flag for link type. `\"EXT\"` means use external/public link, empty means use internal/private link. | *(manual)* |\n| **B** | QR-Code Generator URL | Builds the webhook link for the QR service by appending the **slug** from Col K. | `=CONCAT(\"https://qr.edunet.eu/webhook/0b3576c8-0479-47ad-a354-387ddec1acbf/\",K3)` |\n| **C** | QR-Code Label | Combines **Project** (Col M) with `_QR-` and zero-padded **QR No** (Col D). | `=M3 & \"_QR-\" & TEXT(D3, \"000000\")` |\n| **D** | QR No | Sequential number for the QR code. | *(manual)* |\n| **E** | Target URL → Final Redirect | Chooses the redirect target: if global toggle (A1) = `\"EXT\"` and public link exists (Col J), use **Target URL External** (Col F), else use **Internal URL** (Col G). **If this header changes, update n8n accordingly.** | `=IF(AND($A$1=\"EXT\",J3<>\"\"), F3, G3)` |\n| **F** | Target URL External | Appends **Anchor** (Col I) to the **External / Public Link** (Col J) if present; otherwise outputs \"no external link\". | `=IF(I3<>\"\",CONCATENATE(J3,\"#\",I3),\"no external link\")` |\n| **G** | Internal URL | **Internal link** copied from Outline by clicking the **#** next to a header.
| *(manual)* |\n| **H** | Anchor | Extracts the anchor part from the internal URL (Col G) after the `#`. | `=IFERROR(REGEXEXTRACT(G3, \"#(.+)$\"), \"\")` |\n| **I** | Anchor → URL-Encoded | Replaces ☑ in the anchor with its URL-encoded form so it's safe for URLs. | `=SUBSTITUTE(H3, \"☑\", \"%E2%98%91\")` |\n| **J** | External URL / Public Link | **External/public link** copied from Outline's \"Share → Web\" option.
| *(manual)* |\n| **K** | slug | Combines **Project** (Col M) and the first 8 characters of **MD5** (Col Q). **If this header changes, update n8n accordingly.** | `=M3 & \"-\" & LEFT(Q3,8)` |\n| **L** | Visits | Count of QR code scans, typically imported from analytics. | *(manual / imported)* |\n| **M** | Project | Short name of the project. | *(manual)* |\n| **N** | Platform | System hosting the content (e.g., Wiki). | *(manual)* |\n| **O** | Content | Type of resource (Checklist, Guide, etc.). | *(manual)* |\n| **P** | Lesson Sequence | Links QR to a lesson sequence (if applicable). | *(manual)* |\n| **Q** | MD5 | MD5 hash of the **QR-Code Label** (Col C), used for unique ID and slug. | `=MD5(C3)` |","HTML":"
This sheet manages internal and external QR code destinations, with a global INT/EXT toggle in A1.\\nIt combines static values and formulas to build the redirect URLs for the QR code generator.
\n| Col | \nHeader | \nDescription | \nFormula / Type | \n
|---|---|---|---|
| A | \nEXT | \nGlobal or per-row flag for link type. "EXT" means use external/public link, empty means use internal/private link. | \n(manual) | \n
| B | \nQR-Code Generator URL | \nBuilds the webhook link for the QR service by appending the slug from Col K. | \n=CONCAT("https://qr.edunet.eu/webhook/0b3576c8-0479-47ad-a354-387ddec1acbf/",K3) | \n
| C | \nQR-Code Label | \nCombines Project (Col M) with _QR- and zero-padded QR No (Col D). | \n=M3 & "_QR-" & TEXT(D3, "000000") | \n
| D | \nQR No | \nSequential number for the QR code. | \n(manual) | \n
| E | \nTarget URL → Final Redirect | \nChooses the redirect target: if global toggle (A1) = "EXT" and public link exists (Col J), use Target URL External (Col F), else use Internal URL (Col G). If this header changes, update n8n accordingly. | \n=IF(AND($A$1="EXT",J3<>""), F3, G3) | \n
| F | \nTarget URL External | \nAppends Anchor (Col I) to the External / Public Link (Col J) if present; otherwise outputs "no external link". | \n=IF(I3<>"",CONCATENATE(J3,"#",I3),"no external link") | \n
| G | \nInternal URL | \nInternal link copied from Outline by clicking the # next to a header. | \n|
| (manual) | \n|||
| H | \nAnchor | \nExtracts the anchor part from the internal URL (Col G) after the #. | \n=IFERROR(REGEXEXTRACT(G3, "#(.+)$"), "") | \n
| I | \nAnchor → URL-Encoded | \nReplaces ☑ in the anchor with its URL-encoded form so it's safe for URLs. | \n=SUBSTITUTE(H3, "☑", "%E2%98%91") | \n
| J | \nExternal URL / Public Link | \nExternal/public link copied from Outline's "Share → Web" option. | \n|
| (manual) | \n|||
| K | \nslug | \nCombines Project (Col M) and the first 8 characters of MD5 (Col Q). If this header changes, update n8n accordingly. | \n=M3 & "-" & LEFT(Q3,8) | \n
| L | \nVisits | \nCount of QR code scans, typically imported from analytics. | \n(manual / imported) | \n
| M | \nProject | \nShort name of the project. | \n(manual) | \n
| N | \nPlatform | \nSystem hosting the content (e.g., Wiki). | \n(manual) | \n
| O | \nContent | \nType of resource (Checklist, Guide, etc.). | \n(manual) | \n
| P | \nLesson Sequence | \nLinks QR to a lesson sequence (if applicable). | \n(manual) | \n
| Q | \nMD5 | \nMD5 hash of the QR-Code Label (Col C), used for unique ID and slug. | \n=MD5(C3) | \n