Flujo de trabajo de análisis de sentimiento de reseñas de Google
Este es unAI Summarization, Multimodal AIflujo de automatización del dominio deautomatización que contiene 25 nodos.Utiliza principalmente nodos como Set, Code, Slack, Filter, Agent. Analizar reseñas de Google My Business y enviar informes de sentimiento a Slack con Gemini
- •Bot Token de Slack o URL de Webhook
- •Clave de API de Google Gemini
Nodos utilizados (25)
Categoría
{
"id": "peemlQQi9udHOyNH",
"meta": {
"instanceId": "bbc3fa3cd7d64d8ff0c4877d98dee68ce7dadacc5e089546680c915b3e5a212b",
"templateCredsSetupCompleted": true
},
"name": "Google review Sentiment analysis workflow",
"tags": [],
"nodes": [
{
"id": "3f44e182-92ad-4e47-9eab-4ffc6c9a3dfa",
"name": "Obtener múltiples reseñas",
"type": "n8n-nodes-base.googleBusinessProfile",
"position": [
-272,
-80
],
"parameters": {
"limit": 1000,
"account": {
"__rl": true,
"mode": "name",
"value": "="
},
"location": {
"__rl": true,
"mode": "name",
"value": "="
},
"resource": "review",
"operation": "getAll",
"requestOptions": {}
},
"typeVersion": 1
},
{
"id": "29592644-4922-4095-a608-fc369882a249",
"name": "Análisis de sentimientos",
"type": "@n8n/n8n-nodes-langchain.sentimentAnalysis",
"position": [
368,
-96
],
"parameters": {
"options": {
"batching": {
"batchSize": 20,
"delayBetweenBatches": 60000
},
"categories": "Positive, Neutral, Negative",
"enableAutoFixing": true,
"systemPromptTemplate": "=You are a highly intelligent and accurate sentiment analyzer. \n\nYou will receive multiple JSON objects, each containing: \n- Comment: \"{{ $json.Comment }}\" \n- Rating: \"{{ $json.Raiting }}\" \n- Date: \"{{ $json.Date }}\" \n\nRules for analysis: \n- If Comment = \"no comment\", ignore the comment and analyze sentiment only from the rating. \n- If Comment has text, analyze sentiment based on both the comment and rating together. \n- Use the Date field to group sentiments by month and identify trends. \n\nYour tasks: \n1. Classify the overall sentiment trends into one of the following categories: {categories}. \n2. Group the results by month (based on the Date field) and provide the sentiment distribution for each month. \n3. For each month, give a short explanation of why the sentiment appears that way (e.g., common themes in comments, tone, or rating alignment). \n4. Provide a consolidated summary of sentiment across the entire dataset, including the key reasons driving the results. ",
"includeDetailedResults": true
},
"inputText": "={{ $json.Comment }}{{ $json.Raiting }}{{ $json.Date }}"
},
"typeVersion": 1.1
},
{
"id": "692ed10b-947e-4386-9707-0c2ce1e307f9",
"name": "Google Gemini Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
1056,
-224
],
"parameters": {
"options": {
"maxOutputTokens": 5000
},
"modelName": "models/gemini-2.0-flash"
},
"typeVersion": 1
},
{
"id": "713c6715-380d-4adf-a681-092765116409",
"name": "Activador programado",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-688,
-80
],
"parameters": {
"rule": {
"interval": [
{
"field": "months"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "20e79d80-cdce-4cae-ab1f-6ff44565731b",
"name": "Agente de IA",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1040,
-432
],
"parameters": {
"text": "=You are an AI assistant that consolidates customer feedback consisting of comments, ratings, and sentiment analysis metadata. \n\nINPUT DATA:\n{{ $json.feedback }}\n\nTASK:\n1. Review all feedback entries together.\n - Ignore entries where \"Comment\" = \"no comment\".\n - Convert \"Raiting\" into numeric stars (FIVE = 5, FOUR = 4, etc.).\n - Use \"sentimentAnalysis\" to confirm tone and consistency.\n - Consider \"Date\" to identify any trends or changes over time.\n\n2. Produce ONE single consolidated report in **valid JSON format** with the following structure:\n\n{\n \"overallSentiment\": \"string\", // e.g. \"Positive\", \"Negative\", \"Mixed\"\n \"averageRating\": number, // average numeric rating\n \"highlights\": [ \"string\", ... ], // list of positive aspects\n \"weaknessesConcerns\": [ \"string\", ... ], // list of concerns/issues\n \"timeTrend\": \"string\", // description of sentiment or rating trend over time\n \"finalSummary\": \"string\" // concise conclusion\n}",
"options": {},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "97dce654-beb7-46f3-9d4c-9f4768b72324",
"name": "Agente de IA1",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1040,
-128
],
"parameters": {
"text": "=You are an AI assistant that consolidates customer feedback consisting of comments, ratings, and sentiment analysis metadata. \n\nINPUT DATA:\n{{ $json.feedback }}\n\nTASK:\n1. Review all feedback entries together.\n - Ignore entries where \"Comment\" = \"no comment\".\n - Convert \"Raiting\" into numeric stars (FIVE = 5, FOUR = 4, etc.).\n - Use \"sentimentAnalysis\" to confirm tone and consistency.\n - Consider \"Date\" to identify any trends or changes over time.\n\n2. Produce ONE single consolidated report in **valid JSON format** with the following structure:\n\n{\n \"overallSentiment\": \"string\", // e.g. \"Positive\", \"Negative\", \"Mixed\"\n \"averageRating\": number, // average numeric rating\n \"highlights\": [ \"string\", ... ], // list of positive aspects\n \"weaknessesConcerns\": [ \"string\", ... ], // list of concerns/issues\n \"timeTrend\": \"string\", // description of sentiment or rating trend over time\n \"finalSummary\": \"string\" // concise conclusion\n}",
"options": {},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "bfc5447b-fd82-4c44-af66-0d2b60f75280",
"name": "Agente de IA2",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1056,
112
],
"parameters": {
"text": "=You are an AI assistant that consolidates customer feedback consisting of comments, ratings, and sentiment analysis metadata. \n\nINPUT DATA:\n{{ $json.feedback }}\n\nTASK:\n1. Review all feedback entries together.\n - Ignore entries where \"Comment\" = \"no comment\".\n - Convert \"Raiting\" into numeric stars (FIVE = 5, FOUR = 4, etc.).\n - Use \"sentimentAnalysis\" to confirm tone and consistency.\n - Consider \"Date\" to identify any trends or changes over time.\n\n2. Produce ONE single consolidated report in **valid JSON format** with the following structure:\n\n{\n \"overallSentiment\": \"string\", // e.g. \"Positive\", \"Negative\", \"Mixed\"\n \"averageRating\": number, // average numeric rating\n \"highlights\": [ \"string\", ... ], // list of positive aspects\n \"weaknessesConcerns\": [ \"string\", ... ], // list of concerns/issues\n \"timeTrend\": \"string\", // description of sentiment or rating trend over time\n \"finalSummary\": \"string\" // concise conclusion\n}",
"options": {},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "f95e4642-38b6-48ea-bf53-5de3175a7846",
"name": "Google Gemini Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
368,
112
],
"parameters": {
"options": {
"maxOutputTokens": 5000
},
"modelName": "models/gemini-2.0-flash"
},
"credentials": {
"googlePalmApi": {
"id": "WGFHFP25iuAU2TH9",
"name": "Google Gemini(PaLM) Api account 2"
}
},
"typeVersion": 1
},
{
"id": "8606a252-49af-472d-a47c-559be628fe60",
"name": "Nota adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-512,
-288
],
"parameters": {
"width": 752,
"height": 432,
"content": "## Reading Google review\n**Reading google review from the google business profile**"
},
"typeVersion": 1
},
{
"id": "eb49d865-7578-4969-b505-b643caa3f29d",
"name": "Nota adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
288,
-288
],
"parameters": {
"width": 400,
"height": 544,
"content": "## Run sentiment analysis on google review\n**Based on the google review data a sentiment analysis run on top of the google review using Gemini model.**"
},
"typeVersion": 1
},
{
"id": "17a9299c-5c99-466e-ae6a-895c29b25106",
"name": "Nota adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
720,
-624
],
"parameters": {
"width": 640,
"height": 896,
"content": "## Summarize the sentiment analysis report using AI model\n**After the sentiment of each review is analysed consolidating the overall sentiment and restructure the output.**"
},
"typeVersion": 1
},
{
"id": "4b087a3b-d891-4f9a-97d1-be57259afb19",
"name": "Nota adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1392,
-656
],
"parameters": {
"width": 448,
"height": 928,
"content": "## Sent notification to slack channel\n\n**Restructure the data to slack block and send to slack channel.**"
},
"typeVersion": 1
},
{
"id": "091e5606-4e04-4fe3-b2df-0625f32d6beb",
"name": "Nota adhesiva5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-816,
-816
],
"parameters": {
"width": 512,
"height": 448,
"content": "\n## Google review Sentiment analysis workflow\n\n\n**What it does**\n- Read Google review from the google business profile\n- Run sentimental analysis on the review for a defined period.\n- Send notification to slack channel.\n\n**Requirement**\n- Google business profile with approved project by Google.\n- Enable google business profile API service.\n- Gemini model with necessary credentials\n\n\n**Setup Instructions:**\n- Setup google business profile and enable Google Business Profile API.\n- Read google review using owner name and location.\n- Setup slack account to send notification from workflow.\n- Configure the time period of the review using set time period node\n"
},
"typeVersion": 1
},
{
"id": "b4506c66-8619-4eef-aed0-f4a9363af457",
"name": "Establecer período de tiempo",
"type": "n8n-nodes-base.set",
"position": [
-480,
-80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "6acde8ee-5eeb-451c-a491-ed4a19c7b765",
"name": "period",
"type": "string",
"value": "year"
},
{
"id": "f5212cc6-8ed1-45de-ac3b-ff839822bed2",
"name": "time",
"type": "string",
"value": "3"
}
]
}
},
"executeOnce": true,
"typeVersion": 3.4
},
{
"id": "f284db6b-8852-427a-be86-e30961871f97",
"name": "Filtrar reseñas según el período",
"type": "n8n-nodes-base.filter",
"position": [
-96,
-80
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2dd5772a-efc9-46ac-9054-c5a7de0abdc9",
"operator": {
"type": "dateTime",
"operation": "after"
},
"leftValue": "={{ $json.updateTime }}",
"rightValue": "={{ $today.minus({ [ $('Set time period').item.json.period ]: $('Set time period').item.json.time }).toISO() }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "c775ac9e-4367-463d-b3d0-45e3d7bc648f",
"name": "Mapear comentario y calificación",
"type": "n8n-nodes-base.set",
"position": [
112,
-80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "4ad19e64-07ad-4351-a696-d2d0026aaa31",
"name": "Comment",
"type": "string",
"value": "={{ $json.comment ?? \"no comment\" }}"
},
{
"id": "ac2932fb-6a62-4179-98d3-5d66a9738ee8",
"name": "Raiting",
"type": "string",
"value": "={{ $json.starRating ?? \"0\" }}"
},
{
"id": "fcadfd58-3d78-44e3-9e95-a24cbdaec614",
"name": "Date",
"type": "string",
"value": "={{ $json.updateTime }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "719cdaa0-f962-45da-91a4-34492f92119e",
"name": "Convertir a string json",
"type": "n8n-nodes-base.code",
"position": [
816,
-336
],
"parameters": {
"jsCode": "return [\n {\n json: {\n feedback: JSON.stringify($input.all().map(item => item.json), null, 2)\n }\n }\n];"
},
"executeOnce": true,
"typeVersion": 2
},
{
"id": "68f2cf3c-4b21-4004-b8d4-3399d8c1bafa",
"name": "Convertir a string json1",
"type": "n8n-nodes-base.code",
"position": [
816,
-96
],
"parameters": {
"jsCode": "return [\n {\n json: {\n feedback: JSON.stringify($input.all().map(item => item.json), null, 2)\n }\n }\n];"
},
"executeOnce": true,
"typeVersion": 2
},
{
"id": "046f17c6-c024-4b62-b16f-6d6ccdfeaad2",
"name": "Convertir a string json2",
"type": "n8n-nodes-base.code",
"position": [
816,
112
],
"parameters": {
"jsCode": "return [\n {\n json: {\n feedback: JSON.stringify($input.all().map(item => item.json), null, 2)\n }\n }\n];"
},
"executeOnce": true,
"typeVersion": 2
},
{
"id": "cad3406f-e05d-4c9c-ae13-aa9d877286e3",
"name": "Reestructurar datos positivos a bloque slack",
"type": "n8n-nodes-base.code",
"position": [
1456,
-432
],
"parameters": {
"jsCode": "// Extract JSON string from $json.output (remove ```json ... ```)\nlet raw = $json.output.replace(/```json|```/g, \"\").trim();\n\n// Parse JSON\nlet data;\ntry {\n data = JSON.parse(raw);\n} catch (e) {\n throw new Error(\"Invalid JSON format in output: \" + e.message);\n}\n\n// Slack blocks array\nconst blocks = [\n {\n type: \"header\",\n text: {\n type: \"plain_text\",\n text: \"📊 Customer Feedback Report\",\n emoji: true\n }\n }\n];\n\n// Overall Sentiment\nif (data.overallSentiment) {\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `*Overall Sentiment:* ${data.overallSentiment}` }\n });\n}\n\n// Average Rating\nif (data.averageRating) {\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `*Average Rating:* ${data.averageRating} ⭐` }\n });\n}\n\n// Highlights\nif (data.highlights && data.highlights.length > 0) {\n blocks.push({ type: \"divider\" });\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: \"*Highlights:*\" }\n });\n\n data.highlights.forEach(h => {\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `• ${h}` }\n });\n });\n}\n\n// Weaknesses/Concerns\nif (data.weaknessesConcerns && data.weaknessesConcerns.length > 0) {\n blocks.push({ type: \"divider\" });\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: \"*Weaknesses / Concerns:*\" }\n });\n\n data.weaknessesConcerns.forEach(w => {\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `• ${w}` }\n });\n });\n}\n\n// Time Trend\nif (data.timeTrend) {\n blocks.push({ type: \"divider\" });\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `*Time Trend:* ${data.timeTrend}` }\n });\n}\n\n// Final Summary\nif (data.finalSummary) {\n blocks.push({ type: \"divider\" });\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `*Final Summary:* ${data.finalSummary}` }\n });\n}\n\n// Return Slack-ready JSON\nreturn [\n {\n json: {\n blocks\n }\n }\n];\n"
},
"executeOnce": true,
"typeVersion": 2
},
{
"id": "e734a3e0-5b2e-4930-a61a-c81a9263d34a",
"name": "Reestructurar datos neutrales a bloque slack",
"type": "n8n-nodes-base.code",
"position": [
1440,
-128
],
"parameters": {
"jsCode": "// Extract JSON string from $json.output (remove ```json ... ```)\nlet raw = $json.output.replace(/```json|```/g, \"\").trim();\n\n// Parse JSON\nlet data;\ntry {\n data = JSON.parse(raw);\n} catch (e) {\n throw new Error(\"Invalid JSON format in output: \" + e.message);\n}\n\n// Slack blocks array\nconst blocks = [\n {\n type: \"header\",\n text: {\n type: \"plain_text\",\n text: \"📊 Customer Feedback Report\",\n emoji: true\n }\n }\n];\n\n// Overall Sentiment\nif (data.overallSentiment) {\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `*Overall Sentiment:* ${data.overallSentiment}` }\n });\n}\n\n// Average Rating\nif (data.averageRating) {\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `*Average Rating:* ${data.averageRating} ⭐` }\n });\n}\n\n// Highlights\nif (data.highlights && data.highlights.length > 0) {\n blocks.push({ type: \"divider\" });\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: \"*Highlights:*\" }\n });\n\n data.highlights.forEach(h => {\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `• ${h}` }\n });\n });\n}\n\n// Weaknesses/Concerns\nif (data.weaknessesConcerns && data.weaknessesConcerns.length > 0) {\n blocks.push({ type: \"divider\" });\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: \"*Weaknesses / Concerns:*\" }\n });\n\n data.weaknessesConcerns.forEach(w => {\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `• ${w}` }\n });\n });\n}\n\n// Time Trend\nif (data.timeTrend) {\n blocks.push({ type: \"divider\" });\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `*Time Trend:* ${data.timeTrend}` }\n });\n}\n\n// Final Summary\nif (data.finalSummary) {\n blocks.push({ type: \"divider\" });\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `*Final Summary:* ${data.finalSummary}` }\n });\n}\n\n// Return Slack-ready JSON\nreturn [\n {\n json: {\n blocks\n }\n }\n];\n"
},
"executeOnce": true,
"typeVersion": 2
},
{
"id": "bf8ebac2-b4f9-43ea-8ec0-ab2a018760c2",
"name": "Reestructurar datos negativos a bloque slack",
"type": "n8n-nodes-base.code",
"position": [
1456,
112
],
"parameters": {
"jsCode": "// Extract JSON string from $json.output (remove ```json ... ```)\nlet raw = $json.output.replace(/```json|```/g, \"\").trim();\n\n// Parse JSON\nlet data;\ntry {\n data = JSON.parse(raw);\n} catch (e) {\n throw new Error(\"Invalid JSON format in output: \" + e.message);\n}\n\n// Slack blocks array\nconst blocks = [\n {\n type: \"header\",\n text: {\n type: \"plain_text\",\n text: \"📊 Customer Feedback Report\",\n emoji: true\n }\n }\n];\n\n// Overall Sentiment\nif (data.overallSentiment) {\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `*Overall Sentiment:* ${data.overallSentiment}` }\n });\n}\n\n// Average Rating\nif (data.averageRating) {\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `*Average Rating:* ${data.averageRating} ⭐` }\n });\n}\n\n// Highlights\nif (data.highlights && data.highlights.length > 0) {\n blocks.push({ type: \"divider\" });\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: \"*Highlights:*\" }\n });\n\n data.highlights.forEach(h => {\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `• ${h}` }\n });\n });\n}\n\n// Weaknesses/Concerns\nif (data.weaknessesConcerns && data.weaknessesConcerns.length > 0) {\n blocks.push({ type: \"divider\" });\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: \"*Weaknesses / Concerns:*\" }\n });\n\n data.weaknessesConcerns.forEach(w => {\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `• ${w}` }\n });\n });\n}\n\n// Time Trend\nif (data.timeTrend) {\n blocks.push({ type: \"divider\" });\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `*Time Trend:* ${data.timeTrend}` }\n });\n}\n\n// Final Summary\nif (data.finalSummary) {\n blocks.push({ type: \"divider\" });\n blocks.push({\n type: \"section\",\n text: { type: \"mrkdwn\", text: `*Final Summary:* ${data.finalSummary}` }\n });\n}\n\n// Return Slack-ready JSON\nreturn [\n {\n json: {\n blocks\n }\n }\n];\n"
},
"executeOnce": true,
"retryOnFail": false,
"typeVersion": 2
},
{
"id": "8e8b11a1-1531-4f0d-90f6-5025e04a173e",
"name": "Enviar mensaje al canal slack si es positivo",
"type": "n8n-nodes-base.slack",
"position": [
1664,
-432
],
"webhookId": "e3c8bfca-cc86-4c09-923a-0e40bf18d3e5",
"parameters": {
"select": "channel",
"blocksUi": "={{ '{ \"blocks\": ' + JSON.stringify($json.blocks) + ' }' }}",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C09DQ7EJ57A",
"cachedResultName": "sentiment-analysis-report"
},
"messageType": "block",
"otherOptions": {
"includeLinkToWorkflow": false
},
"authentication": "oAuth2"
},
"typeVersion": 2.3
},
{
"id": "58b3519a-3484-4d0a-bf16-69fcd3c3cb9f",
"name": "Enviar mensaje al canal slack si es neutral",
"type": "n8n-nodes-base.slack",
"position": [
1680,
-128
],
"webhookId": "e3c8bfca-cc86-4c09-923a-0e40bf18d3e5",
"parameters": {
"select": "channel",
"blocksUi": "={{ '{ \"blocks\": ' + JSON.stringify($json.blocks) + ' }' }}",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C09DQ7EJ57A",
"cachedResultName": "sentiment-analysis-report"
},
"messageType": "block",
"otherOptions": {
"includeLinkToWorkflow": false
},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "27RfzQEAlPHYU6tj",
"name": "Slack account"
}
},
"typeVersion": 2.3
},
{
"id": "6b05d854-689d-473b-a02d-631293ff3817",
"name": "Enviar mensaje al canal slack si es negativo",
"type": "n8n-nodes-base.slack",
"position": [
1680,
112
],
"webhookId": "e3c8bfca-cc86-4c09-923a-0e40bf18d3e5",
"parameters": {
"select": "channel",
"blocksUi": "={{ '{ \"blocks\": ' + JSON.stringify($json.blocks) + ' }' }}",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C09DQ7EJ57A",
"cachedResultName": "sentiment-analysis-report"
},
"messageType": "block",
"otherOptions": {
"includeLinkToWorkflow": false
},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "27RfzQEAlPHYU6tj",
"name": "Slack account"
}
},
"typeVersion": 2.3
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "9d0aab67-a72b-43f9-a8c3-e7b8c7aa7be3",
"connections": {
"20e79d80-cdce-4cae-ab1f-6ff44565731b": {
"main": [
[
{
"node": "cad3406f-e05d-4c9c-ae13-aa9d877286e3",
"type": "main",
"index": 0
}
]
]
},
"97dce654-beb7-46f3-9d4c-9f4768b72324": {
"main": [
[
{
"node": "e734a3e0-5b2e-4930-a61a-c81a9263d34a",
"type": "main",
"index": 0
}
]
]
},
"bfc5447b-fd82-4c44-af66-0d2b60f75280": {
"main": [
[
{
"node": "bf8ebac2-b4f9-43ea-8ec0-ab2a018760c2",
"type": "main",
"index": 0
}
]
]
},
"b4506c66-8619-4eef-aed0-f4a9363af457": {
"main": [
[
{
"node": "3f44e182-92ad-4e47-9eab-4ffc6c9a3dfa",
"type": "main",
"index": 0
}
]
]
},
"3f44e182-92ad-4e47-9eab-4ffc6c9a3dfa": {
"main": [
[
{
"node": "f284db6b-8852-427a-be86-e30961871f97",
"type": "main",
"index": 0
}
]
]
},
"713c6715-380d-4adf-a681-092765116409": {
"main": [
[
{
"node": "b4506c66-8619-4eef-aed0-f4a9363af457",
"type": "main",
"index": 0
}
]
]
},
"29592644-4922-4095-a608-fc369882a249": {
"main": [
[
{
"node": "719cdaa0-f962-45da-91a4-34492f92119e",
"type": "main",
"index": 0
}
],
[
{
"node": "68f2cf3c-4b21-4004-b8d4-3399d8c1bafa",
"type": "main",
"index": 0
}
],
[
{
"node": "046f17c6-c024-4b62-b16f-6d6ccdfeaad2",
"type": "main",
"index": 0
}
]
]
},
"719cdaa0-f962-45da-91a4-34492f92119e": {
"main": [
[
{
"node": "20e79d80-cdce-4cae-ab1f-6ff44565731b",
"type": "main",
"index": 0
}
]
]
},
"68f2cf3c-4b21-4004-b8d4-3399d8c1bafa": {
"main": [
[
{
"node": "97dce654-beb7-46f3-9d4c-9f4768b72324",
"type": "main",
"index": 0
}
]
]
},
"046f17c6-c024-4b62-b16f-6d6ccdfeaad2": {
"main": [
[
{
"node": "bfc5447b-fd82-4c44-af66-0d2b60f75280",
"type": "main",
"index": 0
}
]
]
},
"692ed10b-947e-4386-9707-0c2ce1e307f9": {
"ai_languageModel": [
[
{
"node": "20e79d80-cdce-4cae-ab1f-6ff44565731b",
"type": "ai_languageModel",
"index": 0
},
{
"node": "97dce654-beb7-46f3-9d4c-9f4768b72324",
"type": "ai_languageModel",
"index": 0
},
{
"node": "bfc5447b-fd82-4c44-af66-0d2b60f75280",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"f95e4642-38b6-48ea-bf53-5de3175a7846": {
"ai_languageModel": [
[
{
"node": "29592644-4922-4095-a608-fc369882a249",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"c775ac9e-4367-463d-b3d0-45e3d7bc648f": {
"main": [
[
{
"node": "29592644-4922-4095-a608-fc369882a249",
"type": "main",
"index": 0
}
]
]
},
"f284db6b-8852-427a-be86-e30961871f97": {
"main": [
[
{
"node": "c775ac9e-4367-463d-b3d0-45e3d7bc648f",
"type": "main",
"index": 0
}
]
]
},
"e734a3e0-5b2e-4930-a61a-c81a9263d34a": {
"main": [
[
{
"node": "58b3519a-3484-4d0a-bf16-69fcd3c3cb9f",
"type": "main",
"index": 0
}
]
]
},
"bf8ebac2-b4f9-43ea-8ec0-ab2a018760c2": {
"main": [
[
{
"node": "6b05d854-689d-473b-a02d-631293ff3817",
"type": "main",
"index": 0
}
]
]
},
"cad3406f-e05d-4c9c-ae13-aa9d877286e3": {
"main": [
[
{
"node": "8e8b11a1-1531-4f0d-90f6-5025e04a173e",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado - Resumen de IA, IA Multimodal
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Sayone Technologies
@sayonetechSayOne Technologies is a digital transformation and IT services company headquartered in India, with a strong focus on web, mobile, and AI-driven solutions for the retail tech space. With over a decade of experience, SayOne partners with global businesses to build scalable applications, optimize inventory and operations using next-gen AI, and deliver customer-centric digital products.
Compartir este flujo de trabajo