{ "meta": { "instanceId": "67d4d33d8b0ad4e5e12f051d8ad92fc35893d7f48d7f801bc6da4f39967b3592" }, "nodes": [ { "id": "30f5203b-469d-4f0c-8493-e8f08e14e4fe", "name": "When clicking ‘Test workflow’", "type": "n8n-nodes-base.manualTrigger", "position": [ -560, 440 ], "parameters": {}, "typeVersion": 1 }, { "id": "d16f59dd-f54e-487b-9aac-67f109ba9869", "name": "Sticky Note8", "type": "n8n-nodes-base.stickyNote", "position": [ 1000, -280 ], "parameters": { "color": 7, "width": 727.9032097745135, "height": 110.58643966444157, "content": "# Auto Categorise Outlook Emails with AI\nBuilt by [Wayne Simpson](https://www.linkedin.com/in/simpsonwayne/) at [nocodecreative.io](https://nocodecreative.io)" }, "typeVersion": 1 }, { "id": "4e110412-8530-4322-bc5c-7f9df2b63bcb", "name": "Sticky Note9", "type": "n8n-nodes-base.stickyNote", "position": [ 1100, -120 ], "parameters": { "color": 7, "width": 506.8102696237577, "height": 337.24177957113216, "content": "### Watch Set Up Video 👇\n[![Auto Categorise Outlook Emails with AI](https://vdyfnvnstovfxpabhdjc.supabase.co/storage/v1/object/public/images/Thumbnails/auto-categories-emails.png?t=2024-10-11T09%3A56%3A37.961Z#full-width)](https://www.youtube.com/watch?v=EhRBkkjv_3c)\n\n" }, "typeVersion": 1 }, { "id": "9d79875f-148e-46ef-967a-95c07298456d", "name": "Ollama Chat Model1", "type": "@n8n/n8n-nodes-langchain.lmChatOllama", "position": [ 1129, 684 ], "parameters": { "model": "qwen2.5:14b", "options": { "temperature": 0.2 } }, "typeVersion": 1 }, { "id": "bcf92a71-ff5f-46a7-bec3-cedb5be2bf98", "name": "Microsoft Outlook10", "type": "n8n-nodes-base.microsoftOutlook", "position": [ 3020, 8 ], "parameters": { "folderId": { "__rl": true, "mode": "list", "value": "AQMkAGE3ZTU5MGMzLTFkNGItNGQ5Zi04MDQ1LThmNGFlMTVhYjMwYgAuAAAD8UhruVwm402lgPBG2Tj-aQEAnz-IOcWBGE2lrVuQgAF6zAAAAgFJAAAA", "cachedResultUrl": "https://outlook.office365.com/mail/AQMkAGE3ZTU5MGMzLTFkNGItNGQ5Zi04MDQ1LThmNGFlMTVhYjMwYgAuAAAD8UhruVwm402lgPBG2Tj%2FaQEAnz%2FIOcWBGE2lrVuQgAF6zAAAAgFJAAAA", "cachedResultName": "Junk Email" }, "messageId": { "__rl": true, "mode": "id", "value": "={{ $('varID & Category1').item.json.id }}" }, "operation": "move" }, "typeVersion": 2 }, { "id": "100db1cb-3819-43c7-a74b-5c087ad4f2da", "name": "Microsoft Outlook12", "type": "n8n-nodes-base.microsoftOutlook", "position": [ 2700, 8 ], "parameters": { "messageId": { "__rl": true, "mode": "id", "value": "={{ $('varID & Category1').item.json.id }}" }, "operation": "update", "updateFields": { "categories": "={{ \n [$('varJSON1').first().json.output.category, $('varJSON1').first().json.output.subCategory]\n .filter(item => item && item.trim() !== \"\")\n .map(item => item.charAt(0).toUpperCase() + item.slice(1))\n}}" } }, "typeVersion": 2 }, { "id": "d4969259-a3ae-473d-82ef-0c9f7933c899", "name": "Loop Over Items1", "type": "n8n-nodes-base.splitInBatches", "position": [ 160, 448 ], "parameters": { "options": {} }, "typeVersion": 3 }, { "id": "524f6be3-7708-4aae-b9ab-e0ef8180a627", "name": "Microsoft Outlook13", "type": "n8n-nodes-base.microsoftOutlook", "position": [ 2700, 188 ], "parameters": { "messageId": { "__rl": true, "mode": "id", "value": "={{ $('varID & Category1').item.json.id }}" }, "operation": "update", "updateFields": { "categories": "={{ \n [$('varJSON1').first().json.output.category, $('varJSON1').first().json.output.subCategory]\n .filter(item => item && item.trim() !== \"\")\n .map(item => item.charAt(0).toUpperCase() + item.slice(1))\n}}" } }, "typeVersion": 2 }, { "id": "72cb54f3-4e4e-4ad2-8845-11a38fc29f1a", "name": "Microsoft Outlook15", "type": "n8n-nodes-base.microsoftOutlook", "position": [ 3020, 188 ], "parameters": { "folderId": { "__rl": true, "mode": "list", "value": "AQMkAGE3ZTU5MGMzLTFkNGItNGQ5Zi04MDQ1LThmNGFlMTVhYjMwYgAuAAAD8UhruVwm402lgPBG2Tj-aQEAnz-IOcWBGE2lrVuQgAF6zAADLJmrBwAAAA==", "cachedResultUrl": "https://outlook.office365.com/mail/AQMkAGE3ZTU5MGMzLTFkNGItNGQ5Zi04MDQ1LThmNGFlMTVhYjMwYgAuAAAD8UhruVwm402lgPBG2Tj%2FaQEAnz%2FIOcWBGE2lrVuQgAF6zAADLJmrBwAAAA%3D%3D", "cachedResultName": "Receipt" }, "messageId": { "__rl": true, "mode": "id", "value": "={{ $('varID & Category1').item.json.id }}" }, "operation": "move" }, "typeVersion": 2 }, { "id": "e4446e84-c05e-4d04-b415-7608e39024ee", "name": "Microsoft Outlook16", "type": "n8n-nodes-base.microsoftOutlook", "position": [ 2709, 504 ], "parameters": { "messageId": { "__rl": true, "mode": "id", "value": "={{ $('varID & Category1').item.json.id }}" }, "operation": "update", "updateFields": { "categories": "={{ \n [$('varJSON1').first().json.output.category, $('varJSON1').first().json.output.subCategory]\n .filter(item => item && item.trim() !== \"\")\n .map(item => item.charAt(0).toUpperCase() + item.slice(1))\n}}" } }, "typeVersion": 2 }, { "id": "3ee05cfe-a528-472e-aa3d-c890fd88b6c4", "name": "Microsoft Outlook17", "type": "n8n-nodes-base.microsoftOutlook", "position": [ 3020, 508 ], "parameters": { "folderId": { "__rl": true, "mode": "list", "value": "AQMkAGE3ZTU5MGMzLTFkNGItNGQ5Zi04MDQ1LThmNGFlMTVhYjMwYgAuAAAD8UhruVwm402lgPBG2Tj-aQEAnz-IOcWBGE2lrVuQgAF6zAADLJmrCAAAAA==", "cachedResultUrl": "https://outlook.office365.com/mail/AQMkAGE3ZTU5MGMzLTFkNGItNGQ5Zi04MDQ1LThmNGFlMTVhYjMwYgAuAAAD8UhruVwm402lgPBG2Tj%2FaQEAnz%2FIOcWBGE2lrVuQgAF6zAADLJmrCAAAAA%3D%3D", "cachedResultName": "Community" }, "messageId": { "__rl": true, "mode": "id", "value": "={{ $('varID & Category1').item.json.id }}" }, "operation": "move" }, "typeVersion": 2 }, { "id": "2fcecd9e-95cc-489a-b874-699c54518e44", "name": "Microsoft Outlook18", "type": "n8n-nodes-base.microsoftOutlook", "position": [ 2709, 344 ], "parameters": { "messageId": { "__rl": true, "mode": "id", "value": "={{ $('varID & Category1').item.json.id }}" }, "operation": "update", "updateFields": { "categories": "={{ \n [$('varJSON1').first().json.output.category, $('varJSON1').first().json.output.subCategory]\n .filter(item => item && item.trim() !== \"\")\n .map(item => item.charAt(0).toUpperCase() + item.slice(1))\n}}" } }, "typeVersion": 2 }, { "id": "41a39309-1a94-461f-9308-63dd5b9a94a7", "name": "Microsoft Outlook19", "type": "n8n-nodes-base.microsoftOutlook", "position": [ 3020, 348 ], "parameters": { "folderId": { "__rl": true, "mode": "list", "value": "AQMkAGE3ZTU5MGMzLTFkNGItNGQ5Zi04MDQ1LThmNGFlMTVhYjMwYgAuAAAD8UhruVwm402lgPBG2Tj-aQEAnz-IOcWBGE2lrVuQgAF6zAADLJmrCQAAAA==", "cachedResultUrl": "https://outlook.office365.com/mail/AQMkAGE3ZTU5MGMzLTFkNGItNGQ5Zi04MDQ1LThmNGFlMTVhYjMwYgAuAAAD8UhruVwm402lgPBG2Tj%2FaQEAnz%2FIOcWBGE2lrVuQgAF6zAADLJmrCQAAAA%3D%3D", "cachedResultName": "SaaS" }, "messageId": { "__rl": true, "mode": "id", "value": "={{ $('varID & Category1').item.json.id }}" }, "operation": "move" }, "typeVersion": 2 }, { "id": "ebf606f9-099c-4218-b23b-66e2487262d0", "name": "Markdown1", "type": "n8n-nodes-base.markdown", "notes": "Converts the body of the email to markdown", "position": [ 420, 468 ], "parameters": { "html": "={{ $('Loop Over Items1').item.json.body.content }}", "options": {} }, "notesInFlow": true, "typeVersion": 1 }, { "id": "ff447dd5-3ef6-4a02-8453-3489af8bf6b5", "name": "varEmal1", "type": "n8n-nodes-base.set", "notes": "Set email fields", "position": [ 620, 468 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "edb304e1-3e9f-4a77-918c-25646addbc53", "name": "subject", "type": "string", "value": "={{ $json.subject }}" }, { "id": "57a3ef3a-2701-40d9-882f-f43a7219f148", "name": "importance", "type": "string", "value": "={{ $json.importance }}" }, { "id": "d8317f4f-aa0e-4196-89af-cb016765490a", "name": "sender", "type": "object", "value": "={{ $json.sender.emailAddress }}" }, { "id": "908716c8-9ff7-4bdc-a1a3-64227559635e", "name": "from", "type": "object", "value": "={{ $json.from.emailAddress }}" }, { "id": "ce007329-e221-4c5a-8130-2f8e9130160f", "name": "body", "type": "string", "value": "={{ $json.data\n .replace(/<[^>]*>/g, '') // Remove HTML tags\n .replace(/\\[(.*?)\\]\\((.*?)\\)/g, '') // Remove Markdown links like [text](link)\n .replace(/!\\[.*?\\]\\(.*?\\)/g, '') // Remove Markdown images like ![alt](image-link)\n .replace(/\\|/g, '') // Remove table separators \"|\"\n .replace(/-{3,}/g, '') // Remove horizontal rule \"---\"\n .replace(/\\n+/g, ' ') // Remove multiple newlines\n .replace(/([^\\w\\s.,!?@])/g, '') // Remove special characters except essential ones\n .replace(/\\s{2,}/g, ' ') // Replace multiple spaces with a single space\n .trim() // Trim leading/trailing whitespace\n}}\n" } ] } }, "typeVersion": 3.4 }, { "id": "198524cb-c9f0-4261-8c38-7c878efe7457", "name": "Microsoft Outlook20", "type": "n8n-nodes-base.microsoftOutlook", "position": [ 2700, 668 ], "parameters": { "messageId": { "__rl": true, "mode": "id", "value": "={{ $('varID & Category1').item.json.id }}" }, "operation": "update", "updateFields": { "categories": "={{ \n [$('varJSON1').first().json.output.category, $('varJSON1').first().json.output.subCategory]\n .filter(item => item && item.trim() !== \"\")\n .map(item => item.charAt(0).toUpperCase() + item.slice(1))\n}}" } }, "typeVersion": 2 }, { "id": "ec73629c-59ac-4f0e-a432-2c06934952ab", "name": "Microsoft Outlook21", "type": "n8n-nodes-base.microsoftOutlook", "position": [ 2709, 1044 ], "parameters": { "messageId": { "__rl": true, "mode": "id", "value": "={{ $('varID & Category1').item.json.id }}" }, "operation": "update", "updateFields": { "categories": "={{ \n [$('varJSON1').first().json.output.category, $('varJSON1').first().json.output.subCategory]\n .filter(item => item && item.trim() !== \"\")\n .map(item => item.charAt(0).toUpperCase() + item.slice(1))\n}}" } }, "typeVersion": 2 }, { "id": "0a19d15c-0cd3-4f26-9be2-4914522751fb", "name": "Filter1", "type": "n8n-nodes-base.filter", "position": [ -100, 448 ], "parameters": { "options": {}, "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "c8cd6917-f94e-4fb7-8601-b8ed8f1aa8bf", "operator": { "type": "array", "operation": "empty", "singleValue": true }, "leftValue": "={{ $json.categories }}", "rightValue": "" } ] } }, "typeVersion": 2.2 }, { "id": "96e6e31c-6306-44a8-a57a-2b5216636b00", "name": "If1", "type": "n8n-nodes-base.if", "notes": "Checks if the email has been read", "position": [ 3320, 668 ], "parameters": { "options": {}, "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "f8cf2a56-cea8-4150-b7a0-048dbda20f2f", "operator": { "type": "boolean", "operation": "true", "singleValue": true }, "leftValue": "={{ $json.isRead }}", "rightValue": "" } ] } }, "typeVersion": 2.2 }, { "id": "8a6e0118-abe3-45e2-aefc-94640348b2ec", "name": "Microsoft Outlook22", "type": "n8n-nodes-base.microsoftOutlook", "position": [ 2709, 864 ], "parameters": { "messageId": { "__rl": true, "mode": "id", "value": "={{ $('varID & Category1').item.json.id }}" }, "operation": "update", "updateFields": { "categories": "={{ \n [$('varJSON1').first().json.output.category, $('varJSON1').first().json.output.subCategory]\n .filter(item => item && item.trim() !== \"\")\n .map(item => item.charAt(0).toUpperCase() + item.slice(1))\n}}" } }, "typeVersion": 2 }, { "id": "e2d8e7b5-4447-4327-9f4e-b8d52765667e", "name": "Catch Errors1", "type": "n8n-nodes-base.set", "position": [ 1760, 608 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "0dc6d439-60fb-49f6-b4d5-f5cce6f030ad", "name": "error", "type": "string", "value": "={{ $json }}" } ] } }, "typeVersion": 3.4 }, { "id": "17f6ac43-51e4-4bee-b0d8-13deb3bf3cc9", "name": "varJSON1", "type": "n8n-nodes-base.set", "onError": "continueErrorOutput", "position": [ 1540, 468 ], "parameters": { "options": { "ignoreConversionErrors": true }, "assignments": { "assignments": [ { "id": "0c52f57f-74eb-4385-ac6b-f3e5f4f50e73", "name": "output", "type": "object", "value": "={{ $json.output.replace(/^.*?({.*}).*$/s, '$1') }}" } ] } }, "typeVersion": 3.4 }, { "id": "82dd9631-a34b-4d54-be28-6f8dcc3548f0", "name": "Sticky Note10", "type": "n8n-nodes-base.stickyNote", "position": [ -360, 220 ], "parameters": { "width": 411.91693012378937, "height": 401.49417117683515, "content": "## Outlook Business with filters\nFilters:\n```\nflag/flagStatus eq 'notFlagged' and not categories/any()\n```\n\nThese filters ensure we do not process flagged emails or email that already have a category set." }, "typeVersion": 1 }, { "id": "0583e196-37a5-43db-8c0a-aa624029c926", "name": "Microsoft Outlook23", "type": "n8n-nodes-base.microsoftOutlook", "position": [ -300, 448 ], "parameters": { "limit": 1, "fields": [ "flag", "from", "importance", "replyTo", "sender", "subject", "toRecipients", "body", "categories", "isRead" ], "output": "fields", "options": {}, "filtersUI": { "values": { "filters": { "custom": "flag/flagStatus eq 'notFlagged' and not categories/any()", "foldersToInclude": [ "AQMkAGE3ZTU5MGMzLTFkNGItNGQ5Zi04MDQ1LThmNGFlMTVhYjMwYgAuAAAD8UhruVwm402lgPBG2Tj-aQEAnz-IOcWBGE2lrVuQgAF6zAAAAgEMAAAA" ] } } }, "operation": "getAll" }, "typeVersion": 2 }, { "id": "a9540e6b-929b-4460-8972-93e4d19cd934", "name": "varID & Category1", "type": "n8n-nodes-base.set", "position": [ 900, 468 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "de2ad4f2-7381-4715-a3f4-59611e161b74", "name": "id", "type": "string", "value": "={{ $('Microsoft Outlook23').item.json.id }}" }, { "id": "458c7a89-e4a3-46d0-8b38-72d87748e306", "name": "category", "type": "string", "value": "\"action\", \"junk\", \"receipt\", \"SaaS\", \"community\", \"business\" or \"other\"" } ] } }, "typeVersion": 3.4 }, { "id": "e6b3b41e-d7d3-4c9b-8189-a005c748ff18", "name": "Sticky Note11", "type": "n8n-nodes-base.stickyNote", "position": [ 360, 348 ], "parameters": { "color": 6, "width": 418.7820408163265, "height": 301.40952380952365, "content": "## Sanitise Email \nRemoves HTML and useless information in preparation for the AI Agent" }, "typeVersion": 1 }, { "id": "f9787a75-526c-4ef1-b0a7-0db7d890ab3f", "name": "Sticky Note12", "type": "n8n-nodes-base.stickyNote", "position": [ 820, 348 ], "parameters": { "color": 6, "width": 256.16108843537415, "height": 298.37931972789124, "content": "## Modify Categories \nEdit this to customise category selection" }, "typeVersion": 1 }, { "id": "50223a01-34cf-4191-9dd7-3dac02a9e945", "name": "Sticky Note13", "type": "n8n-nodes-base.stickyNote", "position": [ 1480, 328 ], "parameters": { "color": 5, "width": 441.003537414966, "height": 463.0204081632651, "content": "## Convert to JSON\n* Ensures the Agent output to converted to JSON\n* Catches any errors and continues processing" }, "typeVersion": 1 }, { "id": "4580c532-96a6-46b4-8922-d79316d1cc01", "name": "Sticky Note14", "type": "n8n-nodes-base.stickyNote", "position": [ 2120, 328 ], "parameters": { "color": 5, "width": 311.71482993197264, "height": 454.93986394557805, "content": "## Switch Categories\nEnsure your categories match the **varID & Category** Edit Fields node" }, "typeVersion": 1 }, { "id": "b51a7c34-2a5e-4670-81a4-d1582711c69a", "name": "Sticky Note15", "type": "n8n-nodes-base.stickyNote", "position": [ 2629, -76 ], "parameters": { "color": 4, "width": 251.3480889735252, "height": 1289.0156245602684, "content": "## Set Categories\n" }, "typeVersion": 1 }, { "id": "3a7ede7b-539b-49d2-8803-153ca6c9eb69", "name": "Sticky Note16", "type": "n8n-nodes-base.stickyNote", "position": [ 2949, -76 ], "parameters": { "color": 4, "width": 251.3480889735252, "height": 770.995811762121, "content": "## Move to Folders\n" }, "typeVersion": 1 }, { "id": "ee9a9d78-8c07-470a-9d1b-ceddfc8875ca", "name": "Sticky Note17", "type": "n8n-nodes-base.stickyNote", "position": [ 3260, 553 ], "parameters": { "color": 4, "height": 293.65527013262994, "content": "## Check if email has been read\n\n" }, "typeVersion": 1 }, { "id": "c75b9d38-79a7-4be2-a90b-a99da1bbd745", "name": "Microsoft Outlook Move Message1", "type": "n8n-nodes-base.microsoftOutlook", "position": [ 3609, 604 ], "parameters": { "folderId": { "__rl": true, "mode": "list", "value": "AQMkAGE3ZTU5MGMzLTFkNGItNGQ5Zi04MDQ1LThmNGFlMTVhYjMwYgAuAAAD8UhruVwm402lgPBG2Tj-aQEAnz-IOcWBGE2lrVuQgAF6zAADLJmrCwAAAA==", "cachedResultUrl": "https://outlook.office365.com/mail/AQMkAGE3ZTU5MGMzLTFkNGItNGQ5Zi04MDQ1LThmNGFlMTVhYjMwYgAuAAAD8UhruVwm402lgPBG2Tj%2FaQEAnz%2FIOcWBGE2lrVuQgAF6zAADLJmrCwAAAA%3D%3D", "cachedResultName": "Actioned" }, "messageId": { "__rl": true, "mode": "id", "value": "={{ $('varID & Category1').item.json.id }}" }, "operation": "move" }, "typeVersion": 2 }, { "id": "85ff0348-16dc-46e6-bf70-48a10fe0ded8", "name": "AI Agent1", "type": "@n8n/n8n-nodes-langchain.agent", "position": [ 1160, 468 ], "parameters": { "text": "=Categorise the following email\n\n{{ $('varEmal1').first().json.toJsonString() }}\n\n\nEnsure your final output is valid JSON with no additional text or token in the following format:\n\n{\n \"subject\": \"SUBJECT_LINE\",1\n \"category\": \"CATEGORY\",\n \"subCategory\": \"SUBCATEGORY\", //use sparingly\n \"analysis\": \"ANALYSIS_REASONING\"\n}\n\nRemember you can only use ONE of the following categories {{ $json.category }}. No other categories can be used. Use the subcategory for additional context, for example, if a SaaS email requires action, or if a business email requires action. Do not create any additional subcategories, you can only use ONE of the following {{ $json.category }}.", "options": { "systemMessage": "=You're an AI assistant for a freelance developer, categorizing emails as {{ $json.category }}. Email info is in tags.\n\nCategorization priority:\n\nAction: Needs response or action (includes some SaaS emails), avoid sales email but include enquires.\nJunk: Ads, sales, newsletters, promotions, daily digests, (emojis often indicate junk), phishing, scams, discounts etc.\nReceipt: Any purchase confirmation.\nSaaS: Account/security updates, unless action required, generic SaaS information, usually from a non-personal email address.\nCommunity: Updates, events, forums, everything related to \"community\".\nBusiness: Any communication related to freelance work, usually from a humans email address\nOther: Doesn't fit into any other category.\n\nKey points:\n\nSaaS emails needing action are \"SaaS\" and subcategory \"action\".\nAnalyze the subject, body, email addresses and other data.\nLook for specific keywords and phrases for each category.\nEmail can have 2 categories, primary and sub, for example, \"action\" and \"SaaS\" or \"action\" and \"business\".\nEmails from business development executives are often junk.\n\n\nOutput in valid JSON format:\n{\n\"subject\": \"SUBJECT_LINE\",\n\"category\": \"PRIMARY CATEGORY\",\n\"subCategory\": \"SUBCATEGORY\", //use sparingly\n\"analysis\": \"Brief 1-2 sentence explanation of category choice\"\n}\nNo additional text or tokens outside the JSON.\n\nYou may only use the following categories and subcategories, do not create any more categories or subcategories: {{ $json.category }}" }, "promptType": "define", "hasOutputParser": true }, "typeVersion": 1.6 }, { "id": "93e7be79-9035-4b58-9a83-b9182a0515f8", "name": "Merge1", "type": "n8n-nodes-base.merge", "position": [ 3989, 564 ], "parameters": { "numberInputs": 7 }, "typeVersion": 3 }, { "id": "cbaeaed1-cb09-4614-93f1-3fe349cd0e4e", "name": "Switch1", "type": "n8n-nodes-base.switch", "position": [ 2220, 488 ], "parameters": { "rules": { "values": [ { "outputKey": "junk", "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": false, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "operator": { "type": "string", "operation": "equals" }, "leftValue": "={{ $json.output.category }}", "rightValue": "junk" } ] }, "renameOutput": true }, { "outputKey": "receipt", "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": false, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "0c61c7a8-e8b4-49c5-a96c-402d5eae7089", "operator": { "name": "filter.operator.equals", "type": "string", "operation": "equals" }, "leftValue": "={{ $json.output.category }}", "rightValue": "receipt" } ] }, "renameOutput": true }, { "outputKey": "SaaS", "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": false, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "703f65c8-cf4a-47fe-ad1a-a5f6e0412ae7", "operator": { "name": "filter.operator.equals", "type": "string", "operation": "equals" }, "leftValue": "={{ $json.output.category }}", "rightValue": "SaaS" } ] }, "renameOutput": true }, { "outputKey": "community", "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": false, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "b074d5cd-9215-40df-8877-5df904edc000", "operator": { "name": "filter.operator.equals", "type": "string", "operation": "equals" }, "leftValue": "={{ $json.output.category }}", "rightValue": "community" } ] }, "renameOutput": true }, { "outputKey": "action", "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": false, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "bece338a-e0c5-43b5-b8cc-41229a374213", "operator": { "name": "filter.operator.equals", "type": "string", "operation": "equals" }, "leftValue": "={{ $json.output.category }}", "rightValue": "action" } ] }, "renameOutput": true }, { "outputKey": "business", "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": false, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "d6c9751f-0ffa-4041-a579-6957bb9c9296", "operator": { "name": "filter.operator.equals", "type": "string", "operation": "equals" }, "leftValue": "={{ $json.output.category }}", "rightValue": "business" } ] }, "renameOutput": true } ] }, "options": { "ignoreCase": true, "fallbackOutput": "extra" } }, "typeVersion": 3.2 } ], "pinData": {}, "connections": { "If1": { "main": [ [ { "node": "Microsoft Outlook Move Message1", "type": "main", "index": 0 } ], [ { "node": "Merge1", "type": "main", "index": 5 } ] ] }, "Merge1": { "main": [ [ { "node": "Loop Over Items1", "type": "main", "index": 0 } ] ] }, "Filter1": { "main": [ [ { "node": "Loop Over Items1", "type": "main", "index": 0 } ] ] }, "Switch1": { "main": [ [ { "node": "Microsoft Outlook12", "type": "main", "index": 0 } ], [ { "node": "Microsoft Outlook13", "type": "main", "index": 0 } ], [ { "node": "Microsoft Outlook18", "type": "main", "index": 0 } ], [ { "node": "Microsoft Outlook16", "type": "main", "index": 0 } ], [ { "node": "Microsoft Outlook20", "type": "main", "index": 0 } ], [ { "node": "Microsoft Outlook22", "type": "main", "index": 0 } ], [ { "node": "Microsoft Outlook21", "type": "main", "index": 0 } ] ] }, "varEmal1": { "main": [ [ { "node": "varID & Category1", "type": "main", "index": 0 } ] ] }, "varJSON1": { "main": [ [ { "node": "Switch1", "type": "main", "index": 0 } ], [ { "node": "Catch Errors1", "type": "main", "index": 0 } ] ] }, "AI Agent1": { "main": [ [ { "node": "varJSON1", "type": "main", "index": 0 } ] ] }, "Markdown1": { "main": [ [ { "node": "varEmal1", "type": "main", "index": 0 } ] ] }, "Catch Errors1": { "main": [ [ { "node": "Loop Over Items1", "type": "main", "index": 0 } ] ] }, "Loop Over Items1": { "main": [ null, [ { "node": "Markdown1", "type": "main", "index": 0 } ] ] }, "varID & Category1": { "main": [ [ { "node": "AI Agent1", "type": "main", "index": 0 } ] ] }, "Ollama Chat Model1": { "ai_languageModel": [ [ { "node": "AI Agent1", "type": "ai_languageModel", "index": 0 } ] ] }, "Microsoft Outlook10": { "main": [ [ { "node": "Merge1", "type": "main", "index": 0 } ] ] }, "Microsoft Outlook12": { "main": [ [ { "node": "Microsoft Outlook10", "type": "main", "index": 0 } ] ] }, "Microsoft Outlook13": { "main": [ [ { "node": "Microsoft Outlook15", "type": "main", "index": 0 } ] ] }, "Microsoft Outlook15": { "main": [ [ { "node": "Merge1", "type": "main", "index": 1 } ] ] }, "Microsoft Outlook16": { "main": [ [ { "node": "Microsoft Outlook17", "type": "main", "index": 0 } ] ] }, "Microsoft Outlook17": { "main": [ [ { "node": "Merge1", "type": "main", "index": 3 } ] ] }, "Microsoft Outlook18": { "main": [ [ { "node": "Microsoft Outlook19", "type": "main", "index": 0 } ] ] }, "Microsoft Outlook19": { "main": [ [ { "node": "Merge1", "type": "main", "index": 2 } ] ] }, "Microsoft Outlook20": { "main": [ [ { "node": "If1", "type": "main", "index": 0 } ] ] }, "Microsoft Outlook21": { "main": [ [ { "node": "Merge1", "type": "main", "index": 6 } ] ] }, "Microsoft Outlook22": { "main": [ [ { "node": "If1", "type": "main", "index": 0 } ] ] }, "Microsoft Outlook23": { "main": [ [ { "node": "Filter1", "type": "main", "index": 0 } ] ] }, "Microsoft Outlook Move Message1": { "main": [ [ { "node": "Merge1", "type": "main", "index": 4 } ] ] }, "When clicking ‘Test workflow’": { "main": [ [ { "node": "Microsoft Outlook23", "type": "main", "index": 0 } ] ] } } }