{
  "id": "Ps6Vyn4fFbtSDAIa",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Summarize Zendesk Tickets and Generate Insights with Knowledge Graphs",
  "tags": [
    {
      "id": "66wgFoDi9Xjl74M3",
      "name": "Support",
      "createdAt": "2025-05-21T17:06:32.355Z",
      "updatedAt": "2025-05-21T17:06:32.355Z"
    },
    {
      "id": "9QurS5Kb1CkCYrnG",
      "name": "Product",
      "createdAt": "2025-05-21T17:06:29.704Z",
      "updatedAt": "2025-05-21T17:06:29.704Z"
    },
    {
      "id": "Hd23erjIskV5mwPl",
      "name": "Sales",
      "createdAt": "2025-06-05T12:03:26.567Z",
      "updatedAt": "2025-06-05T12:03:26.567Z"
    },
    {
      "id": "kldZpTCan1suEN8v",
      "name": "Marketing",
      "createdAt": "2025-05-20T13:16:20.459Z",
      "updatedAt": "2025-05-20T13:16:20.459Z"
    },
    {
      "id": "sJk9cUvmMU8FkJXv",
      "name": "AI",
      "createdAt": "2025-05-20T13:16:15.636Z",
      "updatedAt": "2025-05-20T13:16:15.636Z"
    }
  ],
  "nodes": [
    {
      "id": "a90faec1-0007-4e18-b2cb-90c5ba40bc4c",
      "name": "Zendesk",
      "type": "n8n-nodes-base.zendesk",
      "position": [
        500,
        120
      ],
      "parameters": {
        "options": {
          "query": "=created>={{ $json.analyze_from_date }}{{$json.searh_query ? ` ${$json.searh_query}` : ``}}{{ $json.status ? ` status:${$json.status.toLowerCase()}` : `` }}"
        },
        "operation": "getAll"
      },
      "credentials": {
        "zendeskApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "84bf6e0c-76a5-4b70-ae04-c3c684044be8",
      "name": "InfraNodus Build a Text Knowledge Graph",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1000,
        120
      ],
      "parameters": {
        "url": "https://infranodus.com/api/v1/graphAndStatements?doNotSave=false&includeGraph=false&includeGraphSummary=true&includeStatements=false",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "name",
              "value": "={{ $('Set Parameters').first().json.graph_name }}"
            },
            {
              "name": "statements",
              "value": "={{ $json.statements }}"
            },
            {
              "name": "contextSettings",
              "value": "={{{ \"partOfSpeechToProcess\":\"HASHTAGS_AND_WORDS\", \"doubleSquarebracketsProcessing\":\"EXCLUDE\", \"mentionsProcessing\":\"EXCLUDE\"} }}"
            },
            {
              "name": "categories",
              "value": "={{ $json.categories }}"
            },
            {
              "name": "timestamps",
              "value": "={{ $json.timestamps }}"
            }
          ]
        },
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "228b5644-60c1-438a-9568-9f616c44ac15",
      "name": "Add meta data to tickets for graph filters",
      "type": "n8n-nodes-base.code",
      "position": [
        800,
        120
      ],
      "parameters": {
        "jsCode": "\nlet statements = []\nlet categories = []\nlet timestamps = []\nfor (const item of $input.all()) {\n\n  const isChatMessage = item.json.description.includes('Offline transcript:') || false\n  \n  const fromSender = isChatMessage ? extractEmail(item.json.description) : item.json.via.source.from.address\n  const createdDate = item.json.created_at\n  const messageSubject = isChatMessage ? '' : item.json.subject + ' '\n  \n  const cleanMessageText = isChatMessage ? item.json.description.split('Offline transcript:')[1] : item.json.description\n  const messageText = messageSubject +\n  removeLineBreaks(removeHtmlCssScript(cleanMessageText))\n  \n  const messageUrl = item.json.url.split('/api/')[0] + '/agent/tickets/' + item.json.id\n  \n  const messageStatus = item.json.status\n  const messageType = item.json.type\n  const messagePriority = item.json.priority\n  const messageCategories = []\n  const messageTags = item.json.tags\n  if (messageStatus) messageCategories.push('status: ' + messageStatus)\n  if (messageType) messageCategories.push('type: ' + messageType)\n  if (messagePriority) messageCategories.push('priority: ' + messagePriority)\n  if (messageTags && messageTags.length > 0) messageTags.forEach(tag => messageCategories.push('tag: ' + tag))\n\n  statements.push('[[' + fromSender + ']] ' + messageText + ' ' + messageUrl)\n  categories.push(messageCategories)\n  timestamps.push(createdDate)\n}\n\nreturn { statements, categories, timestamps }\n\nfunction extractEmail(text) {\n  const match = text.match(/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/);\n  const email = match ? match[0] : '';\n  return email\n}\nfunction removeLineBreaks(text) {\n  const cleanText = text.replaceAll('\\n', ' ')\n  return cleanText\n}\nfunction removeHtmlCssScript(text) {\n  if (!text || typeof text !== 'string') {\n    return '';\n  }\n  \n  let cleanText = text;\n  \n  // Remove script tags and their content (case insensitive)\n  cleanText = cleanText.replace(/<script[^>]*>[\\s\\S]*?<\\/script>/gi, '');\n  \n  // Remove style tags and their content (case insensitive)\n  cleanText = cleanText.replace(/<style[^>]*>[\\s\\S]*?<\\/style>/gi, '');\n  \n  // Remove HTML comments\n  cleanText = cleanText.replace(/<!--[\\s\\S]*?-->/g, '');\n  \n  // Remove all remaining HTML tags\n  cleanText = cleanText.replace(/<[^>]*>/g, '');\n  \n  // Decode common HTML entities\n  const htmlEntities = {\n    '&amp;': '&',\n    '&lt;': '<',\n    '&gt;': '>',\n    '&quot;': '\"',\n    '&#39;': \"'\",\n    '&nbsp;': ' ',\n    '&copy;': '\u00a9',\n    '&reg;': '\u00ae',\n    '&trade;': '\u2122'\n  };\n  \n  Object.keys(htmlEntities).forEach(entity => {\n    const regex = new RegExp(entity, 'g');\n    cleanText = cleanText.replace(regex, htmlEntities[entity]);\n  });\n  \n  // Clean up extra whitespace\n  cleanText = cleanText.replace(/\\s+/g, ' ').trim();\n  \n  return cleanText;\n}"
      },
      "typeVersion": 2
    },
    {
      "id": "2354e6b3-a9de-47ba-a146-a3180126f59b",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        1280,
        120
      ],
      "parameters": {
        "amount": 10
      },
      "typeVersion": 1.1
    },
    {
      "id": "6a070df2-3eb3-4686-ae03-e74b8a9530e5",
      "name": "InfraNodus AI Summary & Graph Link",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1480,
        120
      ],
      "parameters": {
        "url": "https://infranodus.com/api/v1/graphAndAdvice?doNotSave=true&includeGraph=false&includeGraphSummary=true",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "aiTopics",
              "value": "true"
            },
            {
              "name": "requestMode",
              "value": "summary"
            },
            {
              "name": "name",
              "value": "={{ $('Set Parameters').first().json.graph_name }}"
            }
          ]
        },
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": false,
      "typeVersion": 4.2
    },
    {
      "id": "a66e966a-cfb6-41a7-901c-3df07392ad82",
      "name": "Send Report to Telegram",
      "type": "n8n-nodes-base.telegram",
      "onError": "continueRegularOutput",
      "position": [
        2460,
        580
      ],
      "parameters": {
        "text": "=\ud83d\udc8e Visual **overview of your Zendesk tickets** is ready at [https://infranodus.com/Deemeetree/{{ $('Set Parameters').first().json.graph_name }}/edit](https://infranodus.com/Deemeetree/{{ $('Set Parameters').first().json.graph_name }}/edit)\n\n**\ud83d\udc8e Topical summary:**\n{{ $('InfraNodus AI Summary & Graph Link').item.json.aiAdvice[0].text }}\n\n**\ud83d\udca1 Idea to think about:**\n{{ $json.aiAdvice[0].text }}\n",
        "chatId": "your_telegram_chat_id",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8baa3b72-d15f-4757-bfd7-dfd73d573d89",
      "name": "Send Full Report via Gmail",
      "type": "n8n-nodes-base.gmail",
      "onError": "continueRegularOutput",
      "position": [
        2460,
        360
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "=Hello\n\nWe successfully analyzed your Zendesk tickets on {{ $('Set Parameters').first().json.lauch_time }}\n\n\ud83d\udc8e Visual overview of your Zendesk tickets is ready at https://infranodus.com/Deemeetree/{{ $('Set Parameters').first().json.graph_name }}/edit\n\n\ud83d\udccb Search parameters:\nAnalyzing from date: {{ $('Set Parameters').first().json.analyze_from_date }}\nSearch query: {{ $('Set Parameters').first().json.search_query}} \nStatus: {{$('Set Parameters').first().json.status}}\n\n\ud83d\udc8e Topical summary:\n{{ $('InfraNodus AI Summary & Graph Link').item.json.aiAdvice[0].text }}\n\n{{ $('InfraNodus AI Summary & Graph Link').item.json.graphSummary }}\n\n\ud83d\udca1 Idea to think about:\n{{ $json.aiAdvice[0].text }}\n\nThank you, till next time!\n",
        "options": {},
        "subject": "Zendesk Summary",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "56204c2b-f70b-436b-aa52-7bc7b0994822",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "disabled": true,
      "position": [
        -80,
        200
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 10
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "5f6ab402-79f7-468e-a8f1-770322136cb4",
      "name": "Slack",
      "type": "n8n-nodes-base.slack",
      "onError": "continueRegularOutput",
      "position": [
        2460,
        120
      ],
      "parameters": {
        "text": "=Zendesk Support Overview ran on {{ $('Set Parameters').first().json.lauch_time }}\n\n\ud83d\udccb Search parameters:\nAnalyzing from date: {{ $('Set Parameters').first().json.analyze_from_date }}\nSearch query: {{ $('Set Parameters').first().json.search_query}} \nStatus: {{$('Set Parameters').first().json.status}}\n\n\n\ud83d\udc8e Visual overview of your Zendesk tickets is ready at [https://infranodus.com/Deemeetree/{{ $('Set Parameters').first().json.graph_name }}/edit](https://infranodus.com/Deemeetree/{{ $('Set Parameters').first().json.graph_name }}/edit)\n\n\ud83d\udc8e Topical summary:\n{{ $('InfraNodus AI Summary & Graph Link').item.json.aiAdvice[0].text }}\n\n{{ $('InfraNodus AI Summary & Graph Link').item.json.graphSummary }}\n\n\ud83d\udca1 Idea to think about:\n{{ $json.aiAdvice[0].text }}\n\nThank you, till next time!\n",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C0905QEULAG",
          "cachedResultName": "customer-support"
        },
        "otherOptions": {
          "includeLinkToWorkflow": false
        },
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "187c5d5f-a984-4784-9da2-ca7db7b899f8",
      "name": "Set Parameters",
      "type": "n8n-nodes-base.set",
      "position": [
        220,
        120
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={\n  \"analyze_from_date\": \"{{ $json[\"Starting from Date\"] || $today.minus({days: 1}).toString()}}\",\n  \"search_query\": \"{{ $json[\"Search Query\"] || `` }}\",\n  \"status\": \"{{ $json['Ticket Status to Filter'] || `` }}\",\n  \"graph_name\": \"{{ $json[\"Graph Name\"] || ($json.submittedAt ? `zendesk_tickets_${$json.submittedAt.split('.')[0].replaceAll(':', '_')}` : `zendesk_tickets_${$json.timestamp.split('.')[0].replaceAll(':','_')}`) }}\",\n  \"launch_time\": \"{{ $json.submittedAt ? $json.submittedAt.split('.')[0] : $json.timestamp.split('.')[0] }}\"\n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "3629d33e-5b56-4a9a-a32d-be1125b0a1b9",
      "name": "Wait Again",
      "type": "n8n-nodes-base.wait",
      "position": [
        1920,
        120
      ],
      "parameters": {
        "amount": 2
      },
      "typeVersion": 1.1
    },
    {
      "id": "2998db19-1fb6-46d1-8fbb-59e87b3c81ff",
      "name": "InfraNodus Insight Generator",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2100,
        120
      ],
      "parameters": {
        "url": "https://infranodus.com/api/v1/graphAndAdvice?doNotSave=true&optimize=gap&includeGraph=false&includeGraphSummary=true",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "aiTopics",
              "value": "true"
            },
            {
              "name": "requestMode",
              "value": "idea"
            },
            {
              "name": "name",
              "value": "={{ $('Set Parameters').first().json.graph_name }}"
            }
          ]
        },
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "2f06e74a-dcb1-4228-8a5e-688b1fbedbb6",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -80,
        40
      ],
      "parameters": {
        "options": {
          "appendAttribution": false,
          "respondWithOptions": {
            "values": {
              "formSubmittedText": "You will receive a notification via the channel of your choice once this workflow completes."
            }
          }
        },
        "formTitle": "Visual Summary of Zendesk Tickets",
        "formFields": {
          "values": [
            {
              "fieldType": "date",
              "fieldLabel": "Starting from Date"
            },
            {
              "fieldLabel": "Search Query"
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Ticket Status to Filter",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Open"
                  },
                  {
                    "option": "Closed"
                  },
                  {
                    "option": "Pending"
                  },
                  {
                    "option": "New"
                  },
                  {
                    "option": "On Hold"
                  }
                ]
              }
            },
            {
              "fieldLabel": "Graph Name",
              "placeholder": "e.g. zendesk_tickets_search"
            }
          ]
        },
        "authentication": "basicAuth",
        "formDescription": "Create a knowledge graph from your Zendesk tickets and send a notification via Slack with the insights."
      },
      "credentials": {
        "httpBasicAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "dba86f3f-6f65-4339-b720-26da46c62a0b",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        -280
      ],
      "parameters": {
        "height": 660,
        "content": "## 2. Set Parameters\n\n### Set ticket search parameters and graph name to save to. \n\nFor Zendesk search parameters, please, refer to their [search parameters support page](https://developer.zendesk.com/documentation/api-basics/working-with-data/searching-with-the-zendesk-YOUR_OPENAI_KEY_HERE/)\n\nYou can also set search parameters directly in the Zendesk node in the Step 3."
      },
      "typeVersion": 1
    },
    {
      "id": "513993e9-a258-4b45-a4b8-6691779689ab",
      "name": "Form Response",
      "type": "n8n-nodes-base.form",
      "onError": "continueRegularOutput",
      "position": [
        2460,
        780
      ],
      "parameters": {
        "options": {
          "formTitle": "Zendesk Analysis Results"
        },
        "operation": "completion",
        "completionTitle": "The workflow is complete",
        "completionMessage": "=Visual overview of your Zendesk tickets is delivered to your channels of choice and is ready at https://infranodus.com/Deemeetree/{{ $('Set Parameters').first().json.graph_name }}/edit"
      },
      "typeVersion": 1
    },
    {
      "id": "5e7c5976-c1bb-414a-a4bc-ec6776ebe9e2",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        1660,
        200
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "cb0387d5-e633-4885-a91b-cf9cb889e7f9",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.error }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "2a2134ba-3d8c-4d79-bf90-affa433bd17c",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -140,
        -280
      ],
      "parameters": {
        "height": 660,
        "content": "## 1. Set a Trigger\n\n### Start with the search form first or set up a scheduled daily or weekly trigger.\n\nYou can leave all the fields empty. Once you find the search parameters you like, you can specify them in the Step 2 and have an automated trigger run the workflow for you. "
      },
      "typeVersion": 1
    },
    {
      "id": "13976533-6e27-48c1-81dd-73c9a65f724f",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        440,
        -280
      ],
      "parameters": {
        "height": 660,
        "content": "## 3. Get ZenDesk Tickets\n\n### We use search criteria defined in the Step 2. You can also set your own in this node directly. \n\n\ud83d\udea8 Set up your ZenDesk connection here. \n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "56bf6145-fc79-4c12-a505-fc0be369997f",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        -280
      ],
      "parameters": {
        "width": 480,
        "height": 660,
        "content": "## 4. Process Tickets and Generate an [InfraNodus](https://infranodus.com) Knowledge Graph\n\n### You will get a link to an interactive graph at [InfraNodus](https://infranodus.com) where you can see the main topics and concepts and sort your tickets by \n\n- ticket status\n- priority\n- tag\n- urgency\n- sentiment\n\n\n\ud83d\udea8 Set up your InfraNodus API connection here.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "97ff4272-6b64-44a7-aef6-280c98b0d894",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1240,
        -280
      ],
      "parameters": {
        "width": 600,
        "height": 660,
        "content": "## 5. Generate Topical Summary\n\n### Using the [InfraNodus AI text analysis](https://infranodus.com) we generate a topical summary of the tickets you searched for. You will discover:\n\n- the main topics (good for an overview)\n- main keywords (userful for SEO)\n- content gaps (good for product ideas)\n\n\n\ud83d\udea8 Set up your InfraNodus API connection here.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "42300a56-8816-4274-a6ba-703a2ddce1e4",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1880,
        -280
      ],
      "parameters": {
        "width": 380,
        "height": 660,
        "content": "## 6. Generate a Business Idea\n\n### Using the [InfraNodus AI](https://infranodus.com) we generate a business idea based on the gap found in your Zendesk tickets\n\n*You can also change the `requestMode` to `question` to generate an interesting question instead. For more parameters, refer to the [InfraNodus API documentation](https://support.noduslabs.com/hc/en-us/sections/13605105764124-InfraNodus-API).*\n\n\n\ud83d\udea8 Set up your InfraNodus API connection here.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "deee904a-832f-4e73-8851-89d75c07458e",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2320,
        -280
      ],
      "parameters": {
        "width": 380,
        "height": 1260,
        "content": "## 7. Notify of Results via Slack / Email / Telegram / Form\n\n### Receive a summary with the link to the interactive graph to a channel of your choice, once the workflow is ready.\n\nYou can deactivate the channels you don't want to use. We provide multiple channels, so you have an option. \n\n\ud83d\udea8 Set up your API connections here.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e69ffee3-5d11-4a6c-afe9-93b3187016e6",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -140,
        -1080
      ],
      "parameters": {
        "color": 6,
        "width": 760,
        "height": 760,
        "content": "# Generate Visual Topical Summary and Business Ideas from ZenDesk Tickets\n\n### Using this workflow, you can generate an [InfraNodus knowledge graph](https://infranodus.com) based on your ZenDesk tickets (using any search criteria) to:\n\n- Learn what your customers are talking about (main topical clusters)\n- Discover the topics\u00a0and concepts they mention with a negative / positive sentiment\n- Find the support requests for a certain topic\n- Explore the requests in a non-linear way, based on the agent's expertise\n- Identify the content gaps, generate business ideas based on them\n\n\nFor support, please, contact us at [https://support.noduslabs.com](https://support.noduslabs.com)\n\nAn example of the graph that shows the main topics:\n[![Zendesk knowledge graph made with InfraNodus](https://support.noduslabs.com/hc/article_attachments/20447708129820)](https://infranodus.com)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "40b28280-3224-450f-a045-9609c06ee1be",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "InfraNodus AI Summary & Graph Link",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait Again",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "InfraNodus AI Summary & Graph Link",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Zendesk": {
      "main": [
        [
          {
            "node": "Add meta data to tickets for graph filters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait Again": {
      "main": [
        [
          {
            "node": "InfraNodus Insight Generator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Parameters": {
      "main": [
        [
          {
            "node": "Zendesk",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Set Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Set Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "InfraNodus Insight Generator": {
      "main": [
        [
          {
            "node": "Send Report to Telegram",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send Full Report via Gmail",
            "type": "main",
            "index": 0
          },
          {
            "node": "Slack",
            "type": "main",
            "index": 0
          },
          {
            "node": "Form Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "InfraNodus AI Summary & Graph Link": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "InfraNodus Build a Text Knowledge Graph": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add meta data to tickets for graph filters": {
      "main": [
        [
          {
            "node": "InfraNodus Build a Text Knowledge Graph",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}