{
  "workflow": {
    "id": 3798,
    "name": "Create a session-based Telegram chatbot with GPT-4o-mini and Google Sheets",
    "views": 12858,
    "recentViews": 2,
    "totalViews": 12858,
    "createdAt": "2025-04-30T08:31:26.629Z",
    "description": "### **How It Works**  \nThis workflow creates an **AI-powered Telegram chatbot** with **session management**, allowing users to:  \n- **Start new conversations** (`/new`).  \n- **Check current sessions** (`/current`).  \n- **Resume past sessions** (`/resume`).  \n- **Get summaries** (`/summary`).  \n- **Ask questions** (`/question`).  \n\n**Key Components**:  \n- **Session Management**:  \n  - Uses **Google Sheets** to track active/expired sessions (storing `SESSION` IDs and `STATE`).  \n  - `/new` creates a session; `/resume` reactivates past ones.  \n- **AI Processing**:  \n  - **OpenAI GPT-4** generates responses with **contextual memory** (via `Simple Memory` node).  \n  - **Summarization**: Condenses past conversations when requested.  \n- **Data Logging**:  \n  - All interactions (prompts/responses) are saved to Google Sheets for audit and retrieval.  \n- **User Interaction**:  \n  - Telegram commands trigger specific actions (e.g., `/question [query]` fetches answers from session history).  \n\n---\n\n### Main Advantages\n\n**1. Multi-session Handling**  \nEach user can create, manage, and switch between multiple sessions independently, perfect for organizing different conversations without confusion.\n\n**2. Persistent Memory**  \nConversations are stored in Google Sheets, ensuring that chat history and session states are preserved even if the server or n8n instance restarts.\n\n**3. Commands for Full Control**  \nWith intuitive commands like `/new`, `/current`, `/resume`, `/summary`, and `/question`, users can manage sessions easily without needing a web interface.\n\n**4. Smart Summarization and Q&A**  \nThanks to OpenAI models, the workflow can **summarize** entire conversations or **answer specific questions** about past discussions, saving time and improving the chatbot’s usability.\n\n**5. Easy Setup and Scalability**  \nBy using Google Sheets instead of a database, the workflow is easy to clone, modify, and deploy — ideal for quick prototyping or lightweight production uses.\n\n**6. Modular and Extensible**  \nEach logical block (new session, get current session, resume, summarize, ask question) is modular, making it easy to **extend** the workflow with additional features like analytics, personalized greetings, or integrations with CRM systems.\n\n---\n\n### **Setup Steps**  \n\n##### **Prerequisites**:  \n- **Telegram Bot Token**: Create via [BotFather](https://core.telegram.org/bots#botfather).  \n- **Google Sheets**:  \n  - Duplicate [this template](https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit).  \n  - Two sheets: `Session` (active/inactive sessions) and `Database` (chat logs).  \n- **OpenAI API Key**: For GPT-4 responses.  \n\n##### **Configuration**:  \n1. **Telegram Integration**:  \n   - Add your bot token to the **Telegram Trigger** and **Telegram Send** nodes.  \n\n2. **Google Sheets Setup**:  \n   - Authenticate the **Google Sheets nodes** with OAuth.  \n   - Ensure sheet names (`Session`, `Database`) and column mappings match the template.  \n\n3. **OpenAI & Memory**:  \n   - Add your API key to the **OpenAI Chat Model** nodes.  \n   - Adjust `contextWindowLength` in the **Simple Memory** node for conversation history length.  \n\n4. **Testing**:  \n   - Use Telegram commands to test:  \n     - `/new`: Starts a session.  \n     - `/question [query]`: Tests AI responses.  \n     - `/summary`: Checks summarization.  \n\n5. **Deployment**:  \n   - Activate the workflow; the bot will respond to Telegram messages in real-time.  \n\n\n---\n\n\n### **Need help customizing?**  \n[Contact me](mailto:info@n3w.it) for consulting and support or add me on [Linkedin](https://www.linkedin.com/in/davideboizza/). ",
    "workflow": {
      "id": "A7dRnMf9WybO8O02",
      "meta": {
        "instanceId": "a4bfc93e975ca233ac45ed7c9227d84cf5a2329310525917adaf3312e10d5462",
        "templateCredsSetupCompleted": true
      },
      "name": "Telegram ChatBot with multiple sessions",
      "tags": [],
      "nodes": [
        {
          "id": "d3104851-90ec-4f0c-ab4d-aee5a6faf81b",
          "name": "OpenAI Chat Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            640,
            1180
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4o-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "e25050a1-e49b-4b46-8452-ce7b3388c7f3",
          "name": "Simple Memory",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            780,
            1180
          ],
          "parameters": {
            "sessionKey": "={{ $('Get session').item.json.SESSION }}",
            "sessionIdType": "customKey",
            "contextWindowLength": 100
          },
          "typeVersion": 1.3
        },
        {
          "id": "d50951ae-e9a2-492c-8ff5-a039ca6975e4",
          "name": "Get message",
          "type": "n8n-nodes-base.telegramTrigger",
          "position": [
            -520,
            -60
          ],
          "webhookId": "8d87dcf7-1608-4255-a1f1-03b700a42f0e",
          "parameters": {
            "updates": [
              "message"
            ],
            "additionalFields": {}
          },
          "credentials": {
            "telegramApi": {
              "id": "credential-id",
              "name": "telegramApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "1bc9aa0f-8af8-47b8-b7d7-6bfd9280b65f",
          "name": "Command or text?",
          "type": "n8n-nodes-base.switch",
          "position": [
            -20,
            -60
          ],
          "parameters": {
            "rules": {
              "values": [
                {
                  "outputKey": "New session",
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "955f3c39-0732-4a63-b3f7-70ab0753a68a",
                        "operator": {
                          "type": "string",
                          "operation": "startsWith"
                        },
                        "leftValue": "={{ $('Get message').item.json.message.text }}",
                        "rightValue": "/new"
                      }
                    ]
                  },
                  "renameOutput": true
                },
                {
                  "outputKey": "Current session",
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "790f64bc-f3cc-4ef4-9d43-80853742fee6",
                        "operator": {
                          "type": "string",
                          "operation": "startsWith"
                        },
                        "leftValue": "={{ $('Get message').item.json.message.text }}",
                        "rightValue": "/current"
                      }
                    ]
                  },
                  "renameOutput": true
                },
                {
                  "outputKey": "Resume session",
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "39f35352-aee4-4a16-b82f-7f58ab8120f0",
                        "operator": {
                          "type": "string",
                          "operation": "startsWith"
                        },
                        "leftValue": "={{ $('Get message').item.json.message.text }}",
                        "rightValue": "/resume"
                      }
                    ]
                  },
                  "renameOutput": true
                },
                {
                  "outputKey": "Summary ",
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "270d71bf-8ecf-46e7-a601-cc5d1dc58e72",
                        "operator": {
                          "name": "filter.operator.equals",
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $('Get message').item.json.message.text }}",
                        "rightValue": "/summary"
                      }
                    ]
                  },
                  "renameOutput": true
                },
                {
                  "outputKey": "Question",
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "55fe98fa-e39a-41b3-983f-359a8e730f21",
                        "operator": {
                          "type": "string",
                          "operation": "startsWith"
                        },
                        "leftValue": "={{ $('Get message').item.json.message.text }}",
                        "rightValue": "/question"
                      }
                    ]
                  },
                  "renameOutput": true
                }
              ]
            },
            "options": {
              "fallbackOutput": "extra"
            }
          },
          "typeVersion": 3.2
        },
        {
          "id": "4a405332-99a8-4ec9-84d5-89f9f5f1610f",
          "name": "Get session",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            -260,
            -60
          ],
          "parameters": {
            "options": {
              "returnFirstMatch": true
            },
            "filtersUI": {
              "values": [
                {
                  "lookupValue": "current",
                  "lookupColumn": "STATE"
                }
              ]
            },
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 207843712,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit#gid=207843712",
              "cachedResultName": "Session"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit?usp=drivesdk",
              "cachedResultName": "Chatbot with session"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.5
        },
        {
          "id": "860fa8d5-6c9b-476b-857b-9c47a023d72f",
          "name": "Disable previous session",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            640,
            -760
          ],
          "parameters": {
            "columns": {
              "value": {
                "STATE": "expire",
                "SESSION": "={{ $('Get session').item.json.SESSION }}"
              },
              "schema": [
                {
                  "id": "SESSION",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "SESSION",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "STATE",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "STATE",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "row_number",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": true,
                  "required": false,
                  "displayName": "row_number",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [
                "SESSION"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "update",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 207843712,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit#gid=207843712",
              "cachedResultName": "Session"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit?usp=drivesdk",
              "cachedResultName": "Chatbot with session"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.5
        },
        {
          "id": "6ff1cf54-5406-4c86-a77e-8424208d4728",
          "name": "Set new session",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            960,
            -760
          ],
          "parameters": {
            "columns": {
              "value": {
                "STATE": "current",
                "SESSION": "={{ $('Get message').item.json.update_id }}"
              },
              "schema": [
                {
                  "id": "SESSION",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "SESSION",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "STATE",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "STATE",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "append",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 207843712,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit#gid=207843712",
              "cachedResultName": "Session"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit?usp=drivesdk",
              "cachedResultName": "Chatbot with session"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.5
        },
        {
          "id": "be9c755a-0c52-453c-b448-98975d4c6e87",
          "name": "Session activated",
          "type": "n8n-nodes-base.telegram",
          "position": [
            1240,
            -760
          ],
          "webhookId": "fa5e7641-068c-40cb-b490-a6809e74c629",
          "parameters": {
            "text": "New session activated",
            "chatId": "={{ $('Get message').item.json.message.from.id }}",
            "additionalFields": {
              "appendAttribution": false
            }
          },
          "credentials": {
            "telegramApi": {
              "id": "credential-id",
              "name": "telegramApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "31478ec5-c1de-43db-ac9d-9b34f68e951c",
          "name": "Send response",
          "type": "n8n-nodes-base.telegram",
          "position": [
            1100,
            980
          ],
          "webhookId": "fa5e7641-068c-40cb-b490-a6809e74c629",
          "parameters": {
            "text": "={{ $json.output }}",
            "chatId": "={{ $('Get message').item.json.message.from.id }}",
            "additionalFields": {
              "appendAttribution": false
            }
          },
          "credentials": {
            "telegramApi": {
              "id": "credential-id",
              "name": "telegramApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "be35b9a6-2914-409f-bc9c-6199ccb9e4ed",
          "name": "Update database",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            1420,
            980
          ],
          "parameters": {
            "columns": {
              "value": {
                "DATE": "={{$now}}",
                "PROMPT": "={{ $('Get message').item.json.message.text }}",
                "SESSION": "={{ $('Get session').item.json.SESSION }}",
                "RESPONSE": "={{ $('Telegram Chatbot').item.json.output }}"
              },
              "schema": [
                {
                  "id": "SESSION",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "SESSION",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "DATE",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "DATE",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "PROMPT",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "PROMPT",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "RESPONSE",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "RESPONSE",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "append",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit#gid=0",
              "cachedResultName": "Database"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit?usp=drivesdk",
              "cachedResultName": "Chatbot with session"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.5
        },
        {
          "id": "dacc79e0-56ff-47d6-b09f-16ebfb31cbfa",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -540,
            -540
          ],
          "parameters": {
            "color": 3,
            "width": 620,
            "height": 360,
            "content": "# Telegram ChatBot with multiple sessions\n\nThis workflow creates an **AI-powered Telegram chatbot** with **session management**, allowing users to:  \n- **Start new conversations** (`/new`).  \n- **Check current sessions** (`/current`).  \n- **Resume past sessions** (`/resume`).  \n- **Get summaries** (`/summary`).  \n- **Ask questions** (`/question`). \n\n- Clone [this sheet](https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit?usp=sharing)"
          },
          "typeVersion": 1
        },
        {
          "id": "55751f99-ee2e-429b-99cd-fef30eb56fb8",
          "name": "Summarization Chain",
          "type": "@n8n/n8n-nodes-langchain.chainSummarization",
          "position": [
            1040,
            200
          ],
          "parameters": {
            "options": {
              "summarizationMethodAndPrompts": {
                "values": {
                  "prompt": "=Write a concise summary of the following:\n\n\n\"{{ $json.fullText }}\"\n\n\nCONCISE SUMMARY:",
                  "combineMapPrompt": "=Write a concise summary of the following:\n\n\n\"{{ $json.fullText }}\"\n\n\nCONCISE SUMMARY:"
                }
              }
            }
          },
          "typeVersion": 2
        },
        {
          "id": "c7f0d136-4a77-4bc8-b2ef-b03fa41ad1ff",
          "name": "OpenAI Chat Model1",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            1020,
            380
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4o-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "a455cf00-2f72-4377-ac2a-d65ab8c30e31",
          "name": "OpenAI Chat Model2",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            1660,
            800
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4o-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "e55082e4-4e65-4fbb-8850-d3b64093eab6",
          "name": "Basic LLM Chain",
          "type": "@n8n/n8n-nodes-langchain.chainLlm",
          "position": [
            1680,
            600
          ],
          "parameters": {
            "text": "=Question:\n{{ $json.question }}",
            "messages": {
              "messageValues": [
                {
                  "message": "=You have to answer the questions that are asked by analyzing the following text:\n\n{{ $json.fullText }}"
                }
              ]
            },
            "promptType": "define"
          },
          "typeVersion": 1.6
        },
        {
          "id": "1e670eaa-fd9f-4e79-b2a8-bd43240455db",
          "name": "Get message1",
          "type": "n8n-nodes-base.set",
          "position": [
            600,
            -100
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "56bf47bc-e84c-4cee-8aa0-927f3d2e31c5",
                  "name": "text",
                  "type": "string",
                  "value": "={{ $('Get message').item.json.message.text }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "65771b1e-47fc-439d-a1ea-9901bac047d8",
          "name": "Set to expire",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            1040,
            -100
          ],
          "parameters": {
            "columns": {
              "value": {
                "STATE": "expire",
                "SESSION": "={{ $('Get session').item.json.SESSION }}"
              },
              "schema": [
                {
                  "id": "SESSION",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "SESSION",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "STATE",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "STATE",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "row_number",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": true,
                  "required": false,
                  "displayName": "row_number",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [
                "SESSION"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "update",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 207843712,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit#gid=207843712",
              "cachedResultName": "Session"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit?usp=drivesdk",
              "cachedResultName": "Chatbot with session"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.5
        },
        {
          "id": "d18268f6-8792-4a66-aa32-35b596e7fcad",
          "name": "Exist?",
          "type": "n8n-nodes-base.if",
          "position": [
            1540,
            -100
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "1710e38c-80d1-49ba-9814-2b2c6b3c3b8d",
                  "operator": {
                    "type": "object",
                    "operation": "empty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json }}",
                  "rightValue": ""
                }
              ]
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "6eeb7e4d-8af0-4d71-981d-66a39f4870a3",
          "name": "OK",
          "type": "n8n-nodes-base.telegram",
          "position": [
            1880,
            -40
          ],
          "webhookId": "fa5e7641-068c-40cb-b490-a6809e74c629",
          "parameters": {
            "text": "=The current session is {{ $json.SESSION }}",
            "chatId": "={{ $('Get message').item.json.message.from.id }}",
            "additionalFields": {
              "appendAttribution": false
            }
          },
          "credentials": {
            "telegramApi": {
              "id": "credential-id",
              "name": "telegramApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "1a6b9065-154f-4c43-9406-110636884f3d",
          "name": "KO",
          "type": "n8n-nodes-base.telegram",
          "position": [
            1880,
            -200
          ],
          "webhookId": "fa5e7641-068c-40cb-b490-a6809e74c629",
          "parameters": {
            "text": "=This session doesn't exist",
            "chatId": "={{ $('Get message').item.json.message.from.id }}",
            "additionalFields": {
              "appendAttribution": false
            }
          },
          "credentials": {
            "telegramApi": {
              "id": "credential-id",
              "name": "telegramApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "a2463ecc-fc82-401d-bf1b-6104f4b379e6",
          "name": "Trim resume",
          "type": "n8n-nodes-base.code",
          "position": [
            820,
            -100
          ],
          "parameters": {
            "jsCode": "for (const item of $input.all()) {\n  const text = item.json.text || '';\n  const match = text.match(/\\/resume\\s+(.*)/);\n\n  if (match) {\n    item.json.resume = match[1].trim();\n  } else {\n    item.json.resume = null; \n  }\n}\n\nreturn $input.all();"
          },
          "typeVersion": 2
        },
        {
          "id": "c24a0c1d-290f-4e0c-8da9-98de14a65e2b",
          "name": "Get session1",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            600,
            200
          ],
          "parameters": {
            "options": {},
            "filtersUI": {
              "values": [
                {
                  "lookupValue": "={{ $('Get session').item.json.SESSION }}",
                  "lookupColumn": "SESSION"
                }
              ]
            },
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit#gid=0",
              "cachedResultName": "Database"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit?usp=drivesdk",
              "cachedResultName": "Chatbot with session"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.5
        },
        {
          "id": "84cc4b12-ab2b-4509-a2e3-1c4d952904c5",
          "name": "Prompt + Resume",
          "type": "n8n-nodes-base.code",
          "position": [
            820,
            200
          ],
          "parameters": {
            "jsCode": "let fullText = '';\n\nfor (const item of $input.all()) {\n  const prompt = item.json.PROMPT || '';\n  const response = item.json.RESPONSE || '';\n  fullText += `PROMPT: ${prompt}\\nRESPONSE: ${response}\\n`;\n}\nconst chat_id=$('Get message').first().json.message.from.id\n\nreturn [{ json: { fullText, chat_id } }];\n"
          },
          "typeVersion": 2
        },
        {
          "id": "3ae34388-95a0-41d7-8f20-7fa74817dab8",
          "name": "Send summary",
          "type": "n8n-nodes-base.telegram",
          "position": [
            1420,
            200
          ],
          "webhookId": "fa5e7641-068c-40cb-b490-a6809e74c629",
          "parameters": {
            "text": "={{ $json.response.text }}",
            "chatId": "={{ $('Prompt + Resume').item.json.chat_id }}",
            "additionalFields": {
              "appendAttribution": false
            }
          },
          "credentials": {
            "telegramApi": {
              "id": "credential-id",
              "name": "telegramApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "d38eb058-29a3-4500-b6de-f700b8f501e9",
          "name": "Get message2",
          "type": "n8n-nodes-base.set",
          "position": [
            620,
            600
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "56bf47bc-e84c-4cee-8aa0-927f3d2e31c5",
                  "name": "text",
                  "type": "string",
                  "value": "={{ $('Get message').item.json.message.text }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "ee6713b5-6264-43e8-86a4-f9584049f05b",
          "name": "Trim question",
          "type": "n8n-nodes-base.code",
          "position": [
            860,
            600
          ],
          "parameters": {
            "jsCode": "for (const item of $input.all()) {\n  const text = item.json.text || '';\n  const match = text.match(/\\/question\\s+(.*)/);\n\n  if (match) {\n    item.json.question = match[1].trim();\n  } else {\n    item.json.question = null; // oppure \"\" se preferisci\n  }\n}\n\nreturn $input.all();"
          },
          "typeVersion": 2
        },
        {
          "id": "65482069-1c41-4977-8f18-75f192866fdd",
          "name": "Set new current session",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            1280,
            -100
          ],
          "parameters": {
            "columns": {
              "value": {
                "STATE": "current",
                "SESSION": "={{ $('Trim resume').item.json.resume }}"
              },
              "schema": [
                {
                  "id": "SESSION",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "SESSION",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "STATE",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "STATE",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "row_number",
                  "type": "string",
                  "display": true,
                  "removed": true,
                  "readOnly": true,
                  "required": false,
                  "displayName": "row_number",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [
                "SESSION"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "update",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 207843712,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit#gid=207843712",
              "cachedResultName": "Session"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit?usp=drivesdk",
              "cachedResultName": "Chatbot with session"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "notesInFlow": false,
          "typeVersion": 4.5,
          "alwaysOutputData": true
        },
        {
          "id": "91ef2595-acca-4efd-8331-3450fa466d33",
          "name": "Response + Text",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            1140,
            600
          ],
          "parameters": {
            "options": {},
            "filtersUI": {
              "values": [
                {
                  "lookupValue": "={{ $('Get session').item.json.SESSION }}",
                  "lookupColumn": "SESSION"
                }
              ]
            },
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit#gid=0",
              "cachedResultName": "Database"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MCJLAqKP0Y7Qr68ZYoSSBeEVyKI1QgAAZnlEiyqkzXo/edit?usp=drivesdk",
              "cachedResultName": "Chatbot with session"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.5
        },
        {
          "id": "2fbaf240-c01e-48dc-90bf-cc655eb7cd4d",
          "name": "fullText",
          "type": "n8n-nodes-base.code",
          "position": [
            1440,
            600
          ],
          "parameters": {
            "jsCode": "let fullText = '';\n\nfor (const item of $input.all()) {\n  const prompt = item.json.PROMPT || '';\n  const response = item.json.RESPONSE || '';\n  fullText += `PROMPT: ${prompt}\\nRESPONSE: ${response}\\n`;\n}\nconst chat_id=$('Get message').first().json.message.from.id;\nconst question=$('Trim question').first().json.question;\n\nreturn [{ json: { fullText, chat_id, question } }];\n"
          },
          "typeVersion": 2
        },
        {
          "id": "30e29b4f-da86-4cee-b875-7985b5d82b7e",
          "name": "Send answer",
          "type": "n8n-nodes-base.telegram",
          "position": [
            2080,
            600
          ],
          "webhookId": "fa5e7641-068c-40cb-b490-a6809e74c629",
          "parameters": {
            "text": "={{ $json.text }}",
            "chatId": "={{ $('fullText').item.json.chat_id }}",
            "additionalFields": {
              "appendAttribution": false
            }
          },
          "credentials": {
            "telegramApi": {
              "id": "credential-id",
              "name": "telegramApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "41e2b5b3-25a2-411c-929a-ad4c22f45cd1",
          "name": "Send current session",
          "type": "n8n-nodes-base.telegram",
          "position": [
            620,
            -440
          ],
          "webhookId": "fa5e7641-068c-40cb-b490-a6809e74c629",
          "parameters": {
            "text": "=The current session is {{ $('Get session').item.json.SESSION }}",
            "chatId": "={{ $('Get message').item.json.message.from.id }}",
            "additionalFields": {
              "appendAttribution": false
            }
          },
          "credentials": {
            "telegramApi": {
              "id": "credential-id",
              "name": "telegramApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "e30bb12b-8e46-4fe4-81b7-72ce036d431f",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            640,
            -880
          ],
          "parameters": {
            "width": 580,
            "height": 80,
            "content": "## NEW SESSION\n"
          },
          "typeVersion": 1
        },
        {
          "id": "7e23ee2d-b4ee-4be8-969b-c713039dacdf",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            620,
            -560
          ],
          "parameters": {
            "width": 580,
            "height": 80,
            "content": "## GET CURRENT SESSION\n"
          },
          "typeVersion": 1
        },
        {
          "id": "5b10cf55-3730-4e0c-8db7-49c82e9b1350",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            600,
            -220
          ],
          "parameters": {
            "width": 580,
            "height": 80,
            "content": "## RESUME SESSION\n"
          },
          "typeVersion": 1
        },
        {
          "id": "f0932a2c-ebf2-4179-972a-073e5edfa50d",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            600,
            100
          ],
          "parameters": {
            "width": 580,
            "height": 80,
            "content": "## GET SUMMARY\n"
          },
          "typeVersion": 1
        },
        {
          "id": "9d9fdca4-870b-4ef4-9415-2fb750eb6466",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            620,
            500
          ],
          "parameters": {
            "width": 580,
            "height": 80,
            "content": "## SEND QUESTION\n"
          },
          "typeVersion": 1
        },
        {
          "id": "aa55d92a-ec31-42c3-8b17-fa9d81d99c31",
          "name": "Sticky Note6",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            640,
            860
          ],
          "parameters": {
            "width": 580,
            "height": 80,
            "content": "## CHATBOT\n"
          },
          "typeVersion": 1
        },
        {
          "id": "fa4dd49c-881b-41d2-84b4-82cbd3e62d0e",
          "name": "Telegram Chatbot",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            640,
            980
          ],
          "parameters": {
            "text": "={{ $('Get message').item.json.message.text }}",
            "options": {
              "systemMessage": "=Sei un assitente virtuale:\n\nData e ora corrente: {{ $now }}"
            },
            "promptType": "define"
          },
          "typeVersion": 1.9
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "timezone": "Europe/Rome",
        "callerPolicy": "workflowsFromSameOwner",
        "executionOrder": "v1",
        "executionTimeout": -1
      },
      "versionId": "c6d418c0-aec9-498a-b5c7-318a3e4efe0b",
      "connections": {
        "Exist?": {
          "main": [
            [
              {
                "node": "KO",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "OK",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "fullText": {
          "main": [
            [
              {
                "node": "Basic LLM Chain",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Get message": {
          "main": [
            [
              {
                "node": "Get session",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Get session": {
          "main": [
            [
              {
                "node": "Command or text?",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Trim resume": {
          "main": [
            [
              {
                "node": "Set to expire",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Get message1": {
          "main": [
            [
              {
                "node": "Trim resume",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Get message2": {
          "main": [
            [
              {
                "node": "Trim question",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Get session1": {
          "main": [
            [
              {
                "node": "Prompt + Resume",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Send response": {
          "main": [
            [
              {
                "node": "Update database",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Set to expire": {
          "main": [
            [
              {
                "node": "Set new current session",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Simple Memory": {
          "ai_memory": [
            [
              {
                "node": "Telegram Chatbot",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "Trim question": {
          "main": [
            [
              {
                "node": "Response + Text",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Basic LLM Chain": {
          "main": [
            [
              {
                "node": "Send answer",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Prompt + Resume": {
          "main": [
            [
              {
                "node": "Summarization Chain",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Response + Text": {
          "main": [
            [
              {
                "node": "fullText",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Set new session": {
          "main": [
            [
              {
                "node": "Session activated",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Command or text?": {
          "main": [
            [
              {
                "node": "Disable previous session",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Send current session",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Get message1",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Get session1",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Get message2",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Telegram Chatbot",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Telegram Chatbot": {
          "main": [
            [
              {
                "node": "Send response",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model": {
          "ai_languageModel": [
            [
              {
                "node": "Telegram Chatbot",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model1": {
          "ai_languageModel": [
            [
              {
                "node": "Summarization Chain",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model2": {
          "ai_languageModel": [
            [
              {
                "node": "Basic LLM Chain",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Summarization Chain": {
          "main": [
            [
              {
                "node": "Send summary",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Set new current session": {
          "main": [
            [
              {
                "node": "Exist?",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Disable previous session": {
          "main": [
            [
              {
                "node": "Set new session",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 38,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 1
        },
        "n8n-nodes-base.set": {
          "count": 2
        },
        "n8n-nodes-base.code": {
          "count": 4
        },
        "n8n-nodes-base.switch": {
          "count": 1
        },
        "n8n-nodes-base.telegram": {
          "count": 7
        },
        "n8n-nodes-base.stickyNote": {
          "count": 7
        },
        "n8n-nodes-base.googleSheets": {
          "count": 8
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 1
        },
        "n8n-nodes-base.telegramTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.chainLlm": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.lmChatOpenAi": {
          "count": 3
        },
        "@n8n/n8n-nodes-langchain.chainSummarization": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.memoryBufferWindow": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Davide",
      "username": "n3witalia",
      "bio": "Full-stack Web Developer based in Italy specialising in Marketing & AI-powered automations. For business enquiries, send me an email at info@n3w.it or add me on Linkedin.com/in/davideboizza",
      "verified": true,
      "links": [
        "https://n3w.it"
      ],
      "avatar": "https://gravatar.com/avatar/d41b8a0aa81139243509c58870f5b4be292824a507ab57d10ed066d8628ed8da?r=pg&d=retro&size=200"
    },
    "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": 38,
        "icon": "fa:pen",
        "name": "n8n-nodes-base.set",
        "codex": {
          "data": {
            "alias": [
              "Set",
              "JS",
              "JSON",
              "Filter",
              "Transform",
              "Map"
            ],
            "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/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/",
                  "icon": "📡",
                  "label": "Database Monitoring and Alerting with n8n"
                },
                {
                  "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/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/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/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "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/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "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/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/",
                  "icon": "📈",
                  "label": "A low-code bitcoin ticker built with QuestDB and n8n.io"
                },
                {
                  "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/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                },
                {
                  "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.set/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Edit Fields"
        },
        "iconData": {
          "icon": "pen",
          "type": "icon"
        },
        "displayName": "Edit Fields (Set)",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 49,
        "icon": "file:telegram.svg",
        "name": "n8n-nodes-base.telegram",
        "codex": {
          "data": {
            "alias": [
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "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/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/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/world-poetry-day-workflow/",
                  "icon": "📜",
                  "label": "Celebrating World Poetry Day with a daily poem in Telegram"
                },
                {
                  "url": "https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/",
                  "icon": "💪",
                  "label": "Using Automation to Boost Productivity in the Workplace"
                },
                {
                  "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/creating-scheduled-text-affirmations-with-n8n/",
                  "icon": "🤟",
                  "label": "Creating scheduled text affirmations with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-telegram-bots-with-n8n-a-no-code-platform/",
                  "icon": "💬",
                  "label": "Creating Telegram Bots with n8n, a No-Code Platform"
                },
                {
                  "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.telegram/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/telegram/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Telegram"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjYgNjYiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzM3YWVlMiIgZD0iTTAgMzJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyczMyLTE0LjMyNyAzMi0zMlM0OS42NzMgMCAzMiAwIDAgMTQuMzI3IDAgMzIiLz48cGF0aCBmaWxsPSIjYzhkYWVhIiBkPSJtMjEuNjYxIDM0LjMzOCAzLjc5NyAxMC41MDhzLjQ3NS45ODMuOTgzLjk4MyA4LjA2OC03Ljg2NCA4LjA2OC03Ljg2NGw4LjQwNy0xNi4yMzctMjEuMTE5IDkuODk4eiIvPjxwYXRoIGZpbGw9IiNhOWM2ZDgiIGQ9Im0yNi42OTUgMzcuMDM0LS43MjkgNy43NDZzLS4zMDUgMi4zNzMgMi4wNjggMGw0LjY0NC00LjIwMyIvPjxwYXRoIGQ9Im0yMS43MyAzNC43MTItNy44MDktMi41NDVzLS45MzItLjM3OC0uNjMzLTEuMjM3Yy4wNjItLjE3Ny4xODYtLjMyOC41NTktLjU4OCAxLjczMS0xLjIwNiAzMi4wMjgtMTIuMDk2IDMyLjAyOC0xMi4wOTZzLjg1Ni0uMjg4IDEuMzYxLS4wOTdjLjIzMS4wODguMzc4LjE4Ny41MDMuNTQ4LjA0NS4xMzIuMDcxLjQxMS4wNjguNjg5LS4wMDMuMjAxLS4wMjcuMzg2LS4wNDUuNjc4LS4xODQgMi45NzgtNS43MDYgMjUuMTk4LTUuNzA2IDI1LjE5OHMtLjMzIDEuMy0xLjUxNCAxLjM0NWMtLjQzMi4wMTYtLjk1Ni0uMDcxLTEuNTgyLS42MS0yLjMyMy0xLjk5OC0xMC4zNTItNy4zOTQtMTIuMTI2LTguNThhLjM0LjM0IDAgMCAxLS4xNDYtLjIzOWMtLjAyNS0uMTI1LjEwOC0uMjguMTA4LS4yOHMxMy45OC0xMi40MjcgMTQuMzUyLTEzLjczMWMuMDI5LS4xMDEtLjA3OS0uMTUxLS4yMjYtLjEwNy0uOTI5LjM0Mi0xNy4wMjUgMTAuNTA2LTE4LjgwMSAxMS42MjktLjEwNC4wNjYtLjM5NS4wMjMtLjM5NS4wMjMiLz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Telegram",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 50,
        "icon": "file:telegram.svg",
        "name": "n8n-nodes-base.telegramTrigger",
        "codex": {
          "data": {
            "resources": {
              "generic": [
                {
                  "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/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/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/creating-telegram-bots-with-n8n-a-no-code-platform/",
                  "icon": "💬",
                  "label": "Creating Telegram Bots with n8n, a No-Code Platform"
                },
                {
                  "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/trigger-nodes/n8n-nodes-base.telegramtrigger/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/telegram/"
                }
              ]
            },
            "categories": [
              "Communication"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Telegram Trigger"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjYgNjYiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzM3YWVlMiIgZD0iTTAgMzJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyczMyLTE0LjMyNyAzMi0zMlM0OS42NzMgMCAzMiAwIDAgMTQuMzI3IDAgMzIiLz48cGF0aCBmaWxsPSIjYzhkYWVhIiBkPSJtMjEuNjYxIDM0LjMzOCAzLjc5NyAxMC41MDhzLjQ3NS45ODMuOTgzLjk4MyA4LjA2OC03Ljg2NCA4LjA2OC03Ljg2NGw4LjQwNy0xNi4yMzctMjEuMTE5IDkuODk4eiIvPjxwYXRoIGZpbGw9IiNhOWM2ZDgiIGQ9Im0yNi42OTUgMzcuMDM0LS43MjkgNy43NDZzLS4zMDUgMi4zNzMgMi4wNjggMGw0LjY0NC00LjIwMyIvPjxwYXRoIGQ9Im0yMS43MyAzNC43MTItNy44MDktMi41NDVzLS45MzItLjM3OC0uNjMzLTEuMjM3Yy4wNjItLjE3Ny4xODYtLjMyOC41NTktLjU4OCAxLjczMS0xLjIwNiAzMi4wMjgtMTIuMDk2IDMyLjAyOC0xMi4wOTZzLjg1Ni0uMjg4IDEuMzYxLS4wOTdjLjIzMS4wODguMzc4LjE4Ny41MDMuNTQ4LjA0NS4xMzIuMDcxLjQxMS4wNjguNjg5LS4wMDMuMjAxLS4wMjcuMzg2LS4wNDUuNjc4LS4xODQgMi45NzgtNS43MDYgMjUuMTk4LTUuNzA2IDI1LjE5OHMtLjMzIDEuMy0xLjUxNCAxLjM0NWMtLjQzMi4wMTYtLjk1Ni0uMDcxLTEuNTgyLS42MS0yLjMyMy0xLjk5OC0xMC4zNTItNy4zOTQtMTIuMTI2LTguNThhLjM0LjM0IDAgMCAxLS4xNDYtLjIzOWMtLjAyNS0uMTI1LjEwOC0uMjguMTA4LS4yOHMxMy45OC0xMi40MjcgMTQuMzUyLTEzLjczMWMuMDI5LS4xMDEtLjA3OS0uMTUxLS4yMjYtLjEwNy0uOTI5LjM0Mi0xNy4wMjUgMTAuNTA2LTE4LjgwMSAxMS42MjktLjEwNC4wNjYtLjM5NS4wMjMtLjM5NS4wMjMiLz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Telegram Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          }
        ]
      },
      {
        "id": 112,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.switch",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "If",
              "Path",
              "Filter",
              "Condition",
              "Logic",
              "Branch",
              "Case"
            ],
            "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/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/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"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Switch",
          "color": "#506000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "Switch",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "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": 1119,
        "icon": "fa:robot",
        "name": "@n8n/n8n-nodes-langchain.agent",
        "codex": {
          "data": {
            "alias": [
              "LangChain",
              "Chat",
              "Conversational",
              "Plan and Execute",
              "ReAct",
              "Tools"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Agents",
                "Root Nodes"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "AI Agent",
          "color": "#404040"
        },
        "iconData": {
          "icon": "robot",
          "type": "icon"
        },
        "displayName": "AI Agent",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1121,
        "icon": "fa:link",
        "name": "@n8n/n8n-nodes-langchain.chainSummarization",
        "codex": {
          "data": {
            "alias": [
              "LangChain"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainsummarization/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Chains",
                "Root Nodes"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Summarization Chain",
          "color": "#909298"
        },
        "iconData": {
          "icon": "link",
          "type": "icon"
        },
        "displayName": "Summarization Chain",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1123,
        "icon": "fa:link",
        "name": "@n8n/n8n-nodes-langchain.chainLlm",
        "codex": {
          "data": {
            "alias": [
              "LangChain"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Chains",
                "Root Nodes"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Basic LLM Chain",
          "color": "#909298"
        },
        "iconData": {
          "icon": "link",
          "type": "icon"
        },
        "displayName": "Basic LLM Chain",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1153,
        "icon": "file:openAiLight.svg",
        "name": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Language Models",
                "Root Nodes"
              ],
              "Language Models": [
                "Chat Models (Recommended)"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "OpenAI Chat Model"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="
        },
        "displayName": "OpenAI Chat Model",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1163,
        "icon": "fa:database",
        "name": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Memory"
              ],
              "Memory": [
                "For beginners"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Simple Memory"
        },
        "iconData": {
          "icon": "database",
          "type": "icon"
        },
        "displayName": "Simple Memory",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 40,
        "name": "Support Chatbot"
      },
      {
        "id": 47,
        "name": "AI Chatbot"
      }
    ],
    "image": []
  }
}