{
  "workflow": {
    "id": 7274,
    "name": "Simplify medical lab reports with Ollama AI and email delivery system",
    "views": 355,
    "recentViews": 0,
    "totalViews": 355,
    "createdAt": "2025-08-12T08:13:40.914Z",
    "description": "This automated n8n workflow streamlines the process of receiving, processing, and delivering patient-friendly lab reports with precautionary advice.\n\n## 🏆 **Minimal But Complete Design:**\n\n### **Node Flow:**\n1. **📧 Email Trigger** → Monitors inbox for lab reports\n2. **📄 PDF Extract** → Processes attachments & extracts content \n3. **🤖 AI Simplify** → Converts medical jargon to simple language\n4. **✨ Format Response** → Creates beautiful patient-friendly layout\n5. **📤 Send Report** → Delivers simplified report via email\n\n## 🚀 **Key Features:**\n\n### **✅ Automatic Processing:**\n- Monitors email for lab report PDFs\n- Extracts content from attachments\n- No manual intervention needed\n\n### **✅ AI-Powered Simplification:**\n- Converts complex medical terms to plain English\n- Explains what each test result means\n- Adds ✅/⚠️ indicators for normal/abnormal results\n\n### **✅ Patient-Friendly Output:**\n- Professional HTML email formatting\n- Clear sections: Summary, Results, Precautions\n- Includes next steps and follow-up advice\n\n### **✅ Built-in Safety:**\n- Always includes medical disclaimers\n- Encourages consulting healthcare providers\n- Handles edge cases with fallbacks\n\n## 🛠️ **Setup Requirements:**\n\n### **APIs Needed:**\n- **IMAP Email** (Gmail, Outlook, etc.)\n- **Ollama AI Model** (Local medical AI)\n- **SMTP Email** (Sending service)\n\n### **Quick Configuration:**\n1. Import the JSON into n8n\n2. Set up email credentials (IMAP + SMTP)\n3. Configure Ollama medical model\n4. Test with a sample lab report\n\n## 📋 **Sample Output:**\n```\n🩺 Your Lab Report - Simplified\n\n✅ CHOLESTEROL: 180 mg/dL - Normal! \n   Good job maintaining healthy levels.\n\n⚠️ BLOOD SUGAR: 126 mg/dL - Slightly high\n   Normal is under 100. Consider reducing sugar intake.\n\n🔬 VITAMIN D: 25 ng/mL - Low\n   You may need supplements. Ask your doctor.\n\n📋 PRECAUTIONS:\n• Eat more fruits and vegetables\n• Exercise 30 minutes daily  \n• Schedule follow-up in 3 months\n• Watch for: excessive thirst, fatigue\n",
    "workflow": {
      "id": "1PvO16aHWZcyFf6B",
      "meta": {
        "instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
        "templateCredsSetupCompleted": true
      },
      "name": "AI-Powered Lab Report Simplifier with Precautions",
      "tags": [],
      "nodes": [
        {
          "id": "b8e80d8b-5f75-48a6-adda-3dc1a39e8f3f",
          "name": "Lab Report Email Trigger",
          "type": "n8n-nodes-base.emailReadImap",
          "position": [
            -600,
            360
          ],
          "parameters": {
            "options": {}
          },
          "credentials": {
            "imap": {
              "id": "credential-id",
              "name": "imap Credential"
            }
          },
          "typeVersion": 2
        },
        {
          "id": "09a54768-7021-4d1e-abe8-2d4dd57920f5",
          "name": "Medical AI Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatOllama",
          "position": [
            -72,
            580
          ],
          "parameters": {
            "model": "llama3.2-16000:latest",
            "options": {}
          },
          "credentials": {
            "ollamaApi": {
              "id": "credential-id",
              "name": "ollamaApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "3745178a-53d2-4b9d-a871-e4a78ce5a495",
          "name": "Extract PDF Content",
          "type": "n8n-nodes-base.code",
          "position": [
            -380,
            360
          ],
          "parameters": {
            "jsCode": "// Extract PDF content and prepare for AI analysis\nconst emailData = items[0].json;\nlet pdfContent = '';\n\n// Check for attachments\nif (emailData.attachments && emailData.attachments.length > 0) {\n  const pdfAttachment = emailData.attachments.find(att => \n    att.contentType === 'application/pdf' || \n    att.filename?.toLowerCase().includes('.pdf')\n  );\n  \n  if (pdfAttachment) {\n    // In a real scenario, you'd use a PDF parser here\n    // For now, we'll use the email text content as a fallback\n    pdfContent = emailData.textPlain || emailData.html || 'PDF content extraction needed';\n  }\n} else {\n  pdfContent = emailData.textPlain || emailData.html || '';\n}\n\n// Extract patient email from sender\nconst patientEmail = emailData.from?.value?.[0]?.address || emailData.from;\n\nreturn [{\n  json: {\n    patient_email: patientEmail,\n    report_content: pdfContent,\n    subject: emailData.subject,\n    received_date: new Date().toISOString()\n  }\n}];"
          },
          "typeVersion": 2
        },
        {
          "id": "2012adee-2fef-4b29-adf3-d8e34db7ccfa",
          "name": "AI Report Simplifier",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -160,
            360
          ],
          "parameters": {
            "text": "={{ $json.report_content }}",
            "options": {
              "systemMessage": "You are a medical AI that simplifies lab reports for patients. Convert complex medical terminology into easy-to-understand language.\n\nAnalyze the lab report and provide:\n\n1. **SIMPLE SUMMARY**: Explain what tests were done in plain English\n2. **RESULTS EXPLANATION**: \n   - Normal results: \"✅ Normal - This is good!\"\n   - Abnormal results: \"⚠️ Outside normal range - Here's what it means...\"\n3. **KEY FINDINGS**: Highlight the most important results\n4. **PRECAUTIONS & ADVICE**:\n   - Dietary recommendations\n   - Lifestyle changes\n   - When to follow up with doctor\n   - Warning signs to watch for\n\nUse simple words, avoid medical jargon, and be reassuring but honest.\n\nLab Report Content:\n{{ $json.report_content }}\n\nIMPORTANT: Always end with: \"⚠️ This is a simplified explanation. Always discuss your results with your healthcare provider for proper medical advice.\""
            },
            "promptType": "define"
          },
          "typeVersion": 2
        },
        {
          "id": "fad3a39a-9138-403b-9a4f-e7702e4029f6",
          "name": "Format Report Response",
          "type": "n8n-nodes-base.code",
          "position": [
            216,
            360
          ],
          "parameters": {
            "jsCode": "// Format the simplified report with proper styling\nconst originalData = $node[\"Extract PDF Content\"].json;\nconst simplifiedReport = items[0].json.output;\n\n// Create formatted email content\nconst emailContent = `\n<div style=\"font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; padding: 20px; background-color: #f9f9f9;\">\n  <div style=\"background-color: white; padding: 30px; border-radius: 10px; box-shadow: 0 2px 10px rgba(0,0,0,0.1);\">\n    \n    <h2 style=\"color: #2c5aa0; text-align: center; margin-bottom: 30px;\">\n      🩺 Your Lab Report - Simplified\n    </h2>\n    \n    <div style=\"background-color: #e3f2fd; padding: 15px; border-radius: 5px; margin-bottom: 20px;\">\n      <p style=\"margin: 0; font-size: 14px; color: #1565c0;\">\n        <strong>Report Date:</strong> ${new Date().toLocaleDateString()}<br>\n        <strong>Original Subject:</strong> ${originalData.subject}\n      </p>\n    </div>\n    \n    <div style=\"line-height: 1.6; color: #333;\">\n      ${simplifiedReport.replace(/\\n/g, '<br>').replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>')}\n    </div>\n    \n    <div style=\"background-color: #fff3e0; padding: 15px; border-radius: 5px; margin-top: 20px; border-left: 4px solid #ff9800;\">\n      <h4 style=\"color: #e65100; margin-top: 0;\">📋 Next Steps:</h4>\n      <ul style=\"margin-bottom: 0;\">\n        <li>Save this report for your records</li>\n        <li>Schedule a follow-up with your doctor if recommended</li>\n        <li>Ask questions during your next appointment</li>\n        <li>Share any concerns with your healthcare provider</li>\n      </ul>\n    </div>\n    \n    <div style=\"text-align: center; margin-top: 30px; padding-top: 20px; border-top: 1px solid #ddd;\">\n      <p style=\"font-size: 12px; color: #666; margin: 0;\">\n        This simplified report was generated by AI for educational purposes only.<br>\n        Always consult your healthcare provider for medical advice.\n      </p>\n    </div>\n    \n  </div>\n</div>\n`;\n\n// Create WhatsApp-friendly plain text version\nconst whatsappMessage = `🩺 *Your Lab Report - Simplified*\\n\\n` +\n  `📅 *Report Date:* ${new Date().toLocaleDateString()}\\n` +\n  `📋 *Subject:* ${originalData.subject}\\n\\n` +\n  `${simplifiedReport.replace(/\\*\\*/g, '*')}\\n\\n` +\n  `📱 *Tip:* Check your email for the full formatted report with more details.`;\n\nreturn [{\n  json: {\n    patient_email: originalData.patient_email,\n    html_content: emailContent,\n    plain_content: simplifiedReport,\n    whatsapp_message: whatsappMessage,\n    subject: `Your Simplified Lab Report - ${originalData.subject}`,\n    original_subject: originalData.subject\n  }\n}];"
          },
          "typeVersion": 2
        },
        {
          "id": "effef8f1-d484-48cc-afdd-0b9938aeecc0",
          "name": "Send Simplified Report",
          "type": "n8n-nodes-base.emailSend",
          "position": [
            436,
            360
          ],
          "parameters": {
            "html": "={{ $json.html_content }}",
            "text": "={{ $json.plain_content }}",
            "options": {},
            "subject": "={{ $json.subject }}",
            "toEmail": "={{ $json.patient_email }}",
            "fromEmail": "user@example.com"
          },
          "credentials": {
            "smtp": {
              "id": "credential-id",
              "name": "smtp Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "32e59442-4970-44b4-bbd4-bd611b1cef0b",
          "name": "Workflow Overview",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -700,
            -300
          ],
          "parameters": {
            "color": 5,
            "width": 500,
            "height": 340,
            "content": "## 🩺 AI Lab Report Simplifier\n\n**Streamlined 6-Node Workflow:**\n\n📧 **Email Trigger** → Monitors for lab reports\n📄 **PDF Extract** → Processes attachments  \n🤖 **AI Simplify** → Converts medical terms\n✨ **Format Response** → Creates patient-friendly layout\n📤 **Send Report** → Delivers via email\n\n✅ Automatic PDF processing\n✅ Medical term simplification  \n✅ Precautionary advice included\n✅ Professional formatting\n✅ HIPAA-compliant handling"
          },
          "typeVersion": 1
        },
        {
          "id": "2bb12d8c-8719-4c2f-99b3-6341c0a44112",
          "name": "Setup Instructions",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -160,
            -300
          ],
          "parameters": {
            "color": 7,
            "width": 460,
            "height": 360,
            "content": "## ⚙️ Setup Guide:\n\n**Required:**\n1. **Email IMAP** - Monitor lab report emails\n2. **Ollama AI** - Medical text analysis\n3. **SMTP** - Send simplified reports\n\n**Configuration:**\n- Set email filters for lab reports\n- Configure AI model for medical context\n- Add PDF parsing library if needed\n- Test with sample lab reports\n\n**Input:** Lab report PDFs via email\n**Output:** Simplified, patient-friendly reports"
          },
          "typeVersion": 1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "7cb3f37a-003e-4cd0-8524-aba548330baa",
      "connections": {
        "Medical AI Model": {
          "ai_languageModel": [
            [
              {
                "node": "AI Report Simplifier",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Extract PDF Content": {
          "main": [
            [
              {
                "node": "AI Report Simplifier",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Report Simplifier": {
          "main": [
            [
              {
                "node": "Format Report Response",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Format Report Response": {
          "main": [
            [
              {
                "node": "Send Simplified Report",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Lab Report Email Trigger": {
          "main": [
            [
              {
                "node": "Extract PDF Content",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 8,
      "nodeTypes": {
        "n8n-nodes-base.code": {
          "count": 2
        },
        "n8n-nodes-base.emailSend": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 2
        },
        "n8n-nodes-base.emailReadImap": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.lmChatOllama": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Oneclick AI Squad",
      "username": "oneclick-ai",
      "bio": "The AI Squad Initiative is a pioneering effort to build, automate and scale AI-powered workflows using n8n.io. Our mission is to help individuals and businesses integrate AI agents seamlessly into their daily operations  from automating tasks and enhancing productivity to creating innovative, intelligent solutions. We design modular, reusable AI workflow templates that empower creators, developers and teams to supercharge their automation with minimal effort and maximum impact.",
      "verified": true,
      "links": [
        "https://www.oneclickitsolution.com/"
      ],
      "avatar": "https://gravatar.com/avatar/848fca91367142f65f9e5c55d64e5c9952b160d7b060d103b52aa343c6bc7b3d?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 10,
        "icon": "fa:inbox",
        "name": "n8n-nodes-base.emailReadImap",
        "codex": {
          "data": {
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.emailimap/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/imap/"
                }
              ]
            },
            "categories": [
              "Communication",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Other Trigger Nodes"
              ]
            }
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Email Trigger (IMAP)",
          "color": "#44AA22"
        },
        "iconData": {
          "icon": "inbox",
          "type": "icon"
        },
        "displayName": "Email Trigger (IMAP)",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 11,
        "icon": "fa:envelope",
        "name": "n8n-nodes-base.emailSend",
        "codex": {
          "data": {
            "alias": [
              "SMTP",
              "email",
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.sendemail/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/sendemail/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Send Email",
          "color": "#00bb88"
        },
        "iconData": {
          "icon": "envelope",
          "type": "icon"
        },
        "displayName": "Send Email",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 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": 1151,
        "icon": "file:ollama.svg",
        "name": "@n8n/n8n-nodes-langchain.lmChatOllama",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatollama/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Language Models",
                "Root Nodes"
              ],
              "Language Models": [
                "Chat Models (Recommended)"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Ollama Chat Model"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNDEuMzMzIiBoZWlnaHQ9IjM0MS4zMzMiIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDE4MSAyNTYiPjxnIGZpbGw9IiM3RDdEODciPjxwYXRoIGQ9Ik0zNy43IDE5LjVjLTUuMiAxLjgtOC4zIDQuOS0xMS43IDExLjYtNC41IDguOS02LjIgMTkuMi01LjggMzUuNWwuMyAxNC4yLTUuOCA2LjFjLTE0LjggMTUuNS0xOC41IDM4LjctOS4yIDU3LjRsMy40IDYuOS0yIDQuNGMtMy40IDguMi01IDE2LjQtNSAyNi4zIDAgMTAuOCAxLjggMTkgNS44IDI2LjJsMi42IDQuOC0yLjEgNC45Yy0xLjIgMi43LTIuNiA3LjEtMy4yIDkuOC0xLjQgNi4yLTEuNSAyMi4xLS4xIDI1LjcgMSAyLjYgMS40IDIuNyA3LjYgMi43IDcuMyAwIDcgLjQgNS4zLTguNi0xLjUtOC4yLjItMTguOCA0LjItMjYuNiAzLjctNyAzLjgtMTAuNC41LTE0LjgtNC43LTYuNC02LjgtMTMuNi02LjktMjQtLjEtMTAuMyAxLjQtMTYgNi42LTI2LjEgMy4xLTYuMSAyLjktOC43LTEtMTIuMi0xLjEtMS0zLjEtNC4yLTQuMy03LTEuOS00LjItMi40LTYuOS0yLjMtMTQuMiAwLTExLjQgMi41LTE4LjMgOS41LTI2IDctNy42IDE0LjItMTEgMjMuOS0xMS4yIDQuMSAwIDcuOC0uMiA4LjItLjIuNC0uMSAxLjctMi4yIDIuOS00LjcgMy01LjkgOS42LTExLjkgMTYuNy0xNS4yIDQuOS0yLjMgNy0yLjcgMTQuNy0yLjcgNy45IDAgOS43LjQgMTQuOSAyLjkgNi44IDMuMyAxMy4zIDkuNCAxNS45IDE0LjggMSAyIDIuMyA0LjEgMyA0LjUuNi40IDQuNi44IDguNy44IDYuNy4xIDguMy41IDE0IDMuNiAxMi4zIDYuOCAxOS4zIDE4LjcgMTkuMyAzMy40LjEgNi43LS40IDktMi43IDE0LjItMS42IDMuNS0zLjUgNi44LTQuMyA3LjUtMy40IDIuOC0zLjUgNS44LS41IDExLjcgNS4yIDEwLjEgNi43IDE1LjggNi42IDI2LjEtLjEgMTAuNC0yLjIgMTcuNi02LjkgMjQtMy4zIDQuNC0zLjIgNy44LjUgMTQuOCA0IDcuOCA1LjcgMTguNCA0LjIgMjYuNi0xLjcgOS0yIDguNiA1LjMgOC42IDYuMiAwIDYuNi0uMSA3LjYtMi43IDEuNC0zLjYgMS4zLTE5LjUtLjEtMjUuNy0uNi0yLjctMi03LjEtMy4yLTkuOGwtMi4xLTQuOSAyLjYtNC44YzcuNi0xMy45IDcuOS0zNS45LjYtNTIuOGwtMi00LjcgMi41LTQuNmM5LjktMTguMyA2LjQtNDMuOS04LjEtNTkuMWwtNS44LTYuMS4zLTE0LjJjLjQtMTYuNC0xLjMtMjYuNi01LjgtMzUuNy02LjQtMTIuNi0xNy4yLTE1LjktMjYuMy03LjktNS40IDQuNy05LjIgMTMuOC0xMi4zIDI5LjgtLjMgMS40LTEgMi4yLTEuNyAxLjgtMTguMi04LTI5LjctOC41LTQ0LjMtMi4xTDY1IDU0LjlsLS40LTIuMkM2MSAzNC4yIDU2LjEgMjQuMiA0OSAyMC41Yy00LjMtMi4xLTcuNC0yLjQtMTEuMy0xbTcuNyAxNi44YzQuMiA3LjEgOC4xIDMwLjEgNS43IDMzLjYtLjUuOC0zLjEgMS42LTUuOCAxLjgtMi42LjItNi4yLjgtOCAxLjNsLTMuMS44LS43LTQuOWMtLjgtNS45LjItMTcuMiAyLjItMjQuOEMzNy4xIDM4LjQgNDAuNSAzMiA0MiAzMmMuNSAwIDIgMS45IDMuNCA0LjNtOTYuNS0xYzQgNi41IDYuOSAyMy45IDUuNiAzMy42bC0uNyA0LjktMy4xLS44Yy0xLjgtLjUtNS40LTEuMS04LTEuMy0yLjctLjItNS4zLTEtNS44LTEuOC0xLjItMS43LS4zLTE0LjEgMS43LTIyLjkgMS41LTYuNCA1LjctMTUgNy40LTE1IC40IDAgMS44IDEuNSAyLjkgMy4zIi8+PHBhdGggZD0iTTc3LjggMTE5LjljLTcuMyAyLjQtMTEuNiA1LjEtMTYuNSAxMC40LTUuNSA2LTcuNiAxMi03LjEgMjAuMS41IDcuNiAzLjUgMTIuOSAxMC42IDE4LjMgNi4yIDQuNyAxMi43IDYuMyAyNS43IDYuMyAxNy4yIDAgMjUuOC0zLjYgMzIuOS0xMy44IDQuMi01LjkgNC44LTE1LjUgMS42LTIzLTIuOS02LjgtMTEuMS0xNC4zLTE4LjgtMTcuMy04LTMuMS0yMC43LTMuNi0yOC40LTFtMjUuNyAxMGMxNi4xIDcuMSAxOS40IDIzLjIgNi42IDMxLjgtNC45IDMuMy05LjQgNC4zLTE5LjYgNC4zcy0xNC43LTEtMTkuNi00LjNjLTE3LjgtMTItMy4yLTM1LjYgMjEuMS0zNC4zIDMuOS4yIDguNiAxLjIgMTEuNSAyLjUiLz48cGF0aCBkPSJNODMuOCAxNDAuMWMtMi41IDEuNC0yLjIgNC40LjcgNi43IDIgMS42IDIuNCAyLjYgMS45IDQuOS0uNyAzLjYgMS41IDUuOCA1LjEgNC45IDIuMS0uNSAyLjUtMS4yIDIuNS00LjYgMC0yLjkuNS00LjIgMi01IDIuNy0xLjUgMi43LTYuNiAwLTcuNS0xLS4zLTIuOC0uMS00IC41LTEuNC43LTIuNi44LTMuOSAwLTIuMy0xLjItMi4yLTEuMi00LjMuMW0tNDQuMS0xOC45Yy0uOS43LTIuMyAzLTMuMiA1LTIuMSA1LjMtLjEgMTAuMyA0LjcgMTEuNiA0LjMgMS4xIDYgLjYgOS4yLTIuNyA0LTQuMSA0LjMtOC4xIDEuMS0xMS45LTIuMS0yLjUtMy40LTMuMi02LjQtMy4yLTIgMC00LjUuNi01LjQgMS4ybTg5LjggMmMtMy4yIDMuOC0yLjkgNy44IDEuMSAxMS45IDMuMiAzLjMgNC45IDMuOCA5LjIgMi43IDQuOS0xLjMgNi44LTYuMiA0LjYtMTEuOC0xLjktNC43LTMuOC02LTguNy02LTIuNyAwLTQuMS43LTYuMiAzLjIiLz48L2c+PC9zdmc+"
        },
        "displayName": "Ollama Chat Model",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 35,
        "name": "Document Extraction"
      },
      {
        "id": 51,
        "name": "Multimodal AI"
      }
    ],
    "image": []
  }
}