{
  "id": "kIN8X8CkweB2yEiP",
  "name": "Bugs Aggregator",
  "tags": [],
  "nodes": [
    {
      "id": "0253acc9-a616-49ba-a3d7-a9231eb0cdde",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        496,
        480
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "1ec2303c-04fe-433d-9f94-863550e9eeb1",
      "name": "Bug Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -192,
        416
      ],
      "parameters": {
        "width": 526,
        "height": 384,
        "content": "## Bug Tracking Workflow\n\nThis workflow automatically tracks and aggregates bug reports from Zendesk into a centralized Google Sheets dashboard.\n\n**Flow Overview:**\n1. Fetches all tickets from Zendesk\n2. Filters for tickets tagged as \"bug\" only\n3. Enriches data with user details\n4. Updates bug tracking spreadsheet\n\n**Business Value:** \n- Centralized bug visibility\n- Better bug prioritization\n- Customer impact tracking\n- Development team coordination"
      },
      "typeVersion": 1
    },
    {
      "id": "eb5ffe7e-f226-43b0-b084-c14e8676c40f",
      "name": "Manual Trigger Usage",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        368,
        112
      ],
      "parameters": {
        "width": 320,
        "height": 328,
        "content": "## Manual Execution\n\nClick 'Execute Workflow' to run bug aggregation on-demand.\n\n**When to run manually:**\n- After major releases\n- During bug triage meetings\n- For immediate bug status updates\n- Testing workflow changes\n\n**Pro Tip:** Consider setting up a scheduled trigger to run this daily or weekly for automatic bug tracking."
      },
      "typeVersion": 1
    },
    {
      "id": "ba1a0bf1-c18e-4a72-85e0-9789b0fe8bea",
      "name": "Zendesk Integration Info",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        624,
        672
      ],
      "parameters": {
        "width": 320,
        "height": 344,
        "content": "## Zendesk Data Source\n\nRetrieves all tickets from your Zendesk instance for bug analysis.\n\n**Data Retrieved:**\n- Ticket descriptions\n- Status information\n- Tags and metadata\n- Requester IDs\n- Creation dates\n\n**Important:** Ensure Zendesk API credentials have proper read permissions for ticket data."
      },
      "typeVersion": 1
    },
    {
      "id": "3630e74a-7eda-4d28-847c-62eff46fe6e4",
      "name": "Bug Filter Logic",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        816,
        96
      ],
      "parameters": {
        "width": 320,
        "height": 344,
        "content": "## Bug Identification\n\nFilters tickets to identify only those tagged as \"bug\".\n\n**Filter Criteria:**\n- First tag must equal \"bug\" (case-sensitive)\n- Excludes feature requests, questions, etc.\n- Only bug reports proceed to tracking\n\n**Customization:** You can modify this to include multiple bug-related tags like \"critical-bug\", \"ui-bug\", etc."
      },
      "typeVersion": 1
    },
    {
      "id": "6f5a7b23-4323-47ba-9761-622bd43ced77",
      "name": "Customer Impact Tracking",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1104,
        656
      ],
      "parameters": {
        "width": 320,
        "height": 360,
        "content": "## Customer Impact Analysis\n\nEnriches bug data with customer information for impact assessment.\n\n**Customer Data Added:**\n- Reporter name\n- Email address\n- User profile details\n\n**Why Important:** \n- Identify high-value customers affected\n- Prioritize bugs by customer impact\n- Enable direct communication about fixes"
      },
      "typeVersion": 1
    },
    {
      "id": "4dbc6762-5725-4b5b-b096-e2af7cb907e0",
      "name": "Bug Dashboard Management",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1312,
        64
      ],
      "parameters": {
        "width": 320,
        "height": 384,
        "content": "## Bug Dashboard Update\n\nMaintains a centralized bug tracking spreadsheet for team visibility.\n\n**Tracked Information:**\n- Bug ID & Description\n- Current Status\n- Reporter Details\n- Bug Tags\n\n**Smart Updates:** Uses description as unique key to prevent duplicates while keeping status current.\n\n**Team Benefits:** Developers, QA, and support can all see bug status in one place."
      },
      "typeVersion": 1
    },
    {
      "id": "5a5255f2-ab9c-4afe-9887-288f5f1240e8",
      "name": "Filter Bug Reports Only",
      "type": "n8n-nodes-base.if",
      "position": [
        944,
        480
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "cc47baeb-cdfb-4a6b-94ca-ef18c6450d9f",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.tags[0] }}",
              "rightValue": "=bug"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "4f691f63-54df-47c6-b498-c0027b9d7870",
      "name": "Get Bug Reporter Info",
      "type": "n8n-nodes-base.zendesk",
      "position": [
        1168,
        480
      ],
      "parameters": {
        "id": "={{ $json.requester_id }}",
        "resource": "user",
        "operation": "get"
      },
      "credentials": {
        "zendeskApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "cd8695ea-ba75-4723-9967-29ebe7e97fc2",
      "name": "Update Bug Tracking Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1392,
        480
      ],
      "parameters": {
        "columns": {
          "value": {
            "Tag": "={{ $('Filter Bug Reports Only').item.json.tags[0] || 'No tags' }}",
            "email": "={{ $json.email }}",
            "owner": "={{ $json.name }}",
            "Status": "={{ $('Filter Bug Reports Only').item.json.status }}",
            "Ticket No.": "={{ $('Filter Bug Reports Only').item.json.id }}",
            "Description": "={{ $('Filter Bug Reports Only').item.json.description }}"
          },
          "schema": [
            {
              "id": "Ticket No.",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Ticket No.",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Description",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "owner",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "owner",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "email",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Tag",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Tag",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Description"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Utpt2Z8krX-29nE3_HAJVmm9yUp9NRcq-_P8JL1UqRk/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1Utpt2Z8krX-29nE3_HAJVmm9yUp9NRcq-_P8JL1UqRk",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Utpt2Z8krX-29nE3_HAJVmm9yUp9NRcq-_P8JL1UqRk/edit?usp=drivesdk",
          "cachedResultName": "Ticket status dummy"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "94eef00f-986d-431f-8956-3534939d5c76",
      "name": "Fetch All Zendesk Tickets",
      "type": "n8n-nodes-base.zendesk",
      "position": [
        720,
        480
      ],
      "parameters": {
        "options": {},
        "operation": "getAll",
        "returnAll": true
      },
      "credentials": {
        "zendeskApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "85116073-56a5-4546-9c4c-7ae78b420a25",
  "connections": {
    "Get Bug Reporter Info": {
      "main": [
        [
          {
            "node": "Update Bug Tracking Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Bug Reports Only": {
      "main": [
        [
          {
            "node": "Get Bug Reporter Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch All Zendesk Tickets": {
      "main": [
        [
          {
            "node": "Filter Bug Reports Only",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Fetch All Zendesk Tickets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}