This workflow corresponds to n8n.io template #2404 — we link there as the canonical source.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"nodes": [
{
"id": "74a7f47c-6bdf-467d-adad-27148b00147b",
"name": "If no category",
"type": "n8n-nodes-base.if",
"position": [
660,
340
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "52ebdeb9-fddc-4eb2-a787-4fc5496c411c",
"operator": {
"type": "array",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json.arxiv_cat }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "444e3a95-03a8-4c7d-be64-42f5c521311b",
"name": "Set category",
"type": "n8n-nodes-base.supabase",
"position": [
1420,
180
],
"parameters": {
"filters": {
"conditions": [
{
"keyName": "id",
"keyValue": "={{ $('If no category').item.json.id }}",
"condition": "eq"
}
]
},
"tableId": "news_letter_subscription",
"fieldsUi": {
"fieldValues": [
{
"fieldId": "arxiv_cat",
"fieldValue": "={{ $json.output.category }}"
}
]
},
"matchType": "allFilters",
"operation": "update"
},
"credentials": {
"supabaseApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "ff6416b7-2532-4f23-9c94-8e2117dedc75",
"name": "Extract paper information",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
2220,
1160
],
"parameters": {
"options": {},
"workflowId": {
"__rl": true,
"mode": "list",
"value": "Z5zfe5BIlOqS0Dku",
"cachedResultName": "Extract paper information"
}
},
"typeVersion": 1.1
},
{
"id": "aa3357eb-1cdc-4c28-96e5-7f2ae24c03c4",
"name": "Limit",
"type": "n8n-nodes-base.limit",
"position": [
1340,
1160
],
"parameters": {
"maxItems": 10
},
"typeVersion": 1
},
{
"id": "58aa5f38-d2a6-445b-ba88-439fcdcaa4d9",
"name": "Sort",
"type": "n8n-nodes-base.sort",
"position": [
1040,
1160
],
"parameters": {
"options": {},
"sortFieldsUi": {
"sortField": [
{
"order": "descending",
"fieldName": "score"
}
]
}
},
"typeVersion": 1
},
{
"id": "1062c42d-a594-456d-84ac-65222e934d4d",
"name": "Remove Duplicates",
"type": "n8n-nodes-base.removeDuplicates",
"position": [
600,
1160
],
"parameters": {
"compare": "selectedFields",
"options": {},
"fieldsToCompare": "paper_pdf"
},
"typeVersion": 1.1
},
{
"id": "fce9869e-c42e-4ea3-a64d-be8611732e90",
"name": "If no output?",
"type": "n8n-nodes-base.if",
"position": [
1300,
780
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "3faca29f-1364-4c91-8fba-1a7bbfb49ce1",
"operator": {
"type": "object",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "734c06fc-dbe3-4756-a8c9-ec3f067555dd",
"name": "has keyword?",
"type": "n8n-nodes-base.if",
"position": [
1600,
800
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0abd5e7e-2991-49b2-80c0-3f4d789690c8",
"operator": {
"type": "array",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.keyword }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "d8ddb048-3907-4ec3-b0d3-2b9b86f16a68",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-240,
340
],
"parameters": {
"rule": {
"interval": [
{
"field": "weeks",
"triggerAtHour": 22
}
]
}
},
"typeVersion": 1.2
},
{
"id": "a74f872f-8422-428a-9315-29cac67d23f0",
"name": "Merge2",
"type": "n8n-nodes-base.merge",
"position": [
2900,
1180
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3
},
{
"id": "96dd5de5-8a2c-4e77-845f-5e4b473ea70b",
"name": "Check user's subscription info",
"type": "n8n-nodes-base.supabase",
"position": [
60,
340
],
"parameters": {
"tableId": "news_letter_subscription",
"operation": "getAll"
},
"credentials": {
"supabaseApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "e8267bde-4d26-42f2-8a83-4adc8531ee1a",
"name": "Get user's subscription info",
"type": "n8n-nodes-base.supabase",
"position": [
1780,
340
],
"parameters": {
"tableId": "news_letter_subscription",
"operation": "getAll"
},
"credentials": {
"supabaseApi": {
"name": "<your credential>"
}
},
"executeOnce": true,
"typeVersion": 1
},
{
"id": "afdad194-e146-4a1e-a711-a27614197b9b",
"name": "Loop Over users",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-200,
760
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "630e6f15-e3ef-479b-85e6-b48e8c22fd6e",
"name": "Write newsletter by AI",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
2680,
1160
],
"parameters": {
"options": {},
"workflowId": {
"__rl": true,
"mode": "list",
"value": "cWf1cXGPYgrf7a8A",
"cachedResultName": "Write newsletter by AI"
}
},
"typeVersion": 1.1
},
{
"id": "d1def8c0-6616-4a69-8fca-62bbb8f15fe6",
"name": "Get arxiv papers this week and scoring by AI",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
1060,
780
],
"parameters": {
"options": {},
"workflowId": {
"__rl": true,
"mode": "list",
"value": "TXrfMXgL8Jx2lgyP",
"cachedResultName": "Get arxiv papers this week"
}
},
"typeVersion": 1.1,
"alwaysOutputData": true
},
{
"id": "7c65326f-5c19-41ed-bd76-de47c03f35a9",
"name": "Set input for Extract paper information",
"type": "n8n-nodes-base.set",
"position": [
1660,
1160
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "48cae2c6-7a6c-4f44-a840-c2c4625d057b",
"name": "link",
"type": "string",
"value": "={{ $('Limit').item.json.link }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "2dba4915-4e53-4f48-bf48-8aa5bec7329c",
"name": "Set input for Write newsletter by AI",
"type": "n8n-nodes-base.set",
"position": [
2440,
1160
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e4aeb029-5554-4864-adc8-4825e29dd90d",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "91963f34-415b-4dae-b2e3-a7bc2417d258",
"name": "body",
"type": "string",
"value": "={{ $json.body }}"
},
{
"id": "2e56bc2e-a94b-4817-869d-dd916f5b8524",
"name": "opinion",
"type": "string",
"value": "={{ $json.opinion }}"
},
{
"id": "406aea45-8062-4a56-8453-e7e4b190dea3",
"name": "reference_orig",
"type": "string",
"value": "={{ $('Get arxiv papers this week and scoring by AI').item.json.link }}"
},
{
"id": "62bde9f0-8e19-464a-a53e-07fa12e952ee",
"name": "score",
"type": "number",
"value": "={{ $('Limit').item.json.score.round() }}"
},
{
"id": "7b57b83f-216d-4390-9651-6797dc0c85d9",
"name": "lang",
"type": "string",
"value": "\ud55c\uad6d\uc5b4"
},
{
"id": "e35e0632-a9d8-4a70-942a-19d78d3a11da",
"name": "min_words_per_article",
"type": "number",
"value": 300
}
]
}
},
"typeVersion": 3.4
},
{
"id": "b4c59331-e800-4d14-b9de-aab773e54524",
"name": "Set input for Filter by keyword by RAG",
"type": "n8n-nodes-base.set",
"position": [
1820,
780
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "085240be-fdcf-43ee-9a43-a73efb82c16d",
"name": "keyword",
"type": "array",
"value": "={{ $json.keyword }}"
},
{
"id": "7db6ca6a-7312-4eec-9aa7-33f5ef6bcedb",
"name": "score",
"type": "number",
"value": "={{ $json.score }}"
},
{
"id": "ff47e090-e633-4253-8a4d-2c90b2a31fb8",
"name": "link",
"type": "string",
"value": "={{ $json.link }}"
},
{
"id": "61b4400c-3173-4997-b68c-0cd17c96b6fe",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "f3b2732f-21e4-4f00-b66c-54dd74a29003",
"name": "vs_document_id",
"type": "string",
"value": "papers"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "5877ff9f-e2a3-42a4-9d2e-7bd19400de45",
"name": "Send newsletter",
"type": "n8n-nodes-base.gmail",
"position": [
3100,
1180
],
"parameters": {
"sendTo": "={{ $json.user_email }}",
"message": "={{ $json.letter }}",
"options": {},
"subject": "={{ $today.weekNumber }}\uc8fc AI paper trend"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "4177470b-6b21-4a3b-94a7-a545db4d1dbf",
"name": "Set input for Get category by AI",
"type": "n8n-nodes-base.set",
"position": [
940,
180
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "1e7f73ff-e265-4117-ba7c-ca7a59580989",
"name": "keyword",
"type": "array",
"value": "={{ $json.keyword }}"
},
{
"id": "7104f525-59ec-4b10-b463-1189b77a588d",
"name": "interested_papers",
"type": "array",
"value": "={{ $json.interested_papers }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "7479c3dd-06bf-4f47-81c3-220b986a0aaa",
"name": "Set input for Get arxiv papers this week and scoring by AI",
"type": "n8n-nodes-base.set",
"position": [
520,
780
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "7ee8d438-fd89-41fc-97fc-ce92c87078c0",
"name": "user_email",
"type": "string",
"value": "={{ $json.user_email }}"
},
{
"id": "7dc9c5da-fb5e-4919-85dd-fbe95b6ca7e9",
"name": "arxiv_cat",
"type": "array",
"value": "={{ $json.arxiv_cat }}"
},
{
"id": "7ef22026-c085-4d25-a04d-abe04102a854",
"name": "keyword",
"type": "string",
"value": "={{ $json.keyword }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "34cf99dd-789b-46cb-9ab3-c164249a938e",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-120,
20
],
"parameters": {
"width": 358.800943632496,
"height": 562.0223932523666,
"content": "### Get user subscription info from database\ntable schema should include\n- user_email: text\n- arxiv_cat: text[] <- array\n -> you can check category https://arxiv.org/category_taxonomy\n- keyword: text[] <- array\n- interested_papers: text[] <- array\n\n### example row\n{\n \"id\": 8,\n \"created_at\": \"2024-09-24T12:31:17.09491+00:00\",\n \"user_email\": \"test@test.com\",\n \"arxiv_cat\": \n [\n \"cs.AI\",\n \"cs.LG,cs.AR\"\n ],\n \"interested_papers\": null,\n \"keyword\": \n [\n \"AI architecture which includes long context problem\"\n ]\n}"
},
"typeVersion": 1
},
{
"id": "61eb8e5b-9980-4c15-81df-5db9676bfe32",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
920,
60
],
"parameters": {
"color": 3,
"content": "### Get category by AI\n- This workflow generate arxiv categories which represents given keyword"
},
"typeVersion": 1
},
{
"id": "c4a0c78c-c3e2-429d-b3a4-2adbab735fe6",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1500,
240
],
"parameters": {
"width": 322.9386766285814,
"content": "### Get subscription info again\n- This node is valuable if there is empty category so that it is generated by AI"
},
"typeVersion": 1
},
{
"id": "98d77cf7-2ae5-4b7b-9bd5-887b5cdb6688",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
560
],
"parameters": {
"color": 3,
"width": 429.57411800818596,
"height": 385.11926513472076,
"content": "### Get arxiv papers this week and scoring by AI\n- This node retrieve arxiv papers by category in this week\n- 3 Filters are applied\n - Filter if arxiv comment exists or if arxiv journal reference exists to retrieve most valuable papers\n - Filter if papers published in this week\n - Filter if prime category matches give categories\n- To narrow down number of papers, "
},
"typeVersion": 1
},
{
"id": "e74e6a2f-f756-48af-8a67-9b3b9a1672ad",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1760,
600
],
"parameters": {
"color": 3,
"width": 373.2943017245058,
"height": 234.05238984694762,
"content": "### Filter by keyword by RAG\n- This node has 3 task\n - Embedding papers into vector stor\n - Query vector store by given keyword\n - And average its score by grouping by its id, then we can get which papers are most matched to keyword"
},
"typeVersion": 1
},
{
"id": "e5d8c2ff-2977-4549-97c9-c17bd07f683a",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1680,
1040
],
"parameters": {
"color": 3,
"width": 288.87457729898546,
"content": "### Extract paper information\n- This node extract information from given paper. Actually this is summarization task\n- Plus, generate opinion by AI"
},
"typeVersion": 1
},
{
"id": "5d4ac01f-0112-4b3e-b462-00e0d93a389c",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
2160,
1040
],
"parameters": {
"color": 3,
"width": 331.8249634102151,
"content": "### Write newsletter by AI\n- This node has 2 tasks\n - Translate information into given lang\n - Refine content looks like \"newsletter\" and applying HTML format"
},
"typeVersion": 1
},
{
"id": "550ff766-443e-4da4-b18e-2f206d5ded94",
"name": "Get arxiv category by AI for given keyword",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
1200,
180
],
"parameters": {
"options": {},
"workflowId": {
"__rl": true,
"mode": "list",
"value": "eORrAR0QAxQHZH6H",
"cachedResultName": "Get arxiv category by AI for given keyword"
}
},
"typeVersion": 1.1
},
{
"id": "d623c7e0-c2df-4258-a317-207996fc1764",
"name": "This is used to call following node once",
"type": "n8n-nodes-base.merge",
"position": [
1580,
340
],
"parameters": {},
"typeVersion": 3
},
{
"id": "de837381-6113-4486-b733-9fd70d156a1c",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-920,
40
],
"parameters": {
"color": 4,
"width": 508.83720930232573,
"height": 800.6441210013597,
"content": "## Arxive paper trend newsletter\n### Setup\n- Supabase\n - Table schema\n - user_email: Text - Mandatory\n - arxiv_cat: [Text]\n - interested_papers: [Text]\n - keyword: [Text]\n - Example\n{\n \"id\": 8,\n \"created_at\": \"2024-09-24T12:31:17.09491+00:00\",\n \"user_email\": \"test@test.com\",\n \"arxiv_cat\": \n [\n \"cs.AI\",\n \"cs.LG,cs.AR\"\n ],\n \"interested_papers\": null,\n \"keyword\": \n [\n \"AI architecture which includes long context problem\"\n ]\n}\n- Qdrant vector store\n - default setup\n\n## Setup for sub workflows\n- Get arxiv category by AI for given keyword\n- Get arxiv categories\n- Get arxiv papers this week and scoring by AI\n- Filter by keyword within given documents\n- Extract paper information\n- Write newsletter by AI"
},
"typeVersion": 1
},
{
"id": "8642a9a6-2123-42d8-af39-4278bf44c1fd",
"name": "Filter by keyword within given documents",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
2280,
780
],
"parameters": {
"options": {},
"workflowId": {
"__rl": true,
"mode": "list",
"value": "AjkkUQq3cJY5x6cv",
"cachedResultName": "Filter by keyword within given documents"
}
},
"typeVersion": 1.1
},
{
"id": "2d3bf286-5c05-4a23-aa37-fec896203a22",
"name": "Filter1",
"type": "n8n-nodes-base.filter",
"position": [
-520,
760
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d9a41bb2-b658-4bd8-972c-b99696832db6",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.user_email }}",
"rightValue": "user@example.com"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "539daef2-149d-4dda-a05b-2c8c96780b25",
"name": "Limit1",
"type": "n8n-nodes-base.limit",
"position": [
2040,
780
],
"parameters": {
"maxItems": 6
},
"typeVersion": 1
}
],
"connections": {
"Sort": {
"main": [
[
{
"node": "Limit",
"type": "main",
"index": 0
}
]
]
},
"Limit": {
"main": [
[
{
"node": "Set input for Extract paper information",
"type": "main",
"index": 0
}
]
]
},
"Limit1": {
"main": [
[
{
"node": "Filter by keyword within given documents",
"type": "main",
"index": 0
}
]
]
},
"Merge2": {
"main": [
[
{
"node": "Send newsletter",
"type": "main",
"index": 0
}
]
]
},
"Filter1": {
"main": [
[
{
"node": "Loop Over users",
"type": "main",
"index": 0
}
]
]
},
"Set category": {
"main": [
[
{
"node": "This is used to call following node once",
"type": "main",
"index": 0
}
]
]
},
"has keyword?": {
"main": [
[
{
"node": "Set input for Filter by keyword by RAG",
"type": "main",
"index": 0
}
],
[
{
"node": "Remove Duplicates",
"type": "main",
"index": 0
}
]
]
},
"If no output?": {
"main": [
[
{
"node": "Loop Over users",
"type": "main",
"index": 0
}
],
[
{
"node": "has keyword?",
"type": "main",
"index": 0
}
]
]
},
"If no category": {
"main": [
[
{
"node": "Set input for Get category by AI",
"type": "main",
"index": 0
}
],
[
{
"node": "This is used to call following node once",
"type": "main",
"index": 1
}
]
]
},
"Loop Over users": {
"main": [
null,
[
{
"node": "Set input for Get arxiv papers this week and scoring by AI",
"type": "main",
"index": 0
}
]
]
},
"Send newsletter": {
"main": [
[
{
"node": "Loop Over users",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Check user's subscription info",
"type": "main",
"index": 0
}
]
]
},
"Remove Duplicates": {
"main": [
[
{
"node": "Sort",
"type": "main",
"index": 0
}
]
]
},
"Write newsletter by AI": {
"main": [
[
{
"node": "Merge2",
"type": "main",
"index": 0
}
]
]
},
"Extract paper information": {
"main": [
[
{
"node": "Set input for Write newsletter by AI",
"type": "main",
"index": 0
}
]
]
},
"Get user's subscription info": {
"main": [
[
{
"node": "Filter1",
"type": "main",
"index": 0
}
]
]
},
"Check user's subscription info": {
"main": [
[
{
"node": "If no category",
"type": "main",
"index": 0
}
]
]
},
"Set input for Get category by AI": {
"main": [
[
{
"node": "Get arxiv category by AI for given keyword",
"type": "main",
"index": 0
}
]
]
},
"Set input for Write newsletter by AI": {
"main": [
[
{
"node": "Write newsletter by AI",
"type": "main",
"index": 0
}
]
]
},
"Set input for Filter by keyword by RAG": {
"main": [
[
{
"node": "Limit1",
"type": "main",
"index": 0
}
]
]
},
"Set input for Extract paper information": {
"main": [
[
{
"node": "Extract paper information",
"type": "main",
"index": 0
}
]
]
},
"Filter by keyword within given documents": {
"main": [
[
{
"node": "Remove Duplicates",
"type": "main",
"index": 0
}
]
]
},
"This is used to call following node once": {
"main": [
[
{
"node": "Get user's subscription info",
"type": "main",
"index": 0
}
]
]
},
"Get arxiv category by AI for given keyword": {
"main": [
[
{
"node": "Set category",
"type": "main",
"index": 0
}
]
]
},
"Get arxiv papers this week and scoring by AI": {
"main": [
[
{
"node": "If no output?",
"type": "main",
"index": 0
}
]
]
},
"Set input for Get arxiv papers this week and scoring by AI": {
"main": [
[
{
"node": "Get arxiv papers this week and scoring by AI",
"type": "main",
"index": 0
},
{
"node": "Merge2",
"type": "main",
"index": 1
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
gmailOAuth2supabaseApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow gathers papers in Arxiv and specific arxiv category AI helps to make summarized form of newsletter and send it to subscriber using gmail Supabase Table schema user_email: Text - Mandatory arxiv_cat: [Text] interested_papers: [Text] keyword: [Text] Example { "id":…
Source: https://n8n.io/workflows/2404/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
uçak bileti. Uses httpRequest, telegram, gmail, supabase. Scheduled trigger; 10 nodes.
YOUR_ID 4. Uses gmail, googleDrive, googleSheets, httpRequest. Scheduled trigger; 53 nodes.
Code. Uses googleSheets, gmail, supabase, stickyNote. Webhook trigger; 51 nodes.
This workflow automates a document approval process using Supabase and Gmail. Teams that need structured multi-level document approvals. Companies managing policies, contracts, or proposals. Medical d
The FamilyFlow Assistant is your n8n-powered 🚀 companion designed to streamline daily parenting tasks, reduce mental load, and bring a bit more organization and fun into your family life. This versati