16 - InsightMark:AI駆動のコメント分析
中級
これはAI Summarization, Multimodal AI分野の自動化ワークフローで、13個のノードを含みます。主にCode, ClickUp, Hubspot, MondayCom, FormTriggerなどのノードを使用。 GPT-4を使用してフォームフィードバックを分析し、タスクをMonday、ClickUp、HubSpotに同期
前提条件
- •HubSpot API Key
- •OpenAI API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "sewE6RsPSzHTD82d",
"meta": {
"instanceId": "c91c5b6efe2709e07c37996245857ac5d863d575d07e0072127351337c204c40",
"templateCredsSetupCompleted": true
},
"name": "16 - InsightMark: AI-Powered Review",
"tags": [
{
"id": "2V3HXFbv2wqNGm6s",
"name": "Dev",
"createdAt": "2025-06-17T05:42:41.949Z",
"updatedAt": "2025-06-17T05:42:41.949Z"
}
],
"nodes": [
{
"id": "ab9f0698-cf91-4bde-bae9-f7b4f0beeea7",
"name": "🧪 コード",
"type": "n8n-nodes-base.code",
"position": [
-1680,
-40
],
"parameters": {
"jsCode": "const raw = $input.first().json;\n\nreturn {\n review_text: raw.Message,\n customer_name: raw.Name,\n rating: parseInt(raw.Rating),\n product_service: raw[\"Product Service\"],\n};"
},
"typeVersion": 2
},
{
"id": "35d329e3-d4fb-4c54-a8e4-b4525f02789d",
"name": "📝 フォーム送信時",
"type": "n8n-nodes-base.formTrigger",
"position": [
-1900,
-40
],
"webhookId": "b757ef50-c8d1-4041-95c5-2b1aa62cf017",
"parameters": {
"options": {},
"formTitle": "Feedback Form",
"formFields": {
"values": [
{
"fieldLabel": "Name",
"placeholder": "Your Name",
"requiredField": true
},
{
"fieldType": "textarea",
"fieldLabel": "Message",
"placeholder": "Feedback",
"requiredField": true
},
{
"fieldType": "dropdown",
"fieldLabel": "Rating",
"fieldOptions": {
"values": [
{
"option": "1"
},
{
"option": "2"
},
{
"option": "3"
},
{
"option": "4"
},
{
"option": "5"
}
]
},
"requiredField": true
},
{
"fieldType": "textarea",
"fieldLabel": "Product Service",
"requiredField": true
}
]
},
"formDescription": "Please Let us know about your concerns"
},
"typeVersion": 2.2
},
{
"id": "dc7bd1ea-c3d3-48b5-8294-24fcfe958947",
"name": "🧠 OpenAI 分析",
"type": "@n8n/n8n-nodes-langchain.openAi",
"notes": "AI ANALYSIS: Uses OpenAI GPT-4 to analyze sentiment, categorize feedback, and determine required actions. Adjust temperature for more/less creative responses.",
"position": [
-1460,
-40
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {
"temperature": 0.3
},
"messages": {
"values": [
{
"role": "system",
"content": "You are an expert customer feedback analyzer. Analyze the provided customer review and return a JSON response with the following structure:\n\n{\n \"sentiment\": \"positive/negative/neutral\",\n \"sentiment_score\": 0.85,\n \"category\": \"product/service/support/delivery/pricing\",\n \"priority\": \"high/medium/low\",\n \"department\": \"customer_support/product_team/marketing/sales\",\n \"action_required\": true/false,\n \"key_insights\": [\"insight1\", \"insight2\"],\n \"suggested_response_tone\": \"apologetic/grateful/informative\",\n \"keywords\": [\"keyword1\", \"keyword2\"],\n \"summary\": \"Brief summary of the review\"\n}\n\nBe accurate and consistent in your analysis."
},
{
"content": "=Please analyze this customer review:\n\nReview: {{ $json.review_text }}\nCustomer: {{ $json.customer_name }}\nRating: {{ $json.rating }}/5\nProduct/Service: {{ $json.product_service }}"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "c8cbK7g7bUw6Ifjy",
"name": "OpenAi account 8"
}
},
"typeVersion": 1
},
{
"id": "c41226f7-9ccc-4852-bccd-b64f7e09aff5",
"name": "🧮 データ処理",
"type": "n8n-nodes-base.code",
"notes": "DATA PROCESSING: Parses AI response, prepares task data, and sets routing flags. Modify the create_*_task flags to enable/disable integrations.",
"position": [
-1084,
-40
],
"parameters": {
"jsCode": "const aiInput = $input.first().json;\n\n// Extract original form data (passed through from previous nodes)\nconst formData = {\n review_text: $('🧪 Code').first().json.review_text,\n customer_name: $('🧪 Code').first().json.customer_name,\n rating: $('🧪 Code').first().json.rating,\n product_service: $('🧪 Code').first().json.product_service,\n review_date: new Date().toISOString()\n};\n\n// Parse AI response - it should be a JSON string\nlet aiResponse = {};\ntry {\n if (typeof aiInput.response === 'string') {\n aiResponse = JSON.parse(aiInput.response);\n } else if (aiInput.response && typeof aiInput.response === 'object') {\n aiResponse = aiInput.response;\n } else {\n aiResponse = aiInput;\n }\n} catch (error) {\n console.error('Failed to parse AI response:', error);\n aiResponse = {\n sentiment: 'neutral',\n sentiment_score: 0.5,\n category: 'unspecified',\n priority: 'medium',\n department: 'customer_support',\n action_required: true,\n key_insights: ['Failed to analyze review'],\n suggested_response_tone: 'informative',\n keywords: [],\n summary: 'Analysis failed'\n };\n}\n\n// Safety fallback\nconst sentiment = aiResponse.sentiment ?? 'neutral';\n\n// Construct final processed output (data only)\nconst processedData = {\n // Original data\n review_text: formData.review_text,\n customer_name: formData.customer_name,\n rating: formData.rating,\n product_service: formData.product_service,\n review_date: formData.review_date,\n\n // Enriched data\n sentiment,\n sentiment_score: aiResponse.sentiment_score ?? 0.5,\n category: aiResponse.category ?? 'unspecified',\n priority: aiResponse.priority ?? 'medium',\n department: aiResponse.department ?? 'customer_support',\n action_required: aiResponse.action_required ?? true,\n key_insights: aiResponse.key_insights ?? [],\n suggested_response_tone: aiResponse.suggested_response_tone ?? 'informative',\n keywords: aiResponse.keywords ?? [],\n summary: aiResponse.summary ?? '',\n\n // Computed metadata\n task_title: `Review Response: ${sentiment.toUpperCase()} - ${formData.customer_name}`,\n task_description: `Customer Review Analysis\n\nCustomer: ${formData.customer_name}\nRating: ${formData.rating}/5\nSentiment: ${sentiment} (${aiResponse.sentiment_score ?? 'N/A'})\nCategory: ${aiResponse.category ?? 'unspecified'}\nPriority: ${aiResponse.priority ?? 'medium'}\n\nReview: \"${formData.review_text}\"\n\nKey Insights:\n${(aiResponse.key_insights ?? []).map(i => `• ${i}`).join('\\n')}\n\nSuggested Response Tone: ${aiResponse.suggested_response_tone ?? 'informative'}\n\nKeywords: ${(aiResponse.keywords ?? []).join(', ')}`,\n\n // Due date logic\n due_date:\n (aiResponse.priority ?? 'medium') === 'high'\n ? new Date(Date.now() + 1 * 24 * 60 * 60 * 1000).toISOString()\n : (aiResponse.priority ?? 'medium') === 'medium'\n ? new Date(Date.now() + 3 * 24 * 60 * 60 * 1000).toISOString()\n : new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toISOString()\n};\n\nreturn processedData;"
},
"typeVersion": 2
},
{
"id": "cadef244-c319-4166-936a-6fb2943bdb75",
"name": "🕵️♂️ AIエージェント",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-864,
-40
],
"parameters": {
"text": "=Create a structured task using the following customer review analysis. The output must be in valid JSON format and contain fields that are friendly for Monday.com, HubSpot, and ClickUp.\n\nRequirements:\nOutput only a JSON object.\n\nUse a clear, professional tone.\n\nEnsure the task is actionable, with proper metadata, title, description, and priority.\n\nInclude customer insights, sentiment analysis, and due date.\n\nUser Provided Data:\n{\n \"review_text\": \"{{ $json.review_text }}\",\n \"customer_name\": \"{{ $json.customer_name }}\",\n \"rating\": \"{{ $json.rating }}\",\n \"product_service\": \"{{ $json.product_service }}\",\n \"review_date\": \"{{ $json.review_date }}\",\n \"sentiment\": \"{{ $json.sentiment }}\",\n \"sentiment_score\": {{ $json.sentiment_score }},\n \"category\": \"{{ $json.category }}\",\n \"priority\": \"{{ $json.priority }}\",\n \"department\": \"{{ $json.department }}\",\n \"action_required\": {{ $json.action_required }},\n \"due_date\": \"{{ $json.due_date }}\",\n \"task_title\": \"{{ $json.task_title }}\",\n \"task_description\": `{{ $json.task_description }}`\n}\n\nOutput format (example structure):\n\n{\n \"title\": \"Review Response: POSITIVE - John Doe\",\n \"description\": \"Clear, professional task description with insights and action items.\",\n \"priority\": \"High\",\n \"due_date\": \"2025-08-08\",\n \"metadata\": {\n \"customer_name\": \"John Doe\",\n \"rating\": 5,\n \"product_service\": \"Product X\",\n \"review_date\": \"2025-08-05\",\n \"sentiment\": \"positive\",\n \"sentiment_score\": 0.95,\n \"category\": \"delivery\",\n \"department\": \"customer_support\",\n \"action_required\": true\n }\n}\n\nMake sure:\n\nThe order is exactly maintained as above.\n\nNo additional fields are included.\n\nNo surrounding commentary or formatting is added.\n\nReturn the result as a pure JSON object (no markdown, no explanations, no code block formatting like ```json).\n\nOutput is only the JSON object.",
"options": {},
"promptType": "define"
},
"typeVersion": 2
},
{
"id": "c35348dd-0830-465a-ac90-d65cebb7de98",
"name": "💬 OpenAI チャットモデル",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-776,
180
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "c8cbK7g7bUw6Ifjy",
"name": "OpenAi account 8"
}
},
"typeVersion": 1.2
},
{
"id": "93e07162-0348-49f4-88bc-73aab6d34584",
"name": "🗓️ Monday.comアイテム作成",
"type": "n8n-nodes-base.mondayCom",
"notes": "MONDAY.COM INTEGRATION: Creates item in Monday.com board. Update BOARD_ID and column IDs to match your board structure.",
"position": [
-488,
-240
],
"parameters": {
"name": "=Feedback",
"boardId": "2054150933",
"groupId": "group_mktjh98q",
"resource": "boardItem",
"additionalFields": {
"columnValues": "={{ $json.output }}"
}
},
"credentials": {
"mondayComApi": {
"id": "phJg8XbofdmenpXl",
"name": "Monday.com account - (Dev)"
}
},
"typeVersion": 1
},
{
"id": "e934b992-6063-4178-a3e3-71e78bc087fa",
"name": "✅ ClickUpタスク作成",
"type": "n8n-nodes-base.clickUp",
"notes": "CLICKUP INTEGRATION: Creates task in ClickUp with priority mapping and keyword tagging. Update LIST_ID with your ClickUp list.",
"position": [
-488,
-40
],
"parameters": {
"list": "901610042700",
"name": "=Feedback",
"team": "90161084725",
"space": "90164686646",
"folder": "90166023626",
"authentication": "oAuth2",
"additionalFields": {
"customFieldsJson": "={{ $json.output }}"
}
},
"credentials": {
"clickUpOAuth2Api": {
"id": "oWjc2WsgQYtkq2Aq",
"name": "ClickUp account - (DEV)"
}
},
"typeVersion": 1
},
{
"id": "386f2bf4-948e-4032-b4f4-2ea46a30d401",
"name": "📌 HubSpot タスク作成",
"type": "n8n-nodes-base.hubspot",
"notes": "HUBSPOT INTEGRATION: Creates task in HubSpot CRM with priority mapping and due date. Requires HubSpot API key in credentials.",
"position": [
-488,
160
],
"parameters": {
"type": "task",
"metadata": {
"body": "={{ $json.output }}"
},
"resource": "engagement",
"authentication": "appToken",
"additionalFields": {}
},
"credentials": {
"hubspotAppToken": {
"id": "ZfQVFpoeed975usK",
"name": "HubSpot account - (Dev)"
}
},
"typeVersion": 2
},
{
"id": "4e46e5a1-e1ab-40c6-bbe4-67e6f072b3d4",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1940,
-360
],
"parameters": {
"width": 440,
"height": 700,
"content": "## Nodes Covered: On form submission, Code\n\n📝 Note:\n\nFORM CAPTURE & PRE-PROCESSING\n\n*Captures user feedback via a dynamic form and extracts the input fields (Name, Message, Rating, and Product Service). Passes clean, structured data to the AI for further analysis. This is the entry point for customer sentiment workflows.*"
},
"typeVersion": 1
},
{
"id": "f60c29cf-8f8d-4451-aa75-846a01a8ec7d",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1480,
-360
],
"parameters": {
"color": 5,
"width": 540,
"height": 700,
"content": "## Nodes Covered: OpenAI Analysis, Data Processing\n\n🧠 Note:\n\nAI-DRIVEN FEEDBACK INTELLIGENCE\n\n*Uses GPT-4 to analyze the customer review for sentiment, category, department, priority, and more. Then formats this output with due dates, task descriptions, and metadata. Ensures consistency and fallback handling for failed AI responses.*"
},
"typeVersion": 1
},
{
"id": "7ab41f5f-ca38-4fcc-aa8d-e14844dc7c71",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-920,
-360
],
"parameters": {
"color": 3,
"width": 340,
"height": 700,
"content": "## Nodes Covered: AI Agent, OpenAI Chat Model\n\n📊 Note:\n\nSTRUCTURED OUTPUT FOR TASK SYSTEMS\n\n*Transforms enriched AI response into a clean, JSON-only object ready to be pushed into Monday.com, ClickUp, and HubSpot. Maintains strict field order, tone, and formatting. Acts as a bridge between data processing and task integrations.*"
},
"typeVersion": 1
},
{
"id": "3ec93f97-6d95-42fa-b4fc-242d31827a63",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
-540
],
"parameters": {
"color": 4,
"width": 440,
"height": 880,
"content": "## Nodes Covered: Create Monday.com Item, Create ClickUp Task, Create HubSpot Task\n\n📬 Note:\n\nMULTI-PLATFORM TASK CREATION\n\n*Automatically sends analyzed feedback to Monday.com, ClickUp, and HubSpot with consistent metadata, due dates, and formatting. Integrations are toggleable as needed.*"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "da2bc46c-abcc-4537-bd0c-ea048e7e42e3",
"connections": {
"ab9f0698-cf91-4bde-bae9-f7b4f0beeea7": {
"main": [
[
{
"node": "dc7bd1ea-c3d3-48b5-8294-24fcfe958947",
"type": "main",
"index": 0
}
]
]
},
"dc7bd1ea-c3d3-48b5-8294-24fcfe958947": {
"main": [
[
{
"node": "c41226f7-9ccc-4852-bccd-b64f7e09aff5",
"type": "main",
"index": 0
}
]
]
},
"c41226f7-9ccc-4852-bccd-b64f7e09aff5": {
"main": [
[
{
"node": "cadef244-c319-4166-936a-6fb2943bdb75",
"type": "main",
"index": 0
}
]
]
},
"c35348dd-0830-465a-ac90-d65cebb7de98": {
"ai_languageModel": [
[
{
"node": "cadef244-c319-4166-936a-6fb2943bdb75",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"e934b992-6063-4178-a3e3-71e78bc087fa": {
"main": [
[]
]
},
"35d329e3-d4fb-4c54-a8e4-b4525f02789d": {
"main": [
[
{
"node": "ab9f0698-cf91-4bde-bae9-f7b4f0beeea7",
"type": "main",
"index": 0
}
]
]
},
"386f2bf4-948e-4032-b4f4-2ea46a30d401": {
"main": [
[]
]
},
"cadef244-c319-4166-936a-6fb2943bdb75": {
"main": [
[
{
"node": "93e07162-0348-49f4-88bc-73aab6d34584",
"type": "main",
"index": 0
},
{
"node": "e934b992-6063-4178-a3e3-71e78bc087fa",
"type": "main",
"index": 0
},
{
"node": "386f2bf4-948e-4032-b4f4-2ea46a30d401",
"type": "main",
"index": 0
}
]
]
},
"93e07162-0348-49f4-88bc-73aab6d34584": {
"main": [
[]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - AI要約, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
12 - インテリジェントリードエンハンサー
AIベースのリード情報強化:TypeformとCalendlyからHubSpot CRMへ
If
Code
Merge
+
If
Code
Merge
13 ノードAvkash Kakdiya
AI要約
15 - LeadFlow オートメーション
OpenAI GPT-4O、HubSpot、Slack、Google Sheetsを使ってGmailのリードフォローアップを自動化
If
Set
Code
+
If
Set
Code
14 ノードAvkash Kakdiya
AI要約
GPT-4o-mini を使って Intercom メッセージを分類し、ClickUp または Slack にルーティング
GPT-4o-mini を使用してインターコム メッセージを分類し、ClickUp または Slack にルーティングする
If
Code
Slack
+
If
Code
Slack
14 ノードAvkash Kakdiya
AI要約
LeadFusion - AIリードエンリッチメントワークフロー
GPT-4oを活用したAIリードスコアリングとエンリッチメント(MailchimpからHubSpotおよびPipedriveへ)
If
Code
Hubspot
+
If
Code
Hubspot
13 ノードAvkash Kakdiya
コンテンツ作成
09 - リードプロフィール強化ツール
自動化されたリード情報の豊富さとパーソナライズされたアウトレーシュ:HubSpot、Phantombuster、GPT
If
Set
Code
+
If
Set
Code
30 ノードAvkash Kakdiya
リードナーチャリング
27 - インテリジェントフォロー・エンジン
GPT-4o-mini、HubSpot、Slack、Teams、Telegram を使った販売フォローの自動化
Set
Slack
Hubspot
+
Set
Slack
Hubspot
13 ノードAvkash Kakdiya
その他
ワークフロー情報
難易度
中級
ノード数13
カテゴリー2
ノードタイプ9
作成者
Avkash Kakdiya
@itechnotion🚀 Founder of iTechNotion — we build custom AI-powered automation workflows for startups, agencies, and founders. 💡 Specializing in agentic AI systems, content automation, sales funnels, and digital workers. 🔧 14+ years in tech | Building scalable no-code/low-code solutions using n8n, OpenAI, and other API-first tools. 📬 Let’s automate what slows you down.
外部リンク
n8n.ioで表示 →
このワークフローを共有