使用Gemini AI摘要的自动化WhatsApp群组每周团队报告
高级
这是一个Project Management, AI Summarization领域的自动化工作流,包含 47 个节点。主要使用 If, Set, Code, Filter, Switch 等节点。 使用Gemini AI摘要的自动化WhatsApp群组每周团队报告
前置要求
- •HTTP Webhook 端点(n8n 会自动生成)
- •Google Gemini API Key
使用的节点 (47)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "e42ff03bc515cd7f9edc081a89072ca1985132e0d4a1cdabe6c26855a252768f",
"templateId": "3969"
},
"nodes": [
{
"id": "f0e89c19-ee1f-4a4d-8176-c222c18e0514",
"name": "简化消息",
"type": "n8n-nodes-base.set",
"position": [
2220,
2000
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "547e8934-e6f2-47f0-b8a0-c60bd9d8a0c3",
"name": "ts",
"type": "string",
"value": "={{ $json.ts }}"
},
{
"id": "22473b44-b1d9-4b85-b0d9-1a54c5511ff4",
"name": "userId",
"type": "string",
"value": "={{ $('Get User').first().json.id }}"
},
{
"id": "2059b147-8b12-42c9-bee8-488dc11a0bf7",
"name": "userName",
"type": "string",
"value": "={{ $('Get User').first().json.name }}"
},
{
"id": "34440ea6-ee99-4cd4-9e1c-cf561d335180",
"name": "type",
"type": "string",
"value": "={{ $json.type }}"
},
{
"id": "ff1155c5-43e1-4e0e-82a8-9e013a7f1db1",
"name": "text",
"type": "string",
"value": "={{ $json.text.replace(/(<@[^>]+>)/ig, '').trim() }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "1293a7cf-1467-432f-b7ed-606146618808",
"name": "按用户分组",
"type": "n8n-nodes-base.code",
"position": [
1540,
1460
],
"parameters": {
"jsCode": "const keyByUser = $input.all()\n .map(item => item.json)\n .reduce((acc, message) => {\n return {\n ...acc,\n [message.user]: Array.isArray(acc[message.user])\n ? acc[message.user].concat(message)\n : [message]\n }\n }, {});\n\nreturn {\n data: Object\n .keys(keyByUser)\n .map(key => keyByUser[key])\n};"
},
"typeVersion": 2
},
{
"id": "681a2368-9688-4ebd-bb88-f48c7ccb3e54",
"name": "拆分输出",
"type": "n8n-nodes-base.splitOut",
"position": [
1740,
1460
],
"parameters": {
"options": {},
"fieldToSplitOut": "data"
},
"typeVersion": 1
},
{
"id": "38a5e6b0-ba4a-4aaa-93f2-ec2a73e5e1af",
"name": "消息转项目",
"type": "n8n-nodes-base.code",
"position": [
2000,
2000
],
"parameters": {
"jsCode": "return Object.values($('Switch').first().json.data)"
},
"typeVersion": 2
},
{
"id": "c5d0b4d1-94eb-4e14-9985-85d384d6d96f",
"name": "聚合",
"type": "n8n-nodes-base.aggregate",
"position": [
2440,
2000
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "messages"
},
"typeVersion": 1
},
{
"id": "47537a27-90d9-4edc-b9f4-66205bc4a4c2",
"name": "拆分输出1",
"type": "n8n-nodes-base.splitOut",
"position": [
1780,
2400
],
"parameters": {
"options": {},
"fieldToSplitOut": "data.messages"
},
"typeVersion": 1
},
{
"id": "0fc6664f-9076-4525-acaa-0f5009de2611",
"name": "聚合1",
"type": "n8n-nodes-base.aggregate",
"position": [
3320,
2480
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "replies"
},
"typeVersion": 1
},
{
"id": "caf963e5-3d5b-42d8-88ce-1fb5bf03a528",
"name": "简化线程评论",
"type": "n8n-nodes-base.set",
"position": [
3100,
2400
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "82bc8cbe-c606-4717-b29d-2d8acc149271",
"name": "ts",
"type": "string",
"value": "={{ $json.ts }}"
},
{
"id": "8fcc957d-aa9f-47df-99e8-560228fde30f",
"name": "userId",
"type": "string",
"value": "={{ $json.user }}"
},
{
"id": "e6c6deb3-c3ba-4452-be7c-1a0c42c5dc2c",
"name": "userName",
"type": "string",
"value": ""
},
{
"id": "31d1206d-ecbd-48d3-a00a-845fd53d1cfa",
"name": "type",
"type": "string",
"value": "={{ $json.type }}"
},
{
"id": "da126e6c-8dfc-41aa-991a-231b3cb3004b",
"name": "text",
"type": "string",
"value": "={{ $json.text }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "aab0ae1c-50da-49e5-a373-c32b39108041",
"name": "过滤器",
"type": "n8n-nodes-base.filter",
"position": [
2880,
2400
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "a6d43072-380e-40f2-985b-faeffdaffdce",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $('Split Out1').item.json.ts }}",
"rightValue": "={{ $json.ts }}"
}
]
}
},
"typeVersion": 2.2,
"alwaysOutputData": true
},
{
"id": "35cdb470-a9eb-4544-999c-5360dda0f1a3",
"name": "消息引用",
"type": "n8n-nodes-base.noOp",
"position": [
2220,
2400
],
"parameters": {},
"typeVersion": 1
},
{
"id": "95500787-7965-4951-a729-615feb636021",
"name": "拆分输出2",
"type": "n8n-nodes-base.splitOut",
"position": [
2220,
2700
],
"parameters": {
"options": {},
"fieldToSplitOut": "replyUsers"
},
"typeVersion": 1
},
{
"id": "250d61cc-120d-4c0c-8220-f9a68a90b667",
"name": "映射回复用户 ID",
"type": "n8n-nodes-base.set",
"position": [
1780,
2780
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "dda6e3d8-0097-4621-9619-07cf39e93018",
"name": "replyUsers",
"type": "array",
"value": "={{\n$json.data.messages\n .flatMap(item => item.replies.flatMap(reply => reply.userId))\n .compact()\n .unique()\n}}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "e98acd0f-f1e3-47f4-ae9c-7259462cf231",
"name": "Google Gemini聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
3640,
3000
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash"
},
"typeVersion": 1
},
{
"id": "0ffb9b87-43db-4417-8c37-384a33cbb830",
"name": "总结线程",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
3540,
2780
],
"parameters": {
"text": "=## Message\n{{ $json.userName }} (<@{{ $json.userId }}>) says at {{ new DateTime(parseFloat($json.ts)*1000).format('d MMM HH:mma') }}:\n> {{ $json.text }}\n\n## {{ ($json.replies ?? []).compact().length }} Replies\n{{\n($json.replies ?? [])\n .compact()\n .map(reply => ({\n ...reply,\n userName: $('Reply Users').item.json.data\n .find(user => user.id === reply.userId)?.name\n }))\n .map(reply =>\n `* ${new DateTime(parseFloat($json.ts)*1000).format('d MMM HH:mma')}, ${reply.userName} (<@${reply.userId}>) replies: ${reply.text}`\n)\n .join('\\n')\n \n}}",
"messages": {
"messageValues": [
{
"message": "=Summarize the topic of the slack message and the resulting conversation from the replies (if any). Highlight any achievements, accomplishments, attempts or challenges mentioned."
}
]
},
"promptType": "define"
},
"typeVersion": 1.6
},
{
"id": "678a48ec-acb1-4c42-b8c9-d4cd762e4a2a",
"name": "聚合2",
"type": "n8n-nodes-base.aggregate",
"position": [
3920,
2780
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "ab39b117-e1bd-495f-a92d-fb79973b3601",
"name": "聚合回复用户",
"type": "n8n-nodes-base.aggregate",
"position": [
2880,
2700
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "c71b7ca6-8245-4262-b2f1-abea511390d6",
"name": "回复用户",
"type": "n8n-nodes-base.set",
"position": [
3100,
2780
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "9f721cde-2d36-40ee-b7d8-a920695157a9",
"name": "data",
"type": "array",
"value": "={{ $json.data ?? [] }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "4b2c452b-4e68-4536-aa58-a85fd586c606",
"name": "Google Gemini 聊天模型1",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
3080,
1620
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash"
},
"typeVersion": 1
},
{
"id": "d65b4f27-52ab-4c29-8692-ee2835fddd17",
"name": "遍历项目",
"type": "n8n-nodes-base.splitInBatches",
"position": [
2000,
2400
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "cfb55c7f-a89d-4ce4-8709-31e5e119c6ee",
"name": "聚合3",
"type": "n8n-nodes-base.set",
"position": [
2440,
2200
],
"parameters": {
"mode": "raw",
"options": {},
"jsonOutput": "={{\n{\n ...$('Split Out1').item.json,\n replies: $json.replies.filter(reply => reply.ts)\n}\n}}\n"
},
"typeVersion": 3.4
},
{
"id": "8b70e30c-99d5-4086-85aa-e6cfcc7f14e7",
"name": "聚合4",
"type": "n8n-nodes-base.aggregate",
"position": [
2660,
2200
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "1cef5853-d301-49cb-9f58-c1a9128b8b33",
"name": "当由其他工作流执行时",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"position": [
1120,
2400
],
"parameters": {
"workflowInputs": {
"values": [
{
"name": "action"
},
{
"name": "data",
"type": "object"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "b30c2433-3bfe-480f-a4bd-8c41900802a2",
"name": "条件分支",
"type": "n8n-nodes-base.switch",
"position": [
1340,
2400
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "users",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "fa924990-9f6e-40c4-aaec-50d4f5927414",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.action }}",
"rightValue": "users"
}
]
},
"renameOutput": true
},
{
"outputKey": "message_replies",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "26ce01b2-9e5b-43e8-926d-9d726c9ca74d",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.action }}",
"rightValue": "message_replies"
}
]
},
"renameOutput": true
},
{
"outputKey": "message_summarize",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "45fd7264-6ac3-4bbd-8a91-c4cfb33b4545",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.action }}",
"rightValue": "message_summarize"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "b05735c3-4beb-4a80-8297-85e952e81270",
"name": "映射用户到消息",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
2020,
1460
],
"parameters": {
"mode": "each",
"options": {},
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
},
"workflowInputs": {
"value": {
"data": "={{ $json }}",
"action": "users"
},
"schema": [
{
"id": "action",
"type": "string",
"display": true,
"required": false,
"displayName": "action",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "data",
"type": "object",
"display": true,
"required": false,
"displayName": "data",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": true
}
},
"typeVersion": 1.2
},
{
"id": "28ed52b2-b0c3-4f19-b394-347c8ff9e323",
"name": "获取用户信息",
"type": "n8n-nodes-base.set",
"position": [
2660,
2000
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "17344879-1e10-4738-8db0-6e0daddea920",
"name": "user",
"type": "object",
"value": "={{\n{\n id: $('Get User').item.json.id,\n team_id: $('Get User').item.json.team_id,\n name: $('Get User').item.json.name,\n is_bot: $('Get User').item.json.is_bot\n}\n}}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "bbd7c77e-2405-4e63-ae38-f064beafab9c",
"name": "获取消息回复",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
2240,
1460
],
"parameters": {
"mode": "each",
"options": {},
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
},
"workflowInputs": {
"value": {
"data": "={{ $json }}",
"action": "message_replies"
},
"schema": [
{
"id": "action",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "action",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "data",
"type": "object",
"display": true,
"removed": false,
"required": false,
"displayName": "data",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": true
}
},
"typeVersion": 1.2
},
{
"id": "edf34e72-04b4-4fed-a3af-42dec1c7ed17",
"name": "有回复用户?",
"type": "n8n-nodes-base.if",
"position": [
2000,
2780
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "813d9fea-9de0-4151-aa45-d38a42f808b8",
"operator": {
"type": "array",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.replyUsers }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "dc9c6cf0-c627-4311-9160-62204e9b67e0",
"name": "消息转项目1",
"type": "n8n-nodes-base.code",
"position": [
3320,
2780
],
"parameters": {
"jsCode": "return $('Switch').first().json.data.messages"
},
"typeVersion": 2
},
{
"id": "0b830a49-c77e-41f3-8d70-47a26bfe0a0e",
"name": "聚合结果",
"type": "n8n-nodes-base.set",
"position": [
2780,
1460
],
"parameters": {
"mode": "raw",
"options": {},
"jsonOutput": "={{\n{\n ...$('Map Users to Messages').item.json,\n messages: $('Fetch Message Replies').item.json.data\n .map((message,idx) => ({\n ...message,\n summary: $json.data[idx].text,\n }))\n}\n}}"
},
"typeVersion": 3.4
},
{
"id": "b0c66c7f-0fed-465c-8933-7b803c9b3b64",
"name": "团队成员周报代理",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
2980,
1460
],
"parameters": {
"text": "={{\n$json.messages\n .map((message,idx) =>\n `${message.userName} (<@${message.userId}>) posted on ${new Date(parseFloat(message.ts) * 1000).format('d MMM')}:\\n> \\\"${message.text}\\\".\\nThe summary of this thread is as follows:\\n${message.summary.replaceAll('\\n', ' ')}`\n )\n .join('\\n---\\n')\n}}",
"messages": {
"messageValues": [
{
"message": "=Your are energetic assistant who produces weekly mini-reports on team members by analysing their slack messages from last week and posts these reports on the following Monday.\nThere has already been some work done to collect and summarise each thread made by the user within the last week.\nYour task is to summarize all the threads by this user and any interactions with other users involved and produce a mini report to share with other team members.\nFocus on wins and challenges.\nAim to motivate and call out any outstanding concerns where appropriate.\nWelcome any new team members who may have joined and say good bye to those who may have left."
}
]
},
"promptType": "define"
},
"typeVersion": 1.6
},
{
"id": "e4a487ae-8d71-4fe6-a760-7a0fb95a8fac",
"name": "合并结果",
"type": "n8n-nodes-base.set",
"position": [
3480,
1460
],
"parameters": {
"mode": "raw",
"options": {},
"jsonOutput": "={{\n{\n ...$('Aggregate Results').item.json,\n report: $json.text,\n}\n}}"
},
"typeVersion": 3.4
},
{
"id": "06736a5c-7450-406a-ad3a-08a368d1addf",
"name": "团队周报代理",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
3700,
1460
],
"parameters": {
"text": "={{\n$input.all()\n .map(item => item.json)\n .map(item =>\n`user: ${item.user.name} <@${item.user.id}>\nmessage count: ${item.messages.length}\nreport: ${item.report.replaceAll('\\n', ' ')}`\n ).join('\\n---\\n')\n}}",
"messages": {
"messageValues": [
{
"message": "=Your are energetic assistant who produces a team-wide weekly report from all activity of all team members in the prior last week and posts this single report on the following Monday.\nThere has already been some work done to collect individual reports from team members.\nYour task is generate a report covering the team to prepare and motivate them for the upcoming week.\nFocus on wins and challenges if available.\nLook out for similar activities between members and make a connection if possible.\nAim to motivate and call out any outstanding concerns where appropriate.\nWelcome any new team members who may have joined and say good bye to those who may have left."
}
]
},
"promptType": "define"
},
"executeOnce": true,
"typeVersion": 1.6
},
{
"id": "eef36957-9bf0-4be3-95a8-73bbefdc0c85",
"name": "Google Gemini 聊天模型2",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
3780,
1620
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash"
},
"typeVersion": 1
},
{
"id": "b9a11c72-de41-4a45-85a0-672cf54ef152",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
860,
1180
],
"parameters": {
"color": 7,
"width": 820,
"height": 520,
"content": "## 1. 获取上周所有活动"
},
"typeVersion": 1
},
{
"id": "8afc048f-ce06-46c3-916f-cbcf14bcfe2b",
"name": "便签 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1700,
1180
],
"parameters": {
"color": 7,
"width": 760,
"height": 520,
"content": "## 2. 总结消息线程和对话"
},
"typeVersion": 1
},
{
"id": "c9a7358c-fbe7-435a-b435-d7b07599bdc6",
"name": "便签 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
2480,
1180
],
"parameters": {
"color": 7,
"width": 660,
"height": 620,
"content": "## 3. 为每个团队成员生成活动报告"
},
"typeVersion": 1
},
{
"id": "add32ef0-b515-44e6-a234-0a0fa77f4e84",
"name": "总结消息线程",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
2460,
1460
],
"parameters": {
"mode": "each",
"options": {},
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
},
"workflowInputs": {
"value": {
"data": "={{\n{\n ...$('Map Users to Messages').item.json,\n messages: $json.data\n}\n}}",
"action": "message_summarize"
},
"schema": [
{
"id": "action",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "action",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "data",
"type": "object",
"display": true,
"removed": false,
"required": false,
"displayName": "data",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": true
}
},
"typeVersion": 1.2
},
{
"id": "17f2f45e-2c95-4b3c-b6db-a2881ae88964",
"name": "便签 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
3160,
1180
],
"parameters": {
"color": 7,
"width": 680,
"height": 620,
"content": "## 4. 为整个团队生成最终报告"
},
"typeVersion": 1
},
{
"id": "18cc7fa7-603c-4165-97c6-80d72fd4a9a6",
"name": "便签 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
3860,
1180
],
"parameters": {
"color": 7,
"width": 680,
"height": 620,
"content": "## 5. 在团队频道发布报告(周一早上!)"
},
"typeVersion": 1
},
{
"id": "9cd8bdd6-5fc7-4e44-bcd0-058bc5d11335",
"name": "便签 5",
"type": "n8n-nodes-base.stickyNote",
"position": [
860,
1980
],
"parameters": {
"color": 7,
"width": 560,
"height": 340,
"content": "## 5. 子工作流"
},
"typeVersion": 1
},
{
"id": "6f6fc730-5fc8-4dcc-b86d-e3b2f0e792a0",
"name": "Monday @ 6am",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
920,
1460
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 6 * * 1"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "ab94557c-debb-425c-ac83-62e39e43d28b",
"name": "便签6",
"type": "n8n-nodes-base.stickyNote",
"position": [
380,
240
],
"parameters": {
"width": 420,
"height": 1460,
"content": "## Try It Out!\n# WhatsApp Weekly Summary Template\n\nThis n8n template automatically creates weekly summaries of your WhatsApp group activity and sends a report to keep your team in sync.\n\n## The Problem\nWhatsApp conversations move fast. Important ideas, decisions, and information get buried in endless message threads and are forgotten by Monday morning.\n\n## The Solution\nAI automatically reviews your group's past week of messages every Monday morning and creates a focused summary report to start the week right.\n\n## How It Works\n1. **Monday 6am**: Automatically collects all group messages from the past week\n2. **Groups messages**: Organizes conversations by user and identifies key discussions\n3. **AI analysis**: Extracts important highlights and observations from the raw messages\n4. **Individual summaries**: Creates focused reports for each team member's contributions\n5. **Team overview**: Combines individual reports into one weekly team summary\n6. **Delivery**: Posts the summary to your WhatsApp group first thing Monday morning\n\n## Best Use Cases\n- Project teams using WhatsApp as their main communication channel\n- Groups where most work discussions happen in one chat\n- Teams that need weekly alignment without endless scroll-back\n\n## Setup Tips\n- Filter for specific team members if you want focused updates\n- Customize the report tone (casual vs formal) based on your audience\n- Works best with active groups that have regular weekly activity\n\n## Requirements\n- WhapAround.pro\n- Gemini AI"
},
"typeVersion": 1
},
{
"id": "f31ae57f-50c8-47bc-bebb-d5ad51b63f16",
"name": "WhapAround.pro",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
1200,
1460
],
"parameters": {
"options": {}
},
"typeVersion": 1.2
},
{
"id": "2b423e5a-c7ed-4ea2-b4f8-c49a1be26587",
"name": "响应 Webhook",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
4240,
1460
],
"parameters": {
"options": {}
},
"typeVersion": 1.2
},
{
"id": "0b4af0d1-0d92-421c-b5c8-2847311204d2",
"name": "whapAround.pro",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
1720,
2100
],
"parameters": {
"options": {}
},
"typeVersion": 1.2
},
{
"id": "9cc9571b-a8c7-4f5b-8886-aa9f95e2788d",
"name": "whapAround.pro-2",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
2580,
2700
],
"parameters": {
"options": {}
},
"typeVersion": 1.2
},
{
"id": "d8d541b2-eee9-46f8-882c-835ace7c259d",
"name": "whapAround.pro-1",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
2560,
2400
],
"parameters": {
"options": {}
},
"typeVersion": 1.2
}
],
"pinData": {},
"connections": {
"Filter": {
"main": [
[
{
"node": "Simplify Thread Comments",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "whapAround.pro",
"type": "main",
"index": 0
}
],
[
{
"node": "Split Out1",
"type": "main",
"index": 0
}
],
[
{
"node": "Map Reply UserIds",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Get User Info",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Map Users to Messages",
"type": "main",
"index": 0
}
]
]
},
"Aggregate1": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Aggregate2": {
"main": [
[]
]
},
"Aggregate3": {
"main": [
[
{
"node": "Aggregate4",
"type": "main",
"index": 0
}
]
]
},
"Aggregate4": {
"main": [
[]
]
},
"Split Out1": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Split Out2": {
"main": [
[
{
"node": "whapAround.pro-2",
"type": "main",
"index": 0
}
]
]
},
"Message Ref": {
"main": [
[
{
"node": "whapAround.pro-1",
"type": "main",
"index": 0
}
]
]
},
"Reply Users": {
"main": [
[
{
"node": "Messages to Items1",
"type": "main",
"index": 0
}
]
]
},
"Monday @ 6am": {
"main": [
[
{
"node": "WhapAround.pro",
"type": "main",
"index": 0
}
]
]
},
"Group By User": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"WhapAround.pro": {
"main": [
[
{
"node": "Group By User",
"type": "main",
"index": 0
}
]
]
},
"whapAround.pro": {
"main": [
[
{
"node": "Messages to Items",
"type": "main",
"index": 0
}
]
]
},
"Has ReplyUsers?": {
"main": [
[
{
"node": "Split Out2",
"type": "main",
"index": 0
}
],
[
{
"node": "Reply Users",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[
{
"node": "Aggregate3",
"type": "main",
"index": 0
}
],
[
{
"node": "Message Ref",
"type": "main",
"index": 0
}
]
]
},
"Simplify Message": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"whapAround.pro-1": {
"main": [
[
{
"node": "Filter",
"type": "main",
"index": 0
}
]
]
},
"whapAround.pro-2": {
"main": [
[
{
"node": "Aggregate Reply Users",
"type": "main",
"index": 0
}
]
]
},
"Aggregate Results": {
"main": [
[
{
"node": "Team Member Weekly Report Agent",
"type": "main",
"index": 0
}
]
]
},
"Map Reply UserIds": {
"main": [
[
{
"node": "Has ReplyUsers?",
"type": "main",
"index": 0
}
]
]
},
"Messages to Items": {
"main": [
[
{
"node": "Simplify Message",
"type": "main",
"index": 0
}
]
]
},
"Summarise Threads": {
"main": [
[
{
"node": "Aggregate2",
"type": "main",
"index": 0
}
]
]
},
"Merge with Results": {
"main": [
[
{
"node": "Team Weekly Report Agent",
"type": "main",
"index": 0
}
]
]
},
"Messages to Items1": {
"main": [
[
{
"node": "Summarise Threads",
"type": "main",
"index": 0
}
]
]
},
"Aggregate Reply Users": {
"main": [
[
{
"node": "Reply Users",
"type": "main",
"index": 0
}
]
]
},
"Fetch Message Replies": {
"main": [
[
{
"node": "Summarize Message Threads",
"type": "main",
"index": 0
}
]
]
},
"Map Users to Messages": {
"main": [
[
{
"node": "Fetch Message Replies",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "Summarise Threads",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Simplify Thread Comments": {
"main": [
[
{
"node": "Aggregate1",
"type": "main",
"index": 0
}
]
]
},
"Team Weekly Report Agent": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model1": {
"ai_languageModel": [
[
{
"node": "Team Member Weekly Report Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Google Gemini Chat Model2": {
"ai_languageModel": [
[
{
"node": "Team Weekly Report Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Summarize Message Threads": {
"main": [
[
{
"node": "Aggregate Results",
"type": "main",
"index": 0
}
]
]
},
"Team Member Weekly Report Agent": {
"main": [
[
{
"node": "Merge with Results",
"type": "main",
"index": 0
}
]
]
},
"When Executed by Another Workflow": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 项目管理, AI 摘要总结
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+93
113 节点I versus AI
其他
使用AI汇总Slack频道活动生成周报
使用AI汇总Slack频道活动生成周报
If
Set
Code
+13
47 节点Jimleuk
其他
灵活新闻聚合器 - 多源集成、AI分析和可设置频道
多源新闻策展系统,集成Mistral AI分析、摘要和自定义频道
If
Set
Xml
+32
120 节点Hybroht
内容创作
GitHub 同步仪表板 - V2
具有提交历史和回滚功能的 GitHub 工作流版本控制仪表板
If
N8n
Set
+20
94 节点Eduard
开发运维
使用 n8n、Apify 和 OpenAI o3 自托管 AI 深度研究代理
使用 n8n、Apify 和 OpenAI o3 自托管 AI 深度研究代理
If
Set
Code
+20
87 节点Jimleuk
人工智能
实时Notion Todoist双向同步模板
使用Redis的Notion Todoist实时双向同步
If
Set
Code
+26
246 节点Mario
销售