1271 lines
36 KiB
JSON
1271 lines
36 KiB
JSON
{
|
|
"meta": {
|
|
"instanceId": "67d4d33d8b0ad4e5e12f051d8ad92fc35893d7f48d7f801bc6da4f39967b3592"
|
|
},
|
|
"nodes": [
|
|
{
|
|
"id": "30f5203b-469d-4f0c-8493-e8f08e14e4fe",
|
|
"name": "When clicking \u2018Test workflow\u2019",
|
|
"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 \ud83d\udc47\n[](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 \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<email>\n{{ $('varEmal1').first().json.toJsonString() }}\n</email>\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 <email> 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 \u2018Test workflow\u2019": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Microsoft Outlook23",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
} |