自動化アプリ分析とASOレポートジェネレーター
中級
これはMarket Research, Multimodal AI分野の自動化ワークフローで、13個のノードを含みます。主にCode, Telegram, GoogleDocs, FormTrigger, HttpRequestなどのノードを使用。 Google PlayアプリからASOレポートをGemini AIとGoogle Docsで生成
前提条件
- •Telegram Bot Token
- •ターゲットAPIの認証情報が必要な場合あり
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"name": "Automated App Analysis & ASO Report Generator",
"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 Request",
"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": "Basic LLM Chain",
"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": "Code",
"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 Chat Model",
"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": "Code1",
"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": "# Automated App Analysis & ASO Report Generator\n\nThis workflow automates the process of analyzing a mobile app from the Google Play Store and generating a professional **ASO (App Store Optimization) Report**. \nSimply submit a Play Store URL, and the workflow will fetch app intelligence data, parse it, run an AI-based analysis, and deliver a formatted report in Google Docs. A Telegram notification with the document link ensures you never miss a new report.\n\n\n## ✨ Key Features\n- **Form Input Trigger** – Start the workflow by submitting a Play Store URL. \n- **Automated Data Retrieval** – Uses HTTP request to fetch app intelligence (via SensorTower or similar APIs). \n- **Smart Data Parsing** – Extracts essential app details, competitor insights, reviews, downloads, and revenue data. \n- **AI-Powered ASO Report** – Generates a professional analysis using LLM (Gemini via OpenRouter) with structured sections: \n - 📱 App Overview \n - ⭐ User Ratings & Reviews \n - 📊 Competitor Analysis \n - 📈 Market Insights \n - 💡 Actionable Recommendations \n- **Google Docs Integration** – Creates and updates a Google Doc with the generated report. \n- **Instant Notification** – Sends a Telegram message with the app report link for quick access. \n\n---\n\n## 🔐 Required Credentials\nTo run this workflow, you'll need:\n- **SensorTower API (or alternative App Intelligence API)** – for app details, reviews, competitors, and market data. \n- **OpenRouter API** – to access LLM model. \n- **Google Docs OAuth2** – to create and update the ASO report in Google Docs. \n- **Telegram API** – for instant notifications with the report link. \n\n---\n\n## 🎁 Benefits\n- **Save Time** – Automates the manual process of app research and reporting. \n- **Consistent Reporting** – Ensures every report follows a professional structure with clear sections. \n- **Actionable Insights** – Get AI-generated recommendations to improve app performance and competitiveness. \n- **Collaboration-Ready** – Reports are stored in Google Docs for easy sharing and editing. \n- **Real-Time Alerts** – Stay updated via Telegram whenever a new report is generated. \n\n---\n"
},
"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": "- The workflow starts when a user submits a form with the app's Play Store URL\n- Extracts the package name (the id= parameter) from the submitted URL.\n- Uses the package name to call the SensorTower API (or a similar app intelligence API) and fetch details such as the app's name, publisher, category, rating, and more."
},
"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": "- Parses the raw JSON and formats it into structured text, including app details, featured reviews, competitor data, and market insights.\n- Sends the structured data to an AI model with a prompt that instructs it to create a neatly formatted ASO report.\n- Automatically creates a new Google Doc titled with the app's name and stores the generated report inside the specified folder."
},
"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": "- Inserts the ASO report text into the previously created Google Doc.\n- Once the document is updated, a Telegram notification is sent to the specified user."
},
"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・SNS・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 動画を生成
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で表示 →
このワークフローを共有