자동화된 애플리케이션 분석 및 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": "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 요청",
"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": "# 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, 소셜 미디어 및 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에서 보기 →
이 워크플로우 공유