{
  "name": "Analyze support screenshots with UploadToURL, GPT-4o Vision, Zendesk, and Jira",
  "nodes": [
    {
      "id": "213a081f-853e-4f1a-a72c-cef27817a89b",
      "name": "📋 Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -272
      ],
      "parameters": {
        "width": 650,
        "height": 488,
        "content": "Analyze support screenshots with UploadToURL, OpenAI Vision, and Zendesk/Jira\nThe Problem: Large image attachments clog support inboxes and often reach developers without technical context, leading to"
      }
    },
    {
      "id": "6591ef98-d557-430e-9c61-e5ee20217487",
      "name": "Entry & Upload",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        704,
        -128
      ],
      "parameters": {
        "width": 984,
        "height": 727,
        "content": "## 🚪 Entry, Validation & Upload\n**Nodes:** Webhook → Validate & Enrich → Has Remote URL? → Upload to URL (×2) → Extract CDN URL\n\n- Accepts `POST` with screenshot/video + ticket metadata. Supports both"
      }
    },
    {
      "id": "f74f9f4a-bf0f-4c8d-ace7-e0ad44cd3cdb",
      "name": "AI Vision Analysis",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1712,
        -96
      ],
      "parameters": {
        "width": 456,
        "height": 551,
        "content": "## 🤖 GPT-4o Vision Analysis\n**Nodes:** GPT-4o Vision → Parse AI Analysis → Determine Severity\n\n- Sends the hosted CDN image URL directly to GPT-4o Vision — no base64 encoding, no file passing\n- Prompt"
      }
    },
    {
      "id": "2dc97cc4-91d7-4af2-8f00-e0cc03aef66c",
      "name": "Platform Routing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2192,
        -128
      ],
      "parameters": {
        "width": 840,
        "height": 695,
        "content": "## 🎫 Platform Routing — Zendesk & Jira\n**Nodes:** Route by Platform → Zendesk Add Comment → Jira Add Comment → Jira Attach File\n\n- Switch node routes on `platform` field (`zendesk` or `jira`) — add mo"
      }
    },
    {
      "id": "e65a544e-9cc2-4938-b420-8f28a7cd5e70",
      "name": "Escalation & Response",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3072,
        -128
      ],
      "parameters": {
        "width": 680,
        "height": 744,
        "content": "## 📣 Severity Escalation & Response\n**Nodes:** IF Critical/High? → Slack Alert → Build Final Response → Respond to Webhook\n\n- IF node checks severity — only `critical` and `high` tickets trigger the S"
      }
    },
    {
      "id": "4e572be6-268a-483e-990d-99f91d7afb1b",
      "name": "Webhook - Receive Screenshot",
      "type": "n8n-nodes-base.webhook",
      "position": [
        704,
        272
      ]
    },
    {
      "id": "be6cd236-30b0-4564-84e0-a294a9da87fe",
      "name": "Validate & Enrich Payload",
      "type": "n8n-nodes-base.code",
      "position": [
        928,
        272
      ]
    },
    {
      "id": "2dc42ca7-3eb9-41ca-bcad-bf0f89fadb66",
      "name": "Has Remote URL?",
      "type": "n8n-nodes-base.if",
      "position": [
        1152,
        272
      ]
    },
    {
      "id": "dcfa2c80-9351-4a88-b3e5-dbd43addbf1f",
      "name": "Upload to URL - Remote",
      "type": "n8n-nodes-uploadtourl.uploadToUrl",
      "position": [
        1360,
        144
      ]
    },
    {
      "id": "691eb389-788e-470c-8a69-2df6efb7bcf7",
      "name": "Upload to URL - Binary",
      "type": "n8n-nodes-uploadtourl.uploadToUrl",
      "position": [
        1360,
        384
      ]
    },
    {
      "id": "f4e80de1-dbdb-4eb8-8732-12dc81e6c3a5",
      "name": "Extract CDN URL",
      "type": "n8n-nodes-base.code",
      "position": [
        1584,
        272
      ]
    },
    {
      "id": "360a2173-f68d-441c-b7ed-cb7a0a031a32",
      "name": "GPT-4o Vision - Analyse Screenshot",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1760,
        272
      ]
    },
    {
      "id": "c962207d-40fd-4def-a363-a7bf6e9873fa",
      "name": "Parse AI Analysis & Compute Severity",
      "type": "n8n-nodes-base.code",
      "position": [
        2032,
        272
      ]
    },
    {
      "id": "f351e33b-f202-4a95-9914-a822c39f31cb",
      "name": "Route by Platform",
      "type": "n8n-nodes-base.switch",
      "position": [
        2240,
        272
      ]
    },
    {
      "id": "6d214aa5-6e58-40f2-9b88-32a7ff367aa2",
      "name": "Zendesk - Add Internal Note",
      "type": "n8n-nodes-base.zendesk",
      "position": [
        2464,
        128
      ]
    },
    {
      "id": "5cf40aa1-8d93-4afe-971a-0f4e2e253c2b",
      "name": "Jira - Update Issue Labels",
      "type": "n8n-nodes-base.jira",
      "position": [
        2464,
        304
      ]
    },
    {
      "id": "33056cb7-c70b-40c3-803e-e559e46bb6ff",
      "name": "Jira - Add Comment",
      "type": "n8n-nodes-base.jira",
      "position": [
        2688,
        304
      ]
    },
    {
      "id": "5e6b35e0-36a3-4c1e-8575-7b052141d34f",
      "name": "Merge Platform Response",
      "type": "n8n-nodes-base.code",
      "position": [
        2912,
        240
      ]
    },
    {
      "id": "aa43cb6b-3c03-4db2-ae4d-fa32a14ca178",
      "name": "IF Critical or High?",
      "type": "n8n-nodes-base.if",
      "position": [
        3120,
        240
      ]
    },
    {
      "id": "ab65d1aa-8fc7-45c5-941d-cd056a3aff2d",
      "name": "Slack - Escalate to Dev Channel",
      "type": "n8n-nodes-base.slack",
      "position": [
        3344,
        128
      ]
    },
    {
      "id": "9569c065-e78b-4dd7-bb55-62a4cc8d860c",
      "name": "Build Final Response",
      "type": "n8n-nodes-base.code",
      "position": [
        3344,
        352
      ]
    },
    {
      "id": "cb02125b-2d56-4916-ad75-b85ed5b67a80",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        3568,
        352
      ]
    }
  ],
  "connections": {
    "Extract CDN URL": {
      "main": [
        [
          {
            "node": "GPT-4o Vision - Analyse Screenshot",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Has Remote URL?": {
      "main": [
        [
          {
            "node": "Upload to URL - Remote",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Upload to URL - Binary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Platform": {
      "main": [
        [
          {
            "node": "Zendesk - Add Internal Note",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Jira - Update Issue Labels",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Jira - Add Comment": {
      "main": [
        [
          {
            "node": "Merge Platform Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build Final Response": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF Critical or High?": {
      "main": [
        [
          {
            "node": "Slack - Escalate to Dev Channel",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Build Final Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to URL - Binary": {
      "main": [
        [
          {
            "node": "Extract CDN URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to URL - Remote": {
      "main": [
        [
          {
            "node": "Extract CDN URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Platform Response": {
      "main": [
        [
          {
            "node": "IF Critical or High?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate & Enrich Payload": {
      "main": [
        [
          {
            "node": "Has Remote URL?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Jira - Update Issue Labels": {
      "main": [
        [
          {
            "node": "Jira - Add Comment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Zendesk - Add Internal Note": {
      "main": [
        [
          {
            "node": "Merge Platform Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook - Receive Screenshot": {
      "main": [
        [
          {
            "node": "Validate & Enrich Payload",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Slack - Escalate to Dev Channel": {
      "main": [
        [
          {
            "node": "Build Final Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GPT-4o Vision - Analyse Screenshot": {
      "main": [
        [
          {
            "node": "Parse AI Analysis & Compute Severity",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse AI Analysis & Compute Severity": {
      "main": [
        [
          {
            "node": "Route by Platform",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}