{"workflow":{"id":14148,"name":"Organize handwritten memos from LINE using Gemini OCR, Drive and Sheets","views":6,"recentViews":0,"totalViews":6,"createdAt":"2026-03-18T11:22:11.631Z","description":"## AI Handwritten Memo Organizer – Overview\nThis workflow receives handwritten memo images sent via LINE and automatically extracts, summarizes, and organizes the content using AI.\n\n## Step-by-step process:\n1.\tUser sends a handwritten memo image via LINE\n2.\tWebhook receives the image\n3.\tImmediate reply is sent: “Processing…”\n4.\tImage is saved to Google Drive\n5.\tAI performs OCR and generates structured data (title, category, summary, tags)\n6.\tThe JSON response is safely parsed with error handling\n7.\tOCR failure is detected if text cannot be properly extracted\nIf OCR fails:\n→ User is notified with guidance for retaking the image\nIf OCR succeeds:\n→ Check if the category sheet exists in Google Sheets\n→ If not, create a new sheet\n→ Save the data (title, summary, tags, date, image URL)\n8.\tCompletion message is sent to the user via LINE\n\n## Setup Steps\n1.\tCreate a LINE Messaging API channel and obtain the Channel Access Token\n2.\tCreate a Google Spreadsheet for storing memo data\n3.\tCreate a Google Drive folder to store uploaded images\n4.\tSet the following values in the Config node:\no\tLINE_ACCESS_TOKEN\no\tGOOGLE_SHEETS_ID\n5.\tSet the Webhook URL in the LINE Developers Console","workflow":{"id":"rVTVIVdaRJ36Ss9J","meta":{"instanceId":"97026e32b0fb2a3a25c91da3619a13cf567f779540a0387b5ca4103b552a7346","templateCredsSetupCompleted":true},"name":"AI Handwritten Memo Organizer copy","tags":[],"nodes":[{"id":"d966c63b-0c81-4ae4-b39f-cea2e1bc262b","name":"LINE_Receive_Webhook","type":"n8n-nodes-base.webhook","position":[-352,-352],"webhookId":"bb8a88d6-5c62-4715-9118-4bc0d5ac1df1","parameters":{"path":"=e89b4943-1f2e-4d37-84ad-0fce0b78175e","options":{},"httpMethod":"POST"},"typeVersion":2.1},{"id":"24b6f4c9-f787-4a76-b810-73f8ce3c13d0","name":"LINE_Check_MessageType","type":"n8n-nodes-base.if","position":[112,-352],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"58a4dbd8-8eed-400c-b94a-7083131e133a","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $('LINE_Receive_Webhook').item.json.body.events[0].message.type }}","rightValue":"image"},{"id":"69e0a667-2629-4538-9bb6-518274328f8b","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"","rightValue":""}]}},"typeVersion":2.3},{"id":"65504c18-86a1-43b4-ba30-73034b424a3c","name":"LINE_Download_ImageContent","type":"n8n-nodes-base.httpRequest","position":[560,-368],"parameters":{"url":"=https://api-data.line.me/v2/bot/message/{{ $('LINE_Receive_Webhook').item.json.body.events[0].message.id }}/content","options":{"response":{"response":{"responseFormat":"file"}}},"sendHeaders":true,"headerParameters":{"parameters":[{"name":"=Authorization","value":"=Bearer {{ $('Config_Set_Environment').item.json.LINE_ACCESS_TOKEN }}"}]}},"typeVersion":4.3},{"id":"d818cc9f-74b8-4df2-832e-8c4ad0bea0f0","name":"Binary_Restore_From_LINE","type":"n8n-nodes-base.code","position":[944,-368],"parameters":{"jsCode":"const item = $input.first();\n\n// Restore binary data\nitem.binary = $node[\"LINE_Download_ImageContent\"].binary;\n\nreturn [item];"},"typeVersion":2},{"id":"6560682c-aea1-40ff-8883-07e6346da25c","name":"Drive_Upload_Image","type":"n8n-nodes-base.googleDrive","position":[752,-368],"parameters":{"name":"={{ $('LINE_Receive_Webhook').item.json.body.events[0].message.id }}.jpg","driveId":{"__rl":true,"mode":"list","value":"My Drive","cachedResultUrl":"https://drive.google.com/drive/my-drive","cachedResultName":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"list","value":"1xR4KZbVauD6_J0t5YbPBvFSS1dxPLuWu","cachedResultUrl":"https://drive.google.com/drive/folders/1xR4KZbVauD6_J0t5YbPBvFSS1dxPLuWu","cachedResultName":"LINE_PIC"}},"credentials":{"googleDriveOAuth2Api":{"id":"LrC8DnMq9fQ1sFsr","name":"Google Drive account 2"}},"typeVersion":3},{"id":"e70fef6c-4191-4ec8-8676-2f1d9692b9be","name":"AI_OCR_Analyze_Image","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[1152,-368],"parameters":{"text":"=You are a high-precision OCR engine.\n\nPlease read the text written in the image as accurately as possible.\nIf the text cannot be read, you must output the following JSON and terminate the process:\n{\n\"title\": \"\",\n\"category\": \"\",\n\"summary\": \"The text could not be recognized.\",\n\"tags\":[]\n}\n\nIf the text can be read, generate the following based on the summarized content:\n\nTitle\n\nCategory\n\nSummary\n\nTags (up to 3 important keywords)\n\n【Rules】\n\nThe category should be a short, easy-to-group term.\n\nTags must be single words with no duplicates.\n\nAvoid overly abstract tags (e.g., important, memo).\n\n【Important】\n\nOutput must be pure JSON only\n\nNo explanations or preface text\n\nDo not output anything other than JSON\n\nOutput the following fields in JSON format:\n\n{\n\"title\": \"\",\n\"category\": \"\",\n\"summary\": \"\",\n\"tags\":[]\n}","batching":{},"messages":{"messageValues":[{"type":"HumanMessagePromptTemplate","messageType":"imageBinary"}]},"promptType":"define"},"typeVersion":1.7},{"id":"63af5fcc-e079-48c2-9548-f47f5bd5459d","name":"AI_Model_Gemini","type":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","position":[1200,-176],"parameters":{"options":{"topP":1,"temperature":0,"maxOutputTokens":2048}},"credentials":{"googlePalmApi":{"id":"xE3DLCmOxxD6Vr6n","name":"Google Gemini(PaLM) Api account"}},"typeVersion":1},{"id":"629c2e2c-9fe6-4dc0-9055-a62c83a02091","name":"Data_Parse_OCR_JSON","type":"n8n-nodes-base.code","position":[1600,-368],"parameters":{"jsCode":"let raw = $json[\"text\"] || \"\";\n\nraw = raw.replace(/```json\\s*/i, \"\").replace(/```/g, \"\").trim();\n\n// Extract only the JSON part\nconst match = raw.match(/\\{[\\s\\S]*\\}/);\nif (match) {\n  raw = match[0];\n}\n\n// parsed\nlet parsed;\ntry {\n  parsed = JSON.parse(raw);\n} catch (e) {\n  parsed = {\n    title: \"\",\n    category: \"\",\n    summary: raw.slice(0, 100),\n    tags: []\n  };\n}\n\n// Add patterns\n\nif (!parsed.title || typeof parsed.title !== \"string\") {\n  parsed.title = \"No title\";\n}\n\nif (!parsed.category || typeof parsed.category !== \"string\") {\n  parsed.category = \"Uncategorized\";\n}\n\nif (!parsed.summary || typeof parsed.summary !== \"string\") {\n  parsed.summary = \"No summary\";\n}\n\nif (!Array.isArray(parsed.tags)) {\n  parsed.tags = [];\n}\n\n// Sanitize the contents of the tags as well\nparsed.tags = parsed.tags\n  .filter(tag => typeof tag === \"string\")\n  .slice(0, 3);\n\n// Original item\nconst item = $input.first();\n\n// Merge\nitem.json = {\n  ...item.json,\n  ...parsed\n};\n\n// Preserve binary data\nitem.binary = $input.first().binary;\n\nreturn [item];"},"typeVersion":2},{"id":"490147c4-3b25-4868-89db-410367e97af5","name":"AI_Check_OCR_Failure","type":"n8n-nodes-base.if","position":[1888,-368],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"0cad7233-7daa-4bff-bde7-08f254669175","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.summary }}","rightValue":"=The text could not be recognized."}]}},"typeVersion":2.3},{"id":"8ce58f94-0c8f-4796-8082-7fa7af4f1eaf","name":"LINE_Reply_NoImage","type":"n8n-nodes-base.httpRequest","position":[320,-176],"parameters":{"url":"=https://api.line.me/v2/bot/message/reply","method":"POST","options":{},"jsonBody":"={\n  \"replyToken\": \"{{$node['LINE_Receive_Webhook'].json.body.events[0].replyToken }}\",\n  \"messages\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"If you send a handwritten memo, I will summarize its contents.\"\n    }\n  ]\n}\n","sendBody":true,"sendHeaders":true,"specifyBody":"json","headerParameters":{"parameters":[{"name":"=Authorization","value":"=Bearer {{$node[\"Config_Set_Environment\"].json.LINE_ACCESS_TOKEN }}"},{"name":"=Content-type","value":"=application/json"}]}},"typeVersion":4.3},{"id":"77b6636b-89a7-4ca7-9266-80ab17312250","name":"Sheets_Get_Metadata","type":"n8n-nodes-base.httpRequest","position":[2272,-352],"parameters":{"url":"=https://sheets.googleapis.com/v4/spreadsheets/{{ $('Config_Set_Environment').item.json.GOOGLE_SHEETS_ID }}","options":{},"authentication":"predefinedCredentialType","nodeCredentialType":"googleOAuth2Api"},"credentials":{"googleOAuth2Api":{"id":"zYxpP1228uCr6tOk","name":"Google account 2"}},"typeVersion":4.3},{"id":"3c6d4ce3-d628-4973-a921-f8df9bfce102","name":"Sheets_Check_Category_Exists","type":"n8n-nodes-base.code","position":[2480,-352],"parameters":{"jsCode":"// Category obtained via OCR\nconst category = $('Data_Parse_OCR_JSON').first().json.category;\n\n// List of sheets retrieved via the Sheets API\nconst sheets = $json.sheets || [];\n\n// Create a list of sheet names\nconst sheetNames = sheets.map(s => s.properties.title);\n\n// Match check\nconst exists = sheetNames.includes(category);\n\nreturn [\n  {\n    json: {\n      category: category,\n      sheetExists: exists,\n      sheetNames: sheetNames\n    }\n  }\n];"},"typeVersion":2},{"id":"cea2f7b2-3ec4-4602-8840-f17011641121","name":"Sheets_Branch_Category","type":"n8n-nodes-base.if","position":[2688,-352],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"7865df36-eede-4198-ad62-2942a8471bfa","operator":{"type":"boolean","operation":"equals"},"leftValue":"={{ $json.sheetExists }}","rightValue":true}]}},"typeVersion":2.3},{"id":"9fd98944-f097-420e-9f18-9a1c8e2a6404","name":"Sheets_Create_Category","type":"n8n-nodes-base.googleSheets","position":[2832,-240],"parameters":{"title":"={{ $('Sheets_Check_Category_Exists').item.json.category }}","options":{},"operation":"create","documentId":{"__rl":true,"mode":"list","value":"1eFUe4xD5Xgd5BbQ2kT_QzKQzF3EspnuXdpYYv8p46HM","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1eFUe4xD5Xgd5BbQ2kT_QzKQzF3EspnuXdpYYv8p46HM/edit?usp=drivesdk","cachedResultName":"OCR_data"}},"credentials":{"googleSheetsOAuth2Api":{"id":"egoCUdvIqtgf9YLy","name":"Google Sheets account"}},"typeVersion":4.7},{"id":"835f1e29-373f-41b8-bdf0-b0235c7bd4ac","name":"Sheets_Append_Row","type":"n8n-nodes-base.googleSheets","position":[3344,-368],"parameters":{"columns":{"value":{"date":"={{$now.format(\"yyyy-MM-dd HH:mm:ss\")}}","tags":"={{ $node['Data_Parse_OCR_JSON'].json.tags.join(',') }}","title":"={{ $node['Data_Parse_OCR_JSON'].json.title }}","webUrl":"={{ $('Drive_Upload_Image').item.json.webViewLink }}","summary":"={{ $node['Data_Parse_OCR_JSON'].json.summary }}"},"schema":[{"id":"date","type":"string","display":true,"required":false,"displayName":"date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"title","type":"string","display":true,"required":false,"displayName":"title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"summary","type":"string","display":true,"required":false,"displayName":"summary","defaultMatch":false,"canBeUsedToMatch":true},{"id":"webUrl","type":"string","display":true,"removed":false,"required":false,"displayName":"webUrl","defaultMatch":false,"canBeUsedToMatch":true},{"id":"tags","type":"string","display":true,"removed":false,"required":false,"displayName":"tags","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"name","value":"={{ $('Sheets_Check_Category_Exists').item.json.category }}"},"documentId":{"__rl":true,"mode":"list","value":"1eFUe4xD5Xgd5BbQ2kT_QzKQzF3EspnuXdpYYv8p46HM","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1eFUe4xD5Xgd5BbQ2kT_QzKQzF3EspnuXdpYYv8p46HM/edit?usp=drivesdk","cachedResultName":"OCR_data"}},"credentials":{"googleSheetsOAuth2Api":{"id":"egoCUdvIqtgf9YLy","name":"Google Sheets account"}},"typeVersion":4.7},{"id":"b9403280-7d7c-49be-9267-17fbfabcd74e","name":"LINE_Push_Completion_Message","type":"n8n-nodes-base.httpRequest","position":[3696,-368],"parameters":{"url":"=https://api.line.me/v2/bot/message/push","method":"POST","options":{},"jsonBody":"={\n  \"to\":\"{{ $('LINE_Receive_Webhook').item.json.body.events[0].source.userId }}\",\n  \"messages\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"The text has been summarized and saved.\\n SheetsName「{{$node['Sheets_Check_Category_Exists'].json.category}}」\\nTitle「{{$json.title}}」\\n Tags「{{ $json.tags }}」\"\n    }\n  ]\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","headerParameters":{"parameters":[{"name":"=Authorization","value":"=Bearer {{ $('Config_Set_Environment').item.json.LINE_ACCESS_TOKEN }}"},{"name":"=Content-type","value":"=application/json"}]}},"typeVersion":4.3},{"id":"6cec1e96-0f19-43e4-92b5-4a4719ce0018","name":"Data_Prepare_Sheet_Row","type":"n8n-nodes-base.set","position":[3040,-240],"parameters":{"options":{},"assignments":{"assignments":[{"id":"da4e2d84-d288-4ab4-85bb-d77cc5d36181","name":"date","type":"string","value":"={{$now.format(\"yyyy-MM-dd HH:mm:ss\")}}"},{"id":"2326e8d4-3fd1-4693-82c5-f20e277d883e","name":"title","type":"string","value":"={{ $node['Data_Parse_OCR_JSON'].json.title }}"},{"id":"bf464c30-98cd-4489-9a87-8838bc0f3c54","name":"summary","type":"string","value":"={{ $node['Data_Parse_OCR_JSON'].json.summary }}"},{"id":"edcd36c7-75db-4b3d-899a-56a1022b822e","name":"webUrl","type":"string","value":"={{ $node['Drive_Upload_Image'].json.webViewLink }}"},{"id":"dd39e3b3-caaa-466b-8b4c-a40885fbf357","name":"tags","type":"string","value":"={{ $node['Data_Parse_OCR_JSON'].json.tags.join(',') }}"}]}},"typeVersion":3.4},{"id":"e69bd4e7-c264-44d1-adcc-a8ef27d5a369","name":"Config_Set_Environment","type":"n8n-nodes-base.set","position":[-128,-352],"parameters":{"options":{},"assignments":{"assignments":[{"id":"aa8b0c5c-df21-49f6-a885-eff8ad142d3d","name":"LINE_ACCESS_TOKEN","type":"string","value":"=YOUR_ACCESS_TOKEN"},{"id":"98ad89fb-a6a2-463d-adc8-7c3ce9125170","name":"GOOGLE_SHEETS_ID","type":"string","value":"YOUR_GOOGLE_SHEETS_ID"}]}},"typeVersion":3.4},{"id":"01086742-e02d-431b-a8e2-894cc045908e","name":"LINE_Reply_Processing","type":"n8n-nodes-base.httpRequest","position":[320,-368],"parameters":{"url":"=https://api.line.me/v2/bot/message/reply","method":"POST","options":{},"jsonBody":"={\n  \"replyToken\": \"{{$node['LINE_Receive_Webhook'].json.body.events[0].replyToken }}\",\n  \"messages\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"Processing…\"\n    }\n  ]\n}\n","sendBody":true,"sendHeaders":true,"specifyBody":"json","headerParameters":{"parameters":[{"name":"=Authorization","value":"=Bearer {{$node[\"Config_Set_Environment\"].json.LINE_ACCESS_TOKEN }}"},{"name":"=Content-type","value":"=application/json"}]}},"typeVersion":4.3},{"id":"265726ac-ccc0-4a59-8831-01d9066621a2","name":"LINE_Push_NoSummary","type":"n8n-nodes-base.httpRequest","position":[2064,-528],"parameters":{"url":"=https://api.line.me/v2/bot/message/push","method":"POST","options":{},"jsonBody":"={\n  \"to\":\"{{ $('LINE_Receive_Webhook').item.json.body.events[0].source.userId }}\",\n  \"messages\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"The image could not be read.\\n• The text may be too small.\\n• Please retake the photo in a well-lit environment.\"\n    }\n  ]\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","headerParameters":{"parameters":[{"name":"=Authorization","value":"=Bearer {{ $('Config_Set_Environment').item.json.LINE_ACCESS_TOKEN }}"},{"name":"=Content-type","value":"=application/json"}]}},"typeVersion":4.3},{"id":"6e3926bb-93e7-4571-a552-f8fefbca4dfc","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[496,-608],"parameters":{"color":7,"width":608,"height":416,"content":"##  Image Handling\n\nProcesses the incoming image:\n\n• Downloads image from LINE API\n• Uploads image to Google Drive\n• Restores binary data\n\nEnsures persistent storage for later use."},"typeVersion":1},{"id":"b4988f99-7b80-4e3e-b80f-2e3fc284e400","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-1136,-720],"parameters":{"width":688,"height":960,"content":"## AI Handwritten Memo Organizer – Overview\nThis workflow receives handwritten memo images sent via LINE and automatically extracts, summarizes, and organizes the content using AI.\n\n## Step-by-step process:\n1.\tUser sends a handwritten memo image via LINE\n2.\tWebhook receives the image\n3.\tImmediate reply is sent: “Processing…”\n4.\tImage is saved to Google Drive\n5.\tAI performs OCR and generates structured data (title, category, summary, tags)\n6.\tThe JSON response is safely parsed with error handling\n7.\tOCR failure is detected if text cannot be properly extracted\nIf OCR fails:\n→ User is notified with guidance for retaking the image\nIf OCR succeeds:\n→ Check if the category sheet exists in Google Sheets\n→ If not, create a new sheet\n→ Save the data (title, summary, tags, date, image URL)\n8.\tCompletion message is sent to the user via LINE\n\n## Setup Steps\n1.\tCreate a LINE Messaging API channel and obtain the Channel Access Token\n2.\tCreate a Google Spreadsheet for storing memo data\n3.\tCreate a Google Drive folder to store uploaded images\n4.\tSet the following values in the Config node:\no\tLINE_ACCESS_TOKEN\no\tGOOGLE_SHEETS_ID\n5.\tSet the Webhook URL in the LINE Developers Console\n\n## Key points:\n• Immediate response improves user experience\n• JSON parsing includes fallback handling for malformed AI output\n• OCR failure is detected and handled safely\n• Data is automatically categorized into separate sheets\n• Tags are generated to enable future search functionality\n \n## Notes:\n• If a non-image message is sent, the user is prompted to send an image\n• If text cannot be extracted, the data will not be saved\n• The AI output may not always be perfectly accurate\n• This workflow is designed for memo organization, not critical data processing\n"},"typeVersion":1},{"id":"7801b3d3-d0eb-4711-a946-a457acf5f17c","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-416,-608],"parameters":{"color":7,"width":896,"height":608,"content":"## LINE Input & Validation\n\nReceives messages via LINE Webhook.\n\n• Validates that the input is an image\n• Non-image messages are rejected with guidance\n• Ensures only valid data enters the workflow\n• Sends an instant reply: “Processing…”\n\nThis step prevents invalid processing early."},"typeVersion":1},{"id":"ac47a850-0fe3-4aef-a804-aa5b43abdfce","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[1120,-656],"parameters":{"color":7,"width":400,"height":608,"content":"##  OCR & AI Processing\n\nExtracts and structures data from the image:\n\n• Performs OCR on handwritten content\n• Generates structured JSON:\n  - title\n  - category\n  - summary\n  - tags\n\nTransforms unstructured data into usable format."},"typeVersion":1},{"id":"41e2fac1-ece2-4101-a4f3-20f2cb2c3aa8","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[1536,-656],"parameters":{"color":7,"width":272,"height":464,"content":"##  JSON Parsing\n\nSafely parses AI output:\n\n• Removes invalid wrappers (e.g. ```json)\n• Extracts JSON content\n• Handles malformed responses with fallback\n\nPrevents workflow crashes from AI inconsistencies."},"typeVersion":1},{"id":"cba9d1aa-eb5f-4538-a89c-4fd282e7e43a","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[1840,-752],"parameters":{"color":7,"width":368,"height":592,"content":"## OCR Failure Detection\n\nValidates OCR result quality:\n\n• Detects missing or invalid summary\n• Stops workflow if text is not recognized\n\nPrevents saving incorrect data."},"typeVersion":1},{"id":"e9b8bc3f-5148-49a4-970d-02e19fb0cc44","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[2224,-608],"parameters":{"color":7,"width":976,"height":544,"content":"## Sheet Management\n\nManages Google Sheets structure:\n\n• Checks if category sheet exists\n• Creates new sheet if needed\n\nEnables scalable data organization."},"typeVersion":1},{"id":"4739a0a1-b1e0-4acd-b023-0b9d3ba244d7","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[3216,-624],"parameters":{"color":7,"width":320,"height":416,"content":"## Data Storage\n\nStores structured data:\n\n• Title\n• Summary\n• Tags\n• Date\n• Image URL\n\nAll data is appended to the correct sheet."},"typeVersion":1},{"id":"ac129a5a-5345-48b4-972d-66b07fc042dd","name":"Sticky Note8","type":"n8n-nodes-base.stickyNote","position":[3552,-576],"parameters":{"color":7,"width":304,"height":384,"content":"## Completion Response\n\nSends results back to user:\n\n• Confirms successful processing\n• Provides organized output\n\nCloses the workflow clearly."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"aedf2830-81f7-4919-96a1-ea92f40160fd","connections":{"AI_Model_Gemini":{"ai_languageModel":[[{"node":"AI_OCR_Analyze_Image","type":"ai_languageModel","index":0}]]},"Sheets_Append_Row":{"main":[[{"node":"LINE_Push_Completion_Message","type":"main","index":0}]]},"Drive_Upload_Image":{"main":[[{"node":"Binary_Restore_From_LINE","type":"main","index":0}]]},"Data_Parse_OCR_JSON":{"main":[[{"node":"AI_Check_OCR_Failure","type":"main","index":0}]]},"Sheets_Get_Metadata":{"main":[[{"node":"Sheets_Check_Category_Exists","type":"main","index":0}]]},"AI_Check_OCR_Failure":{"main":[[{"node":"LINE_Push_NoSummary","type":"main","index":0}],[{"node":"Sheets_Get_Metadata","type":"main","index":0}]]},"AI_OCR_Analyze_Image":{"main":[[{"node":"Data_Parse_OCR_JSON","type":"main","index":0}]]},"LINE_Receive_Webhook":{"main":[[{"node":"Config_Set_Environment","type":"main","index":0}]]},"LINE_Reply_Processing":{"main":[[{"node":"LINE_Download_ImageContent","type":"main","index":0}]]},"Config_Set_Environment":{"main":[[{"node":"LINE_Check_MessageType","type":"main","index":0}]]},"Data_Prepare_Sheet_Row":{"main":[[{"node":"Sheets_Append_Row","type":"main","index":0}]]},"LINE_Check_MessageType":{"main":[[{"node":"LINE_Reply_Processing","type":"main","index":0}],[{"node":"LINE_Reply_NoImage","type":"main","index":0}]]},"Sheets_Branch_Category":{"main":[[{"node":"Sheets_Append_Row","type":"main","index":0}],[{"node":"Sheets_Create_Category","type":"main","index":0}]]},"Sheets_Create_Category":{"main":[[{"node":"Data_Prepare_Sheet_Row","type":"main","index":0}]]},"Binary_Restore_From_LINE":{"main":[[{"node":"AI_OCR_Analyze_Image","type":"main","index":0}]]},"LINE_Download_ImageContent":{"main":[[{"node":"Drive_Upload_Image","type":"main","index":0}]]},"Sheets_Check_Category_Exists":{"main":[[{"node":"Sheets_Branch_Category","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":29,"nodeTypes":{"n8n-nodes-base.if":{"count":3},"n8n-nodes-base.set":{"count":2},"n8n-nodes-base.code":{"count":3},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.stickyNote":{"count":9},"n8n-nodes-base.googleDrive":{"count":1},"n8n-nodes-base.httpRequest":{"count":6},"n8n-nodes-base.googleSheets":{"count":2},"@n8n/n8n-nodes-langchain.chainLlm":{"count":1},"@n8n/n8n-nodes-langchain.lmChatGoogleGemini":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Hiroshi Hashimoto","username":"hashimoto","bio":"I studied programming at a vocational school in Japan and obtained the Level 2 Information Technology Engineer certification. After that, I worked as a sales representative at a staffing agency.\n\nIn 2021, I opened a private tutoring school, where I serve as the head instructor, supporting elementary, junior high, and high school students with their studies. I also launched a QUREO programming school.\n\nSince 2025, I have been studying n8n and am aiming to become a certified creator.","verified":true,"links":[""],"avatar":"https://gravatar.com/avatar/ecf46725ebf0a3285bdf9964d3bf11caa76a1673b46a768348e403df1d47dd14?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":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"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/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-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content 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/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"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/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"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/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"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/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/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"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/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"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.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"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":47,"icon":"file:webhook.svg","name":"n8n-nodes-base.webhook","codex":{"data":{"alias":["HTTP","API","Build","WH"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"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/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"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/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/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/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, 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/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/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"},{"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/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"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"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Webhook","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":58,"icon":"file:googleDrive.svg","name":"n8n-nodes-base.googleDrive","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"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/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.googledrive/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"Google Drive"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgODEgNzMiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzAwNjZkYSIgZD0ibTYuMDQ4IDYxLjI2IDMuNTI4IDYuMDk0Yy43MzMgMS4yODMgMS43ODcgMi4yOTEgMy4wMjQgMy4wMjRsMTIuNi0yMS44MUgwYTguMyA4LjMgMCAwIDAgMS4xIDQuMTI0eiIvPjxwYXRoIGZpbGw9IiMwMGFjNDciIGQ9Ik00MCAyMi45MSAyNy40IDEuMWMtMS4yMzcuNzMzLTIuMjkxIDEuNzQxLTMuMDI0IDMuMDI0TDEuMSA0NC40NDVBOC4zIDguMyAwIDAgMCAwIDQ4LjU2OGgyNS4yeiIvPjxwYXRoIGZpbGw9IiNlYTQzMzUiIGQ9Ik02Ny40IDcwLjM3OGMxLjIzNy0uNzMzIDIuMjkxLTEuNzQxIDMuMDI0LTMuMDI0bDEuNDY2LTIuNTIgNy4wMS0xMi4xNDJhOC4zIDguMyAwIDAgMCAxLjEtNC4xMjRINTQuNzk4bDUuMzYzIDEwLjUzOHoiLz48cGF0aCBmaWxsPSIjMDA4MzJkIiBkPSJNNDAgMjIuOTEgNTIuNiAxLjFDNTEuMzYzLjM2NyA0OS45NDMgMCA0OC40NzcgMEgzMS41MjRjLTEuNDY2IDAtMi44ODcuNDEyLTQuMTI0IDEuMXoiLz48cGF0aCBmaWxsPSIjMjY4NGZjIiBkPSJNNTQuNzk5IDQ4LjU2OEgyNS4ybC0xMi42IDIxLjgxYzEuMjM3LjczMyAyLjY1NyAxLjEgNC4xMjQgMS4xaDQ2LjU1MmMxLjQ2NiAwIDIuODg3LS40MTIgNC4xMjQtMS4xeiIvPjxwYXRoIGZpbGw9IiNmZmJhMDAiIGQ9Ik02Ny4yNjIgMjQuMjg0IDU1LjYyNCA0LjEyNEM1NC44OTEgMi44NDEgNTMuODM3IDEuODMzIDUyLjYgMS4xTDQwIDIyLjkxbDE0LjggMjUuNjU5aDI1LjE1NWE4LjMgOC4zIDAgMCAwLTEuMS00LjEyNHoiLz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Google Drive","typeVersion":3,"nodeCategories":[{"id":3,"name":"Data & Storage"}]},{"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":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":1262,"icon":"file:google.svg","name":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgooglegemini/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"Google Gemini Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNDggNDgiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNDQuNSAyMEgyNHY4LjVoMTEuOEMzNC43IDMzLjkgMzAuMSAzNyAyNCAzN2MtNy4yIDAtMTMtNS44LTEzLTEzczUuOC0xMyAxMy0xM2MzLjEgMCA1LjkgMS4xIDguMSAyLjlsNi40LTYuNEMzNC42IDQuMSAyOS42IDIgMjQgMiAxMS44IDIgMiAxMS44IDIgMjRzOS44IDIyIDIyIDIyYzExIDAgMjEtOCAyMS0yMiAwLTEuMy0uMi0yLjctLjUtNCIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBmaWxsPSIjRkJCQzA1IiBkPSJNMCAzN1YxMWwxNyAxM3oiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im0wIDExIDE3IDEzIDctNi4xTDQ4IDE0VjBIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Im0wIDM3IDMwLTIzIDcuOSAxTDQ4IDB2NDhIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik00OCA0OCAxNyAyNGwtNC0zIDM1LTEweiIgY2xpcC1wYXRoPSJ1cmwoI2IpIi8+PC9zdmc+"},"displayName":"Google Gemini Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":35,"name":"Document Extraction"},{"id":49,"name":"AI Summarization"}],"image":[]}}