{
  "workflow": {
    "id": 8816,
    "name": "Sync Zendesk how-to tickets to Google Sheets knowledge base",
    "views": 112,
    "recentViews": 0,
    "totalViews": 112,
    "createdAt": "2025-09-22T06:40:00.953Z",
    "description": "## Description:\nKeep your customer knowledge base up to date with this n8n automation template. The workflow connects Zendesk with Google Sheets, automatically fetching tickets tagged as “howto,” enriching them with requester details, and saving them into a structured spreadsheet.\n\n This ensures your internal or public knowledge base reflects the latest customer how-to queries—without manual copy-pasting. Perfect for customer support teams, SaaS companies, and service providers who want to streamline documentation workflows.\n\n## What This Template Does (Step-by-Step)\n ⚡ Manual Trigger or Scheduling\n-  Run the workflow manually for testing/troubleshooting, or configure a schedule trigger for daily/weekly updates.\n📥 Fetch All Zendesk Tickets\n-  Connects to your Zendesk account and retrieves all available tickets.\n🔍 Filter for \"howto\" Tickets Only\n-  Processes only tickets that contain the “howto” tag, ensuring relevance.\n👤 Enrich User Data\n-  Fetches requester details (name, email, profile info) to provide context.\n📊 Update Google Sheets Knowledge Base\n-  Saves ticket data—including Ticket No., Description, Status, Tag, Owner Name, and Email.\n ✔️ Smart update prevents duplicates by matching on description.\n🔁 Continuous Sync\n-  Each new or updated “howto” ticket is synced automatically into your knowledge base sheet.\n\n## Key Features\n 🔍 Tag-based filtering for precise categorization\n 📊 Smart append-or-update logic in Google Sheets\n ⚡ Zendesk + Google Sheets integration with OAuth2\n ♻️ Keeps knowledge base fresh without manual effort\n 🔐 Secure API credential handling\n\n## Use Cases\n 📖 Maintain a live “how-to” guide from real customer queries\n 🎓 Build self-service documentation for support teams\n 📩 Monitor and track recurring help topics\n 💼 Equip knowledge managers with a ready-to-export dataset\n\n## Required Integrations\n- Zendesk API (for ticket fetch + user info)\n- Google Sheets (for storing/updating records)\n\n## Why Use This Template?\n ✅ Automates repetitive data entry\n ✅ Ensures knowledge base accuracy & freshness\n ✅ Reduces support team workload\n ✅ Easy to extend with more tags, filters, or sheet logic\n",
    "workflow": {
      "id": "cgDm9vVlMd7iOO7R",
      "meta": {
        "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177"
      },
      "name": "Knowledge base auto update",
      "tags": [],
      "nodes": [
        {
          "id": "48804c68-423a-4268-bb12-95531adf0425",
          "name": "When clicking 'Execute workflow'",
          "type": "n8n-nodes-base.manualTrigger",
          "position": [
            -1504,
            1712
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "ca452dad-821d-491f-870e-72d97a903534",
          "name": "Error Trigger",
          "type": "n8n-nodes-base.errorTrigger",
          "position": [
            -1280,
            2448
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "12c1be58-113b-4aa7-9278-da78048ce9a7",
          "name": "Error Trigger Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1648,
            2432
          ],
          "parameters": {
            "width": 320,
            "height": 328,
            "content": "## Error Trigger Node\n\nAutomatically activates when ANY node in the workflow fails.\n\n**How it works:**\n- Monitors the entire workflow execution\n- Catches errors from any node\n- Triggers the error handling path\n- Prevents silent failures\n\n**Best Practice:** This ensures no errors go unnoticed in production."
          },
          "typeVersion": 1
        },
        {
          "id": "5449c962-eb4a-498f-9244-812a865bb0d4",
          "name": "Format Error Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1264,
            2704
          ],
          "parameters": {
            "width": 320,
            "height": 384,
            "content": "## Format Error Details\n\nTransforms raw error data into structured, readable format.\n\n**Extracted Information:**\n- Timestamp of error\n- Workflow and execution IDs\n- Failed node name\n- Error message and type\n- Context (which ticket/item failed)\n- Stack trace for debugging\n- Severity level\n\n**Output:** Clean JSON ready for logging to sheets."
          },
          "typeVersion": 1
        },
        {
          "id": "dca1671e-2b16-479c-8dca-d9b58d8c2ccc",
          "name": "Log Error Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -944,
            2304
          ],
          "parameters": {
            "width": 320,
            "height": 488,
            "content": "## Error Log Sheet\n\nPersists all error details to Google Sheets for tracking and analysis.\n\n**Log Columns:**\n- Timestamp\n- Workflow Name\n- Execution ID\n- Node Name\n- Error Message\n- Error Type\n- Ticket/Item ID\n- Stack Trace\n- Status\n- Severity\n\n**Benefits:** Historical error tracking, pattern identification, audit trail."
          },
          "typeVersion": 1
        },
        {
          "id": "0d60a036-f2b3-495e-900e-3e3dc9f6af3f",
          "name": "Email Error Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -256,
            2096
          ],
          "parameters": {
            "width": 320,
            "height": 424,
            "content": "## Email Error Notification\n\nSends immediate alert emails when workflow fails.\n\n**Email Contains:**\n- Error summary\n- Failed node name\n- Timestamp\n- Link to execution (if configured)\n\n**Configuration Required:**\n- Set up SMTP credentials\n- Update 'fromEmail' and 'toEmail'\n- Can add multiple recipients\n\n**Tip:** Consider using Slack/Teams webhooks instead for faster alerts."
          },
          "typeVersion": 1
        },
        {
          "id": "4946b2e9-c107-4793-ada0-e95ffe07b966",
          "name": "Success Summary Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -544,
            2608
          ],
          "parameters": {
            "width": 320,
            "height": 332,
            "content": "## Success Summary\n\nCalculates and formats execution success metrics.\n\n**What it does:**\n- Counts total tickets processed\n- Captures execution timestamp\n- Records workflow and execution IDs\n- Creates success message\n\n**Purpose:** Provides visibility into successful runs, not just failures. Helps track workflow performance over time."
          },
          "typeVersion": 1
        },
        {
          "id": "4ee4440b-c840-4b6f-bece-1de4273cf79f",
          "name": "Execution Log Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -880,
            2880
          ],
          "parameters": {
            "width": 320,
            "height": 460,
            "content": "## Execution Log Sheet\n\nLogs ALL successful workflow executions.\n\n**Logged Data:**\n- Timestamp\n- Workflow Name\n- Execution ID\n- Status (SUCCESS)\n- Number of tickets processed\n- Success message\n\n**Use Cases:**\n- Monitor workflow health\n- Track processing volume\n- Performance trending\n- Audit compliance\n\n**Combined with Error Log:** Complete execution history."
          },
          "typeVersion": 1
        },
        {
          "id": "6f884973-d34f-4fac-b31b-dbead40cf933",
          "name": "Workflow Description1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -2160,
            1600
          ],
          "parameters": {
            "width": 526,
            "height": 336,
            "content": "## Workflow Purpose\n\nThis workflow automatically updates a Google Sheets knowledge base with Zendesk tickets that have the \"howto\" tag.\n\n**Flow Overview:**\n1. Fetches all tickets from Zendesk\n2. Filters for tickets with \"howto\" tag only\n3. Gets detailed user information for each ticket\n4. Updates Google Sheets with ticket details\n5. **NEW: Comprehensive error handling and logging**\n\n**Use Case:** Perfect for maintaining a knowledge base of how-to requests from customers."
          },
          "typeVersion": 1
        },
        {
          "id": "c821dc37-e8cc-4e0f-b37c-284041f38fcc",
          "name": "Trigger Instructions1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1600,
            1360
          ],
          "parameters": {
            "width": 320,
            "height": 296,
            "content": "## Manual Trigger\n\nClick the 'Execute Workflow' button to run this automation manually.\n\n**When to use:**\n- Testing the workflow\n- One-time data sync\n- Troubleshooting\n\n**Note:** You can also set this up with a schedule trigger to run automatically (daily, weekly, etc.)"
          },
          "typeVersion": 1
        },
        {
          "id": "b62bdc8f-683f-4025-9659-08e3f678a5dd",
          "name": "Zendesk Fetch Details1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1440,
            1904
          ],
          "parameters": {
            "width": 320,
            "height": 312,
            "content": "## Zendesk Integration\n\nFetches ALL tickets from your Zendesk instance.\n\n**What it does:**\n- Connects to Zendesk using API credentials\n- Retrieves all available tickets\n- Passes ticket data to next step\n\n**Important:** Make sure your Zendesk credentials are properly configured in the node settings."
          },
          "typeVersion": 1
        },
        {
          "id": "1e144223-9445-4c91-8355-7a1b734b3539",
          "name": "Filter Explanation1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1200,
            1376
          ],
          "parameters": {
            "width": 320,
            "height": 296,
            "content": "## Filtering Logic\n\nOnly processes tickets with the \"howto\" tag.\n\n**Filter Condition:**\n- Checks if first tag equals \"howto\"\n- Case sensitive matching\n- Only matching tickets proceed to next step\n\n**Tip:** You can modify this filter to use different tags or multiple conditions as needed."
          },
          "typeVersion": 1
        },
        {
          "id": "672f5275-a2ac-4025-b125-d12e969e7186",
          "name": "User Details Purpose1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -976,
            1888
          ],
          "parameters": {
            "width": 320,
            "height": 296,
            "content": "## User Details Enrichment\n\nGets detailed information about the person who created each ticket.\n\n**Retrieved Data:**\n- User name\n- Email address\n- Other user profile information\n\n**Why needed:** The initial ticket data only contains user ID, but we need name and email for the spreadsheet."
          },
          "typeVersion": 1
        },
        {
          "id": "e88abaf3-a1b1-4fc7-a5cd-b17ada33241f",
          "name": "Sheets Update Logic1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -768,
            1280
          ],
          "parameters": {
            "width": 320,
            "height": 384,
            "content": "## Google Sheets Update\n\nSaves or updates ticket information in your knowledge base spreadsheet.\n\n**Data Saved:**\n- Ticket Number\n- Description\n- Status\n- Tag\n- Owner Name\n- Email\n\n**Smart Update:** Uses description as matching column to avoid duplicates - existing tickets get updated instead of creating new rows."
          },
          "typeVersion": 1
        },
        {
          "id": "d031d1a6-f10b-45f4-9f12-e57894161b76",
          "name": "Error Handling Documentation1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -400,
            1280
          ],
          "parameters": {
            "width": 400,
            "height": 400,
            "content": "## 🚨 Error Handling & Logging\n\n**Production Features Added:**\n\n1. **Error Trigger:** Catches all workflow errors automatically\n\n2. **Error Logger:** Logs detailed error info to Google Sheets:\n   - Timestamp\n   - Error node name\n   - Error message\n   - Failed ticket/user ID\n   - Stack trace\n\n3. **Retry Logic:** Auto-retries failed operations\n\n4. **Email Notifications:** Alerts team on failures\n\n**Monitor errors in the Error Log sheet!**"
          },
          "typeVersion": 1
        },
        {
          "id": "01f922f2-c854-4550-98d8-02d00d331e23",
          "name": "Filter HowTo Tickets Only1",
          "type": "n8n-nodes-base.if",
          "position": [
            -1088,
            1712
          ],
          "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": "=howto"
                }
              ]
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "767d5d14-50c1-4b0b-b851-0f4ddee830ae",
          "name": "Get Requester User Info1",
          "type": "n8n-nodes-base.zendesk",
          "maxTries": 3,
          "position": [
            -864,
            1712
          ],
          "parameters": {
            "id": "={{ $json.requester_id }}",
            "resource": "user",
            "operation": "get"
          },
          "credentials": {
            "zendeskApi": {
              "id": "credential-id",
              "name": "zendeskApi Credential"
            }
          },
          "retryOnFail": true,
          "typeVersion": 1,
          "continueOnFail": true,
          "waitBetweenTries": 1000
        },
        {
          "id": "f04ef795-df09-4f97-9ecb-ab19679f6219",
          "name": "Update Knowledge Base Sheet1",
          "type": "n8n-nodes-base.googleSheets",
          "maxTries": 3,
          "position": [
            -640,
            1712
          ],
          "parameters": {
            "columns": {
              "value": {
                "Tag": "={{ $('Filter HowTo Tickets Only1').item.json.tags[0] || 'No tags' }}",
                "email": "={{ $json.email }}",
                "owner": "={{ $json.name }}",
                "Status": "={{ $('Filter HowTo Tickets Only1').item.json.status }}",
                "Ticket No.": "={{ $('Filter HowTo Tickets Only1').item.json.id }}",
                "Description": "={{ $('Filter HowTo Tickets Only1').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": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "retryOnFail": true,
          "typeVersion": 4.6,
          "continueOnFail": true,
          "waitBetweenTries": 2000
        },
        {
          "id": "b5adbd34-2c67-4226-aa0a-10cb8f18b97f",
          "name": "Fetch All Zendesk Tickets1",
          "type": "n8n-nodes-base.zendesk",
          "maxTries": 3,
          "position": [
            -1312,
            1712
          ],
          "parameters": {
            "options": {},
            "operation": "getAll",
            "returnAll": true
          },
          "credentials": {
            "zendeskApi": {
              "id": "credential-id",
              "name": "zendeskApi Credential"
            }
          },
          "retryOnFail": true,
          "typeVersion": 1,
          "waitBetweenTries": 1000
        },
        {
          "id": "641b189d-d542-4c82-8dca-3e72d1bb1152",
          "name": "Format Error Details1",
          "type": "n8n-nodes-base.code",
          "position": [
            -1056,
            2448
          ],
          "parameters": {
            "jsCode": "// Extract error details and format for logging\nconst errorData = $input.item.json;\n\nconst formattedError = {\n  timestamp: new Date().toISOString(),\n  workflowName: $workflow.name,\n  executionId: $execution.id,\n  nodeName: errorData.node?.name || 'Unknown Node',\n  errorMessage: errorData.error?.message || 'Unknown Error',\n  errorType: errorData.error?.name || 'Error',\n  ticketId: errorData.error?.context?.itemIndex !== undefined \n    ? `Item ${errorData.error.context.itemIndex}` \n    : 'N/A',\n  stackTrace: errorData.error?.stack?.substring(0, 500) || 'No stack trace',\n  workflowStatus: 'FAILED',\n  severity: 'HIGH'\n};\n\nreturn { json: formattedError };"
          },
          "typeVersion": 2
        },
        {
          "id": "fd059320-ee35-47fc-bb65-3c7e9d907c95",
          "name": "Log Error to Sheet1",
          "type": "n8n-nodes-base.googleSheets",
          "notes": "Creates Error Log sheet if it doesn't exist",
          "position": [
            -784,
            2448
          ],
          "parameters": {
            "columns": {
              "value": {
                "Status": "={{ $json.workflowStatus }}",
                "Severity": "={{ $json.severity }}",
                "Node Name": "={{ $json.nodeName }}",
                "Timestamp": "={{ $json.timestamp }}",
                "Error Type": "={{ $json.errorType }}",
                "Stack Trace": "={{ $json.stackTrace }}",
                "Execution ID": "={{ $json.executionId }}",
                "Error Message": "={{ $json.errorMessage }}",
                "Workflow Name": "={{ $json.workflowName }}",
                "Ticket/Item ID": "={{ $json.ticketId }}"
              },
              "schema": [
                {
                  "id": "Timestamp",
                  "type": "string",
                  "required": false,
                  "displayName": "Timestamp"
                },
                {
                  "id": "Workflow Name",
                  "type": "string",
                  "required": false,
                  "displayName": "Workflow Name"
                },
                {
                  "id": "Execution ID",
                  "type": "string",
                  "required": false,
                  "displayName": "Execution ID"
                },
                {
                  "id": "Node Name",
                  "type": "string",
                  "required": false,
                  "displayName": "Node Name"
                },
                {
                  "id": "Error Message",
                  "type": "string",
                  "required": false,
                  "displayName": "Error Message"
                },
                {
                  "id": "Error Type",
                  "type": "string",
                  "required": false,
                  "displayName": "Error Type"
                },
                {
                  "id": "Ticket/Item ID",
                  "type": "string",
                  "required": false,
                  "displayName": "Ticket/Item ID"
                },
                {
                  "id": "Stack Trace",
                  "type": "string",
                  "required": false,
                  "displayName": "Stack Trace"
                },
                {
                  "id": "Status",
                  "type": "string",
                  "required": false,
                  "displayName": "Status"
                },
                {
                  "id": "Severity",
                  "type": "string",
                  "required": false,
                  "displayName": "Severity"
                }
              ],
              "mappingMode": "defineBelow"
            },
            "options": {},
            "operation": "append",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=1",
              "cachedResultName": "Error Log"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1Utpt2Z8krX-29nE3_HAJVmm9yUp9NRcq-_P8JL1UqRk",
              "cachedResultName": "Ticket status dummy"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "9ab36aa6-753b-48ff-8aae-102f0daea66b",
          "name": "Send Error Notification1",
          "type": "n8n-nodes-base.emailSend",
          "notes": "Configure your SMTP credentials",
          "position": [
            -512,
            2448
          ],
          "webhookId": "c0a84dff-82d2-4618-ab81-5b7baab4555a",
          "parameters": {
            "options": {},
            "subject": "🚨 Knowledge Base Workflow Error - {{ $json.nodeName }}",
            "toEmail": "user@example.com",
            "fromEmail": "user@example.com"
          },
          "typeVersion": 2.1
        },
        {
          "id": "ffaa5350-2709-44de-b6eb-d3554053d164",
          "name": "Success Summary1",
          "type": "n8n-nodes-base.code",
          "position": [
            -416,
            1712
          ],
          "parameters": {
            "jsCode": "// Log successful execution summary\nconst items = $input.all();\n\nconst summary = {\n  timestamp: new Date().toISOString(),\n  workflowName: $workflow.name,\n  executionId: $execution.id,\n  status: 'SUCCESS',\n  ticketsProcessed: items.length,\n  message: `Successfully processed ${items.length} tickets`\n};\n\nreturn { json: summary };"
          },
          "typeVersion": 2
        },
        {
          "id": "3ca07889-3c23-42bf-9ef0-7f6241b8c6c4",
          "name": "Log Successful Execution1",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            -192,
            1712
          ],
          "parameters": {
            "columns": {
              "value": {
                "Status": "={{ $json.status }}",
                "Message": "={{ $json.message }}",
                "Timestamp": "={{ $json.timestamp }}",
                "Execution ID": "={{ $json.executionId }}",
                "Workflow Name": "={{ $json.workflowName }}",
                "Tickets Processed": "={{ $json.ticketsProcessed }}"
              },
              "schema": [
                {
                  "id": "Timestamp",
                  "type": "string",
                  "required": false,
                  "displayName": "Timestamp"
                },
                {
                  "id": "Workflow Name",
                  "type": "string",
                  "required": false,
                  "displayName": "Workflow Name"
                },
                {
                  "id": "Execution ID",
                  "type": "string",
                  "required": false,
                  "displayName": "Execution ID"
                },
                {
                  "id": "Status",
                  "type": "string",
                  "required": false,
                  "displayName": "Status"
                },
                {
                  "id": "Tickets Processed",
                  "type": "number",
                  "required": false,
                  "displayName": "Tickets Processed"
                },
                {
                  "id": "Message",
                  "type": "string",
                  "required": false,
                  "displayName": "Message"
                }
              ],
              "mappingMode": "defineBelow"
            },
            "options": {},
            "operation": "append",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=2",
              "cachedResultName": "Execution Log"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1Utpt2Z8krX-29nE3_HAJVmm9yUp9NRcq-_P8JL1UqRk",
              "cachedResultName": "Ticket status dummy"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.6
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "5e36abd5-9ff1-48ad-b877-f26093d34fe1",
      "connections": {
        "Error Trigger": {
          "main": [
            [
              {
                "node": "Format Error Details1",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Success Summary1": {
          "main": [
            [
              {
                "node": "Log Successful Execution1",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Log Error to Sheet1": {
          "main": [
            [
              {
                "node": "Send Error Notification1",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Format Error Details1": {
          "main": [
            [
              {
                "node": "Log Error to Sheet1",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Get Requester User Info1": {
          "main": [
            [
              {
                "node": "Update Knowledge Base Sheet1",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Fetch All Zendesk Tickets1": {
          "main": [
            [
              {
                "node": "Filter HowTo Tickets Only1",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Filter HowTo Tickets Only1": {
          "main": [
            [
              {
                "node": "Get Requester User Info1",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Update Knowledge Base Sheet1": {
          "main": [
            [
              {
                "node": "Success Summary1",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "When clicking 'Execute workflow'": {
          "main": [
            [
              {
                "node": "Fetch All Zendesk Tickets1",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 1,
    "workflowInfo": {
      "nodeCount": 24,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 1
        },
        "n8n-nodes-base.code": {
          "count": 2
        },
        "n8n-nodes-base.zendesk": {
          "count": 2
        },
        "n8n-nodes-base.emailSend": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 13
        },
        "n8n-nodes-base.errorTrigger": {
          "count": 1
        },
        "n8n-nodes-base.googleSheets": {
          "count": 3
        },
        "n8n-nodes-base.manualTrigger": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Rahul Joshi",
      "username": "rahul08",
      "bio": "Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.\n\n",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/callrahul/"
      ],
      "avatar": "https://gravatar.com/avatar/b6cf57822463143589b36ada06fbf6cb1509223a740fae3160b28f1ce41ccc12?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 11,
        "icon": "fa:envelope",
        "name": "n8n-nodes-base.emailSend",
        "codex": {
          "data": {
            "alias": [
              "SMTP",
              "email",
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.sendemail/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/sendemail/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Send Email",
          "color": "#00bb88"
        },
        "iconData": {
          "icon": "envelope",
          "type": "icon"
        },
        "displayName": "Send Email",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 12,
        "icon": "fa:bug",
        "name": "n8n-nodes-base.errorTrigger",
        "codex": {
          "data": {
            "details": "In n8n, when a workflow execution fails, it can start another workflow. This second workflow can be any arbitrary workflow on your n8n instance. Use the Error Trigger node as your Trigger in the Error workflow.",
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/creating-error-workflows-in-n8n/",
                  "icon": "🌪",
                  "label": "Creating Error Workflows in n8n"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.errortrigger/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Other Trigger Nodes"
              ]
            }
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Error Trigger",
          "color": "#0000FF"
        },
        "iconData": {
          "icon": "bug",
          "type": "icon"
        },
        "displayName": "Error Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 18,
        "icon": "file:googleSheets.svg",
        "name": "n8n-nodes-base.googleSheets",
        "codex": {
          "data": {
            "alias": [
              "CSV",
              "Sheet",
              "Spreadsheet",
              "GS"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/",
                  "icon": "❤️",
                  "label": "Love at first sight: Ricardo’s n8n journey"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/",
                  "icon": "⏲",
                  "label": "Creating triggers for n8n workflows using polling"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/",
                  "icon": "📈",
                  "label": "Migrating Community Metrics to Orbit using n8n"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/",
                  "icon": "🍔",
                  "label": "How Honest Burgers Use Automation to Save $100k per year"
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Data & Storage",
              "Productivity"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\",\"output\"]",
        "defaults": {
          "name": "Google Sheets"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="
        },
        "displayName": "Google Sheets",
        "typeVersion": 5,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          },
          {
            "id": 4,
            "name": "Productivity"
          }
        ]
      },
      {
        "id": 20,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.if",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "Filter",
              "Condition",
              "Logic",
              "Boolean",
              "Branch"
            ],
            "details": "The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.",
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/",
                  "icon": "🤬",
                  "label": "Create a toxic language detector for Telegram in 4 step"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "If",
          "color": "#408000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "If",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 123,
        "icon": "file:zendesk.svg",
        "name": "n8n-nodes-base.zendesk",
        "codex": {
          "data": {
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.zendesk/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/zendesk/"
                }
              ]
            },
            "categories": [
              "Communication"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Zendesk"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMjRDMCAxMC43NDUgMTAuNzQ1IDAgMjQgMHMyNCAxMC43NDUgMjQgMjQtMTAuNzQ1IDI0LTI0IDI0UzAgMzcuMjU1IDAgMjQiLz48cGF0aCBmaWxsPSIjMDMzNjNEIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS40NDggMTguNjUzYzQuMDUgMCA3LjMzMi0zLjM3NSA3LjMzMi03LjUzOEg4LjExNmMwIDQuMTYzIDMuMjgzIDcuNTM4IDcuMzMyIDcuNTM4bTcuMzMyIDE3LjE5OVYxNy42NDhMOC4xMTYgMzUuODUyem0yLjQxNSAwYzAtNC4xNjQgMy4yODMtNy41NCA3LjMzMi03LjU0IDQuMDUgMCA3LjMzMiAzLjM3NiA3LjMzMiA3LjU0em0wLTI0LjczN3YxOC4yMDNMMzkuODYgMTEuMTE1eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+"
        },
        "displayName": "Zendesk",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          }
        ]
      },
      {
        "id": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 834,
        "icon": "file:code.svg",
        "name": "n8n-nodes-base.code",
        "codex": {
          "data": {
            "alias": [
              "cpde",
              "Javascript",
              "JS",
              "Python",
              "Script",
              "Custom Code",
              "Function"
            ],
            "details": "The Code node allows you to execute JavaScript in your workflow.",
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Code"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="
        },
        "displayName": "Code",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 838,
        "icon": "fa:mouse-pointer",
        "name": "n8n-nodes-base.manualTrigger",
        "codex": {
          "data": {
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "When clicking ‘Execute workflow’",
          "color": "#909298"
        },
        "iconData": {
          "icon": "mouse-pointer",
          "type": "icon"
        },
        "displayName": "Manual Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 35,
        "name": "Document Extraction"
      }
    ],
    "image": []
  }
}