自动化应用分析与ASO报告生成器
中级
这是一个Market Research, Multimodal AI领域的自动化工作流,包含 13 个节点。主要使用 Code, Telegram, GoogleDocs, FormTrigger, HttpRequest 等节点。 使用Gemini AI和Google Docs从Google Play应用生成ASO报告
前置要求
- •Telegram Bot Token
- •可能需要目标 API 的认证凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"name": "自动化应用分析与 ASO 报告生成器",
"tags": [],
"nodes": [
{
"id": "04d002d6-cae7-45ed-9e6d-983aa5126767",
"name": "表单提交时",
"type": "n8n-nodes-base.formTrigger",
"position": [
0,
0
],
"parameters": {
"options": {},
"formTitle": "ASO Report",
"formFields": {
"values": [
{
"fieldLabel": "Play Store URL",
"requiredField": true
}
]
}
},
"typeVersion": 2.2
},
{
"id": "9d911180-cd81-43f5-a328-663bace8c221",
"name": "HTTP 请求",
"type": "n8n-nodes-base.httpRequest",
"position": [
440,
0
],
"parameters": {
"url": "=https://app.sensortower.com/api/android/apps/{{ $json.packageName }}?country=US",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "98bc7603-c7e0-4cae-b02b-84cf0279eefb",
"name": "基础LLM链",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
880,
0
],
"parameters": {
"text": "=Create an ASO Report based on the following data. \n\nThe report must include:\n📱 App Overview (Name, Publisher, Category, Installs, Rating, In-app purchases, Last update) \n⭐ User Ratings & Reviews (average rating, rating count, summary of featured reviews with sentiment highlights) \n📊 Competitor Analysis (App Name, Publisher, Rating, Installs) \n📈 Market Insights (downloads & revenue last month, top countries if available) \n💡 Recommendations (actionable suggestions to improve monetization, retention, competitiveness) \n\n---\n\n### Input Data:\n\nApp Name: {{ $json.appInfo.name }}\nApp ID: {{ $json.appInfo.app_id }}\nPublisher: {{ $json.appInfo.publisher }}\nCategory: {{ $json.appInfo.category }}\nInstalls: {{ $json.appInfo.installs }}\nRating: {{ $json.appInfo.rating }}\nRating Count: {{ $json.appInfo.rating_count }}\nIn-App Purchases: {{ $json.appInfo.in_app_purchases }}\nLast Update: {{ $json.appInfo.last_update }}\n\nFeatured Reviews:\n{{ $json.reviewsText }}\n\nCompetitors:\n{{ $json.competitorsText }}\n\nMarket Insights:\nDownloads Last Month: {{ $json.market.downloads }}\nRevenue Last Month: {{ $json.market.revenue }} {{ $json.market.currency }}\n",
"batching": {},
"messages": {
"messageValues": [
{
"message": "=You are an ASO (App Store Optimization) Analyst. \nGenerate an executive report in plain text only.\nDo not use HTML or Markdown. \nFormat the report neatly using emojis as section headers and bullet points. \nAlways write in business English.\n"
}
]
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "5b71fe1e-1774-45e9-b8d8-05cb6c8aeb5e",
"name": "代码",
"type": "n8n-nodes-base.code",
"position": [
660,
0
],
"parameters": {
"jsCode": "// n8n Code Node: Parse + Format App Intelligence Data\n// Input: JSON from HTTP Request (SensorTower / similar API)\n// Output: Summary data ready for LLM (formatted text)\n\nconst data = items[0].json;\n\n// --- Get basic info ---\nconst appInfo = {\n name: data.name,\n app_id: data.app_id,\n publisher: data.publisher_name,\n rating: data.rating,\n rating_count: data.rating_count,\n installs: data.installs,\n category: data.categories?.map(c => c.name).join(\", \") || \"N/A\",\n in_app_purchases: data.top_in_app_purchases?.US || \"None\",\n last_update: data.current_version,\n};\n\n// --- Get 3 latest featured reviews ---\nconst reviews = (data.featured_reviews || [])\n .slice(0, 3)\n .map(r => ({\n user: r.username,\n date: r.date,\n rating: r.rating,\n content: r.content,\n tags: r.tags || []\n }));\n\n// Format reviews into clean string\nconst reviewsText = reviews.map(r => \n `- User: ${r.user}\\n Date: ${r.date}\\n Rating: ${r.rating}\\n Content: ${r.content}\\n Tags: ${r.tags.join(\", \")}`\n).join(\"\\n\\n\");\n\n// --- Get top 3 competitors ---\nconst competitors = (data.related_apps || [])\n .slice(0, 3)\n .map(app => ({\n name: app.name,\n publisher: app.publisher_name,\n rating: app.rating,\n installs: app.rating_count,\n }));\n\n// Format competitors into clean string\nconst competitorsText = competitors.map(c => \n `- Name: ${c.name}\\n Publisher: ${c.publisher}\\n Rating: ${c.rating}\\n Installs: ${c.installs}`\n).join(\"\\n\\n\");\n\n// --- Get market data (downloads & revenue last month) ---\nconst market = {\n downloads: data.worldwide_last_month_downloads?.value || 0,\n revenue: data.worldwide_last_month_revenue?.value || 0,\n currency: data.worldwide_last_month_revenue?.currency || \"USD\"\n};\n\n// --- Return final data for LLM ---\nreturn [\n {\n json: {\n appInfo,\n reviewsText,\n competitorsText,\n market\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "e6e2cec5-a1dc-4b0b-ba28-b910c88734e1",
"name": "OpenRouter聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
880,
220
],
"parameters": {
"model": "google/gemini-2.0-flash-exp:free",
"options": {}
},
"typeVersion": 1
},
{
"id": "6e7ed502-b385-4c67-9076-45f5885321ce",
"name": "创建文档",
"type": "n8n-nodes-base.googleDocs",
"position": [
1240,
0
],
"parameters": {
"title": "={{ $('Code').item.json.appInfo.name }}",
"folderId": "YOUR_GOOGLE_DRIVE_FOLDER_ID"
},
"typeVersion": 2
},
{
"id": "5042a450-3c0b-4e71-b89f-71ff8b1eba30",
"name": "更新文档",
"type": "n8n-nodes-base.googleDocs",
"position": [
1460,
0
],
"parameters": {
"actionsUi": {
"actionFields": [
{
"text": "={{ $('Basic LLM Chain').item.json.text }}",
"action": "insert"
}
]
},
"operation": "update",
"documentURL": "={{ $json.id }}"
},
"typeVersion": 2
},
{
"id": "e551c8e9-bbd4-446a-9e7c-932460f6a792",
"name": "发送文本消息",
"type": "n8n-nodes-base.telegram",
"position": [
1680,
0
],
"parameters": {
"text": "=📄 New document for app analysis: {{ $('Code').item.json.appInfo.name }}\n🔗 Document link: https://docs.google.com/document/d/{{ $json.documentId }}/edit?tab=t.0\n",
"chatId": "YOUR_TELEGRAM_CHAT_ID",
"additionalFields": {
"appendAttribution": false
}
},
"typeVersion": 1.2
},
{
"id": "de8cfef6-6362-4375-b0fc-b1d70421df9a",
"name": "代码1",
"type": "n8n-nodes-base.code",
"position": [
220,
0
],
"parameters": {
"jsCode": "// Input from form trigger\nconst url = items[0].json[\"Play Store URL\"];\n\n// Find the 'id=' parameter in the URL\nlet packageName = null;\ntry {\n const urlObj = new URL(url);\n packageName = urlObj.searchParams.get(\"id\");\n} catch (e) {\n // fallback manual if not a valid URL\n const match = url.match(/id=([^&]+)/);\n packageName = match ? match[1] : null;\n}\n\nreturn [\n {\n json: {\n packageName\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "9b40b151-d7ab-4d27-b896-ffc51e5c3832",
"name": "便签 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-660,
-500
],
"parameters": {
"width": 580,
"height": 1160,
"content": "# 自动化应用分析与 ASO 报告生成器"
},
"typeVersion": 1
},
{
"id": "4f425ee1-d7e6-4b47-92ee-a80ffd58d341",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-60,
-180
],
"parameters": {
"color": 2,
"width": 640,
"height": 340,
"content": "- 当用户提交包含应用 Play 商店 URL 的表单时,工作流启动"
},
"typeVersion": 1
},
{
"id": "97bab2dd-d3ff-435a-bdca-8a9859a92e13",
"name": "便签 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
620,
-180
],
"parameters": {
"color": 4,
"width": 760,
"height": 540,
"content": "- 解析原始 JSON 并将其格式化为结构化文本,包括应用详情、精选评论、竞争对手数据和市场洞察。"
},
"typeVersion": 1
},
{
"id": "475755b2-50c1-4db7-8fca-1417cb5ce660",
"name": "便签 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1400,
-180
],
"parameters": {
"color": 5,
"width": 520,
"height": 540,
"content": "- 将 ASO 报告文本插入先前创建的 Google 文档中。"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"connections": {
"5b71fe1e-1774-45e9-b8d8-05cb6c8aeb5e": {
"main": [
[
{
"node": "98bc7603-c7e0-4cae-b02b-84cf0279eefb",
"type": "main",
"index": 0
}
]
]
},
"de8cfef6-6362-4375-b0fc-b1d70421df9a": {
"main": [
[
{
"node": "9d911180-cd81-43f5-a328-663bace8c221",
"type": "main",
"index": 0
}
]
]
},
"9d911180-cd81-43f5-a328-663bace8c221": {
"main": [
[
{
"node": "5b71fe1e-1774-45e9-b8d8-05cb6c8aeb5e",
"type": "main",
"index": 0
}
]
]
},
"98bc7603-c7e0-4cae-b02b-84cf0279eefb": {
"main": [
[
{
"node": "6e7ed502-b385-4c67-9076-45f5885321ce",
"type": "main",
"index": 0
}
]
]
},
"6e7ed502-b385-4c67-9076-45f5885321ce": {
"main": [
[
{
"node": "5042a450-3c0b-4e71-b89f-71ff8b1eba30",
"type": "main",
"index": 0
}
]
]
},
"5042a450-3c0b-4e71-b89f-71ff8b1eba30": {
"main": [
[
{
"node": "e551c8e9-bbd4-446a-9e7c-932460f6a792",
"type": "main",
"index": 0
}
]
]
},
"04d002d6-cae7-45ed-9e6d-983aa5126767": {
"main": [
[
{
"node": "de8cfef6-6362-4375-b0fc-b1d70421df9a",
"type": "main",
"index": 0
}
]
]
},
"e6e2cec5-a1dc-4b0b-ba28-b910c88734e1": {
"ai_languageModel": [
[
{
"node": "98bc7603-c7e0-4cae-b02b-84cf0279eefb",
"type": "ai_languageModel",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级 - 市场调研, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
YouTube评论情感和关键词提取器
使用Gemini AI分析YouTube评论情感和关键词并通过Telegram报告
Set
Code
Telegram
+
Set
Code
Telegram
20 节点Budi SJ
市场调研
使用Vision API和LLM实现自动化发票收集与数据提取
使用Google Vision OCR、Gemini LLM和Google Sheets提取和结构化发票数据
Set
Code
Telegram
+
Set
Code
Telegram
17 节点Budi SJ
发票处理
基于 AI、社交媒体和 WhatsApp 链接的自动化本地商业线索生成器
使用 AI、社交媒体和 WhatsApp 链接自动生成本地商业线索
If
Code
Limit
+
If
Code
Limit
29 节点Budi SJ
潜在客户开发
通过Telegram的DOI URL自动导入研究论文到Zotero
从Telegram导入研究论文到Zotero,含AI摘要总结
If
Set
Code
+
If
Set
Code
25 节点Budi SJ
AI 摘要总结
使用 DeepSeek、TTS 和 Together.ai 从脚本生成 AI
使用 DeepSeek、TTS 和 Together.ai 从脚本生成 AI 视频
Set
Code
Wait
+
Set
Code
Wait
81 节点Lakindu Siriwardana
内容创作
自动化品牌DNA生成器
使用JotForm、Google搜索、Gemini AI和Notion的品牌DNA生成器
Code
Notion
Serp Api
+
Code
Notion
Serp Api
22 节点Budi SJ
市场调研
工作流信息
难度等级
中级
节点数量13
分类2
节点类型8
作者
Budi SJ
@budisjI’m a Product Designer who also works as an Automation Developer. With a background in product design and systems thinking, I build user-centered workflows. My focus is on helping teams and businesses work more productively through impactful automation systems.
外部链接
在 n8n.io 查看 →
分享此工作流