使用AI自动化Morning Brew风格Reddit摘要并发布至DEV
这是一个AI Summarization, Multimodal AI领域的自动化工作流,包含 26 个节点。主要使用 If, Set, Wait, Gmail, Markdown 等节点。 使用AI自动化Morning Brew风格Reddit摘要并发布至DEV
- •Google 账号和 Gmail API 凭证
- •可能需要目标 API 的认证凭证
- •OpenAI API Key
- •Google Gemini API Key
使用的节点 (26)
{
"meta": {
"instanceId": "a96ce695b95a8d0373d0f6e4718fa38b0e9bcf8446b99d351d0c5da3f156c7e5",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "7c36980c-0a71-4508-a4a6-af397d6b4d1d",
"name": "RSS 阅读",
"type": "n8n-nodes-base.rssFeedRead",
"position": [
240,
152
],
"parameters": {
"url": "https://www.reddit.com/r/n8n.rss",
"options": {}
},
"typeVersion": 1.2
},
{
"id": "50ee913e-46bc-46e2-9416-97198faba1e3",
"name": "从 URL 启动批量提取",
"type": "@brightdata/n8n-nodes-brightdata.brightData",
"position": [
912,
152
],
"parameters": {
"urls": "={{ $json.data.toJsonString() }}",
"resource": "webScrapper",
"operation": "triggerCollectionByUrl",
"dataset_id": {
"__rl": true,
"mode": "list",
"value": "gd_lvz8ah06191smkebj4",
"cachedResultName": "Reddit- Posts"
},
"requestOptions": {}
},
"credentials": {
"brightdataApi": {
"id": "4iwoUulbxZ1WHLdz",
"name": "Angel BrightData account"
}
},
"typeVersion": 1
},
{
"id": "bd35cd68-270a-46eb-b05d-e698d344bf02",
"name": "提取 URL",
"type": "n8n-nodes-base.set",
"position": [
464,
152
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "11be4491-e850-4cec-8401-45592419e30f",
"name": "url",
"type": "string",
"value": "={{ $json.link }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "42f27a49-f950-4759-b433-a13e765facea",
"name": "聚合 URL 到单个对象",
"type": "n8n-nodes-base.aggregate",
"position": [
688,
152
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "92ce2ec2-8f63-4dbf-85ed-c5be766d6710",
"name": "遍历项目",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1136,
152
],
"parameters": {
"options": {
"reset": true
}
},
"typeVersion": 3
},
{
"id": "08eee5cc-dc09-46f3-b71f-728307d0d44e",
"name": "再次检查快照是否成功",
"type": "n8n-nodes-base.noOp",
"position": [
1984,
256
],
"parameters": {},
"typeVersion": 1
},
{
"id": "5056bdbc-6332-4121-8b9f-d4bca6d76a9e",
"name": "检查批量提取状态",
"type": "@brightdata/n8n-nodes-brightdata.brightData",
"position": [
1360,
160
],
"parameters": {
"resource": "webScrapper",
"operation": "monitorProgressSnapshot",
"snapshot_id": "={{ $json.snapshot_id }}",
"requestOptions": {}
},
"credentials": {
"brightdataApi": {
"id": "4iwoUulbxZ1WHLdz",
"name": "Angel BrightData account"
}
},
"typeVersion": 1
},
{
"id": "dc15490e-93cd-4e23-9531-0874b6a72630",
"name": "检查批次是否就绪",
"type": "n8n-nodes-base.if",
"position": [
1584,
160
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f5deab49-ea1c-456b-b61a-5458adf991a5",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "ready"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "4ed4650b-2fda-4f85-802c-9824f1e6572c",
"name": "等待 5 秒",
"type": "n8n-nodes-base.wait",
"position": [
1808,
256
],
"webhookId": "31ec9024-cef1-4995-82b2-d26360460782",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "10df46b5-a8d3-4281-8771-37b01f717fc2",
"name": "下载快照内容",
"type": "@brightdata/n8n-nodes-brightdata.brightData",
"position": [
2224,
144
],
"parameters": {
"resource": "webScrapper",
"operation": "downloadSnapshot",
"snapshot_id": "={{ $json.snapshot_id }}",
"requestOptions": {}
},
"credentials": {
"brightdataApi": {
"id": "4iwoUulbxZ1WHLdz",
"name": "Angel BrightData account"
}
},
"typeVersion": 1
},
{
"id": "87c4f679-17a4-4e08-a06b-be2fcb67a6fe",
"name": "提取关键数据",
"type": "n8n-nodes-base.set",
"position": [
2448,
144
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e30d65f3-a6be-4df2-8672-2f69633f9296",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "cc932518-35b3-42cc-9ed7-76b695c5607a",
"name": "description",
"type": "string",
"value": "={{ $json.description }}"
},
{
"id": "3cd26612-27f6-4d31-bfe0-7075d2c05a44",
"name": "comments",
"type": "array",
"value": "={{ $json.comments }}"
},
{
"id": "54b22b70-0c4c-4e68-975b-77fbf2112ede",
"name": "post_id",
"type": "string",
"value": "={{ $json.post_id }}"
},
{
"id": "189999eb-6f59-4810-be8f-dfd1f7f01ef5",
"name": "url",
"type": "string",
"value": "={{ $json.url }}"
},
{
"id": "332a53a2-4182-4490-adc3-1a87426c0ba1",
"name": "num_upvotes",
"type": "number",
"value": "={{ $json.num_upvotes }}"
},
{
"id": "2754e3a3-ee58-4c75-ae8c-296f4c1249a0",
"name": "num_comments",
"type": "number",
"value": "={{ $json.num_comments }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "4e8af0c1-ebcb-4e2b-af25-46ba8800c946",
"name": "将对象减少到 1 个",
"type": "n8n-nodes-base.set",
"position": [
2672,
144
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "00bbe5d7-c761-422c-a542-b32c0f59fd47",
"name": "postdata",
"type": "string",
"value": "=Title: {{ $json.title }}\nDescription: {{ $json.description }}\nURL: {{ $json.url }}\nUpvotes: {{ $json.num_upvotes }}\nComment Count: {{ $json.num_comments }}\nComments: {{ $jmespath($json.comments, '[].{comment: comment, replies: replies[].reply}') \n .map(item => ({\n comment: item.comment || '',\n replies: (item.replies || []).filter(r => r !== null)\n })) \n .toJsonString() }}\n"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "55eebf96-e009-4bb2-a1c2-d10666f5f8cb",
"name": "聚合",
"type": "n8n-nodes-base.aggregate",
"position": [
2896,
144
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "postdata"
}
]
}
},
"typeVersion": 1
},
{
"id": "9a8564aa-17d8-45ae-867b-5062df316301",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
3232,
112
],
"parameters": {
"text": "={{ $json.postdata.join('\\n\\n') }}",
"options": {
"systemMessage": "You are an editorial AI that turns a daily bundle of Reddit posts into a Morning Brew–style email newsletter in clean, inline-styled HTML (NO markdown, NO scripts, NO external CSS).\n\nGOAL\n- Produce a single HTML document, 600px max content width, mobile-friendly, with clearly labeled sections.\n- Voice: brisk, witty-but-professional, informative > clever. One smart joke per issue max.\n- Keep paragraphs short (1–3 sentences). Use bullets for scannability.\n\nINPUT\n- You receive `POSTS_JSON`: an array of objects. Each object has a single string field `postdata` that includes lines like:\n - \"Title: …\"\n - \"Description: …\"\n - \"URL: …\"\n - \"Upvotes: …\"\n - \"Comment Count: …\"\n - \"Comments: …\" where Comments may be empty, null, or a JSON string representing an array of `{comment: string, replies?: string[]}` OR an array of `{comment, replies}` already.\n- Treat missing/empty values as null/empty.\n- Strip boilerplate tokens like \"Read more\", \"View in app\".\n\nNORMALIZATION\n1) For each item, parse `postdata` into fields:\n - title (string)\n - description (string; trim whitespace; collapse repeated spaces)\n - url (string; must be absolute)\n - upvotes (integer; default 0)\n - comment_count (integer; default 0)\n - comments (array of strings). If Comments is:\n - empty/missing → []\n - JSON string → parse; flatten to strings: comment + all replies\n - JSON array → flatten to strings: comment + replies\n2) Deduplicate by `url` (keep the highest (upvotes + comment_count) one).\n3) Score each post for ranking:\n - score = upvotes*3 + comment_count*2\n - Tie-breakers: longer, clearer descriptions win; then alphabetical by title.\n\nSECTIONS & COUNTS\n- Hero / Top Stories: top 3 by score (or fewer if <3 posts).\n- Quick Hits: next 5–8 items by score, single-sentence summaries.\n- Community Q&A: up to 3 items that are explicitly asking for help/feedback (detect with question marks, words like “how”, “help”, “anyone”, “ideas”, “what’s the best”, etc.).\n- Comment Spotlight: 3–5 notable comments (most informative/representative) across ALL posts, trimmed to ≤200 chars each with ellipses if needed; include a source link to the parent post.\n- If a section has no items, omit the section entirely—do not render empty headings.\n\nWRITING RULES\n- For Top Stories, each card includes:\n - Title (linked)\n - 1–2 sentence summary in your voice\n - \"Why it matters\" (1–3 crisp bullets)\n - \"By the numbers\" (optional; only if numeric facts exist)\n - CTA link: “Discuss on r/n8n →”\n- For Quick Hits, 1 sentence + link.\n- For Community Q&A, surface the question in a bolded lead-in, then 1 sentence of context + link.\n- For Comment Spotlight, present the trimmed comment text in quotes plus a small source line with the post title linked.\n\nSTYLE & TONE\n- Morning Brew vibe: skimmable, concrete, conversational; avoid hype, avoid over-clever puns.\n- No first-person singular from the writer (“I”), use newsletter “we” sparingly.\n- Avoid speculation; stick to what’s in the source text.\n- Never fabricate links or numbers.\n\nHTML REQUIREMENTS\n- Output ONLY one complete HTML file. No JSON. No markdown.\n- Use a 100% width wrapper table and a centered 600px container table for email compatibility.\n- All styles must be inline; use system fonts.\n- Include a simple header with newsletter name and date, a nav row (Top Stories • Quick Hits • Community Q&A • Comment Spotlight) that anchors to sections if they exist.\n- Make links obvious and accessible (underline; target not set).\n- Sanitize all text: escape HTML special characters in titles/descriptions/comments.\n\nVARIABLES\n- If provided, use:\n - {{newsletter_name}} (default: \"Automation Brew\")\n - {{issue_date}} in America/Phoenix; format: \"Tuesday, August 19, 2025\"\n- If not provided, compute current date in America/Phoenix and format as above.\n\nTRIMMING & CLEANUP\n- Trim descriptions to ~50–80 words for Top Stories; ~25–35 words for Quick Hits.\n- Remove trailing boilerplate phrases (“Read more”, “View in app”, “View in app Read more”).\n- Collapse repeated whitespace/newlines in comments.\n- When comments exceed 200 chars in Spotlight, trim at a word boundary and append “…”.\n\nACCESSIBILITY\n- Ensure sufficient contrast; include `alt` text on decorative dividers as empty `alt=\"\"`.\n- Use semantic headings (`<h1>`, `<h2>`) but keep inline styles for email.\n\nERROR/FALLBACK\n- If `POSTS_JSON` is empty or cannot be parsed, render a minimal HTML with the header and a single “No new posts today” card and a link to r/n8n.\n\nOUTPUT TEMPLATE (fill with real content; remove any empty sections entirely)\n\n<!doctype html>\n<html>\n <body style=\"margin:0;padding:0;background:#f6f7fb;\">\n <table role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#f6f7fb;\">\n <tr><td align=\"center\">\n <table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:600px;max-width:600px;background:#ffffff;border-radius:8px;overflow:hidden;margin:24px 12px;\">\n <!-- Header -->\n <tr><td style=\"padding:20px 24px;border-bottom:1px solid #eee;\">\n <h1 style=\"margin:0;font-family:Arial,Helvetica,sans-serif;font-size:22px;line-height:1.3;color:#111;\">\n {{newsletter_name}}\n </h1>\n <div style=\"margin-top:4px;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#555;\">\n {{issue_date}}\n </div>\n </td></tr>\n\n <!-- Nav (render only if multiple sections present) -->\n <tr><td style=\"padding:12px 24px;border-bottom:1px solid #eee;\">\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#333;\">\n <!-- Conditionally include anchors that exist -->\n <a href=\"#top-stories\" style=\"color:#1a73e8;text-decoration:underline;margin-right:12px;\">Top Stories</a>\n <a href=\"#quick-hits\" style=\"color:#1a73e8;text-decoration:underline;margin-right:12px;\">Quick Hits</a>\n <a href=\"#community-qa\" style=\"color:#1a73e8;text-decoration:underline;margin-right:12px;\">Community Q&A</a>\n <a href=\"#comment-spotlight\" style=\"color:#1a73e8;text-decoration:underline;\">Comment Spotlight</a>\n </div>\n </td></tr>\n\n <!-- Top Stories -->\n <tr id=\"top-stories\"><td style=\"padding:16px 24px;\">\n <h2 style=\"margin:8px 0 12px;font-family:Arial,Helvetica,sans-serif;font-size:18px;color:#111;\">Top Stories</h2>\n\n <!-- Repeat for each top story -->\n <!-- STORY CARD -->\n <!--\n <table role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin-bottom:16px;border:1px solid #eee;border-radius:8px;\">\n <tr><td style=\"padding:14px 16px;\">\n <a href=\"POST_URL\" style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;color:#1a73e8;text-decoration:underline;font-weight:bold;\">POST_TITLE</a>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;margin-top:6px;\">SUMMARY_SENTENCES</div>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#111;margin-top:10px;font-weight:bold;\">Why it matters</div>\n <ul style=\"padding-left:18px;margin:6px 0 0;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#333;\">\n <li>BULLET_1</li>\n <li>BULLET_2</li>\n <!-- Optional\n <li>BULLET_3</li> -->\n </ul>\n <!-- Optional By the numbers -->\n <!-- <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#111;margin-top:10px;font-weight:bold;\">By the numbers</div>\n <ul style=\"padding-left:18px;margin:6px 0 0;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#333;\">\n <li>Upvotes: N • Comments: M</li>\n </ul> -->\n <div style=\"margin-top:10px;\">\n <a href=\"POST_URL\" style=\"font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#1a73e8;text-decoration:underline;\">Discuss on r/n8n →</a>\n </div>\n </td></tr>\n </table>\n -->\n </td></tr>\n\n <!-- Quick Hits -->\n <tr id=\"quick-hits\"><td style=\"padding:8px 24px 16px;\">\n <h2 style=\"margin:8px 0 12px;font-family:Arial,Helvetica,sans-serif;font-size:18px;color:#111;\">Quick Hits</h2>\n <ul style=\"padding-left:18px;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;\">\n <!-- Repeat per item -->\n <!-- <li>ONE_SENTENCE_SUMMARY <a href=\"POST_URL\" style=\"color:#1a73e8;text-decoration:underline;\">link</a></li> -->\n </ul>\n </td></tr>\n\n <!-- Community Q&A -->\n <tr id=\"community-qa\"><td style=\"padding:8px 24px 16px;\">\n <h2 style=\"margin:8px 0 12px;font-family:Arial,Helvetica,sans-serif;font-size:18px;color:#111;\">Community Q&A</h2>\n <!-- Repeat per item -->\n <!--\n <div style=\"margin-bottom:12px;\">\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#111;font-weight:bold;\">QUESTION_HEADLINE</div>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;margin-top:4px;\">ONE_SENTENCE_CONTEXT <a href=\"POST_URL\" style=\"color:#1a73e8;text-decoration:underline;\">Join the thread →</a></div>\n </div>\n -->\n </td></tr>\n\n <!-- Comment Spotlight -->\n <tr id=\"comment-spotlight\"><td style=\"padding:8px 24px 24px;\">\n <h2 style=\"margin:8px 0 12px;font-family:Arial,Helvetica,sans-serif;font-size:18px;color:#111;\">Comment Spotlight</h2>\n <!-- Repeat per comment -->\n <!--\n <div style=\"margin-bottom:10px;\">\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;\">“TRIMMED_COMMENT_TEXT…”</div>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:12px;color:#666;margin-top:2px;\">From <a href=\"POST_URL\" style=\"color:#1a73e8;text-decoration:underline;\">POST_TITLE</a></div>\n </div>\n -->\n </td></tr>\n\n <!-- Footer -->\n <tr><td style=\"padding:18px 24px;border-top:1px solid #eee;background:#fafbff;\">\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:12px;color:#666;line-height:1.5;\">\n You’re receiving this because you subscribed to daily r/n8n highlights.\n Content summarized from public Reddit posts. Links go to Reddit.\n </div>\n </td></tr>\n </table>\n </td></tr>\n </table>\n </body>\n</html>\n\nPROCESS\n1) Parse → normalize → dedupe → score.\n2) Select Top Stories (3), then Quick Hits (5–8), then Community Q&A (up to 3 based on question-ness).\n3) Build Comment Spotlight by scanning all comments for informative remarks (exclude reminders, bots, and “please share” spam).\n4) Write summaries and bullets following the rules.\n5) Render the HTML template, omitting sections with no content.\n6) Output only the final HTML.\n"
},
"promptType": "define",
"needsFallback": true
},
"typeVersion": 2.2
},
{
"id": "b982de15-e810-4790-ba9a-17ac85aa74ec",
"name": "OpenAI 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
3184,
336
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-5",
"cachedResultName": "gpt-5"
},
"options": {
"timeout": 30000
}
},
"credentials": {
"openAiApi": {
"id": "SJosnTvSH04BmvxV",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "b4d15d5e-0953-42cf-b693-80e9ed5a856d",
"name": "发送消息",
"type": "n8n-nodes-base.gmail",
"position": [
3712,
96
],
"webhookId": "8acb67e2-6fd6-4e52-a087-70a416a61685",
"parameters": {
"sendTo": "angel@n8n.io",
"message": "={{ $json.output }}",
"options": {},
"subject": "Daily Digest "
},
"credentials": {
"gmailOAuth2": {
"id": "tQI1jhxlWFNaGFgm",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "0489905c-68c8-4aad-9871-3844fb20dfb6",
"name": "Google Gemini聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
3312,
336
],
"parameters": {
"options": {}
},
"credentials": {
"googlePalmApi": {
"id": "jEvOQHKuwak5oaj7",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "a23a7427-dcd5-446e-a6e5-df823dc4dc99",
"name": "计划触发器",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
16,
152
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "b4060c87-d977-4a04-8200-270724248ca6",
"name": "Markdown",
"type": "n8n-nodes-base.markdown",
"position": [
3712,
320
],
"parameters": {
"html": "={{ $json.output }}",
"options": {},
"destinationKey": "markdown"
},
"typeVersion": 1
},
{
"id": "8e6c8267-c2b4-4d23-8ee1-0e8728e84ef0",
"name": "发布到 Dev.to",
"type": "n8n-nodes-base.httpRequest",
"position": [
3936,
320
],
"parameters": {
"url": "https://dev.to/api/articles",
"method": "POST",
"options": {},
"jsonBody": "={{ (() => {\n let s = $json.markdown ?? '';\n if (typeof s !== 'string') s = String(s ?? '');\n\n if (/\\\\[nrt`]/.test(s)) {\n s = s.replace(/\\\\r\\\\n/g,'\\n').replace(/\\\\n/g,'\\n').replace(/\\\\t/g,'\\t').replace(/\\\\`/g,'`');\n }\n\n s = s.replace(/^\\s*(?:```[^\\n]*\\n|\\\\`\\\\`\\\\`[^\\n]*\\n)/, '');\n s = s.replace(/(?:\\n)?(?:```+|\\\\`\\\\`\\\\`+)\\s*$/, '');\n s = s.replace(/\\r\\n/g,'\\n');\n\n s = s.replace(/^(?:\\s*\\|?\\s*[-:| ]+)+\\s*$/gm,'');\n s = s.replace(/^\\s*\\|\\s?/gm,'');\n s = s.replace(/\\s+\\|\\s+/g,' • ');\n\n s = s.replace(/(^|\\n)\\s*(Top Stories|Quick Hits|Community Q&A|Comment Spotlight)\\s*(?=\\n|$)/g, '\\n## $2\\n');\n\n s = s.replace(/(^|\\n)\\s*\\[([^\\]]+)\\]\\(([^)]+)\\)/g, '\\n### [$2]($3)\\n');\n\n s = s.replace(/\\bWhy it matters\\b/g, '\\n\\n**Why it matters**\\n');\n s = s.replace(/\\bBy the numbers\\b/g, '\\n\\n**By the numbers**\\n');\n\n s = s.replace(/\\)\\s+(?=\\[)/g, ')\\n\\n[');\n s = s.replace(/(^|\\n)(#{1,6}\\s+[^\\n]+)\\n(?!\\n)/g, '$1$2\\n\\n');\n s = s.replace(/\\n{3,}/g,'\\n\\n').trim();\n\n return {\n article: {\n title: `Reddit Daily Digest n8n Summary for ${$now.format('MM-dd-yyyy')} Workflow`,\n body_markdown: s,\n published: true,\n description: 'A daily digest of n8n reddit posts for today.',\n tags: ['n8n']\n }\n };\n})() }}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpCustomAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-type",
"value": "application/json"
}
]
}
},
"credentials": {
"httpCustomAuth": {
"id": "ayqX3eoZRFcMUTnB",
"name": "Dev To"
}
},
"typeVersion": 4.2
},
{
"id": "efbe61ff-2919-4abb-a16d-5ec7ec9194b9",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-16,
0
],
"parameters": {
"color": 7,
"width": 864,
"height": 480,
"content": "## 获取最新的 Reddit 帖子"
},
"typeVersion": 1
},
{
"id": "5282cddd-0290-460a-b428-d83bbf36f204",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
864,
0
],
"parameters": {
"color": 7,
"width": 1504,
"height": 480,
"content": "## 将帖子传递给 Bright Data 以获取评论和点赞数据"
},
"typeVersion": 1
},
{
"id": "6dd01817-fea1-4a81-85c7-6c6b6fe32aa3",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
2384,
0
],
"parameters": {
"color": 7,
"width": 640,
"height": 480,
"content": "## 为 LLM 准备输出"
},
"typeVersion": 1
},
{
"id": "6b916ef9-aa05-4e70-8d46-d84fe839126f",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
3040,
0
],
"parameters": {
"color": 7,
"width": 544,
"height": 480,
"content": "## 将帖子转换为摘要"
},
"typeVersion": 1
},
{
"id": "f1c9c7f9-c43d-4b7b-b890-33fdbfd59f84",
"name": "便签4",
"type": "n8n-nodes-base.stickyNote",
"position": [
3600,
0
],
"parameters": {
"color": 7,
"width": 384,
"height": 240,
"content": "## 发送 HTML 邮件通讯"
},
"typeVersion": 1
},
{
"id": "e7f15b40-9c0b-4ac0-bb46-b5739ae413cc",
"name": "便签5",
"type": "n8n-nodes-base.stickyNote",
"position": [
3600,
256
],
"parameters": {
"color": 7,
"width": 560,
"height": 224,
"content": "## 转换并发布到 Dev.to"
},
"typeVersion": 1
}
],
"pinData": {
"AI Agent": [
{
"output": "```html\n<!doctype html>\n<html>\n <body style=\"margin:0;padding:0;background:#f6f7fb;\">\n <table role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#f6f7fb;\">\n <tr><td align=\"center\">\n <table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:600px;max-width:600px;background:#ffffff;border-radius:8px;overflow:hidden;margin:24px 12px;\">\n <!-- Header -->\n <tr><td style=\"padding:20px 24px;border-bottom:1px solid #eee;\">\n <h1 style=\"margin:0;font-family:Arial,Helvetica,sans-serif;font-size:22px;line-height:1.3;color:#111;\">\n Automation Brew\n </h1>\n <div style=\"margin-top:4px;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#555;\">\n Friday, May 17, 2024\n </div>\n </td></tr>\n\n <!-- Nav -->\n <tr><td style=\"padding:12px 24px;border-bottom:1px solid #eee;\">\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#333;\">\n <a href=\"#top-stories\" style=\"color:#1a73e8;text-decoration:underline;margin-right:12px;\">Top Stories</a>\n <a href=\"#quick-hits\" style=\"color:#1a73e8;text-decoration:underline;margin-right:12px;\">Quick Hits</a>\n <a href=\"#community-qa\" style=\"color:#1a73e8;text-decoration:underline;margin-right:12px;\">Community Q&A</a>\n <a href=\"#comment-spotlight\" style=\"color:#1a73e8;text-decoration:underline;\">Comment Spotlight</a>\n </div>\n </td></tr>\n\n <!-- Top Stories -->\n <tr id=\"top-stories\"><td style=\"padding:16px 24px;\">\n <h2 style=\"margin:8px 0 12px;font-family:Arial,Helvetica,sans-serif;font-size:18px;color:#111;\">Top Stories</h2>\n\n <!-- STORY CARD 1 -->\n <table role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin-bottom:16px;border:1px solid #eee;border-radius:8px;\">\n <tr><td style=\"padding:14px 16px;\">\n <a href=\"https://www.reddit.com/r/n8n/comments/1mtv9re/i_built_a_personal_ai_assistant_that_runs_my_life/\" style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;color:#1a73e8;text-decoration:underline;font-weight:bold;\">I Built a Personal AI Assistant That Runs My Life Through WhatsApp, Powered by n8n and a Self-Hosted LLM</a>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;margin-top:6px;\">A user shares a comprehensive AI assistant built with n8n that manages daily tasks via WhatsApp, from bill payments and scheduling to summarizing emails and acting as a music DJ. The system uses a central AI brain to delegate tasks to specialized sub-workflows, integrating with various APIs for a seamless conversational interface.</div>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#111;margin-top:10px;font-weight:bold;\">Why it matters</div>\n <ul style=\"padding-left:18px;margin:6px 0 0;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#333;\">\n <li>Demonstrates n8n's power for highly personalized, complex automations.</li>\n <li>Showcases practical applications of self-hosted LLMs and AI agents for personal productivity.</li>\n <li>Offers a blueprint for integrating diverse services into a unified control system.</li>\n </ul>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#111;margin-top:10px;font-weight:bold;\">By the numbers</div>\n <ul style=\"padding-left:18px;margin:6px 0 0;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#333;\">\n <li>Upvotes: 369 • Comments: 64</li>\n </ul>\n <div style=\"margin-top:10px;\">\n <a href=\"https://www.reddit.com/r/n8n/comments/1mtv9re/i_built_a_personal_ai_assistant_that_runs_my_life/\" style=\"font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#1a73e8;text-decoration:underline;\">Discuss on r/n8n →</a>\n </div>\n </td></tr>\n </table>\n\n <!-- STORY CARD 2 -->\n <table role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin-bottom:16px;border:1px solid #eee;border-radius:8px;\">\n <tr><td style=\"padding:14px 16px;\">\n <a href=\"https://www.reddit.com/r/n8n/comments/1mugdof/i_built_an_ai_agent_army_in_n8n_that_completely/\" style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;color:#1a73e8;text-decoration:underline;font-weight:bold;\">I Built an AI Agent Army in n8n That Completely Replaced My Personal Assistant</a>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;margin-top:6px;\">This project details a multi-agent AI system built in n8n that functions as a 24/7 personal assistant via Telegram, managing emails, scheduling, finances, travel, news, research, content creation, and social media. It features an orchestrator agent that routes complex requests to eight specialized agents.</div>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#111;margin-top:10px;font-weight:bold;\">Why it matters</div>\n <ul style=\"padding-left:18px;margin:6px 0 0;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#333;\">\n <li>Illustrates advanced multi-agent AI architectures within n8n.</li>\n <li>Highlights significant time savings (20+ hours/week) for routine tasks.</li>\n <li>Presents a powerful alternative to human assistants for a fraction of the cost.</li>\n </ul>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#111;margin-top:10px;font-weight:bold;\">By the numbers</div>\n <ul style=\"padding-left:18px;margin:6px 0 0;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#333;\">\n <li>Upvotes: 194 • Comments: 64</li>\n </ul>\n <div style=\"margin-top:10px;\">\n <a href=\"https://www.reddit.com/r/n8n/comments/1mugdof/i_built_an_ai_agent_army_in_n8n_that_completely/\" style=\"font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#1a73e8;text-decoration:underline;\">Discuss on r/n8n →</a>\n </div>\n </td></tr>\n </table>\n\n <!-- STORY CARD 3 -->\n <table role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin-bottom:16px;border:1px solid #eee;border-radius:8px;\">\n <tr><td style=\"padding:14px 16px;\">\n <a href=\"https://www.reddit.com/r/n8n/comments/1mthwbv/built_myself_an_automation_that_tracks_calories/\" style=\"font-family:Arial,Helvetica,sans-serif;font-size:16px;color:#1a73e8;text-decoration:underline;font-weight:bold;\">Built myself an automation that tracks calories from food images.</a>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;margin-top:6px;\">An n8n user created a free, self-hosted automation that calculates calories from food images using a Google API. This innovative workflow showcases how n8n can be leveraged for personal health and tracking, operating at no ongoing cost.</div>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#111;margin-top:10px;font-weight:bold;\">Why it matters</div>\n <ul style=\"padding-left:18px;margin:6px 0 0;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#333;\">\n <li>Provides a practical, zero-cost solution for calorie tracking using visual AI.</li>\n <li>Highlights the flexibility of n8n for niche, personal automation projects.</li>\n <li>Demonstrates self-hosting benefits for advanced features without recurring fees.</li>\n </ul>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#111;margin-top:10px;font-weight:bold;\">By the numbers</div>\n <ul style=\"padding-left:18px;margin:6px 0 0;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#333;\">\n <li>Upvotes: 155 • Comments: 52</li>\n </ul>\n <div style=\"margin-top:10px;\">\n <a href=\"https://www.reddit.com/r/n8n/comments/1mthwbv/built_myself_an_automation_that_tracks_calories/\" style=\"font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#1a73e8;text-decoration:underline;\">Discuss on r/n8n →</a>\n </div>\n </td></tr>\n </table>\n </td></tr>\n\n <!-- Quick Hits -->\n <tr id=\"quick-hits\"><td style=\"padding:8px 24px 16px;\">\n <h2 style=\"margin:8px 0 12px;font-family:Arial,Helvetica,sans-serif;font-size:18px;color:#111;\">Quick Hits</h2>\n <ul style=\"padding-left:18px;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;\">\n <li>Tired of job applications? This user built an n8n workflow, triggered by a Chrome extension, to automate extracting job details, generating custom cover letters, and logging everything into Google Sheets and Docs in seconds. <a href=\"https://www.reddit.com/r/n8n/comments/1mtviu8/i_got_tired_of_applying_for_jobs_so_i_built_an/\" style=\"color:#1a73e8;text-decoration:underline;\">link</a></li>\n <li>Learn how to automate long-form video creation for free with this n8n workflow, which customizes voice, artistic style, overlays, and sound effects. <a href=\"https://www.reddit.com/r/n8n/comments/1mtxjuy/this_workflow_makes_2h30_videos_on_autopilot/\" style=\"color:#1a73e8;text-decoration:underline;\">link</a></li>\n <li>A new n8n template automatically adds descriptive sticky notes to your workflows using GPT-4o-mini, making documentation readable and shareable without manual effort. <a href=\"https://n8n.io/workflows/7465-auto-document-workflows-with-gpt-4o-mini-sticky-notes/\" style=\"color:#1a73e8;text-decoration:underline;\">link</a></li>\n <li>Automate your email follow-ups with this n8n workflow that catches incoming emails, sends initial replies, and dispatches follow-ups if no response, effectively creating a mini CRM. <a href=\"https://www.reddit.com/r/n8n/comments/1muaond/email_follow_ups/\" style=\"color:#1a73e8;text-decoration:underline;\">link</a></li>\n <li>Discover a smart n8n workflow that uses Google's Gemini AI to monitor subreddits, identify potential business leads, and organize them into Google Sheets for automation specialists. <a href=\"https://www.reddit.com/r/n8n/comments/1mudrwl/i_built_an_aipowered_lead_finder_that_monitors/\" style=\"color:#1a73e8;text-decoration:underline;\">link</a></li>\n <li>A new n8n user shares their initial workflow for pulling European football league stats into Google Sheets, updating league tables, and generating weekly match predictions emailed as Looker reports. <a href=\"https://www.reddit.com/r/n8n/comments/1mufo10/first_workflow/\" style=\"color:#1a73e8;text-decoration:underline;\">link</a></li>\n <li>Check out the latest weekly self-promotion thread where n8n users showcase their innovative workflows, offer consulting services, and share GitHub repos for advanced use cases. <a href=\"https://www.reddit.com/r/n8n/comments/1mp85yl/weekly_self_promotion_thread/\" style=\"color:#1a73e8;text-decoration:underline;\">link</a></li>\n </ul>\n </td></tr>\n\n <!-- Community Q&A -->\n <tr id=\"community-qa\"><td style=\"padding:8px 24px 16px;\">\n <h2 style=\"margin:8px 0 12px;font-family:Arial,Helvetica,sans-serif;font-size:18px;color:#111;\">Community Q&A</h2>\n <!-- Q&A 1 -->\n <div style=\"margin-bottom:12px;\">\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#111;font-weight:bold;\">"How do you ensure your n8n AI agents, especially those interacting with Google services, remain reliable and don't forget tasks or suffer from expired connections?"</div>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;margin-top:4px;\">A user running a legal firm's AI agent for customer interactions and meeting bookings faces issues with Google connection expiry and task oversight when the agent is idle. <a href=\"https://www.reddit.com/r/n8n/comments/1muimu6/how_do_you_make_your_n8n_ai_agents_more_reliable/\" style=\"color:#1a73e8;text-decoration:underline;\">Join the thread →</a></div>\n </div>\n <!-- Q&A 2 -->\n <div style=\"margin-bottom:12px;\">\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#111;font-weight:bold;\">"Does the latest n8n version, with its unlimited workflow capacity announcement, affect execution limits for self-hosted instances, especially with high weekly execution volumes?"</div>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;margin-top:4px;\">A user managing around 200k weekly executions on a self-hosted n8n instance seeks clarification on potential limitations introduced by recent updates. <a href=\"https://www.reddit.com/r/n8n/comments/1muikdf/does_selfhosted_have_execution_limits_latest/\" style=\"color:#1a73e8;text-decoration:underline;\">Join the thread →</a></div>\n </div>\n <!-- Q&A 3 -->\n <div style=\"margin-bottom:12px;\">\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#111;font-weight:bold;\">"Will Google reject my API access request for n8n integration due to a domain conflict, and how can Open AI be used to optimize campaigns once approved?"</div>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;margin-top:4px;\">A user encountered an issue with Google Ads OAuth ID and Developer Token generation, receiving a domain conflict email and is looking for advice on integration approval and AI optimization strategies. <a href=\"https://www.reddit.com/r/n8n/comments/1mukei6/n8n_google_ads_integration/\" style=\"color:#1a73e8;text-decoration:underline;\">Join the thread →</a></div>\n </div>\n </td></tr>\n\n <!-- Comment Spotlight -->\n <tr id=\"comment-spotlight\"><td style=\"padding:8px 24px 24px;\">\n <h2 style=\"margin:8px 0 12px;font-family:Arial,Helvetica,sans-serif;font-size:18px;color:#111;\">Comment Spotlight</h2>\n <!-- Comment 1 -->\n <div style=\"margin-bottom:10px;\">\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;\">“Ya it is quite easy to achieve, if you want one build just DM, if you want to build yourself just search how to create RAG chatbots in n8n in YouTube there are loads of tutorials.”</div>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:12px;color:#666;margin-top:2px;\">From <a href=\"https://www.reddit.com/r/n8n/comments/1muivox/feedback_thinking_on_using_n8n_for_clients/\" style=\"color:#1a73e8;text-decoration:underline;\">Feedback - thinking on using n8n for clients requests</a></div>\n </div>\n <!-- Comment 2 -->\n <div style=\"margin-bottom:10px;\">\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;\">“Just make a scheduled connection keep alive request. Simply put a dummy conversation in the Google sheet etc. and delete it.”</div>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:12px;color:#666;margin-top:2px;\">From <a href=\"https://www.reddit.com/r/n8n/comments/1muimu6/how_do_you_make_your_n8n_ai_agents_more_reliable/\" style=\"color:#1a73e8;text-decoration:underline;\">How do you make your n8n AI agents more reliable?</a></div>\n </div>\n <!-- Comment 3 -->\n <div style=\"margin-bottom:10px;\">\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;\">“How is having the flow waiting for days to get a response better than running a separate workflow daily that checks for needed follow-up? You already have the mails store in a sheet. How is this workflow resilient to disconnections of some sort during the waiting?”</div>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:12px;color:#666;margin-top:2px;\">From <a href=\"https://www.reddit.com/r/n8n/comments/1muaond/email_follow_ups/\" style=\"color:#1a73e8;text-decoration:underline;\">Email follow ups</a></div>\n </div>\n <!-- Comment 4 -->\n <div style=\"margin-bottom:10px;\">\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;\">“These things that tell you the calories from a pic are criminaly wrong. What if the cook added 3 spons of oil to that sandwich inside? (+100kcal) or used light mayonese? (-200kcal compare to regular). Now compound that error over a month, and you'll be off by several thousands of kcal. I don't understand the purpose of collecting the wrong information. These apps are a great programming exercise, but that's it.”</div>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:12px;color:#666;margin-top:2px;\">From <a href=\"https://www.reddit.com/r/n8n/comments/1mthwbv/built_myself_an_automation_that_tracks_calories/\" style=\"color:#1a73e8;text-decoration:underline;\">Built myself an automation that tracks calories from food images.</a></div>\n </div>\n <!-- Comment 5 -->\n <div style=\"margin-bottom:10px;\">\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#222;\">“Really cool idea! I’ve been trying to use n8n for some of my office workflows, and documentation is always the part I put off. Auto-sticky notes would save a ton of time, especially for sharing with teammates.”</div>\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:12px;color:#666;margin-top:2px;\">From <a href=\"https://www.reddit.com/r/n8n/comments/1mucao2/i_hate_to_document_my_workflows_so_i_automated_it/\" style=\"color:#1a73e8;text-decoration:underline;\">I hate to document my workflows so I automated it</a></div>\n </div>\n </td></tr>\n\n <!-- Footer -->\n <tr><td style=\"padding:18px 24px;border-top:1px solid #eee;background:#fafbff;\">\n <div style=\"font-family:Arial,Helvetica,sans-serif;font-size:12px;color:#666;line-height:1.5;\">\n You’re receiving this because you subscribed to daily r/n8n highlights.\n Content summarized from public Reddit posts. Links go to Reddit.\n </div>\n </td></tr>\n </table>\n </td></tr>\n </table>\n </body>\n</html>\n```"
}
]
},
"connections": {
"AI Agent": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
},
{
"node": "Markdown",
"type": "main",
"index": 0
}
]
]
},
"Markdown": {
"main": [
[
{
"node": "Publish to Dev.to",
"type": "main",
"index": 0
}
]
]
},
"RSS Read": {
"main": [
[
{
"node": "Extract URLs",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Extract URLs": {
"main": [
[
{
"node": "Aggregate URLs to Single Object",
"type": "main",
"index": 0
}
]
]
},
"Wait 5 seconds": {
"main": [
[
{
"node": "Check Snapshot Again for Success",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[],
[
{
"node": "Check the status of a batch extraction",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "RSS Read",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Reduce Objects to 1": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Check if Batch Ready": {
"main": [
[
{
"node": "Download the snapshot content",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait 5 seconds",
"type": "main",
"index": 0
}
]
]
},
"Extract Essential Data": {
"main": [
[
{
"node": "Reduce Objects to 1",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 1
}
]
]
},
"Download the snapshot content": {
"main": [
[
{
"node": "Extract Essential Data",
"type": "main",
"index": 0
}
],
[]
]
},
"Aggregate URLs to Single Object": {
"main": [
[
{
"node": "Initiate batch extraction from URL",
"type": "main",
"index": 0
}
]
]
},
"Check Snapshot Again for Success": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Initiate batch extraction from URL": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Check the status of a batch extraction": {
"main": [
[
{
"node": "Check if Batch Ready",
"type": "main",
"index": 0
}
]
]
}
}
}如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - AI 摘要总结, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
Angel Menendez
@djangelicAngel Menendez is a Staff Developer Advocate at n8n.io, specializing in low-code tools for cybersecurity workflows. From Puerto Rico, Angel's tech journey began by helping his father translate technical books. He later started a web development business and transitioned from a career as a flight attendant to cybersecurity engineering. His workflows have saved companies significant time. Outside work, Angel enjoys time with his two sons, riding electric bikes, reading, and exploring new places.
分享此工作流