{
  "name": "ZPLCraft \u00b7 render a saved label",
  "nodes": [
    {
      "parameters": {},
      "id": "4d9b146c-dd0d-4fa3-8f82-a79500f1c3f9",
      "name": "Run example",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        0,
        0
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://YOUR_PROJECT.supabase.co/functions/v1/label-api/labels/REPLACE_WITH_LABEL_UUID/render",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "{\n  \"variables\": {\n    \"sku\": \"A-77\",\n    \"price\": \"9.99\"\n  },\n  \"format\": \"zpl\"\n}",
        "options": {
          "redirect": {
            "redirect": {
              "followRedirects": false
            }
          },
          "response": {
            "response": {
              "responseFormat": "file",
              "outputPropertyName": "label"
            }
          },
          "timeout": 30000
        }
      },
      "id": "966e6b7d-c5cc-4a41-8194-5b49bdb7522b",
      "name": "Render saved label",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        260,
        0
      ],
      "retryOnFail": false
    },
    {
      "parameters": {
        "content": "## Configure before running\n1. Save a personal label as Vector ZPL with {sku} / {price} placeholders.\n2. Copy your API base URL from Dashboard \u2192 API & Integrations. Replace YOUR_PROJECT and REPLACE_WITH_LABEL_UUID in the HTTP node URL.\n3. Create an n8n Header Auth credential: Name = x-api-key; Value = your ZPLCraft key with render scope. Select that credential in the HTTP node. Never paste the key into this workflow JSON.\n4. Execute manually. Download the binary output named label as label.zpl.\n\nThis returns printable bytes; it does not send anything to a printer. No automatic retries: on 429/503, wait the Retry-After seconds before rerunning. PNG/PDF uses Labelary; change format only after reviewing your data-processing requirements.",
        "height": 400,
        "width": 570
      },
      "id": "15ac2890-99d2-4019-82cd-0a4a4ce1a4ee",
      "name": "Setup instructions",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -20,
        200
      ]
    }
  ],
  "connections": {
    "Run example": {
      "main": [
        [
          {
            "node": "Render saved label",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "active": false,
  "settings": {
    "executionOrder": "v1"
  }
}
