Apple App Store评论摘要
高级
这是一个Market Research、AI RAG领域的自动化工作流,包含 32 个节点。主要使用 Jwt、Set、Slack、Filter、SplitOut 等节点。 使用Pinecone、GPT-4 Mini和Slack通知汇总Apple App Store评论
前置要求
- •Slack Bot Token 或 Webhook URL
- •可能需要目标 API 的认证凭证
- •OpenAI API Key
- •Pinecone API Key
使用的节点 (32 个)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "O16rkzLczZ7KXsJr",
"meta": {
"instanceId": "fe52080916406a2a9812a7975b2d9b9e9838f3ce0f0b34614c611fb2ca1528d3"
},
"name": "Apple App Store 评论摘要",
"tags": [],
"nodes": [
{
"id": "8d29dacc-12dc-4b59-8f61-94c06633c85e",
"name": "拆分输出6",
"type": "n8n-nodes-base.splitOut",
"position": [
448,
464
],
"parameters": {
"options": {},
"fieldToSplitOut": "apps"
},
"typeVersion": 1
},
{
"id": "851e89ba-22be-4a77-92ab-87d5a996e43c",
"name": "拆分输出8",
"type": "n8n-nodes-base.splitOut",
"position": [
480,
928
],
"parameters": {
"options": {},
"fieldToSplitOut": "apps"
},
"typeVersion": 1
},
{
"id": "8b3b836b-e9c9-49bf-9a47-2eaad4b70487",
"name": "遍历项目3",
"type": "n8n-nodes-base.splitInBatches",
"onError": "continueRegularOutput",
"position": [
656,
928
],
"parameters": {
"options": {
"reset": false
}
},
"typeVersion": 3
},
{
"id": "41b33c31-6d86-475f-a5b0-b837310cf310",
"name": "JWT",
"type": "n8n-nodes-base.jwt",
"position": [
848,
464
],
"parameters": {
"options": {
"kid": "LY89FQN8G3"
},
"useJson": true,
"claimsJson": "={\n \"iss\": \"69a6de90-8c47-47e3-e053-5b8c7c11a4d1\",\n \"aud\": \"appstoreconnect-v1\",\n \"bid\": \"com.tripledot.woodoku\",\n \"exp\": {{ Math.floor((new Date().getTime() + 10 * 60 * 1000) / 1000) }}\n}\n"
},
"credentials": {
"jwtAuth": {
"id": "7qTWKeegrAbdcNLO",
"name": "Apple Connect JWT Auth account - App Manager - Tripledot"
}
},
"typeVersion": 1
},
{
"id": "9871f543-2071-4ead-ab58-6ea3fd652867",
"name": "HTTP 请求 - 客户评论",
"type": "n8n-nodes-base.httpRequest",
"position": [
1040,
464
],
"parameters": {
"url": "=https://api.appstoreconnect.apple.com/v1/apps/{{ $('Loop Over Items2').item.json.apple_app_store_app_id }}/customerReviews?sort=-createdDate",
"options": {
"pagination": {
"pagination": {
"nextURL": "={{$response.body.links[\"next\"]}}",
"maxRequests": 5,
"paginationMode": "responseContainsNextURL",
"limitPagesFetched": true,
"completeExpression": "={{$response.body.links[\"next\"] == null}}",
"paginationCompleteWhen": "other"
}
}
},
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth"
},
"credentials": {
"httpBearerAuth": {
"id": "vqqwFq1bj6pWDkMw",
"name": "Apple Connect Bearer YOUR_TOKEN_HERE account - Tripledot"
}
},
"typeVersion": 4.2
},
{
"id": "14faa3b0-63a2-42d2-9bb0-e5af2e380768",
"name": "Pinecone 向量存储9",
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"position": [
1536,
464
],
"parameters": {
"mode": "insert",
"options": {
"clearNamespace": "={{ new Date().getDay() === 6 }}",
"pineconeNamespace": "=store_reviews_apple_app_store_{{$('Split Out6').item.json.apple_app_store_app_id}}"
},
"pineconeIndex": {
"__rl": true,
"mode": "list",
"value": "n8n-store-reviews",
"cachedResultName": "n8n-store-reviews"
}
},
"credentials": {
"pineconeApi": {
"id": "AhisTk5eS6H3HYiC",
"name": "PineconeApi account"
}
},
"typeVersion": 1.3
},
{
"id": "da56079e-cb79-477d-8975-0ce5d6986719",
"name": "OpenAI 嵌入9",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
1536,
640
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "iAPtqcVj4gp3rRy2",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "fd593a5c-7a30-4cc3-b176-a70e71eb7367",
"name": "默认数据加载器8",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
1632,
640
],
"parameters": {
"options": {
"metadata": {
"metadataValues": [
{
"name": "star_rating",
"value": "={{ $('Filter1').item.json.data.attributes.rating }}"
},
{
"name": "date",
"value": "={{$('Filter1').item.json.data.attributes.createdDate}}\n"
},
{
"name": "territory",
"value": "={{ $('Filter1').item.json.data.attributes.territory }}"
},
{
"name": "review_id",
"value": "={{ $('Filter1').item.json.data.id }}"
}
]
}
},
"jsonData": "=title: {{ $('Filter1').item.json.data.attributes.title }} | comment: {{ $('Filter1').item.json.data.attributes.body }} | date: {{ $('Filter1').item.json.data.attributes.createdDate }} | star rating: {{ $('Filter1').item.json.data.attributes.rating }} | territory: {{ $('Filter1').item.json.data.attributes.territory }}",
"jsonMode": "expressionData"
},
"typeVersion": 1.1
},
{
"id": "29922c0f-d2dc-4753-abc1-4e52de4be1bf",
"name": "拆分输出9",
"type": "n8n-nodes-base.splitOut",
"position": [
1216,
464
],
"parameters": {
"include": "=",
"options": {
"destinationFieldName": ""
},
"fieldToSplitOut": "data"
},
"typeVersion": 1
},
{
"id": "ed1b9229-af94-4757-a920-068d08d50c39",
"name": "OpenAI 聊天模型10",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
880,
1152
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "iAPtqcVj4gp3rRy2",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "49252522-8491-4099-9b53-699d81bc8fac",
"name": "OpenAI 嵌入12",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
976,
1328
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "iAPtqcVj4gp3rRy2",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "e7ab3d96-4ceb-448c-b059-ccc314943589",
"name": "Pinecone 向量存储12",
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"position": [
976,
1200
],
"parameters": {
"mode": "retrieve-as-tool",
"topK": 500,
"options": {
"pineconeNamespace": "=store_reviews_apple_app_store_{{$('Loop Over Items3').item.json.apple_app_store_app_id}}"
},
"pineconeIndex": {
"__rl": true,
"mode": "list",
"value": "n8n-store-reviews",
"cachedResultName": "n8n-store-reviews"
},
"toolDescription": "This is the vector store for the Apple App Store reviews data you need to answer queries"
},
"credentials": {
"pineconeApi": {
"id": "AhisTk5eS6H3HYiC",
"name": "PineconeApi account"
}
},
"typeVersion": 1.3
},
{
"id": "e6bdf836-c130-44f5-80fb-04afd274fed9",
"name": "便签7",
"type": "n8n-nodes-base.stickyNote",
"position": [
1232,
864
],
"parameters": {
"color": 7,
"width": 192,
"height": 224,
"content": "将摘要发布到 Slack 频道"
},
"typeVersion": 1
},
{
"id": "7997491f-54e8-4a1c-8f8d-62171d58e45e",
"name": "便签10",
"type": "n8n-nodes-base.stickyNote",
"position": [
48,
400
],
"parameters": {
"color": 7,
"width": 150,
"height": 208,
"content": "每日获取评论一次"
},
"typeVersion": 1
},
{
"id": "1cee29d5-8b94-4cbc-b9e0-9d5312dd3490",
"name": "每日触发器1",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
80,
464
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 10
}
]
}
},
"typeVersion": 1.2
},
{
"id": "fc49497e-d286-406d-8d80-22be63779d5e",
"name": "设置 App Store 应用 ID",
"type": "n8n-nodes-base.set",
"position": [
256,
464
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ed79836f-8032-4daa-afc1-d0170157c8a0",
"name": "=apps",
"type": "array",
"value": "=[\n { \n \"apple_app_store_app_id\": \"<Apple app id here>\", \n \"app_name\": \"<App name here>\"\n },\n {\n \"apple_app_store_app_id\": \"<Apple app id here>\", \n \"app_name\": \"<App name here>\"\n }\n]"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "0a5b71ee-bf43-4312-9d26-799e3669b6d3",
"name": "便签9",
"type": "n8n-nodes-base.stickyNote",
"position": [
208,
400
],
"parameters": {
"color": 7,
"width": 192,
"height": 208,
"content": "定义应用 ID 和名称"
},
"typeVersion": 1
},
{
"id": "ada28eab-f4f1-4720-8ea5-55371299289d",
"name": "便签11",
"type": "n8n-nodes-base.stickyNote",
"position": [
432,
400
],
"parameters": {
"color": 7,
"width": 304,
"height": 208,
"content": "遍历列表中的应用 ID(应用)"
},
"typeVersion": 1
},
{
"id": "56f0e43e-9687-46e2-8aff-50b1548db9a8",
"name": "遍历项目2",
"type": "n8n-nodes-base.splitInBatches",
"onError": "continueRegularOutput",
"position": [
624,
464
],
"parameters": {
"options": {
"reset": false
}
},
"typeVersion": 3
},
{
"id": "32631042-deb4-494d-93be-800695376bfc",
"name": "便签12",
"type": "n8n-nodes-base.stickyNote",
"position": [
752,
208
],
"parameters": {
"color": 7,
"width": 224,
"height": 400,
"content": "为 Apple 的 App Store Connect API 生成 JWT 令牌。必需字段:"
},
"typeVersion": 1
},
{
"id": "94eef180-922d-4e24-a35a-30ebf3526059",
"name": "便签13",
"type": "n8n-nodes-base.stickyNote",
"position": [
992,
400
],
"parameters": {
"color": 7,
"width": 192,
"height": 208,
"content": "HTTP 调用以获取应用的 App Store 评论"
},
"typeVersion": 1
},
{
"id": "cd008073-8feb-4cac-bde8-502e726bd06b",
"name": "便签15",
"type": "n8n-nodes-base.stickyNote",
"position": [
1344,
384
],
"parameters": {
"color": 7,
"width": 464,
"height": 224,
"content": "将前一天的评论存储在向量存储中。为每个应用(应用 ID)创建不同的命名空间。每周清除一次命名空间以删除旧评论。"
},
"typeVersion": 1
},
{
"id": "85942bd2-57d2-4504-bb39-ce32b3d47389",
"name": "过滤器1",
"type": "n8n-nodes-base.filter",
"notes": "Fetch yesterday's reviews",
"position": [
1376,
464
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e5cc101a-9e06-4f33-8578-63c4acc66042",
"operator": {
"type": "dateTime",
"operation": "equals"
},
"leftValue": "={{ $json.data.attributes.createdDate.toDateTime().toISODate() }}",
"rightValue": "={{$today.minus({days: 1})}}\n"
}
]
}
},
"notesInFlow": false,
"typeVersion": 2.2,
"alwaysOutputData": true
},
{
"id": "79baaaa8-8c25-4bdf-a98e-1427a116ce49",
"name": "每周触发器",
"type": "n8n-nodes-base.scheduleTrigger",
"notes": "On Fridays at 11am",
"position": [
112,
928
],
"parameters": {
"rule": {
"interval": [
{
"field": "weeks",
"triggerAtDay": [
5
],
"triggerAtHour": 11
}
]
}
},
"notesInFlow": true,
"typeVersion": 1.2
},
{
"id": "58011080-6343-4314-91c5-fb45f8795013",
"name": "便签16",
"type": "n8n-nodes-base.stickyNote",
"position": [
48,
864
],
"parameters": {
"color": 7,
"width": 176,
"height": 224,
"content": "每周准备并发送摘要"
},
"typeVersion": 1
},
{
"id": "ef95861d-7a8e-47f3-8eac-017cc530d090",
"name": "设置 App Store 应用 ID1",
"type": "n8n-nodes-base.set",
"position": [
288,
928
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ed79836f-8032-4daa-afc1-d0170157c8a0",
"name": "=apps",
"type": "array",
"value": "=[\n { \n \"apple_app_store_app_id\": \"<Apple app id here>\", \n \"app_name\": \"<App name here>\"\n },\n {\n \"apple_app_store_app_id\": \"<Apple app id here>\", \n \"app_name\": \"<App name here>\"\n }\n]"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ca10af78-f185-4c10-9431-2d20a3c6e327",
"name": "便签17",
"type": "n8n-nodes-base.stickyNote",
"position": [
240,
864
],
"parameters": {
"color": 7,
"width": 192,
"height": 224,
"content": "定义应用 ID 和名称"
},
"typeVersion": 1
},
{
"id": "247fe591-2a5f-43cc-98e3-db448ff8666c",
"name": "便签18",
"type": "n8n-nodes-base.stickyNote",
"position": [
464,
864
],
"parameters": {
"color": 7,
"width": 320,
"height": 224,
"content": "遍历列表中的应用 ID(应用)"
},
"typeVersion": 1
},
{
"id": "25651392-868b-4481-98d5-cbb1fb628b09",
"name": "AI Agent - 摘要生成器",
"type": "@n8n/n8n-nodes-langchain.agent",
"onError": "continueRegularOutput",
"position": [
928,
944
],
"parameters": {
"text": "=Create a summary of store reviews submitted. In your output, include the number of reviews you processed to create the summary. The summary should be split into two groups: a summary about positive reviews and a summary about negative reviews. Also include the average star rating.",
"options": {
"systemMessage": "=Your job is to respond to prompts using the information you gather from the Apple App Store reviews of a mobile app. Your main role is to help your users to gain insights from store review without having to read reviews one by one. Store review usually have star ratings with 1 star being the lowest rating and 5 star being the highest rating. They can also have a text description where the player of the game writes a review about their experience with the game. These can be negative reviews or positive reviews. The lower the star rating is the more likely that the review is negative."
},
"promptType": "define"
},
"typeVersion": 2
},
{
"id": "b86bb808-114c-45d2-99f9-2ee24ff47684",
"name": "发送到 Slack 频道1",
"type": "n8n-nodes-base.slack",
"position": [
1280,
944
],
"webhookId": "91dd6021-c694-4470-9013-53d5f2e213f8",
"parameters": {
"text": "={{ $json.output }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "C1111111"
},
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "tVU8HVcP92PJGgqD",
"name": "Slack account"
}
},
"typeVersion": 2.3
},
{
"id": "c15903ad-8adc-4a93-beb7-51b7337a369d",
"name": "便签19",
"type": "n8n-nodes-base.stickyNote",
"position": [
896,
864
],
"parameters": {
"color": 7,
"width": 288,
"height": 224,
"content": "生成应用的 Apple App Store 评论摘要"
},
"typeVersion": 1
},
{
"id": "b0bc0432-3765-4037-9983-2b883417278a",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-384,
336
],
"parameters": {
"width": 336,
"height": 784,
"content": "## 使用 Pinecone、OpenAI 和 Slack 通知的 Apple App Store 评论摘要"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {
"Daily Trigger1": [
{
"json": {
"Hour": "14",
"Year": "2025",
"Month": "November",
"Minute": "19",
"Second": "04",
"Timezone": "Europe/Madrid (UTC+01:00)",
"timestamp": "2025-11-07T14:19:04.933+01:00",
"Day of week": "Friday",
"Day of month": "07",
"Readable date": "November 7th 2025, 2:19:04 pm",
"Readable time": "2:19:04 pm"
}
}
]
},
"settings": {
"executionOrder": "v1"
},
"versionId": "dd6fb4d2-4be5-439b-9e2d-bd0a96364b4d",
"connections": {
"JWT": {
"main": [
[
{
"node": "HTTP Request - CUSTOMER REVIEWS",
"type": "main",
"index": 0
}
]
]
},
"Filter1": {
"main": [
[
{
"node": "Pinecone Vector Store9",
"type": "main",
"index": 0
}
]
]
},
"Split Out6": {
"main": [
[
{
"node": "Loop Over Items2",
"type": "main",
"index": 0
}
]
]
},
"Split Out8": {
"main": [
[
{
"node": "Loop Over Items3",
"type": "main",
"index": 0
}
]
]
},
"Split Out9": {
"main": [
[
{
"node": "Filter1",
"type": "main",
"index": 0
}
]
]
},
"Daily Trigger1": {
"main": [
[
{
"node": "Set App Store app ids",
"type": "main",
"index": 0
}
]
]
},
"Weekly Trigger": {
"main": [
[
{
"node": "Set App Store app ids1",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items2": {
"main": [
[],
[
{
"node": "JWT",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items3": {
"main": [
[],
[
{
"node": "AI Agent - Summariser",
"type": "main",
"index": 0
}
]
]
},
"Embeddings OpenAI9": {
"ai_embedding": [
[
{
"node": "Pinecone Vector Store9",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Embeddings OpenAI12": {
"ai_embedding": [
[
{
"node": "Pinecone Vector Store12",
"type": "ai_embedding",
"index": 0
}
]
]
},
"OpenAI Chat Model10": {
"ai_languageModel": [
[
{
"node": "AI Agent - Summariser",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Default Data Loader8": {
"ai_document": [
[
{
"node": "Pinecone Vector Store9",
"type": "ai_document",
"index": 0
}
]
]
},
"AI Agent - Summariser": {
"main": [
[
{
"node": "Send to Slack channel1",
"type": "main",
"index": 0
}
]
]
},
"Set App Store app ids": {
"main": [
[
{
"node": "Split Out6",
"type": "main",
"index": 0
}
]
]
},
"Pinecone Vector Store9": {
"main": [
[
{
"node": "Loop Over Items2",
"type": "main",
"index": 0
}
]
]
},
"Send to Slack channel1": {
"main": [
[
{
"node": "Loop Over Items3",
"type": "main",
"index": 0
}
]
]
},
"Set App Store app ids1": {
"main": [
[
{
"node": "Split Out8",
"type": "main",
"index": 0
}
]
]
},
"Pinecone Vector Store12": {
"ai_tool": [
[
{
"node": "AI Agent - Summariser",
"type": "ai_tool",
"index": 0
}
]
]
},
"HTTP Request - CUSTOMER REVIEWS": {
"main": [
[
{
"node": "Split Out9",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
这是一个高级难度的工作流,适用于Market Research、AI RAG等场景。适合高级用户,包含 16+ 个节点的复杂工作流
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
创建Google Play Store评论摘要
使用GPT-4-mini、Pinecone和Slack提醒汇总Google Play Store评论
Set
Slack
Filter
+10
30 节点Ertay Kaya
Market Research
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+93
113 节点I versus AI
Other
Zendesk -> Pinecone -> AI 智能体 -> Slack
基于 Pinecone、OpenAI 和 Slack 的 Zendesk 工单摘要生成器
Wait
Slack
Zendesk
+7
18 节点Ertay Kaya
Ticket Management
🤖 使用Gemini RAG流水线构建文档专家聊天机器人
使用OpenAI RAG流水线构建n8n文档专家聊天机器人
Set
Html
Filter
+16
46 节点Ayham
Internal Wiki
AIAutomationPro终极RAG聊天机器人v1 n8n市场模板
多语言Telegram RAG聊天机器人,集成监督AI和自动化Google Drive流程
If
Set
Wait
+29
128 节点Daniel Ng
Support Chatbot
AI行业趋势24/7监控(X、Gmail和网站)
基于GPT-5的AI行业趋势24/7监控(X、Gmail和网站)
Set
Gmail
Airtop
+13
35 节点LeeWei
Market Research