AI를 사용하여 Google Play 리뷰 자동 응답
고급
이것은Ticket Management, Multimodal AI분야의자동화 워크플로우로, 23개의 노드를 포함합니다.주로 If, Merge, Slack, HttpRequest, Agent 등의 노드를 사용하며. GPT-4o 및 감정 분석을 사용하여 Google Play 스토어 리뷰 자동 응답
사전 요구사항
- •Slack Bot Token 또는 Webhook URL
- •대상 API의 인증 정보가 필요할 수 있음
- •OpenAI API Key
사용된 노드 (23)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "WRYFuxP8spwY5D0d",
"meta": {
"instanceId": "8c9297025d782e1a7702d6cf5ed0962cc619ffa3e36d29df5cf55629cbd80c9d",
"templateCredsSetupCompleted": true
},
"name": "Auto-Reply to Google Play Reviews with AI",
"tags": [
{
"id": "RA6S6zmKMK9XBvsU",
"name": "ASO",
"createdAt": "2025-06-22T13:15:21.255Z",
"updatedAt": "2025-06-22T13:15:21.255Z"
},
{
"id": "gfcLb8VQxHMG16G5",
"name": "Customer Experience",
"createdAt": "2025-06-22T13:15:21.259Z",
"updatedAt": "2025-06-22T13:15:21.259Z"
}
],
"nodes": [
{
"id": "b7919e56-bad2-47de-acbe-1a9b3664fe34",
"name": "사용자 리뷰 메모리4",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"notes": "{\n \"brand\": \"App Name\",\n \"features\": [\n \"Feature 1\",\n \"Feature 2\",\n \"Feature 3\",\n \"Feature 4\",\n \"Feature 5\",\n \"tone_guidelines\": {\n \"voice\": \"friendly, helpful, and warm\",\n \"length_limit\": \"350 characters\",\n \"greeting\": \"Hi [UserName] 👋\",\n \"signature\": \"– Your Name, Company Name\"\n },\n \"escalation_contact\": {\n \"whatsapp\": \"+91 9999999999\",\n \"email\": \"help@youremail.in\"\n },\n \"review_reply_rules\": [\n \"Never overpromise on fixes.\",\n \"If 4-star review is extremely positive, thank and ask what can improve.\",\n \"Always acknowledge user concern or praise.\",\n \"Avoid repeating user’s words verbatim unless necessary.\",\n \"When confused, lean on support tone and contact sharing.\"\n ]",
"position": [
1220,
720
],
"parameters": {
"sessionKey": "yourapp_memory",
"sessionIdType": "customKey",
"contextWindowLength": 1
},
"typeVersion": 1.3
},
{
"id": "c12cb3b4-6d8e-4a04-a63f-ee30754a6d40",
"name": "OpenAI GPT 4o mini4",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1040,
720
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "w5A792RXx6tK4h8Y",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "213d3568-0e7c-4b54-9dad-b6080f56d75b",
"name": "Play 스토어에 응답 게시4",
"type": "n8n-nodes-base.httpRequest",
"position": [
80,
760
],
"parameters": {
"url": "=https://androidpublisher.googleapis.com/androidpublisher/v3/applications/your.app.package.name/reviews/{{ $('HTTPS').item.json.reviews[0].reviewId }}:reply",
"method": "POST",
"options": {},
"jsonBody": "={\n \"replyText\": \"{{$node['AI Agent'].json['output']}}\"\n}\n",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleApi"
},
"credentials": {
"googleApi": {
"id": "scFPJjSalskMul2S",
"name": "Google Service Account account"
}
},
"typeVersion": 4.2
},
{
"id": "7aebe5a2-eaaf-47b0-be2a-ed7ef9050bed",
"name": "Slack4",
"type": "n8n-nodes-base.slack",
"position": [
360,
760
],
"webhookId": "1076c010-ec99-4e03-88be-320cb756585e",
"parameters": {
"text": "=📢 *Attention: New Review* \n\n👤 *Name:* {{ $('HTTPS').item.json.reviews[0].authorName }} \n⭐ *Rating:* {{ $('HTTPS').item.json.reviews[0].comments[0].userComment.starRating }}/5 \n💬 *Review:*{{ $('HTTPS').item.json.reviews[0].comments[0].userComment.text }} \n\n🤖 *Reply by AI:* \n{{ $json.result.replyText }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "name",
"value": "#general"
},
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "VKhyDOB7wcs9Wtxs",
"name": "Slack account"
}
},
"typeVersion": 2.3
},
{
"id": "26bce2e8-5015-4abd-9c72-8f170affb85d",
"name": "일정 트리거",
"type": "n8n-nodes-base.scheduleTrigger",
"disabled": true,
"position": [
60,
120
],
"parameters": {
"rule": {
"interval": [
{
"field": "minutes",
"minutesInterval": 15
}
]
}
},
"typeVersion": 1.2
},
{
"id": "cfe27626-7889-428a-8df4-673b4fb07e4c",
"name": "스티커 메모5",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"color": 3,
"width": 260,
"height": 280,
"content": "## Check for New Reviews"
},
"typeVersion": 1
},
{
"id": "f959caa1-151c-43d0-8816-994067b9b7e3",
"name": "스티커 메모6",
"type": "n8n-nodes-base.stickyNote",
"position": [
280,
0
],
"parameters": {
"width": 300,
"height": 280,
"content": "## Fetch Reviews from Play Store"
},
"typeVersion": 1
},
{
"id": "154f89be-be4f-42b3-86de-c2bd502267ef",
"name": "스티커 메모7",
"type": "n8n-nodes-base.stickyNote",
"position": [
600,
0
],
"parameters": {
"color": 4,
"width": 300,
"height": 280,
"content": "## Filter Unreplied Reviews"
},
"typeVersion": 1
},
{
"id": "838d6c0f-10ce-4cb5-b755-4661044f7b54",
"name": "필터",
"type": "n8n-nodes-base.if",
"position": [
680,
120
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "3c5d5310-656b-46f1-88b4-b8ffd6d3548f",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.reviews[0].comments[1].developerComment.text }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "34e6d04c-1640-4ac1-951c-dcfb9d4c780b",
"name": "HTTPS",
"type": "n8n-nodes-base.httpRequest",
"position": [
360,
120
],
"parameters": {
"url": "https://androidpublisher.googleapis.com/androidpublisher/v3/applications/your.app.package.name/reviews",
"options": {},
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleApi"
},
"credentials": {
"googleApi": {
"id": "scFPJjSalskMul2S",
"name": "Google Service Account account"
}
},
"typeVersion": 4.2
},
{
"id": "6f088b42-8067-48af-b105-ef367833e27c",
"name": "스티커 메모8",
"type": "n8n-nodes-base.stickyNote",
"position": [
920,
0
],
"parameters": {
"color": 5,
"width": 460,
"height": 280,
"content": "## Detect Review Sentiment"
},
"typeVersion": 1
},
{
"id": "9f367b7a-17d1-4032-b015-e75a0fc0711c",
"name": "OpenAI",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1000,
120
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "chatgpt-4o-latest",
"cachedResultName": "CHATGPT-4O-LATEST"
},
"options": {},
"messages": {
"values": [
{
"content": "=As a customer success assistant, your task is to conduct a thorough analysis of the provided user review and its associated rating. Begin by examining the sentiment expressed in the review, identifying whether it is positive, negative, or neutral. Pay close attention to any discrepancies that may arise between the numerical rating (out of 5 stars) and the qualitative content of the review.\n\nIn your summary note, please include the following key components:\n\nKey Points: Highlight the main themes and messages conveyed in the review, noting any specific features or aspects of the product or service that the user has commented on.\n\nUser Experience: Describe the overall experience of the user as reflected in the review, including their satisfaction, frustrations, or any specific incidents that may have influenced their perspective.\n\nNotable Quotes: Extract and present any particularly impactful or revealing quotes from the review that encapsulate the user's sentiment or highlight significant points.\n\nRating Alignment: Assess whether the given rating aligns with the overall sentiment and content of the review. Discuss any inconsistencies, such as a high rating paired with critical feedback or a low rating despite positive remarks.\n\nActionable Steps: If applicable, suggest potential actions or improvements that could be taken in response to the feedback provided in the review. This could include addressing specific issues raised, enhancing customer support, or implementing product improvements.\n\nPlease analyze the review content and ratings provided below:\n\nReview Content: {{ $json.reviews[0].comments[0].userComment.text }}\nRatings: {{ $json.reviews[0].comments[0].userComment.starRating }} out of 5 stars"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "w5A792RXx6tK4h8Y",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "49883fb3-efed-461e-b88e-4ab9fb0983cd",
"name": "스티커 메모9",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
320
],
"parameters": {
"color": 6,
"width": 260,
"height": 280,
"content": "## Merge Review + Sentiment"
},
"typeVersion": 1
},
{
"id": "fb0909ca-c460-4c29-926a-b52e05f28932",
"name": "스티커 메모10",
"type": "n8n-nodes-base.stickyNote",
"position": [
280,
320
],
"parameters": {
"color": 5,
"width": 400,
"height": 280,
"content": "## Verify Sentiment Analysis & Review"
},
"typeVersion": 1
},
{
"id": "f1ade1a5-b05d-46a2-a7ae-d9b768a9126b",
"name": "스티커 메모11",
"type": "n8n-nodes-base.stickyNote",
"position": [
700,
320
],
"parameters": {
"color": 3,
"width": 260,
"height": 280,
"content": "## Merge Inputs for Reply"
},
"typeVersion": 1
},
{
"id": "5c52fb4c-e3eb-4581-9865-ac77941a4145",
"name": "스티커 메모12",
"type": "n8n-nodes-base.stickyNote",
"position": [
980,
320
],
"parameters": {
"color": 6,
"width": 400,
"height": 600,
"content": "## AI Customer Success Assistant"
},
"typeVersion": 1
},
{
"id": "777aa702-bcf3-435b-aa11-1fd8fc74d5eb",
"name": "스티커 메모13",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
640
],
"parameters": {
"color": 5,
"width": 260,
"height": 280,
"content": "## Post Reply to Play Store"
},
"typeVersion": 1
},
{
"id": "030b990e-3ea4-4408-839f-d0163c0ac0a2",
"name": "스티커 메모14",
"type": "n8n-nodes-base.stickyNote",
"position": [
280,
640
],
"parameters": {
"color": 4,
"width": 260,
"height": 280,
"content": "## Send Reply Log to Slack"
},
"typeVersion": 1
},
{
"id": "45b92bdc-ac6e-4328-8701-ae06425f50ed",
"name": "AI 에이전트",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1040,
440
],
"parameters": {
"text": "=You are a friendly and thoughtful Customer Success Assistant for the {app short desription}, {app name}.\n\nYour job is to craft short, personalized replies to Play Store reviews using the input below.\n\nConstraints:\n- Your reply must not exceed **350 characters**.\n- Avoid sounding robotic or overly formal.\n- Always address the user by their first name.\n\nInput:\nReviewer Name: {{ $json.reviews[0].authorName }}\nStar Rating: {{ $json.reviews[0].comments[0].userComment.starRating }} out of 5\nReview Text: \"{{ $json.reviews[0].comments[0].userComment.text }}\"\nSentiment Summary: {{ $json.message.content }}\n\nReply Guidelines:\n1. If the review is **positive** and **rating is 4 or 5**, express genuine appreciation.\n - Optionally mention a relevant feature like “Feature 1”, “Feature 2”, or “Feature 3”.\n - If it’s 4 stars with strong praise, thank them and gently ask what could improve to 5.\n\n2. If the review contains **issues, bugs, or confusion**, apologize sincerely.\n - Offer help via Email: support@yourcompany.com\n\n3. If the user mentions {keywords}:\n - Mention how {your app} helps for that {problem} (via feature 1, feature 2, or feature 3).\n\n4. If the user's review sentiment is positive and has given 4 or 5 star rating:\n - Thank them and suggest exploring other features like “Feature 1, Feature 2, Feature 3, Feature 4, Feature 5”\n\n5. Don't add line breaks, and try adding contextual emojis based on sentiment of the review.\n\nNow craft a human-sounding, concise, emotionally intelligent reply:",
"options": {},
"promptType": "define"
},
"typeVersion": 2
},
{
"id": "cfc8740f-7f60-43ac-9e7f-1d4440968595",
"name": "병합1",
"type": "n8n-nodes-base.merge",
"position": [
80,
440
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.1
},
{
"id": "600f052b-4ce7-4132-80ba-0ab25239d1d9",
"name": "병합",
"type": "n8n-nodes-base.merge",
"position": [
780,
440
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.1
},
{
"id": "6a85b0e8-c6ea-439f-80d7-beffb44b997f",
"name": "분석 검증",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
340,
440
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "chatgpt-4o-latest",
"cachedResultName": "CHATGPT-4O-LATEST"
},
"options": {},
"messages": {
"values": [
{
"content": "=You're an senior customer success assistant. Your task is to review customer reviews, and ratings along with the summary of analysis that has been provided you.\n\nCheck if the the sentiment analysis is accurate or it has missed some important factors and need/message of user. \n\nPlease analyze the sentiment along with the review content and ratings provided below:\nSentiment summary: {{ $json.message.content }}\nReview Content: {{ $json.reviews[0].comments[0].userComment.text }}\nRatings: {{ $json.reviews[0].comments[0].userComment.starRating }} out of 5 stars\n\nBased on your understanding, reply a summary of sentiment analysis which covers everything that the user has mentioned along with user rating."
}
]
}
},
"credentials": {
"openAiApi": {
"id": "w5A792RXx6tK4h8Y",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "43259679-d4ea-4df0-8219-7556d73d61b7",
"name": "스티커 메모",
"type": "n8n-nodes-base.stickyNote",
"position": [
-600,
0
],
"parameters": {
"width": 560,
"height": 700,
"content": "## 🛠️ Setup Instructions for This Workflow\n\nTo make this Play Store AI review responder work for your app, you need to update the following nodes:\n\n🔹 1. HTTPS Node (Fetch Reviews from Google Play)\nReplace the package name with your actual app's package.\n\nAdd Google Service Account credentials.\n→ Use Google Cloud to generate service account keys and give the account access to your Play Console (View app reviews permission).\n\n🔹 2. OpenAI Nodes\nAdd your OpenAI API credentials (chat model like gpt-4o or gpt-4o-mini). You can choose to switch models or temperature as needed.\n\n🔹 3. AI Agent Node\nUpdate: Your app name, Core features, Custom reply logic (positive/negative/bug/etc.), Escalation contacts, Feel free to tweak or expand the prompt with new tone guidelines, emojis, or exam-specific logic.\n\n🔹 4. Slack Node (Optional)\nIf you want to receive a log of each AI-generated reply, configure this node: Create a Slack App > Get a bot token and invite it to your channel\n\nNot required? → Simply delete or disable this node.\n\n## 🙋♂️ Want Me to Set It Up For You?\nIf you'd rather skip the hassle of configuring all this yourself —\njust reach out to me at 📩 imarunavadas@gmail.com and I’ll set it up for your app.\n\nLet’s automate the boring stuff so you can focus on growth 🚀"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "e05e2090-e889-47cd-8dcd-27cd2954f0a1",
"connections": {
"34e6d04c-1640-4ac1-951c-dcfb9d4c780b": {
"main": [
[
{
"node": "838d6c0f-10ce-4cb5-b755-4661044f7b54",
"type": "main",
"index": 0
},
{
"node": "cfc8740f-7f60-43ac-9e7f-1d4440968595",
"type": "main",
"index": 1
},
{
"node": "600f052b-4ce7-4132-80ba-0ab25239d1d9",
"type": "main",
"index": 1
}
]
]
},
"600f052b-4ce7-4132-80ba-0ab25239d1d9": {
"main": [
[
{
"node": "45b92bdc-ac6e-4328-8701-ae06425f50ed",
"type": "main",
"index": 0
}
]
]
},
"838d6c0f-10ce-4cb5-b755-4661044f7b54": {
"main": [
[],
[
{
"node": "9f367b7a-17d1-4032-b015-e75a0fc0711c",
"type": "main",
"index": 0
}
]
]
},
"cfc8740f-7f60-43ac-9e7f-1d4440968595": {
"main": [
[
{
"node": "6a85b0e8-c6ea-439f-80d7-beffb44b997f",
"type": "main",
"index": 0
}
]
]
},
"9f367b7a-17d1-4032-b015-e75a0fc0711c": {
"main": [
[
{
"node": "cfc8740f-7f60-43ac-9e7f-1d4440968595",
"type": "main",
"index": 0
}
]
]
},
"45b92bdc-ac6e-4328-8701-ae06425f50ed": {
"main": [
[
{
"node": "213d3568-0e7c-4b54-9dad-b6080f56d75b",
"type": "main",
"index": 0
}
]
]
},
"6a85b0e8-c6ea-439f-80d7-beffb44b997f": {
"main": [
[
{
"node": "600f052b-4ce7-4132-80ba-0ab25239d1d9",
"type": "main",
"index": 0
}
]
]
},
"26bce2e8-5015-4abd-9c72-8f170affb85d": {
"main": [
[
{
"node": "34e6d04c-1640-4ac1-951c-dcfb9d4c780b",
"type": "main",
"index": 0
}
]
]
},
"c12cb3b4-6d8e-4a04-a63f-ee30754a6d40": {
"ai_languageModel": [
[
{
"node": "45b92bdc-ac6e-4328-8701-ae06425f50ed",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"b7919e56-bad2-47de-acbe-1a9b3664fe34": {
"ai_memory": [
[
{
"node": "45b92bdc-ac6e-4328-8701-ae06425f50ed",
"type": "ai_memory",
"index": 0
}
]
]
},
"213d3568-0e7c-4b54-9dad-b6080f56d75b": {
"main": [
[
{
"node": "7aebe5a2-eaaf-47b0-be2a-ed7ef9050bed",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 티켓 관리, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
批量 SEO 콘텐츠 생성 및 AI 이미지 포함 Webflow 드래그 앤 드롭 생성 (템플릿)
GPT, Gemini 이미지, Webflow 드라フト를 사용하여 대량 SEO 콘텐츠 생성
If
Set
Code
+
If
Set
Code
54 노드Dahiana
콘텐츠 제작
Arunava의 다중 에이전트 지능형 Reddit 자동화
AI 브랜드 언급 및 Baserow 추적으로 Reddit 게시물 자동 댓글 작성
If
Set
Code
+
If
Set
Code
35 노드Arunava
소셜 미디어
완전히 맞춤화된 3통의 이메일 후속 작업이 포함된 GPT-4 기반 콜드 이메일 워크플로
GPT-4, Mailgun 및 Supabase를 사용한 개인 맞춤형 콜드 이메일 시퀀스 자동화
If
Set
Code
+
If
Set
Code
100 노드Paul
리드 육성
YouTube 비디오 기반 자율 블로그 게시
ChatGPT, Sheets, Apify, Pexels, WordPress를 사용하여 YouTube 비디오를 자동으로 블로그에 게시합니다.
If
Set
Code
+
If
Set
Code
80 노드Oriol Seguí
콘텐츠 제작
OpenAI, LangChain, API 통합을 사용한 작업 자동화 초보자 가이드
OpenAI, LangChain 및 API 통합을 사용한 작업 자동화 시작자 가이드
If
Set
Code
+
If
Set
Code
33 노드Meelioo
콘텐츠 제작
완전한 B2B 판매 프로세스: Apollo 잠재 고객 생성, Mailgun 프로모션 및 AI 응답 관리
완전한 B2B 판매 프로세스: Apollo 잠재 고객 생성, Mailgun 확장 및 AI 응답 관리
If
Set
Code
+
If
Set
Code
116 노드Paul
콘텐츠 제작
워크플로우 정보
난이도
고급
노드 수23
카테고리2
노드 유형10
저자
Arunava
@arunavaProduct & Growth at Testline AI | Automating the Boring Stuff with AI Agents | Ex-RecordBook (YC W22)
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유