This workflow follows the Agent → Gmail recipe pattern — see all workflows that pair these two integrations.
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 →
{
"createdAt": "2025-09-03T02:28:03.221Z",
"updatedAt": "2025-09-03T02:28:03.221Z",
"id": "5W0QgdykUYgayvdX",
"name": "My workflow 250630",
"active": false,
"isArchived": false,
"nodes": [
{
"parameters": {
"content": " \n\n## \uc774\ucee4\uba38\uc2a4: \uc0c1\ud488 \ub9ac\ubdf0 \uc6cc\ub4dc\ud074\ub77c\uc6b0\ub4dc \ubd84\uc11d \uc790\ub3d9\ud654\n### Source : \ub124\uc774\ubc84 \uc601\ud654 \ub9ac\ubdf0 \ub370\uc774\ud130 https://github.com/e9t/nsmc/ \n\n- (\uc218\uc9d1) \ub9ac\ubdf0 \ub370\uc774\ud130 \uc790\ub3d9 \uc218\uc9d1 (\ucfe0\ud321, \ub124\uc774\ubc84\uc1fc\ud551 \ub4f1)\n- (\uc804\ucc98\ub9ac) \uc911\ubcf5 \uc81c\uac70, \ubd88\uc6a9\uc5b4 \uc81c\uac70, \uba85\uc0ac/\ud615\uc6a9\uc0ac \ucd94\ucd9c\n- (\ubd84\uc11d) OpenAI \uac10\uc131 \ubd84\uc11d, \uae0d/\ubd80\uc815 \ud0a4\uc6cc\ub4dc \uc694\uc57d\n- (\uc2dc\uac01\ud654) \uae0d/\ubd80\uc815 \uc6cc\ub4dc\ud074\ub77c\uc6b0\ub4dc \uc774\ubbf8\uc9c0 \uc0dd\uc131 \n\n\n- \"Schedule Trigger: \ub9e4\uc77c \uc624\uc804 9\uc2dc \uc2e4\ud589\n- HTTP Request: \ub9ac\ubdf0 \ub370\uc774\ud130 \uc218\uc9d1\n- Function / Set: \uc911\ubcf5 \uc81c\uac70, \ud0a4\uc6cc\ub4dc \uc815\uc81c\n- OpenAI: \uac10\uc131 \ubd84\uc11d + \ud575\uc2ec \ubb38\uc7a5 \ucd94\ucd9c\n- Function: \uae0d/\ubd80\uc815 \ud0a4\uc6cc\ub4dc \uc694\uc57d\n- Google Sheets / Notion: \uacb0\uacfc \uc800\uc7a5\n- SMTP / Gmail: \ud300\uc5d0 \uc774\uba54\uc77c \uc804\uc1a1\"",
"height": 540,
"width": 500
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
0,
0
],
"id": "5ad11385-bd42-4a73-93cf-1e77e59e960c",
"name": "Sticky Note"
},
{
"parameters": {
"method": "POST",
"url": "https://quickchart.io/wordcloud",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Content-Disposition",
"value": "attachment; filename=\"wordcloud.png\""
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ $json.output.wordcloudPayload }}",
"options": {
"response": {
"response": {
"fullResponse": true,
"responseFormat": "file",
"outputPropertyName": "positive.png"
}
}
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1984,
624
],
"id": "fc60adcb-b512-4c89-b049-1e7cfd7d4dce",
"name": "HTTP Request"
},
{
"parameters": {
"model": {
"__rl": true,
"value": "gpt-4.1",
"mode": "list",
"cachedResultName": "gpt-4.1"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.2,
"position": [
1648,
672
],
"id": "33a62a1e-a71e-4168-878b-88c80b0501bf",
"name": "OpenAI Chat Model"
},
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
64,
768
],
"id": "05039d14-f2ce-4cd4-bf60-857e8ea4df99",
"name": "When clicking \u2018Test workflow\u2019"
},
{
"parameters": {
"jsCode": "const reviews = items.map(item => item.json);\n\nconst processedData = reviews.map(item => {\n const text = item.data || '';\n const stopWords = ['\uadf8\ub9ac\uace0', '\uc2f6\ub2e4', '\uc774\ub2e4', '\ud558\ub2e4', '\uac83', '\uc218', '\ub4f1', '\ubc0f', '\ub610\ub294'];\n \n const words = text.split(/\\s+/).filter(word => word.trim() !== '');\n const filteredWords = words.filter(word => !stopWords.includes(word));\n const nounsAdjectives = filteredWords.filter(word => isNounOrAdjective(word));\n \n const processedText = nounsAdjectives.join(' ');\n \n // QuickChart API\uc6a9 JSON \uad6c\uc870 \uc0dd\uc131\n return {\n // \uc6cc\ub4dc\ud074\ub77c\uc6b0\ub4dc API\uc6a9 \ud398\uc774\ub85c\ub4dc\n wordcloudPayload: {\n format: \"png\",\n width: 700,\n height: 700,\n fontFamily: \"sans-serif\",\n fontScale: 18,\n scale: \"linear\",\n text: processedText,\n backgroundColor: \"white\",\n colorScheme: \"paired\",\n maxWords: 100\n },\n // \ub514\ubc84\uae45\uc6a9 \uc815\ubcf4\n originalData: item.data,\n processedText: processedText,\n wordCount: nounsAdjectives.length,\n words: nounsAdjectives\n };\n});\n\nreturn processedData.map(item => ({ json: item }));\n\n// \uae30\uc874 \ud568\uc218\ub4e4...\nfunction isNounOrAdjective(word) {\n if (word.length < 2) return false;\n const tagged = tagPOS(word);\n return tagged === 'N' || tagged === 'A';\n}\n\nfunction tagPOS(word) {\n const techNouns = ['\uc778\uacf5\uc9c0\ub2a5', '\uba38\uc2e0\ub7ec\ub2dd', '\ub525\ub7ec\ub2dd', '\ub370\uc774\ud130\ubd84\uc11d', '\ube45\ub370\uc774\ud130', '\uc54c\uace0\ub9ac\uc998', \n '\ud504\ub85c\uadf8\ub798\ubc0d', '\ud30c\uc774\uc36c', '\uc790\ubc14', '\uc6f9\uac1c\ubc1c', '\ubaa8\ubc14\uc77c\uc571', '\ud074\ub77c\uc6b0\ub4dc', '\ucef4\ud4e8\ud305'];\n \n if (techNouns.includes(word) || word.length >= 3) {\n return 'N';\n }\n \n return word.length > 2 ? 'N' : 'A';\n}"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1376,
608
],
"id": "872f2ee6-1e68-4244-a12e-822eef9d3737",
"name": "Preprocess Reviews _"
},
{
"parameters": {
"url": "https://raw.githubusercontent.com/2innnnn0/assets/refs/heads/master/text/ecommerce_reviews.json",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
288,
768
],
"id": "b1423a7f-2755-465d-b6d9-0e59f968acbe",
"name": "Data Collect1"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "6b117ec8-2e95-4874-982a-d8e706dd987a",
"name": "data",
"value": "={{ $json.data.parseJson() }}",
"type": "array"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
512,
768
],
"id": "1611edfe-fa80-436e-8b50-5bf64e6fa95f",
"name": "Edit Fields"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "fd3b988e-6744-48d0-8cf6-6a9d62f8216d",
"name": "data",
"value": "={{ $json.text }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
944,
768
],
"id": "6f0477fd-d8a2-4006-b348-1c91e07bfc86",
"name": "Edit Fields1"
},
{
"parameters": {
"fieldToSplitOut": "data",
"options": {}
},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
736,
768
],
"id": "679f1109-70be-4b07-939a-0b42621c53fc",
"name": "Split Out"
},
{
"parameters": {
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "data"
}
]
},
"options": {
"mergeLists": true
}
},
"type": "n8n-nodes-base.aggregate",
"typeVersion": 1,
"position": [
1168,
768
],
"id": "d1f36863-8d45-4d6c-98d3-ee020a124738",
"name": "Aggregate"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "ebe5bc8d-a3b4-46a8-aaf5-01a1d3bdf01c",
"name": "data",
"value": "={{ $json.data }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
1392,
768
],
"id": "4052cf43-774f-4058-96a7-cbc5e61df681",
"name": "Edit Fields2"
},
{
"parameters": {
"jsonSchemaExample": "{\n \"wordcloudPayload\": {\n \"format\": \"png\",\n \"width\": 700,\n \"height\": 700,\n \"fontFamily\": \"sans-serif\",\n \"fontScale\": 18,\n \"scale\": \"linear\",\n \"text\": \"\uc74c\uc9c8\uc774 \uc815\ub9d0 \uc88b\uc544\uc694 \ubc30\uc1a1\ub3c4 \ube60\ub974\uace0 \uac00\uaca9 \ub300\ube44 \uc131\ub2a5\uc774 \ud6cc\ub96d\ud569\ub2c8\ub2e4 \ucd94\ucc9c\ud569\ub2c8\ub2e4 \ub514\uc790\uc778\uc774 \uc608\uc058\uace0 \ubcf4\ud638\ub825\ub3c4 \uc88b\ub124\uc694 \ud488\uc9c8\uc774 \uc88b\uace0 \uac00\uaca9\ub3c4 \ud569\ub9ac\uc801\uc774\uc5d0\uc694 \ubc30\uc1a1 \ube68\ub77c\uc11c \ub9cc\uc871\ud569\ub2c8\ub2e4 \ud0c0\uc774\ud551 \uac10\uc774 \uc815\ub9d0 \uc88b\uc544\uc694 \uc18c\uc74c\ub3c4 \uc801\uace0 \ub514\uc790\uc778\ub3c4 \uae54\ub054\ud569\ub2c8\ub2e4 \uac15\ub825 \ucd94\ucc9c \ucda9\uc804 \uc18d\ub3c4\uac00 \ube60\ub974\uace0 \ud488\uc9c8\uc774 \uc88b\ub124\uc694 \uac00\uaca9 \ub300\ube44 \ub9cc\uc871\uc2a4\ub7fd\uc2b5\ub2c8\ub2e4 \uc74c\uc9c8\uc774 \ucd5c\uace0\uc608\uc694 \ub514\uc790\uc778\ub3c4 \uc138\ub828\ub418\uace0 \ubc30\uc1a1\ub3c4 \ube68\ub790\uc2b5\ub2c8\ub2e4 \ucd94\ucc9c\ud569\ub2c8\ub2e4 \uc548\uc815\uc131\uc774 \uc88b\uace0 \uac01\ub3c4 \uc870\uc808\uc774 \ud3b8\ud574\uc694 \uac00\uaca9\ub3c4 \uc800\ub834\ud558\uace0 \ud488\uc9c8 \ub9cc\uc871 \uc6a9\ub7c9\uc774 \ud06c\uace0 \ucda9\uc804 \uc18d\ub3c4\ub3c4 \ube68\ub77c\uc694 \ub514\uc790\uc778 \uae54\ub054\ud558\uace0 \uc131\ub2a5 \uc88b\uc2b5\ub2c8\ub2e4 \ud654\uc9c8\uc774 \uc120\uba85\ud558\uace0 \uc0c9\uac10\uc774 \uc88b\uc544\uc694 \uac00\uaca9 \ub300\ube44 \uc131\ub2a5\uc774 \ud6cc\ub96d\ud569\ub2c8\ub2e4 \ucd94\ucc9c \ud654\uc9c8 \uc88b\uace0 \uc124\uce58 \uac04\ub2e8\ud574\uc694 \uac00\uaca9\ub3c4 \ud569\ub9ac\uc801\uc774\uace0 \ubc30\uc1a1 \ube68\ub77c\uc11c \ub9cc\uc871 \ud06c\uae30\ub3c4 \uc801\ub2f9\ud558\uace0 \uc7ac\uc9c8\uc774 \ubd80\ub4dc\ub7ec\uc6cc\uc694 \ub514\uc790\uc778 \uc608\uc058\uace0 \ud488\uc9c8 \uc88b\uc2b5\ub2c8\ub2e4 \ub0c9\uac01 \ud6a8\uacfc \uc88b\uace0 \uc18c\uc74c\ub3c4 \uc801\uc5b4\uc694 \uac00\uaca9 \ub300\ube44 \uc131\ub2a5 \ub9cc\uc871\uc2a4\ub7fd\uc2b5\ub2c8\ub2e4 \ubcf4\ud638\ub825 \uc88b\uace0 \ub514\uc790\uc778\ub3c4 \uae54\ub054\ud574\uc694 \ubc30\uc1a1 \ube60\ub974\uace0 \ud488\uc9c8 \ud6cc\ub96d\ud569\ub2c8\ub2e4 \uc74c\uc9c8 \uc88b\uace0 \ucc29\uc6a9\uac10\ub3c4 \ud3b8\ud574\uc694 \uac00\uaca9 \uc800\ub834\ud558\uace0 \uc131\ub2a5 \ub9cc\uc871\ud569\ub2c8\ub2e4 \uc74c\uc9c8 \ucd5c\uace0\uc774\uace0 \ubc30\ud130\ub9ac \uc624\ub798\uac00\uc694 \ub514\uc790\uc778 \uc88b\uace0 \uc131\ub2a5 \ud6cc\ub96d\ud569\ub2c8\ub2e4 \ucd94\ucc9c \ucda9\uc804 \ube60\ub974\uace0 \ubc1c\uc5f4 \uc801\uc5b4\uc694 \ub514\uc790\uc778 \uae54\ub054\ud558\uace0 \uac00\uaca9 \ub300\ube44 \uc88b\uc2b5\ub2c8\ub2e4 \uc74c\uc9c8 \uc88b\uace0 \ub9c8\uc774\ud06c \uc131\ub2a5\ub3c4 \ud6cc\ub96d\ud574\uc694 \ucc29\uc6a9\uac10 \ud3b8\ud558\uace0 \ucd94\ucc9c\ud569\ub2c8\ub2e4 \ud488\uc9c8 \uc88b\uace0 \uae38\uc774\ub3c4 \uc801\ub2f9\ud574\uc694 \uac00\uaca9 \uc800\ub834\ud558\uace0\",\n \"backgroundColor\": \"white\",\n \"colorScheme\": \"paired\",\n \"maxWords\": 100\n }\n}"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.2,
"position": [
1776,
704
],
"id": "fdd2b836-b98c-4878-b023-955fea687fb7",
"name": "Structured Output Parser"
},
{
"parameters": {
"content": "## TARGET\n- \uba54\uc77c\ub85c \ubc1c\uc1a1",
"height": 320,
"width": 220,
"color": 6
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
2592,
608
],
"id": "af478b17-799e-4644-a23f-ba26187198fd",
"name": "Sticky Note1"
},
{
"parameters": {
"sendTo": "datapopcorn@gmail.com",
"subject": "Review Analysis Results",
"message": "Positive vs. Negative",
"options": {
"attachmentsUi": {
"attachmentsBinary": [
{
"property": "positive.png"
},
{
"property": "negative.png"
}
]
}
}
},
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
2640,
768
],
"id": "5a84d1f0-832d-41ea-b5d1-36ee46336b81",
"name": "Gmail"
},
{
"parameters": {
"content": "## TASK\n### \uae0d\uc815\n- QuickChart Wordcloud \ubcc0\ud658",
"height": 320,
"width": 540,
"color": 4
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1568,
368
],
"id": "ae9128ea-c0a3-45e4-b188-ead1c09a67b4",
"name": "Sticky Note2"
},
{
"parameters": {
"content": "## TASK\n- \ub370\uc774\ud130 \uc804\ucc98\ub9ac",
"height": 360,
"width": 1100,
"color": 5
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
448,
576
],
"id": "24d0124b-944e-422e-824e-d8f0790427a9",
"name": "Sticky Note3"
},
{
"parameters": {
"content": "## TASK\n- \ub370\uc774\ud130 \ubd88\ub7ec\uc624\uae30",
"height": 320,
"width": 180,
"color": 4
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
256,
608
],
"id": "6f632944-3d2e-4bd5-9e0e-3c235cf2525c",
"name": "Sticky Note4"
},
{
"parameters": {
"content": "## TRIGGER\n- \ub9e4\uc77c \uc624\uc804 9\uc2dc \uc2e4\ud589",
"height": 340,
"width": 180,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
16,
592
],
"id": "7bd5c189-6802-4030-bf72-465a5ca154b8",
"name": "Sticky Note5"
},
{
"parameters": {
"content": "",
"height": 420,
"width": 420
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
2144,
320
],
"id": "0a59319c-eb86-4349-97c1-cc470658ee23",
"name": "Sticky Note6"
},
{
"parameters": {
"method": "POST",
"url": "https://quickchart.io/wordcloud",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Content-Disposition",
"value": "attachment; filename=\"wordcloud.png\""
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ $json.output.wordcloudPayload }}",
"options": {
"response": {
"response": {
"fullResponse": true,
"responseFormat": "file",
"outputPropertyName": "negative.png"
}
}
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1984,
928
],
"id": "be3ed86b-5acd-4037-b16b-5988ccc2e871",
"name": "HTTP Request1"
},
{
"parameters": {
"content": "## TASK\n### \ubd80\uc815\n- QuickChart Wordcloud \ubcc0\ud658",
"height": 360,
"width": 560,
"color": 4
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1568,
720
],
"id": "c52c0326-226c-4c80-b704-b8063d0215bb",
"name": "Sticky Note7"
},
{
"parameters": {
"promptType": "define",
"text": "={{ $json.data }}",
"hasOutputParser": true,
"options": {
"systemMessage": "=\u2705 \uc2dc\uc2a4\ud15c \ud504\ub86c\ud504\ud305 (\ubd80\uc815 \ub9ac\ubdf0 \uc804\uc6a9 \ubc84\uc804)\n\n\u2e3b\n\n\ub108\ub294 \uc6cc\ub4dc\ud074\ub77c\uc6b0\ub4dc API\uc5d0 \uc0ac\uc6a9\ud560 JSON \ud615\uc2dd\uc758 \ucd9c\ub825\uac12\uc744 \uc0dd\uc131\ud558\ub294 \uc2dc\uc2a4\ud15c\uc774\ub2e4.\n\n\uc785\ub825\uac12\uc740 data\ub77c\ub294 \ud0a4\uc5d0 \ubb38\uc790\uc5f4 \ubc30\uc5f4 \ud615\ud0dc\uc758 \ub9ac\ubdf0 \ubaa9\ub85d\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\ub2e4.\n\uc774 \ub9ac\ubdf0\ub4e4\uc758 \ub0b4\uc6a9\uc744 \uae30\ubc18\uc73c\ub85c \ubd80\uc815\uc801\uc778 \ubb38\uc7a5 \ub610\ub294 \ubd80\uc815\uc801\uc778 \uc758\ubbf8\uc758 \ud45c\ud604\ub9cc \uc120\ubcc4\ud558\uc5ec wordcloudPayload \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\uc5ec \ucd9c\ub825\ud574\uc57c \ud55c\ub2e4.\n\n\ucd9c\ub825\uc740 \ub2e4\uc74c JSON \ud615\uc2dd\uc774\uc5b4\uc57c \ud55c\ub2e4:\n\n{\n \"wordcloudPayload\": {\n \"format\": \"png\",\n \"width\": 700,\n \"height\": 700,\n \"fontFamily\": \"sans-serif\",\n \"fontScale\": 18,\n \"scale\": \"linear\",\n \"text\": <\uc785\ub825\ub41c \ub9ac\ubdf0\uc5d0\uc11c \ubd80\uc815\uc801\uc778 \ud45c\ud604\ub9cc \ucd94\ucd9c\ud558\uace0 \uc911\ubcf5 \ud3ec\ud568\ud558\uc5ec \uacf5\ubc31\uc73c\ub85c \uc5f0\uacb0\ud55c \ubb38\uc790\uc5f4>,\n \"backgroundColor\": \"white\",\n \"colorScheme\": \"paired\",\n \"maxWords\": 100\n }\n}\n\n\uc9c0\uce68:\n\t\u2022\ttext \ud544\ub4dc\uc5d0\ub294 \ubd80\uc815\uc801\uc778 \ud45c\ud604\ub4e4\ub9cc \ucd94\ucd9c\ud558\uc5ec \uc911\ubcf5 \ud3ec\ud568\ud55c \ud6c4 \uacf5\ubc31(\u201d \u201c)\uc73c\ub85c \uc5f0\uacb0\ud55c \ubb38\uc790\uc5f4\uc744 \ub123\ub294\ub2e4.\n\t\u2022\t\ubd88\ub9cc, \ubd88\ud3b8, \uacb0\ud568, \uc9c0\uc5f0, \ub0ae\uc740 \ud488\uc9c8, \uace0\uac1d \ubd88\ub9cc\uc871 \ub4f1 \ubd80\uc815\uc801\uc778 \uc758\ubbf8\ub97c \uac16\ub294 \ubb38\uc7a5\uc774\ub098 \ub2e8\uc5b4\ub9cc \ucd94\ucd9c\ud55c\ub2e4.\n\t\u2022\t\uae0d\uc815\uc801\uc774\uac70\ub098 \uc911\ub9bd\uc801\uc778 \ud45c\ud604\uc740 \ud3ec\ud568\ud558\uc9c0 \uc54a\ub294\ub2e4.\n\t\u2022\t\ubb38\ub9e5\uc0c1 \ubd80\uc815\uc774\ub77c\uba74 \uc644\uc804\ud55c \ubb38\uc7a5\uc774 \uc544\ub2c8\uc5b4\ub3c4 \ud3ec\ud568 \uac00\ub2a5\ud558\ub2e4 (\uc608: \u201c\ubc30\uc1a1 \ub290\ub9bc\u201d, \u201c\ub0b4\uad6c\uc131 \ubd80\uc871\u201d, \u201c\ubd88\ub7c9\u201d, \u201c\uc751\ub2f5 \uc9c0\uc5f0\u201d).\n\t\u2022\t\ub2e8\uc77c JSON \uac1d\uccb4\ub9cc \ucd9c\ub825\ud558\uba70, \uc124\uba85 \ud14d\uc2a4\ud2b8\ub098 \uc8fc\uc11d\uc740 \uc808\ub300 \ud3ec\ud568\ud558\uc9c0 \uc54a\ub294\ub2e4.\n\t\u2022\t\ud45c\ud604\uc774 \ubc18\ubcf5\ub418\uc5b4 \ub4f1\uc7a5\ud560\uc218\ub85d \uc6cc\ub4dc\ud074\ub77c\uc6b0\ub4dc\uc5d0\uc11c \ub354 \uac15\uc870\ub418\ubbc0\ub85c \uc911\ubcf5\uc740 \uc81c\uac70\ud558\uc9c0 \uc54a\ub294\ub2e4.\n\t\u2022\tJSON \ud3ec\ub9f7 \uc624\ub958\uac00 \uc5c6\ub3c4\ub85d \uc815\ud655\ud558\uac8c \ucd9c\ub825\ud560 \uac83."
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.9,
"position": [
1616,
928
],
"id": "d980769c-95b1-45e0-a16f-61969dbb5318",
"name": "Negative"
},
{
"parameters": {},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.1,
"position": [
2208,
768
],
"id": "7d2df711-b4f5-4c67-b31e-cf0aae4dc51a",
"name": "Merge"
},
{
"parameters": {
"aggregate": "aggregateAllItemData",
"options": {
"includeBinaries": true
}
},
"type": "n8n-nodes-base.aggregate",
"typeVersion": 1,
"position": [
2432,
768
],
"id": "5ad2bfbe-0362-40a1-92ca-e9c9e59d173e",
"name": "Aggregate1"
},
{
"parameters": {
"promptType": "define",
"text": "={{ $json.data }}",
"hasOutputParser": true,
"options": {
"systemMessage": "=\u2705 \uc2dc\uc2a4\ud15c \ud504\ub86c\ud504\ud305 (QuickChart \uac15\uc870 \ucd5c\uc801\ud654 \u2013 \uae0d\uc815 \uc804\uc6a9)\n\n\ub108\ub294 \uc6cc\ub4dc\ud074\ub77c\uc6b0\ub4dc API\uc5d0 \uc0ac\uc6a9\ud560 JSON \ud615\uc2dd\uc758 \ucd9c\ub825\uac12\uc744 \uc0dd\uc131\ud558\ub294 \uc2dc\uc2a4\ud15c\uc774\ub2e4.\n\n\uc785\ub825\uac12\uc740 `data`\ub77c\ub294 \ud0a4\uc5d0 \ubb38\uc790\uc5f4 \ubc30\uc5f4 \ud615\ud0dc\uc758 \ub9ac\ubdf0 \ubaa9\ub85d\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\ub2e4. \n\uc774 \ub9ac\ubdf0\ub4e4\uc758 \ub0b4\uc6a9\uc744 \uae30\ubc18\uc73c\ub85c **\uae0d\uc815\uc801\uc778 \uc758\ubbf8\ub97c \uac16\ub294 \ubb38\uc7a5 \ub610\ub294 \ub2e8\uc5b4\ub9cc \ucd94\ucd9c\ud558\uc5ec**, `wordcloudPayload` \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\uc5ec \ucd9c\ub825\ud574\uc57c \ud55c\ub2e4.\n\n\ucd9c\ub825\uc740 \ub2e4\uc74c JSON \ud615\uc2dd\uc774\uc5b4\uc57c \ud55c\ub2e4:\n\n```json\n{\n \"wordcloudPayload\": {\n \"format\": \"png\",\n \"width\": 700,\n \"height\": 700,\n \"fontFamily\": \"sans-serif\",\n \"fontScale\": 18,\n \"scale\": \"linear\",\n \"text\": <\uae0d\uc815\uc801\uc778 \ubb38\uc7a5\ub4e4\uc744 \uc911\ubcf5 \ud3ec\ud568\ud558\uc5ec \uacf5\ubc31\uc73c\ub85c \uc5f0\uacb0\ud55c \uac12>,\n \"backgroundColor\": \"white\",\n \"colorScheme\": \"paired\",\n \"maxWords\": 100\n }\n}\n\n\uc9c0\uce68:\n\t\u2022\ttext \ud544\ub4dc\uc5d0\ub294 \uc785\ub825\ub41c \ub9ac\ubdf0\uc5d0\uc11c \uae0d\uc815\uc801\uc778 \uc758\ubbf8\ub97c \uac00\uc9c4 \ubb38\uc7a5\uc774\ub098 \uad6c\uc808\uc744 \uadf8\ub300\ub85c \ucd94\ucd9c\ud55c\ub2e4.\n\t\u2022\t\uc911\ubcf5\uc740 \uc81c\uac70\ud558\uc9c0 \uc54a\uc73c\uba70, \uac19\uc740 \ubb38\uc7a5\uc774 \uc5ec\ub7ec \ubc88 \ub4f1\uc7a5\ud558\uba74 \uadf8\ub300\ub85c \ubaa8\ub450 \ud3ec\ud568\ud55c\ub2e4.\n\t\u2022\t\uac01 \uae0d\uc815 \ubb38\uc7a5\uc740 \ub9c8\uce68\ud45c \uc5c6\uc774 \uacf5\ubc31\uc73c\ub85c \uad6c\ubd84\ud558\uc5ec \ud558\ub098\uc758 \ubb38\uc790\uc5f4\ub85c \uacb0\ud569\ud55c\ub2e4.\n\t\u2022\t\uc608: \"\ubc30\uc1a1\uc774 \ube60\ub985\ub2c8\ub2e4 \ub514\uc790\uc778\uc774 \ub9c8\uc74c\uc5d0 \ub4e4\uc5b4\uc694 \ubc30\uc1a1\uc774 \ube60\ub985\ub2c8\ub2e4 \ud488\uc9c8\uc774 \uc88b\uc2b5\ub2c8\ub2e4 \ubc30\uc1a1\uc774 \ube60\ub985\ub2c8\ub2e4 \ucd94\ucc9c\ud569\ub2c8\ub2e4\"\n\t\u2022\t\uae0d\uc815\uc801\uc778 \ubb38\uc7a5 \uc608\uc2dc: \u201c\ucd94\ucc9c\ud569\ub2c8\ub2e4\u201d, \u201c\ubc30\uc1a1\uc774 \ube60\ub985\ub2c8\ub2e4\u201d, \u201c\uc74c\uc9c8\uc774 \uc88b\uc2b5\ub2c8\ub2e4\u201d, \u201c\uac00\uaca9 \ub300\ube44 \ud6cc\ub96d\ud569\ub2c8\ub2e4\u201d\n\t\u2022\t\ubd80\uc815\uc801\uc774\uac70\ub098 \uc911\ub9bd\uc801\uc778 \ud45c\ud604\uc740 \uc808\ub300 \ud3ec\ud568\ud558\uc9c0 \uc54a\ub294\ub2e4.\n\t\u2022\t\ubc18\ub4dc\uc2dc JSON \ud3ec\ub9f7\uc73c\ub85c\ub9cc \ucd9c\ub825\ud558\uba70, \ub2e4\ub978 \ud14d\uc2a4\ud2b8\ub098 \uc8fc\uc11d\uc740 \ud3ec\ud568\ud558\uc9c0 \uc54a\ub294\ub2e4.\n\n\n\uc608\uc2dc) \nText : \uc74c\uc9c8\uc774 \uc815\ub9d0 \uc88b\uc544\uc694 \ubc30\uc1a1\ub3c4 \ube60\ub974\uace0 \uac00\uaca9 \ub300\ube44 \uc131\ub2a5\uc774 \ud6cc\ub96d\ud569\ub2c8\ub2e4 \ucd94\ucc9c\ud569\ub2c8\ub2e4 \ub514\uc790\uc778\uc774 \uc608\uc058\uace0 \ubcf4\ud638\ub825\ub3c4 \uc88b\ub124\uc694 \ud488\uc9c8\uc774 \uc88b\uace0 \uac00\uaca9\ub3c4 \ud569\ub9ac\uc801\uc774\uc5d0\uc694 \ubc30\uc1a1 \ube68\ub77c\uc11c \ub9cc\uc871\ud569\ub2c8\ub2e4 \ud0c0\uc774\ud551 \uac10\uc774 \uc815\ub9d0 \uc88b\uc544\uc694 \uc18c\uc74c\ub3c4 \uc801\uace0 \ub514\uc790\uc778\ub3c4 \uae54\ub054\ud569\ub2c8\ub2e4 \uac15\ub825 \ucd94\ucc9c \ucda9\uc804 \uc18d\ub3c4\uac00 \ube60\ub974\uace0 \ud488\uc9c8\uc774 \uc88b\ub124\uc694 \uac00\uaca9 \ub300\ube44 \ub9cc\uc871\uc2a4\ub7fd\uc2b5\ub2c8\ub2e4 \uc74c\uc9c8\uc774 \ucd5c\uace0\uc608\uc694 \ub514\uc790\uc778\ub3c4 \uc138\ub828\ub418\uace0 \ubc30\uc1a1\ub3c4 \ube68\ub790\uc2b5\ub2c8\ub2e4 \ucd94\ucc9c\ud569\ub2c8\ub2e4 \uc548\uc815\uc131\uc774 \uc88b\uace0 \uac01\ub3c4 \uc870\uc808\uc774 \ud3b8\ud574\uc694 \uac00\uaca9\ub3c4 \uc800\ub834\ud558\uace0 \ud488\uc9c8 \ub9cc\uc871 \uc6a9\ub7c9\uc774 \ud06c\uace0 \ucda9\uc804 \uc18d\ub3c4\ub3c4 \ube68\ub77c\uc694 \ub514\uc790\uc778 \uae54\ub054\ud558\uace0 \uc131\ub2a5 \uc88b\uc2b5\ub2c8\ub2e4 \ud654\uc9c8\uc774 \uc120\uba85\ud558\uace0 \uc0c9\uac10\uc774 \uc88b\uc544\uc694 \uac00\uaca9 \ub300\ube44 \uc131\ub2a5\uc774 \ud6cc\ub96d\ud569\ub2c8\ub2e4 \ucd94\ucc9c \ud654\uc9c8 \uc88b\uace0 \uc124\uce58 \uac04\ub2e8\ud574\uc694 \uac00\uaca9\ub3c4 \ud569\ub9ac\uc801\uc774\uace0 \ubc30\uc1a1 \ube68\ub77c\uc11c \ub9cc\uc871 \ud06c\uae30\ub3c4 \uc801\ub2f9\ud558\uace0 \uc7ac\uc9c8\uc774 \ubd80\ub4dc\ub7ec\uc6cc\uc694 \ub514\uc790\uc778 \uc608\uc058\uace0 \ud488\uc9c8 \uc88b\uc2b5\ub2c8\ub2e4 \ub0c9\uac01 \ud6a8\uacfc \uc88b\uace0 \uc18c\uc74c\ub3c4 \uc801\uc5b4\uc694 \uac00\uaca9 \ub300\ube44 \uc131\ub2a5 \ub9cc\uc871\uc2a4\ub7fd\uc2b5\ub2c8\ub2e4 \ubcf4\ud638\ub825 \uc88b\uace0 \ub514\uc790\uc778\ub3c4 \uae54\ub054\ud574\uc694 \ubc30\uc1a1 \ube60\ub974\uace0 \ud488\uc9c8 \ud6cc\ub96d\ud569\ub2c8\ub2e4 \uc74c\uc9c8 \uc88b\uace0 \ucc29\uc6a9\uac10\ub3c4 \ud3b8\ud574\uc694 \uac00\uaca9 \uc800\ub834\ud558\uace0 \uc131\ub2a5 \ub9cc\uc871\ud569\ub2c8\ub2e4 \uc74c\uc9c8 \ucd5c\uace0\uc774\uace0 \ubc30\ud130\ub9ac \uc624\ub798\uac00\uc694 \ub514\uc790\uc778 \uc88b\uace0 \uc131\ub2a5 \ud6cc\ub96d\ud569\ub2c8\ub2e4 \ucd94\ucc9c \ucda9\uc804 \ube60\ub974\uace0 \ubc1c\uc5f4 \uc801\uc5b4\uc694 \ub514\uc790\uc778 \uae54\ub054\ud558\uace0 \uac00\uaca9 \ub300\ube44 \uc88b\uc2b5\ub2c8\ub2e4 \uc74c\uc9c8 \uc88b\uace0 \ub9c8\uc774\ud06c \uc131\ub2a5\ub3c4 \ud6cc\ub96d\ud574\uc694 \ucc29\uc6a9\uac10 \ud3b8\ud558\uace0 \ucd94\ucc9c\ud569\ub2c8\ub2e4 \ud488\uc9c8 \uc88b\uace0 \uae38\uc774\ub3c4 \uc801\ub2f9\ud574\uc694"
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.9,
"position": [
1616,
496
],
"id": "c9fed0fa-65f3-426a-a6e0-98b8706dd7bf",
"name": "Positive"
},
{
"parameters": {
"authentication": "oAuth2",
"resource": "file",
"operation": "get",
"owner": {
"__rl": true,
"value": "2innnnn0",
"mode": "list",
"cachedResultName": "2innnnn0",
"cachedResultUrl": "https://github.com/2innnnn0"
},
"repository": {
"__rl": true,
"value": "assets",
"mode": "list",
"cachedResultName": "assets",
"cachedResultUrl": "https://github.com/2innnnn0/assets"
},
"filePath": "data/smartphone_reviews_1000.csv",
"additionalParameters": {}
},
"type": "n8n-nodes-base.github",
"typeVersion": 1.1,
"position": [
288,
1888
],
"id": "5e40177f-fb75-45b0-a8ca-8ca8c553cde3",
"name": "GitHub"
},
{
"parameters": {
"url": "https://raw.githubusercontent.com/2innnnn0/assets/master/data/smartphone_reviews_1000.csv",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
64,
1680
],
"id": "c49c73c3-ef7e-4f8e-a642-5095a90d3d2e",
"name": "HTTP Request2"
},
{
"parameters": {
"options": {}
},
"type": "n8n-nodes-base.extractFromFile",
"typeVersion": 1,
"position": [
288,
1680
],
"id": "cb502a9d-9861-46b5-af41-29df6999458d",
"name": "Extract from File"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "5d4fe720-4242-4884-a314-7712eb98a372",
"name": "data",
"value": "={{ $json.review_text }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
736,
1776
],
"id": "183d16e9-4c5b-41fd-af9c-8ddc57a6bf6e",
"name": "Edit Fields3"
},
{
"parameters": {
"maxItems": 500
},
"type": "n8n-nodes-base.limit",
"typeVersion": 1,
"position": [
512,
1680
],
"id": "d6a87c45-2c7e-4f77-b1fd-58e074407f65",
"name": "Limit"
},
{
"parameters": {
"options": {}
},
"type": "n8n-nodes-base.extractFromFile",
"typeVersion": 1,
"position": [
512,
1888
],
"id": "f88bb677-7f2f-4148-958b-2590f2038a3e",
"name": "Extract from File1"
},
{
"parameters": {
"authentication": "oAuth2",
"otherOptions": {}
},
"type": "n8n-nodes-base.slack",
"typeVersion": 2.3,
"position": [
2640,
1008
],
"id": "204a6536-7508-4c77-805c-78f458f38557",
"name": "Send a message",
"disabled": true
},
{
"parameters": {
"projectId": {
"__rl": true,
"mode": "list",
"value": ""
},
"sqlQuery": "SELECT",
"options": {}
},
"type": "n8n-nodes-base.googleBigQuery",
"typeVersion": 2.1,
"position": [
1728,
1328
],
"id": "e2ca27a2-12e6-4304-9c61-61683bd53c36",
"name": "Execute a SQL query"
},
{
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
1520,
1328
],
"id": "4a047f60-701d-4ccd-a67c-1a7117c27670",
"name": "Schedule Trigger"
},
{
"parameters": {
"authentication": "oAuth2",
"otherOptions": {}
},
"type": "n8n-nodes-base.slack",
"typeVersion": 2.3,
"position": [
1936,
1328
],
"id": "276d4e41-7b7c-43f4-b416-35f0029d3e76",
"name": "Send a message1"
},
{
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
1520,
1168
],
"id": "873ceb25-915e-4935-a6f8-b0423cf2835b",
"name": "Schedule Trigger1"
},
{
"parameters": {
"operation": "insert",
"projectId": {
"__rl": true,
"mode": "list",
"value": ""
},
"datasetId": {
"__rl": true,
"mode": "list",
"value": ""
},
"tableId": {
"__rl": true,
"mode": "list",
"value": ""
},
"options": {}
},
"type": "n8n-nodes-base.googleBigQuery",
"typeVersion": 2.1,
"position": [
1744,
1168
],
"id": "2da232f9-7ce5-4b96-be82-275bb26224a9",
"name": "Insert rows in a table"
}
],
"connections": {
"HTTP Request": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Positive",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Negative",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"When clicking \u2018Test workflow\u2019": {
"main": [
[
{
"node": "Data Collect1",
"type": "main",
"index": 0
}
]
]
},
"Data Collect1": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields1": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Edit Fields1",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Edit Fields2",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields2": {
"main": [
[
{
"node": "Positive",
"type": "main",
"index": 0
},
{
"node": "Negative",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Positive",
"type": "ai_outputParser",
"index": 0
},
{
"node": "Negative",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"HTTP Request1": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Negative": {
"main": [
[
{
"node": "HTTP Request1",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Aggregate1",
"type": "main",
"index": 0
}
]
]
},
"Aggregate1": {
"main": [
[
{
"node": "Gmail",
"type": "main",
"index": 0
},
{
"node": "Send a message",
"type": "main",
"index": 0
}
]
]
},
"Positive": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"GitHub": {
"main": [
[
{
"node": "Extract from File1",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request2": {
"main": [
[
{
"node": "Extract from File",
"type": "main",
"index": 0
}
]
]
},
"Extract from File": {
"main": [
[
{
"node": "Limit",
"type": "main",
"index": 0
}
]
]
},
"Limit": {
"main": [
[
{
"node": "Edit Fields3",
"type": "main",
"index": 0
}
]
]
},
"Extract from File1": {
"main": [
[
{
"node": "Edit Fields3",
"type": "main",
"index": 0
}
]
]
},
"Execute a SQL query": {
"main": [
[
{
"node": "Send a message1",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Execute a SQL query",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger1": {
"main": [
[
{
"node": "Insert rows in a table",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"staticData": null,
"meta": null,
"versionId": "ba4079cb-50bc-419c-adf5-0162756983ee",
"triggerCount": 0,
"shared": [
{
"createdAt": "2025-09-03T02:28:03.221Z",
"updatedAt": "2025-09-03T02:28:03.221Z",
"role": "workflow:owner",
"workflowId": "5W0QgdykUYgayvdX",
"projectId": "sjNgDrdbhRMMF6SK"
}
],
"tags": [
{
"createdAt": "2025-06-25T04:00:38.130Z",
"updatedAt": "2025-06-25T04:00:38.130Z",
"id": "EyGUZypc5DKHVUyY",
"name": "\ud328\uc2a4\ud2b8\ucea0\ud37c\uc2a4"
}
]
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
My workflow 250630. Uses httpRequest, lmChatOpenAi, outputParserStructured, gmail. Event-driven trigger; 37 nodes.
Source: https://github.com/2innnnn0/fastcampus-n8n-data-analysis-agent/blob/main/workflows/[5W0QgdykUYgayvdX]my-workflow-250630.json — 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.
Before adding a new npm package as a dependency, you should know if it's actively maintained, widely used, and safe to build on. This workflow does that analysis automatically.
This workflow analyzes any npm package and delivers a data-driven recommendation using Firecrawl + APIs + AI reasoning.
Streamline your HR recruitment process with this intelligent automation that reads candidate emails and resumes, analyzes them using GPT-4, and automatically shortlists or rejects applicants based on
Whether you’re a product manager, developer, or simply curious about workflow automation, you’re in the right place. This n8n workflow is designed to help you streamline and automate your social media
Revolutionize your recruitment process with intelligent AI-driven candidate screening that evaluates resumes, scores applicants, and automatically routes them based on fit - saving 10-15 hours per wee