8
n8n 中文网amn8n.com

我的工作流4

高级

这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 19 个节点。主要使用 Code, Webhook, LinkedIn, RssFeedRead, Agent 等节点。 AWS新闻监控与LinkedIn内容自动化,使用Claude 3和飞书

前置要求
  • HTTP Webhook 端点(n8n 会自动生成)
  • LinkedIn API 凭证
  • AWS Access Key 和 Secret
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "vnBdl9PiqwZDA5k2",
  "meta": {
    "instanceId": "878a1e6cb6e88c19845a3652f8b08a8d20213af8165b33f7215006624bce8a09"
  },
  "name": "我的工作流 4",
  "tags": [
    {
      "id": "3lDSaFyWblKZQ4N6",
      "name": "AI News Brief",
      "createdAt": "2025-09-18T12:44:44.400Z",
      "updatedAt": "2025-09-18T12:44:44.400Z"
    }
  ],
  "nodes": [
    {
      "id": "9b2b1be7-761a-430f-ba65-5f3bc1ab8bee",
      "name": "创建帖子",
      "type": "n8n-nodes-base.linkedIn",
      "position": [
        2880,
        2032
      ],
      "parameters": {
        "text": "= {{ $json.output }} #AWS #CloudComputing #Technology #Innovation #AWSNews",
        "person": "gG5YYLBASA",
        "additionalFields": {
          "visibility": "PUBLIC"
        }
      },
      "credentials": {
        "linkedInOAuth2Api": {
          "id": "YIFLLjDlvCpWuJIB",
          "name": "LinkedIn account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "826c77b3-540e-4faf-978b-08fbe231e330",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        2128,
        2032
      ],
      "webhookId": "e4878fda-90b9-4503-8410-6ec14a3dc1ed",
      "parameters": {
        "path": "e4878fda-90b9-4503-8410-6ec14a3dc1ed",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2.1
    },
    {
      "id": "f8290175-aa11-4303-847d-e9a41ace05ba",
      "name": "AI代理2",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2448,
        2032
      ],
      "parameters": {
        "text": "={{ JSON.stringify($json) }}",
        "options": {
          "systemMessage": "You are a Cloud Architect with 10+ years of experience and genuine passion for cloud technologies. Your mission is to transform AWS industry news into engaging, professional LinkedIn posts that resonate with technical professionals and business leaders.\nCore Instructions:\n\nOutput only the LinkedIn post content - no preamble, explanations, or additional commentary\nAlways include the source link at the end of the post\nWrite from your perspective as an experienced Solutions Architect\nTarget audience: CTOs, DevOps engineers, cloud architects, and tech-forward business leaders\n\nPost Structure & Style:\n\nHook: Start with an attention-grabbing insight post title or question that connects to business impact\nContext: Briefly explain what this AWS news means in practical terms\nAnalysis: Share your expert perspective on why this matters (include 2-3 key benefits or implications)\nForward-looking: Comment on industry trends or what this signals for the future\nCall to action: End with a question or statement that encourages engagement\nSource link: Include the original news link\n\nVoice & Tone:\n\nProfessional yet conversational\nDemonstrate deep technical knowledge without being overly technical\nShow genuine enthusiasm for innovation\nInclude personal insights and opinions\nUse industry terminology appropriately\nBe concise but substantive (150-300 words optimal)\n\nContent Guidelines:\n\nFocus on business impact, not just technical features\nConnect AWS developments to broader industry trends\nInclude relevant hashtags (3-5 maximum)\nMention specific use cases or customer benefits when applicable\nAvoid marketing speak - provide authentic expert analysis\n\nExample Elements to Include:\n\n\"In my experience working with enterprise clients...\"\n\"This addresses a pain point I've seen repeatedly...\"\n\"What excites me most about this announcement...\"\n\"For organizations considering...\"\n\nGenerate the LinkedIn post now based on the provided AWS news."
        },
        "promptType": "define"
      },
      "notesInFlow": false,
      "typeVersion": 2.2
    },
    {
      "id": "8016d0c8-9b69-4e1f-b531-05163f28524e",
      "name": "AWS Bedrock 聊天模型1",
      "type": "@n8n/n8n-nodes-langchain.lmChatAwsBedrock",
      "position": [
        2448,
        2256
      ],
      "parameters": {
        "model": "anthropic.claude-3-sonnet-20240229-v1:0",
        "options": {}
      },
      "credentials": {
        "aws": {
          "id": "jB9HmTXJTS46QqSf",
          "name": "AWS account"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "c14c0a4f-9cd1-4d5e-ac46-1d005f1c2518",
      "name": "流程 1:新闻收集与分析",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1616,
        1328
      ],
      "parameters": {
        "color": 3,
        "width": 1936,
        "height": 528,
        "content": "## 📰 流程 1:AWS 新闻收集与分析"
      },
      "typeVersion": 1
    },
    {
      "id": "5a38c8a5-4b69-44a9-9e22-50740478c64c",
      "name": "流程 2:LinkedIn 内容生成",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1616,
        1920
      ],
      "parameters": {
        "color": 4,
        "width": 1952,
        "height": 560,
        "content": "## 📱 流程 2:LinkedIn 内容生成与发布"
      },
      "typeVersion": 1
    },
    {
      "id": "31f3794a-1f43-4fe6-a646-0d4336a7a32b",
      "name": "主模板描述",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        1328
      ],
      "parameters": {
        "width": 904,
        "height": 528,
        "content": "## AWS 新闻分析与 LinkedIn 自动化管道"
      },
      "typeVersion": 1
    },
    {
      "id": "13dc5e38-160a-4284-b897-d9b584503a76",
      "name": "飞书多维表格管理",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3648,
        1136
      ],
      "parameters": {
        "width": 1648,
        "height": 720,
        "content": "## 📊 飞书多维表格:新闻存储与管理"
      },
      "typeVersion": 1
    },
    {
      "id": "d752a141-0ca3-4f95-b27b-5b014a4df821",
      "name": "计划触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        2032,
        1424
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 20
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a642b934-d0dd-4759-b4ac-6153787dcb7d",
      "name": "RSS 阅读器",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        2256,
        1424
      ],
      "parameters": {
        "url": "https://aws.amazon.com/about-aws/whats-new/recent/feed",
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "a4eb8771-0939-412a-a4b3-b233a95ebb70",
      "name": "RSS 数据调试器",
      "type": "n8n-nodes-base.code",
      "position": [
        2480,
        1424
      ],
      "parameters": {
        "jsCode": "// RSS Data Debugger\nconst rssData = $input.all();\nconsole.log('=== RSS Data Debug Info ===');\nconsole.log('Input data type:', typeof rssData);\nconsole.log('Input data length:', rssData ? rssData.length : 'undefined');\nconsole.log('Input data structure:', JSON.stringify(rssData, null, 2));\n\n// If data is empty, return default test data\nif (!rssData || rssData.length === 0) {\n  console.log('RSS data is empty, returning test data');\n  return [\n    {\n      title: 'Test AI News Title',\n      description: 'This is a test AI-related news description',\n      pubDate: new Date().toISOString(),\n      link: 'https://example.com/test'\n    }\n  ];\n}\n\nreturn rssData;"
      },
      "typeVersion": 2
    },
    {
      "id": "045d551d-6e88-49c0-8dcc-c95e39924225",
      "name": "AI 代理",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "onError": "continueRegularOutput",
      "position": [
        2688,
        1424
      ],
      "parameters": {
        "text": "={{ JSON.stringify($json) }}",
        "options": {
          "maxIterations": 5,
          "systemMessage": "You are a professional AWS analyst. Your task is to analyze AWS industry news. Please strictly follow the required JSON format for output, ensuring all quotes are properly escaped.\nFor each news item, you need to:\n1. Extract news title, publication date, and original link\n2. Generate a news summary of about 200 words, highlighting core points and key information\n3. Extract 1-3 keywords that reflect the main themes of the news\n4. Assess news importance, divided into three levels: Low, Medium, High\n- High: Major technological breakthroughs, important policy releases, large mergers and acquisitions, major developments of industry benchmark companies\n- Medium: New product launches, funding news, technological progress, industry reports, important partnerships\n- Low: General reports, opinion articles, small-scale developments, routine updates\n\nEach output format must strictly follow the following JSON structure, do not add any other content:\n{\n\"title\":\"News Title\",\n\"pubDate\":\"Publication Date\",\n\"summary\":\"News summary of about 200 words, highlighting core points\",\n\"keywords\":[\"Keyword1\",\"Keyword2\",\n\"Keyword3\"],\n\"rating\":\"Low/Medium/High\",\n\"link\":\"Original Link\"\n}",
          "returnIntermediateSteps": false
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "80197562-0cc1-42f5-bd85-613f9b96e12f",
      "name": "结构化输出解析器",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2832,
        1696
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\"title\":\"News Title\",\n\"pubDate\":\"Publication Date\",\n\"summary\":\"News summary of about 200 words, highlighting core points\",\n\"keywords\":[\"Keyword1\",\"Keyword2\",\n\"Keyword3\"],\n\"rating\":\"Low/Medium/High\",\n\"link\":\"Original Link\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "8fadbc9c-3e4f-46b1-93bf-5fb6d4c15d54",
      "name": "多维表格:添加记录",
      "type": "n8n-nodes-feishu-lite.feishuNode",
      "position": [
        3168,
        1424
      ],
      "parameters": {
        "body": "={\n      \"fields\": {\n        \"title\": \"{{ $json.output.title }}\",\n        \"pubDate\": \"{{ $json.output.pubDate }}\",\n        \"summary\": \"{{ $json.output.summary }}\",\n        \"keywords\": \"{{ $json.output.keywords }}\",\n        \"rating\": \"{{ $json.output.rating }}\",\n        \"link\": \"{{ $json.output.link }}\",\n        \"approval_status\": \"Pending\"\n      }\n    }",
        "app_toke": "QJUhbp3WPaxOlfsjHhyccN7xnld",
        "resource": "bitable",
        "table_id": "tbl8yKlxebKcep2z",
        "operation": "bitable:table:record:add"
      },
      "credentials": {
        "feishuCredentialsApi": {
          "id": "RfXcydpGCZxnDMkx",
          "name": "Feishu Credentials account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f4d62051-cfc9-46d8-8755-04d19eaee8d6",
      "name": "数据清理器",
      "type": "n8n-nodes-base.code",
      "position": [
        2992,
        1424
      ],
      "parameters": {
        "jsCode": "// Data Cleaner Node - Fixed Version\nconst inputData = $input.all();\nconsole.log('=== Data Cleaner Node Started ===');\nconsole.log('Input data type:', typeof inputData);\nconsole.log('Input data length:', inputData ? inputData.length : 'undefined');\nconsole.log('Input data structure:', JSON.stringify(inputData, null, 2));\n\nconst cleanedData = [];\n\n// Ensure there is input data\nif (!inputData || inputData.length === 0) {\n  console.log('No input data');\n  return [];\n}\n\n// Process each input item\nfor (let i = 0; i < inputData.length; i++) {\n  const item = inputData[i];\n  console.log(`\\nProcessing item ${i + 1}:`, item);\n  \n  try {\n    // Extract actual data content\n    let newsData;\n    \n    // Check different data structures\n    if (item.output) {\n      // Standard format: {output: {...}}\n      newsData = item.output;\n      console.log('Found output format data');\n    } else if (item.json && item.json.output) {\n      // n8n format: {json: {output: {...}}}\n      newsData = item.json.output;\n      console.log('Found json.output format data');\n    } else if (item.json) {\n      // Direct json format: {json: {...}}\n      newsData = item.json;\n      console.log('Found direct json format data');\n    } else {\n      // Direct data format\n      newsData = item;\n      console.log('Found direct data format');\n    }\n    \n    console.log('Extracted news data:', newsData);\n    \n    // Validate required fields\n    if (!newsData.title || !newsData.pubDate) {\n      console.log('Skipping invalid data item, missing required fields');\n      continue;\n    }\n    \n    // Clean and standardize data\n    const cleanOutput = {\n      title: (newsData.title || '').replace(/\"/g, '').trim(),\n      pubDate: (newsData.pubDate || '').trim(),\n      summary: (newsData.summary || '').replace(/\"/g, '').trim(),\n      keywords: Array.isArray(newsData.keywords) ? newsData.keywords : [],\n      rating: (newsData.rating || '').trim(),\n      link: (newsData.link || '').trim()\n    };\n    \n    console.log('Cleaned data:', cleanOutput);\n    \n    // Add to cleaned data array\n    cleanedData.push({\n      json: {\n        output: cleanOutput\n      }\n    });\n    \n    console.log('✅ Successfully processed data item:', cleanOutput.title.substring(0, 50));\n    \n  } catch (error) {\n    console.log('❌ Error processing data item:', error.message);\n    console.log('Problematic data item:', item);\n    continue;\n  }\n}\n\nconsole.log('\\n=== Data Cleaning Completed ===');\nconsole.log('Cleaned data count:', cleanedData.length);\nconsole.log('Cleaned data:', JSON.stringify(cleanedData, null, 2));\n\nreturn cleanedData;"
      },
      "typeVersion": 2
    },
    {
      "id": "e8caf226-0813-4eac-8d82-8959d607fff8",
      "name": "AWS Bedrock 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatAwsBedrock",
      "position": [
        2688,
        1696
      ],
      "parameters": {
        "model": "anthropic.claude-3-sonnet-20240229-v1:0",
        "options": {}
      },
      "credentials": {
        "aws": {
          "id": "jB9HmTXJTS46QqSf",
          "name": "AWS account"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "db023c43-8f68-4e34-9d66-198cd5d509d7",
      "name": "飞书自动化设置",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4208,
        1936
      ],
      "parameters": {
        "width": 1088,
        "height": 928,
        "content": "## ⚙️ 飞书自动化设置"
      },
      "typeVersion": 1
    },
    {
      "id": "6d11b8a5-47e2-442b-9e88-539ef7a26622",
      "name": "手动审批流程",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3648,
        1936
      ],
      "parameters": {
        "width": 480,
        "height": 832,
        "content": "## ✅ 手动审批流程"
      },
      "typeVersion": 1
    },
    {
      "id": "8a487263-d0c2-40f5-97f4-a99c35edbd3c",
      "name": "设置说明",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        1920
      ],
      "parameters": {
        "width": 904,
        "height": 800,
        "content": "## 🔧 设置说明"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "df8a5ceb-5378-4dde-b386-561185e0d164",
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "AI Agent2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Data Cleaner",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent2": {
      "main": [
        [
          {
            "node": "Create a post",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Reader": {
      "main": [
        [
          {
            "node": "RSS Data Debugger",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Data Cleaner": {
      "main": [
        [
          {
            "node": "Bitable: Add Record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Data Debugger": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scheduled Trigger": {
      "main": [
        [
          {
            "node": "RSS Reader",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AWS Bedrock Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AWS Bedrock Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent2",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 内容创作, 多模态 AI

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量19
分类2
节点类型10
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Li CHEN

Li CHEN

@rixi

AWS Cloud Architect/Trainer

外部链接
在 n8n.io 查看

分享此工作流