Files
n8n/1.云大阁邮件.md

652 lines
46 KiB
Markdown
Raw Normal View History

2025-09-01 23:48:02 +08:00
{
"nodes": [
{
"parameters": {
2025-09-07 17:56:25 +08:00
"promptType": "define",
"text": "=你是一个专业的前端文案工程师和信息可视化专家。\n以下是一个大模型生成的报告我觉得存在问题需要改进以下是修改建议\n{{ $json.data['修改意见'] }}\n以下是原报告修改后按照原格式输出\n{{ $('Code2').item.json.html }}",
"batching": {}
2025-09-01 23:48:02 +08:00
},
2025-09-07 17:56:25 +08:00
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.7,
2025-09-01 23:48:02 +08:00
"position": [
2025-09-07 17:56:25 +08:00
-112,
944
2025-09-01 23:48:02 +08:00
],
2025-09-07 17:56:25 +08:00
"id": "e4ecc2b0-b0aa-4752-b2d3-cac1fd45b296",
"name": "Basic LLM Chain1"
2025-09-01 23:48:02 +08:00
},
{
"parameters": {
2025-09-07 17:56:25 +08:00
"model": {
"__rl": true,
"value": "qwen2.5-7b-instruct",
"mode": "list",
"cachedResultName": "qwen2.5-7b-instruct"
},
2025-09-01 23:48:02 +08:00
"options": {}
},
2025-09-07 17:56:25 +08:00
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.2,
2025-09-01 23:48:02 +08:00
"position": [
2025-09-07 17:56:25 +08:00
-112,
1136
2025-09-01 23:48:02 +08:00
],
2025-09-07 17:56:25 +08:00
"id": "e7a335c5-783a-4a59-9c85-140c1cec26e5",
"name": "OpenAI Chat Model1",
2025-09-01 23:48:02 +08:00
"credentials": {
2025-09-07 17:56:25 +08:00
"openAiApi": {
"id": "vABx27LgrvIpKZze",
"name": "OpenAi account"
2025-09-01 23:48:02 +08:00
}
}
},
{
"parameters": {
2025-09-07 17:56:25 +08:00
"operation": "sendAndWait",
"fromEmail": "1594481789@qq.com",
"toEmail": "383369080@qq.com",
"subject": "本周邮件",
"message": "={{ $json.text }}",
"responseType": "customForm",
"formFields": {
"values": [
2025-09-01 23:48:02 +08:00
{
2025-09-07 17:56:25 +08:00
"fieldLabel": "yes or no ?",
"fieldType": "dropdown",
"fieldOptions": {
"values": [
{
"option": "yes"
},
{
"option": "no"
}
]
},
"requiredField": true
},
{
"fieldLabel": "修改意见",
"fieldType": "textarea"
2025-09-01 23:48:02 +08:00
}
]
2025-09-07 17:56:25 +08:00
},
"options": {}
2025-09-01 23:48:02 +08:00
},
2025-09-07 17:56:25 +08:00
"type": "n8n-nodes-base.emailSend",
"typeVersion": 2.1,
2025-09-01 23:48:02 +08:00
"position": [
2025-09-07 17:56:25 +08:00
192,
944
2025-09-01 23:48:02 +08:00
],
2025-09-07 17:56:25 +08:00
"id": "23aff25f-9069-45fb-96ab-71240b8a3c2b",
"name": "SendAndWait email1",
"webhookId": "ea2f0334-e4f1-4d5f-b5eb-274a26b30027",
"credentials": {
"smtp": {
"id": "XyE7qW0Q0ebTpAD4",
"name": "SMTP account"
}
}
2025-09-01 23:48:02 +08:00
},
{
"parameters": {
2025-09-07 17:56:25 +08:00
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "13f4121b-9900-4757-ba38-1e8fbc71697e",
"leftValue": "={{ $json.data['yes or no ?'] }}",
"rightValue": "yes",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
2025-09-01 23:48:02 +08:00
"options": {}
},
2025-09-07 17:56:25 +08:00
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
2025-09-01 23:48:02 +08:00
"position": [
2025-09-07 17:56:25 +08:00
336,
944
2025-09-01 23:48:02 +08:00
],
2025-09-07 17:56:25 +08:00
"id": "4bc8c773-63fa-4a6d-9f0f-e9a31a7bfedf",
"name": "If2"
2025-09-01 23:48:02 +08:00
},
{
"parameters": {
2025-09-07 17:56:25 +08:00
"method": "POST",
"url": "https://yundage.com/api/statistics/report",
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Bearer",
"value": "0a1fa2d3016b172bd2fbc302ab6d060f"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n\"startTime\":\"{{ $now.minus({ weeks: 1 }).toFormat('yyyy-MM-dd') }} 00:00:00\",\n\"endTime\":\"{{ $now.toFormat('yyyy-MM-dd') }} 00:00:00\"\n}\n",
"options": {}
2025-09-01 23:48:02 +08:00
},
2025-09-07 17:56:25 +08:00
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
2025-09-01 23:48:02 +08:00
"position": [
2025-09-07 17:56:25 +08:00
-1056,
832
2025-09-01 23:48:02 +08:00
],
2025-09-07 17:56:25 +08:00
"id": "f9356690-a82e-4a71-8814-ead6dada53f7",
"name": "HTTP Request",
"credentials": {
"httpBearerAuth": {
"id": "oh4QM0WGWwPuhuli",
"name": "Bearer Auth account"
}
}
2025-09-01 23:48:02 +08:00
},
{
"parameters": {
2025-09-07 17:56:25 +08:00
"batchSize": "=1",
2025-09-01 23:48:02 +08:00
"options": {}
},
2025-09-07 17:56:25 +08:00
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 3,
2025-09-01 23:48:02 +08:00
"position": [
2025-09-07 17:56:25 +08:00
688,
800
2025-09-01 23:48:02 +08:00
],
2025-09-07 17:56:25 +08:00
"id": "144d9e1b-5f88-4a9c-954f-8d3c7fa487ea",
"name": "Loop Over Items1"
2025-09-01 23:48:02 +08:00
},
{
"parameters": {
2025-09-07 17:56:25 +08:00
"promptType": "define",
"text": "=你是一个专业的前端文案工程师和信息可视化专家。请基于以下 JSON 格式的报告摘要数据,帮我生成一个高质量的 HTML 页面。\n\n以下是你要展示的内容数据\n{{ $json.result.allfile }}\n请你按照如下要求设计这个 HTML 页面:\n\n### 📌 页面结构要求:\n1. 页面标题为:**《最新行业报告汇总》**\n2. 页面顶部有一个**简洁的横幅标题**,居中展示。\n3. 每一份报告以**卡片Card形式**排布,每张卡片包括:\n - 报告标题(使用 <h3> 或加粗字体)\n - 报告摘要(一段文字,控制在 3-4 行)\n - 阅读链接(带跳转的超链接,按钮或文字链接格式)\n4. 页面整体采用**响应式设计**,在桌面和移动端上表现良好。\n5. 使用美观的字体配色,建议配色主题为:\n - 主标题颜色:#2c3e50(深蓝色)\n - 正文颜色:#34495e\n - 背景色:#f8f9fa 或白色\n - 链接颜色:#3498db(蓝色)\n6. 页面使用简洁的 CSS 样式,内嵌在 `<style>` 中,不要依赖外部 CSS 文件。\n7. 你可以为每张卡片添加轻微阴影效果或圆角,提升视觉体验。\n\n请输出完整 HTML 源码,不要包含额外解释或说明。\n输出不要带代码块说明```等符号我需要你输出的html代码复制就可以作为网页使用\n示例\n<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>《最新行业报告汇总》</title>\n <style>\n body {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n background-color: #f8f9fa; /* 背景色 */\n color: #34495e; /* 正文颜色 */\n margin: 0;\n padding: 0;\n line-height: 1.6;\n }\n\n .header-banner {\n background-color: #ffffff;\n padding: 40px 20px;\n text-align: center;\n border-bottom: 1px solid #e0e0e0;\n margin-bottom: 30px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.03);\n }\n\n .header-banner h1 {\n color: #2c3e50; /* 主标题颜色 */\n font-size: 2.5em;\n margin: 0;\n padding: 0;\n }\n\n .header-banner p {\n color: #7f8c8d;\n font-size: 1.1em;\n margin-top: 10px;\n }\n\n .report-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 30px;\n max-width: 1200px;\n margin: 0 auto 50px auto;\n padding: 0 20px;\n }\n\n .card {\n background-color: #ffffff;\n border-radius: 10px;\n box-shadow: 0 4px 15px rgba(0,0,0,0.08); /* 轻微阴影效果 */\n padding: 25px;\n display: flex; /* 使用flex布局让内容自适应 */\n flex-direction: column;\n justify-content: space-between; /* 让按钮在底部 */\n transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;\n }\n\n .card:hover {\n transform: translateY(-5px);\n box-shadow: 0 6px 20px rgba(0,0,0,0.12);\n }\n\n .card-title {\n font-size: 1.3em;\n color: #2c3e50; /* 深蓝色 */\n margin-top: 0;\n margin-bottom: 15px;\n font-weight: bold;\n }\n\n .card-summary {\n font-size: 0.95em;\n color: #34495e; /* 正文颜色 */\n margin-bottom: 20px;\n /*\n // 以下是原始可能导致截断的CSS现在移除或注释掉\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 4; // 限制为4行\n -webkit-box-orient: vertical;\n height: 96px; // 或其他固定高度,现在移除\n */\n flex-grow: 1; /* 让摘要占据可用空间,使其内容完全显示 */\n }\n\n .card-link {\n display: inline-block;\n background-color: #3498db; /* 链接颜色 */\n color: #ffffff;\n padding: 10px 20px;\n border-radius: 5px;\n t
"batching": {}
2025-09-01 23:48:02 +08:00
},
2025-09-07 17:56:25 +08:00
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.7,
2025-09-01 23:48:02 +08:00
"position": [
2025-09-07 17:56:25 +08:00
368,
352
2025-09-01 23:48:02 +08:00
],
2025-09-07 17:56:25 +08:00
"id": "99072634-e687-4258-8e1f-37d35094260d",
"name": "Basic LLM Chain2"
2025-09-01 23:48:02 +08:00
},
{
"parameters": {
2025-09-07 17:56:25 +08:00
"fromEmail": "yundage@caict.ac.cn",
2025-09-01 23:48:02 +08:00
"toEmail": "={{ $json.email }}",
2025-09-07 17:56:25 +08:00
"subject": "=云大阁新报告推送",
2025-09-01 23:48:02 +08:00
"emailFormat": "=html",
2025-09-07 17:56:25 +08:00
"html": "={{ $('Code2').item.json.html }}",
"options": {
"appendAttribution": false
}
2025-09-01 23:48:02 +08:00
},
"type": "n8n-nodes-base.emailSend",
"typeVersion": 2.1,
"position": [
2025-09-07 17:56:25 +08:00
960,
816
2025-09-01 23:48:02 +08:00
],
2025-09-07 17:56:25 +08:00
"id": "ab616ac3-f5ea-45d2-b51b-109042ea8b0b",
"name": "Send email1",
2025-09-01 23:48:02 +08:00
"webhookId": "bf65eb7b-2c76-4f2c-b936-25f4b92e3cba",
"credentials": {
"smtp": {
2025-09-07 17:56:25 +08:00
"id": "EwM5mBudN0JCWpF0",
"name": "媛姐"
2025-09-01 23:48:02 +08:00
}
}
},
{
"parameters": {
"operation": "executeQuery",
"query": "SELECT DISTINCT name, email FROM subscribers WHERE active = 1;\n\n\n\n",
"options": {}
},
"type": "n8n-nodes-base.mySql",
"typeVersion": 2.4,
"position": [
2025-09-07 17:56:25 +08:00
480,
800
2025-09-01 23:48:02 +08:00
],
2025-09-07 17:56:25 +08:00
"id": "83099d6f-7f44-4458-9c4f-f78d90cfff51",
"name": "sql获取用户信息1",
2025-09-01 23:48:02 +08:00
"credentials": {
"mySql": {
2025-09-07 17:56:25 +08:00
"id": "WgJFY66tWFEyYTXj",
"name": "yuanjie"
2025-09-01 23:48:02 +08:00
}
}
},
{
"parameters": {
"jsCode": "// 创建一个数组,收集所有 item.json 内容\nconst allItems = [];\nlet itemCount = 0;\n\n// 遍历所有输入的 item收集 json 数据\nfor (const item of $input.all()) {\n allItems.push(item.json);\n itemCount++;\n}\n\n// 返回一个 item其中包含所有 item.json 的合并数据以及 item 的数量\n\n\n\n\n\n// Loop over input items and add a new field called 'myNewField' to the JSON of each one\nconst mergedString = allItems\n .map(doc => JSON.stringify(doc, null, 2)) // 格式化每个对象缩进2空格\n .join('\\n\\n'); // 每个对象之间用两个换行分隔\n \n// 构建新格式的对象\nconst result = {\n allfile: mergedString,\n totalItems: itemCount \n};\n\nreturn {result};"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
2025-09-07 17:56:25 +08:00
-352,
368
2025-09-01 23:48:02 +08:00
],
2025-09-07 17:56:25 +08:00
"id": "e4d22346-c4f1-4ce7-92d2-d81fcf5e3668",
"name": "Code3"
2025-09-01 23:48:02 +08:00
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "36a179d0-001f-4cb9-a271-da04a6e5f28e",
"leftValue": "={{ $json.result.totalItems }}",
"rightValue": 0,
"operator": {
"type": "number",
"operation": "gt"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
2025-09-07 17:56:25 +08:00
-144,
368
2025-09-01 23:48:02 +08:00
],
2025-09-07 17:56:25 +08:00
"id": "5d9ac4e0-e7c8-4996-853b-c551ea8c339c",
"name": "If3"
2025-09-01 23:48:02 +08:00
},
{
"parameters": {
"options": {}
},
2025-09-07 17:56:25 +08:00
"type": "@n8n/n8n-nodes-langchain.lmChatDeepSeek",
"typeVersion": 1,
2025-09-01 23:48:02 +08:00
"position": [
2025-09-07 17:56:25 +08:00
368,
512
2025-09-01 23:48:02 +08:00
],
2025-09-07 17:56:25 +08:00
"id": "e199cea3-ae23-48d8-bca8-cb21e2b048a8",
"name": "DeepSeek Chat Model",
2025-09-01 23:48:02 +08:00
"credentials": {
2025-09-07 17:56:25 +08:00
"deepSeekApi": {
"id": "w4rUTabwUayONNbb",
"name": "DeepSeek account"
2025-09-01 23:48:02 +08:00
}
}
},
2025-09-07 17:56:25 +08:00
{
"parameters": {
"jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\nfor (const item of $input.all()) {\n item.json.myNewField = 1;\n}\n\nreturn $input.all();"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
112,
352
],
"id": "d4a1edb4-f336-4cde-9e76-8c7f889e119f",
"name": "Code"
},
{
"parameters": {
"jsCode": "// 在 n8n 的 Code 节点中使用\n\nconst reports = $input.first().json.data.data;\n\n// !! 重要:把下面的 YOUR_N8N_WEBHOOK_URL 换成你新创建的 Webhook URL\nconst n8nDownloadWebhookUrl = 'https://YOUR_N8N_INSTANCE.COM/webhook-test/DOWNLOAD_PATH'; \n\nconst reportCards = reports.map(report => {\n const formattedDate = report.publishTime.split('T')[0];\n \n // 对文件名进行 URL 编码,以防文件名中含有特殊字符\n const encodedTitle = encodeURIComponent(report.title);\n\n return `\n <div class=\"card\">\n <h3 class=\"card-title\">${report.title}</h3>\n <p class=\"card-summary\">${report.summary}</p>\n <div class=\"card-actions\">\n <a href=\"${report.reportUrl}\" class=\"card-link read-link\" target=\"_blank\">在线阅读</a>\n <a href=\"${n8nDownloadWebhookUrl}?reportId=${report.reportId}&title=${encodedTitle}\" class=\"card-link download-link\" target=\"_blank\">下载报告</a>\n </div>\n <p class=\"card-meta\">发布日期: ${formattedDate}</p>\n </div>\n `;\n}).join('');\n\nconst fullHtml = `\n<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>《最新行业报告汇总》</title>\n <style>\n body { font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif; background-color: #f8f9fa; color: #34495e; margin: 0; padding: 0; line-height: 1.6; }\n .header-banner { background-color: #ffffff; padding: 40px 20px; text-align: center; border-bottom: 1px solid #e0e0e0; margin-bottom: 30px; box-shadow: 0 2px 4px rgba(0,0,0,0.03); }\n .header-banner h1 { color: #2c3e50; font-size: 2.5em; margin: 0; }\n .report-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 30px; max-width: 1200px; margin: 0 auto 50px auto; padding: 0 20px; }\n .card { background-color: #ffffff; border-radius: 10px; box-shadow: 0 4px 15px rgba(0,0,0,0.08); padding: 25px; display: flex; flex-direction: column; transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out; }\n .card:hover { transform: translateY(-5px); box-shadow: 0 6px 20px rgba(0,0,0,0.12); }\n .card-title { font-size: 1.25em; color: #2c3e50; font-weight: bold; margin: 0 0 15px 0; }\n .card-summary { font-size: 0.95em; color: #34495e; flex-grow: 1; margin: 0 0 20px 0; }\n .card-actions { display: flex; gap: 10px; margin-top: auto; margin-bottom: 15px; }\n .card-link { flex: 1; display: inline-block; color: #ffffff; padding: 10px 15px; border-radius: 5px; text-decoration: none; font-weight: bold; text-align: center; transition: background-color 0.2s ease-in-out; border: none; cursor: pointer; font-size: 0.9em; }\n .read-link { background-color: #3498db; }\n .read-link:hover { background-color: #2980b9; }\n .download-link { background-color: #2ecc71; }\n .download-link:hover { background-color: #27ae60; }\n .card-meta { font-size: 0.85em; color: #7f8c8d; text-align: right; margin: 0; }\n @media (max-width: 768px) { .header-banner h1 { font-size: 2em; } .report-grid { grid-template-columns: 1fr; } }\n </style>\n</head>\n<body>\n <div class=\"header-banner\">\n <h1>《最新行业报告汇总》</h1>\n </div>\n <div class=\"report-grid\">\n ${reportCards}\n </div>\n</body>\n</html>`;\n\nreturn {\n html: fullHtml\n};\n\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
-704,
352
],
"id": "ae3df0ef-822d-4fbf-a7da-b19ff90fd729",
"name": "Code1"
},
{
"parameters": {
"jsCode": "/** n8n Code Node **/\nconst reports = $input.first().json.data.data;\n// ↓ 未来如再加“下载”逻辑时可复用;现在占位即可\nconst n8nDownloadWebhookUrl = '';\nconst reportCards = reports\n .map(report => {\n const formattedDate = report.publishTime.split('T')[0];\n return /* html */`\n <div class=\"card\">\n <h3 class=\"card-title\">${report.title}</h3>\n <p class=\"card-summary\">${report.summary}</p>\n <div class=\"card-actions\">\n <a href=\"${report.reportUrl}\" class=\"card-link read-link\" target=\"_blank\" rel=\"noopener\">报告下载链接</a>\n </div>\n <p class=\"card-meta\">发布日期: ${formattedDate}</p>\n </div>`;\n })\n .join('');\nconst fullHtml =`<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>最新报告推送</title>\n <style>\n body{font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;background:#f8f9fa;color:#34495e;margin:0;padding:0;line-height:1.6}\n .header-banner{background:#fff;padding:0 20px 10px;text-align:center;border-bottom:1px solid #e0e0e0;margin-bottom:15px;box-shadow:0 2px 4px rgba(0,0,0,.03)}\n .header-banner h1{color:#2c3e50;font-size:3em;margin:10px 0}\n .header-banner img{max-width:220px;height:auto;margin-top:5px;border-radius:8px}\n .report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:25px;max-width:1200px;margin:0 auto 30px;padding:0 20px}\n .card{background:#fff;border-radius:10px;box-shadow:0 4px 15px rgba(0,0,0,.08);padding:25px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}\n .card:hover{transform:translateY(-5px);box-shadow:0 6px 20px rgba(0,0,0,.12)}\n .card-title{font-size:1.25em;color:#2c3e50;font-weight:700;margin:0 0 15px}\n .card-summary{font-size:.95em;color:#34495e;flex-grow:1;margin:0 0 20px}\n .card-actions{display:flex;justify-content:center;margin-bottom:15px}\n .card-link{color:#fff;padding:10px 30px;border-radius:5px;text-decoration:none;font-weight:700;font-size:.95em;text-align:center;transition:background .2s;width:100%;max-width:250px}\n .read-link{background:#3498db}\n .read-link:hover{background:#2980b9}\n .card-meta{font-size:.85em;color:#7f8c8d;text-align:right;margin:0}\n @media(max-width:768px){\n .header-banner h1{font-size:1.8em}\n .report-grid{grid-template-columns:1fr}\n .card-link{max-width:none;padding:10px 20px;font-size:.9em}\n }\n </style>\n</head>\n<body>\n <div class=\"header-banner\">\n <h1>最新报告推送</h1>\n <img src=\"https://youke1.picui.cn/s1/2025/09/04/68b8fcf52b78f.png\" alt=\"报告图标\" loading=\"lazy\">\n </div>\n <div class=\"report-grid\">${reportCards}</div>\n</body>\n</html>`;\nreturn { html: fullHtml, headers: { 'Content-Type': 'text/html' } };\n\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
-864,
832
],
"id": "1b26ea14-d3f5-4bb9-a91a-47f0373ad966",
"name": "Code2"
},
{
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 21 * * 0-4"
}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
-1296,
832
],
"id": "3a80e33f-8492-46c3-828b-964d12589a3a",
"name": "Schedule Trigger"
},
2025-09-01 23:48:02 +08:00
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "582e0f5c-dde5-49f2-9e94-408041ad109c",
"leftValue": "={{ $json.data['yes or no ?'] }}",
"rightValue": "yes",
"operator": {
"type": "string",
"operation": "equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
2025-09-07 17:56:25 +08:00
-272,
816
2025-09-01 23:48:02 +08:00
],
2025-09-07 17:56:25 +08:00
"id": "1251e60c-e5de-4069-93cb-1128f1f7c95b",
2025-09-01 23:48:02 +08:00
"name": "If1"
},
{
"parameters": {
"operation": "sendAndWait",
2025-09-07 17:56:25 +08:00
"fromEmail": "yundage@caict.ac.cn",
"toEmail": "383369080@qq.com",
2025-09-01 23:48:02 +08:00
"subject": "本周邮件",
2025-09-07 17:56:25 +08:00
"message": "={{ $json.html }}",
2025-09-01 23:48:02 +08:00
"responseType": "customForm",
"formFields": {
"values": [
{
"fieldLabel": "yes or no ?",
"fieldType": "dropdown",
"fieldOptions": {
"values": [
{
"option": "yes"
},
{
"option": "no"
}
]
},
"requiredField": true
},
{
"fieldLabel": "修改意见",
"fieldType": "textarea"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.emailSend",
"typeVersion": 2.1,
"position": [
2025-09-07 17:56:25 +08:00
-576,
816
2025-09-01 23:48:02 +08:00
],
2025-09-07 17:56:25 +08:00
"id": "dff6453c-0ced-4d7e-9bd3-69f74bed84f1",
"name": "SendAndWait email2",
2025-09-01 23:48:02 +08:00
"webhookId": "ea2f0334-e4f1-4d5f-b5eb-274a26b30027",
"credentials": {
"smtp": {
2025-09-07 17:56:25 +08:00
"id": "EwM5mBudN0JCWpF0",
"name": "媛姐"
2025-09-01 23:48:02 +08:00
}
}
}
],
"connections": {
2025-09-07 17:56:25 +08:00
"Basic LLM Chain1": {
2025-09-01 23:48:02 +08:00
"main": [
[
{
2025-09-07 17:56:25 +08:00
"node": "SendAndWait email1",
2025-09-01 23:48:02 +08:00
"type": "main",
"index": 0
}
]
]
},
2025-09-07 17:56:25 +08:00
"OpenAI Chat Model1": {
"ai_languageModel": [
2025-09-01 23:48:02 +08:00
[
{
2025-09-07 17:56:25 +08:00
"node": "Basic LLM Chain1",
"type": "ai_languageModel",
2025-09-01 23:48:02 +08:00
"index": 0
}
]
]
},
2025-09-07 17:56:25 +08:00
"SendAndWait email1": {
2025-09-01 23:48:02 +08:00
"main": [
[
{
2025-09-07 17:56:25 +08:00
"node": "If2",
2025-09-01 23:48:02 +08:00
"type": "main",
"index": 0
}
]
]
},
2025-09-07 17:56:25 +08:00
"If2": {
2025-09-01 23:48:02 +08:00
"main": [
[
{
2025-09-07 17:56:25 +08:00
"node": "sql获取用户信息1",
2025-09-01 23:48:02 +08:00
"type": "main",
"index": 0
}
]
]
},
2025-09-07 17:56:25 +08:00
"HTTP Request": {
"main": [
2025-09-01 23:48:02 +08:00
[
{
2025-09-07 17:56:25 +08:00
"node": "Code2",
"type": "main",
2025-09-01 23:48:02 +08:00
"index": 0
}
]
]
},
2025-09-07 17:56:25 +08:00
"Loop Over Items1": {
2025-09-01 23:48:02 +08:00
"main": [
2025-09-07 17:56:25 +08:00
[],
2025-09-01 23:48:02 +08:00
[
{
2025-09-07 17:56:25 +08:00
"node": "Send email1",
2025-09-01 23:48:02 +08:00
"type": "main",
"index": 0
}
]
]
},
2025-09-07 17:56:25 +08:00
"Basic LLM Chain2": {
"main": [
[]
]
},
"Send email1": {
2025-09-01 23:48:02 +08:00
"main": [
[
{
2025-09-07 17:56:25 +08:00
"node": "Loop Over Items1",
2025-09-01 23:48:02 +08:00
"type": "main",
"index": 0
}
]
]
},
2025-09-07 17:56:25 +08:00
"sql获取用户信息1": {
2025-09-01 23:48:02 +08:00
"main": [
[
{
2025-09-07 17:56:25 +08:00
"node": "Loop Over Items1",
2025-09-01 23:48:02 +08:00
"type": "main",
"index": 0
}
]
]
},
2025-09-07 17:56:25 +08:00
"Code3": {
2025-09-01 23:48:02 +08:00
"main": [
[
{
2025-09-07 17:56:25 +08:00
"node": "If3",
2025-09-01 23:48:02 +08:00
"type": "main",
"index": 0
}
]
]
},
2025-09-07 17:56:25 +08:00
"If3": {
2025-09-01 23:48:02 +08:00
"main": [
[
{
2025-09-07 17:56:25 +08:00
"node": "Code",
2025-09-01 23:48:02 +08:00
"type": "main",
"index": 0
}
]
]
},
2025-09-07 17:56:25 +08:00
"DeepSeek Chat Model": {
"ai_languageModel": [
2025-09-01 23:48:02 +08:00
[
{
2025-09-07 17:56:25 +08:00
"node": "Basic LLM Chain2",
"type": "ai_languageModel",
2025-09-01 23:48:02 +08:00
"index": 0
}
2025-09-07 17:56:25 +08:00
]
]
},
"Code": {
"main": [
2025-09-01 23:48:02 +08:00
[
{
2025-09-07 17:56:25 +08:00
"node": "Basic LLM Chain2",
2025-09-01 23:48:02 +08:00
"type": "main",
"index": 0
}
]
]
},
2025-09-07 17:56:25 +08:00
"Code1": {
"main": [
[]
]
},
"Code2": {
2025-09-01 23:48:02 +08:00
"main": [
[
{
2025-09-07 17:56:25 +08:00
"node": "SendAndWait email2",
2025-09-01 23:48:02 +08:00
"type": "main",
"index": 0
}
]
]
},
2025-09-07 17:56:25 +08:00
"Schedule Trigger": {
"main": [
2025-09-01 23:48:02 +08:00
[
{
2025-09-07 17:56:25 +08:00
"node": "HTTP Request",
"type": "main",
2025-09-01 23:48:02 +08:00
"index": 0
}
]
]
},
2025-09-07 17:56:25 +08:00
"If1": {
2025-09-01 23:48:02 +08:00
"main": [
[
{
2025-09-07 17:56:25 +08:00
"node": "sql获取用户信息1",
"type": "main",
"index": 0
}
],
[
{
"node": "Basic LLM Chain1",
2025-09-01 23:48:02 +08:00
"type": "main",
"index": 0
}
]
]
},
2025-09-07 17:56:25 +08:00
"SendAndWait email2": {
2025-09-01 23:48:02 +08:00
"main": [
[
{
2025-09-07 17:56:25 +08:00
"node": "If1",
2025-09-01 23:48:02 +08:00
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {
2025-09-07 17:56:25 +08:00
"Basic LLM Chain2": [
2025-09-01 23:48:02 +08:00
{
2025-09-07 17:56:25 +08:00
"text": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>最新行业报告汇总</title>\n <style>\n * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n body {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", sans-serif;\n background-color: #f8f9fa;\n color: #34495e;\n line-height: 1.6;\n padding: 20px;\n }\n .container {\n max-width: 1200px;\n margin: 0 auto;\n }\n .header {\n text-align: center;\n margin-bottom: 40px;\n padding: 30px 0;\n }\n .header h1 {\n color: #2c3e50;\n font-size: 32px;\n font-weight: 700;\n margin-bottom: 10px;\n }\n .header p {\n color: #7f8c8d;\n font-size: 16px;\n }\n .reports-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));\n gap: 25px;\n }\n .report-card {\n background: white;\n border-radius: 12px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n padding: 24px;\n transition: transform 0.3s ease, box-shadow 0.3s ease;\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n .report-card:hover {\n transform: translateY(-5px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);\n }\n .report-title {\n color: #2c3e50;\n font-size: 18px;\n font-weight: 700;\n margin-bottom: 15px;\n line-height: 1.4;\n }\n .report-summary {\n color: #5a6c7d;\n font-size: 14px;\n line-height: 1.6;\n margin-bottom: 20px;\n flex-grow: 1;\n display: -webkit-box;\n -webkit-line-clamp: 4;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n .report-meta {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: auto;\n }\n .report-date {\n color: #95a5a6;\n font-size: 13px;\n }\n .report-link {\n color: #3498db;\n text-decoration: none;\n font-weight: 600;\n font-size: 14px;\n padding: 6px 12px;\n border: 1px solid #3498db;\n border-radius: 6px;\n transition: all 0.2s ease;\n }\n .report-link:hover {\n background-color: #3498db;\n color: white;\n }\n @media (max-width: 768px) {\n .reports-grid {\n grid-template-columns: 1fr;\n }\n .header h1 {\n font-size: 26px;\n }\n .report-card {\n padding: 20px;\n }\n }\n .footer {\n text-align: center;\n margin-top: 50px;\n padding: 20px;\n color: #7f8c8d;\n font-size: 14px;\n }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <div class=\"header\">\n <h1>最新行业报告汇总</h1>\n <p>收录最新行业洞察与技术趋势报告</p>\n </div>\n\n <div class=\"reports-grid\">\n <div class=\"report-card\">\n <h3 class=\"report-title\">内部审计数智化体系、路径和实践</h3>\n <p class=\"report-summary\">围绕内部审计数智化,阐述了其分为信息化、数字化、智能化三阶段的划分及实现路径,指出成功关键在于前瞻性规划与知识转移,强调转型需技管结合,介绍了审计数据体系的核心支撑作用、人员能力培养与技术协同方式,以及审计大模型面临的问题和相关标准研究情况。</p>\n <div class=\"report-meta\">\n <span class=\"report-date\">2025-08-18</span>\n <a href=\"https://yundage.com/report/detail/994\" class=\"report-link\" target=\"_blank\">阅读报告</a>\n </div>\n </div>\n\n <div class=\"report-card\">\n <h3 class=\"report-title\">平安人寿数据管理实践指南</h3>\n <p class=\"report-summary\">阐述了平安人寿在数字化转型中通过构建统一数据管理、资产、服务、平<EFBFBD><EFBFBD>
2025-09-01 23:48:02 +08:00
}
]
},
"meta": {
2025-09-07 17:56:25 +08:00
"templateCredsSetupCompleted": true,
"instanceId": "31371ac9d28b9a1d4892bd56ec39f774495e245edb1cd9d4eddc5c05bf7c7dce"
2025-09-01 23:48:02 +08:00
}
}