Feedbacks
Shared 5/28/2026
1 views
Visual Workflow
JSON Code
{
"id": "VNcafldvVfNcXm0v",
"meta": {
"instanceId": "15f3cd15bb2cd816c33a2b25a50d71a34d47963cf043f4f1baa8854af4d823cc",
"aiBuilderAssisted": true,
"templateCredsSetupCompleted": true
},
"name": "Feedbacks",
"tags": [
{
"id": "FaGBaNyNLAq1ZqTA",
"name": "scheduled",
"createdAt": "2026-05-07T19:28:11.972Z",
"updatedAt": "2026-05-07T19:28:11.972Z"
}
],
"nodes": [
{
"id": "04b0dfad-d511-4f02-ab57-af3275062e3a",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
-2688,
-368
],
"parameters": {
"options": {},
"fieldToSplitOut": "data.feedbacks"
},
"typeVersion": 1
},
{
"id": "58d939c8-8e03-4c1e-b87c-fcc84d5aa2c5",
"name": "Отзыв",
"type": "n8n-nodes-base.if",
"position": [
-1920,
-384
],
"parameters": {
"options": {
"ignoreCase": true
},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": false,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "17767440-ca5a-4873-8b41-8e45ada2e93f",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.text }}",
"rightValue": ""
},
{
"id": "2c96ad5f-3812-4782-b14d-b7c0500862f4",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.cons }}",
"rightValue": ""
},
{
"id": "14a7113f-8125-4d54-b653-339f970539fe",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.pros }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.3
},
{
"id": "bcb0b948-6515-42ac-8961-1be03d80dc24",
"name": "Get Score in brand collection",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"position": [
-1520,
-1088
],
"parameters": {
"mode": "load",
"prompt": "={{ $json.text }} {{ $json.cons }} {{ $json.pros }}",
"options": {
"contentPayloadKey": "pageContent",
"metadataPayloadKey": "metadata"
},
"qdrantCollection": {
"__rl": true,
"mode": "id",
"value": "={{ $json.productDetails.brandSlug }}_qa"
}
},
"credentials": {
"qdrantApi": {
"id": "xtG7ENdO2DobIdij",
"name": "Qdrant account"
}
},
"notesInFlow": false,
"typeVersion": 1.3
},
{
"id": "9f30dc9c-1cde-4ebb-9e54-49d180e2fd43",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
1536,
-432
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "published",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "a05105cf-2ad2-41d0-aa7b-ebf7f98412b6",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.productValuation === 5 && ($json.cons === '' || !$json.cons) }}",
"rightValue": 5
}
]
},
"renameOutput": true
},
{
"outputKey": "ai_draft",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "320b0d0f-fe4b-4722-b1c0-0749077dafd5",
"operator": {
"type": "number",
"operation": "notEquals"
},
"leftValue": "={{ $json.productValuation }}",
"rightValue": 5
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.4
},
{
"id": "465beb5b-3241-4da3-ab4a-bffae5ab4a51",
"name": "Get Score in all collection",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"position": [
-1536,
-624
],
"parameters": {
"mode": "load",
"topK": 1,
"prompt": "={{ $json.text }} {{ $json.cons }} {{ $json.pros }}",
"options": {
"contentPayloadKey": "pageContent",
"metadataPayloadKey": "metadata"
},
"qdrantCollection": {
"__rl": true,
"mode": "id",
"value": "=all_qa"
}
},
"credentials": {
"qdrantApi": {
"id": "xtG7ENdO2DobIdij",
"name": "Qdrant account"
}
},
"typeVersion": 1.3
},
{
"id": "7cde0633-7253-4383-8db8-1f2b216f329b",
"name": "review",
"type": "n8n-nodes-base.set",
"position": [
-2560,
-368
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "s1",
"name": "productDetails.brandSlug",
"type": "string",
"value": "={{\n (()=>{\n const s = $json.productDetails.brandName.toLowerCase().replace(/\\s+/g,'');\n if (s.includes('milk')) return 'milk';\n if (s.includes('rock')) return 'rocknail';\n if (s.includes('go')) return 'gostamp';\n if (s.includes('musa')) return 'musanail';\n return 'all';\n })()\n}}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "d85acd94-030b-4c3d-b1a8-afb502743bcc",
"name": "milk_qa",
"type": "n8n-nodes-qdrant.qdrantTool",
"position": [
816,
0
],
"parameters": {
"operation": "getCollection",
"collectionName": {
"__rl": true,
"mode": "list",
"value": "milk_qa",
"cachedResultName": "milk_qa"
},
"requestOptions": {}
},
"credentials": {
"qdrantRestApi": {
"id": "wdtsqmMIy3WZGw1j",
"name": "Qdrant Local"
}
},
"typeVersion": 1
},
{
"id": "c1b3e31c-1f6c-4fb1-bc17-306a03528129",
"name": "Exec",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-3968,
-448
],
"parameters": {},
"typeVersion": 1
},
{
"id": "2f62a58b-a661-4f05-9a43-12dc0a9871ef",
"name": "MiLK: AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
672,
-160
],
"parameters": {
"text": "=Покупатель: {{ $json.userName }}\nТовар: {{ $json.productName }}\n{{ $json.brandSlug ? 'Бренд: ' + $json.brandSlug + '\\n' : '' }}\n{{ $json.text ? 'Отзыв: ' + $json.text + '\\n' : '' }}\n{{ $json.pros ? 'Плюсы: ' + $json.pros + '\\n' : '' }}\n{{ $json.cons ? 'Минусы: ' + $json.cons : '' }}",
"options": {
"maxIterations": 30,
"systemMessage": "Ты — экспертный копирайтер и технолог бренда MiLK на маркетплейсе Wildberries. \nТвоя роль — «Заботливый эксперт»: отвечать тепло, профессионально и по делу.\n\n## ИНСТРУМЕНТЫ (RAG)\nУ тебя есть инструмент milk_qa — шаблоны для бренда MiLK\nИспользуй его для написания ответа.\n\n## ОБЩИЕ ПРАВИЛА КОММУНИКАЦИИ (маркетплейс)\n\n**Обращение**: всегда на «вы». Если в отзыве видно имя — используй его в начале ответа.\n**Структура каждого ответа**: Эмпатия → Объяснение → Помощь (2–4 шага) → Up-sell (если уместно) → Закрывающая фраза отдельной строкой.\n**Up-sell**: только через заботу, только если реально решает боль клиента. Никогда — в первом ответе на брак, аллергию, некомплект.\n**Запрещено везде**:\n- «Благодарим Вас за интерес к нашему продукту»\n- «Данный продукт соответствует требованиям»\n- «Цена оправдана на 100%»\n- «Основная причина — нарушение техники»\n- «С уважением, технолог бренда»\n- Сплошной текст без абзацев\n**Эмпатия при негативе**: признай ситуацию, не спорь с эмоцией клиента, не ставь его в виноватую позицию.\n**Длина**: 2–4 коротких абзаца. Если есть шаги — выноси в список.\n\n## БРЕНД: MiLK — Tone of Voice\n\n**Роль бренда**: Заботливый эксперт и поддерживающее комьюнити.\n**Главная эмоция**: «Мы рядом и готовы помочь».\n**Характер речи**: мягкий, тёплый, успокаивающий, понятный. Экспертность — высокая, но объясняется простым языком.\n\n**Ключевые слова**: забота, комфорт, поддержка, безопасность, деликатность.\n**Фирменные эмодзи**: 🤍 / 🌸 (0–2 на ответ, чаще 0–1).\n\n**Начало ответа**:\n- На вопрос: «Здравствуйте, [имя], спасибо за вопрос 🤍»\n- На позитивный отзыв: «Спасибо вам за тёплые слова 🤍»\n- На негативный отзыв: «Понимаем, как это может расстроить»\n\n**Закрытие ответа**:\n- Нейтральное: «Если останутся вопросы, мы рядом»\n- После рекомендации: «Надеемся, ответ был полезен 🤍»\n- После негатива: «Не оставим вас с этим вопросом»\n- Всегда после ответа с новой строки: «🌸 Анастасия, технолог бренда MiLK»\n\n**Up-sell формула**: «Если для вашей задачи нужен более деликатный / комфортный вариант...» — строить на заботе, комфорте, безопасности.\n\n**СТРОГИЕ ЗАПРЕТЫ**: \nсухость, канцеляризмы, поучение, спор, холодность. \n- НЕ писать «Благодарим за обратную связь» и подобное — убивает тепло бренда.\n- НЕ используй: «Благодарим за интерес», «С уважением», «Нам очень важно ваше мнение»\n- НЕ спорь с клиентом и не намекай на неправильное использование\n- НЕ используй жирный шрифт или курсив\n- НЕ придумывай продукты, названия товаров, цены, услуги которых нет в отзыве\n- НЕ предлагай компенсации или бесплатные товары\n- НЕ делай up-sell в первом ответе на сильную рекламацию"
},
"promptType": "define"
},
"retryOnFail": true,
"typeVersion": 3.1
},
{
"id": "cfce2c5a-747f-47a9-a73d-d637c388633a",
"name": "Brand-Switch",
"type": "n8n-nodes-base.switch",
"position": [
160,
-272
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "milk",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "ef16cca5-f24c-4991-9568-236587b35123",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.brandSlug }}",
"rightValue": "milk"
}
]
},
"renameOutput": true
},
{
"outputKey": "rocknail",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "a8f14610-8981-4e3d-953b-6085a154d2ec",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.brandSlug }}",
"rightValue": "rocknail"
}
]
},
"renameOutput": true
},
{
"outputKey": "gostamp",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "811ec1a5-a9ab-4cd9-8464-3b9da6deb519",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.brandSlug }}",
"rightValue": "gostamp"
}
]
},
"renameOutput": true
},
{
"outputKey": "musanail",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "96650ef9-1335-4ffb-aebd-ec6757acf426",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.brandSlug }}",
"rightValue": "musanail"
}
]
},
"renameOutput": true
}
]
},
"options": {},
"looseTypeValidation": true
},
"typeVersion": 3.4
},
{
"id": "865421cd-356f-4944-bfb8-ec637505c605",
"name": "RockNail: AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
672,
272
],
"parameters": {
"text": "=Покупатель: {{ $json.userName }}\nТовар: {{ $json.productName }}\n{{ $json.brandSlug ? 'Бренд: ' + $json.brandSlug + '\\n' : '' }}\n{{ $json.text ? 'Отзыв: ' + $json.text + '\\n' : '' }}\n{{ $json.pros ? 'Плюсы: ' + $json.pros + '\\n' : '' }}\n{{ $json.cons ? 'Минусы: ' + $json.cons : '' }}",
"options": {
"maxIterations": 30,
"systemMessage": "Ты — экспертный копирайтер и технолог бренда RockNail на маркетплейсе Wildberries. \nТвоя роль — «Заботливый эксперт»: отвечать тепло, профессионально и по делу.\n\n## ИНСТРУМЕНТЫ (RAG)\nУ тебя есть инструмент rocknail_qa — шаблоны для бренда MiLK\nИспользуй его для написания ответа.\n\n## ОБЩИЕ ПРАВИЛА КОММУНИКАЦИИ (маркетплейс)\n\n**Обращение**: всегда на «вы». Если в отзыве видно имя — используй его в начале ответа.\n**Структура каждого ответа**: Эмпатия → Объяснение → Помощь (2–4 шага) → Up-sell (если уместно) → Закрывающая фраза отдельной строкой.\n**Up-sell**: только через заботу, только если реально решает боль клиента. Никогда — в первом ответе на брак, аллергию, некомплект.\n**Запрещено везде**:\n- «Благодарим Вас за интерес к нашему продукту»\n- «Данный продукт соответствует требованиям»\n- «Цена оправдана на 100%»\n- «Основная причина — нарушение техники»\n- «С уважением, технолог бренда»\n- Сплошной текст без абзацев\n**Эмпатия при негативе**: признай ситуацию, не спорь с эмоцией клиента, не ставь его в виноватую позицию.\n**Длина**: 2–4 коротких абзаца. Если есть шаги — выноси в список.\n\n## БРЕНД: RockNail — Tone of Voice\n\n**Роль бренда**: Драйвовый бренд-эксперт, новатор и креатор.\n**Главная эмоция**: «Зарядим драйвом для nail-шедевров».\n**Характер речи**: яркий, драйвовый, уверенный, креативный. Экспертность высокая — но живая, с энергией, не холодная.\n\n**Ключевые слова**: драйв, характер, новаторство, креатив, профессионализм, яркость.\n**Фирменные эмодзи**: 🖤 / ⚡ (0–2 на ответ, чаще 0–1).\n\n**Начало ответа**:\n- На вопрос: «Здравствуйте, [имя], спасибо за вопрос ⚡»\n- На позитивный отзыв: «Спасибо вам ⚡»\n- На негативный отзыв: «Понимаем, что результат мог не совпасть с ожиданиями — давайте разберёмся»\n\n**Закрытие ответа**:\n- Нейтральное: «Если захотите, подберём решение ярче и точнее под вашу задачу»\n- После рекомендации: «Надеемся, ответ был полезен ⚡»\n- После негатива: «Если захотите, найдём решение точнее и сильнее под вашу задачу»\n- Всегда после ответа с новой строки: «🔥Анастасия, технолог бренда RockNail»\n\n\n**Up-sell формула**: «Если для вашей задачи нужен более подходящий вариант по свойствам и результату...» — строить на точности подбора, удобстве в работе и результате.\n\n**СТРОГИЕ ЗАПРЕТЫ**: \n- «Это является преимуществом», «Цена оправдана», «При правильном использовании не будет...», спокойный обезличенный тон — ломает характер бренда, убирает драйв.\n- НЕ используй: «Благодарим за интерес», «С уважением», «Нам очень важно ваше мнение»\n- НЕ спорь с клиентом и не намекай на неправильное использование\n- НЕ используй жирный шрифт или курсив\n- НЕ придумывай продукты, названия товаров, цены, услуги которых нет в отзыве\n- НЕ предлагай компенсации или бесплатные товары\n- НЕ делай up-sell в первом ответе на сильную рекламацию\n"
},
"promptType": "define"
},
"retryOnFail": true,
"typeVersion": 3.1
},
{
"id": "fcf75928-87a1-497f-97f2-83aee5fa019c",
"name": "rocknail_qa",
"type": "n8n-nodes-qdrant.qdrantTool",
"position": [
816,
464
],
"parameters": {
"operation": "getCollection",
"collectionName": {
"__rl": true,
"mode": "list",
"value": "rocknail_qa",
"cachedResultName": "rocknail_qa"
},
"requestOptions": {}
},
"credentials": {
"qdrantRestApi": {
"id": "wdtsqmMIy3WZGw1j",
"name": "Qdrant Local"
}
},
"typeVersion": 1
},
{
"id": "8549e274-9716-4c17-bfca-b06a32239661",
"name": "Get row(s) in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
-2384,
-512
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupValue": "={{ $json.id }}",
"lookupColumn": "id"
}
]
},
"sheetName": {
"__rl": true,
"mode": "name",
"value": "={{ $json.productDetails.brandSlug }}"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1sQbNw9AEdggLcMUhyymX6ADhz3SsLKA9bnvTG71OJcA",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sQbNw9AEdggLcMUhyymX6ADhz3SsLKA9bnvTG71OJcA/edit?usp=drivesdk",
"cachedResultName": "feedbacks"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "pHbq5wTdMuRf5V1o",
"name": "Google Sheets account"
}
},
"retryOnFail": false,
"typeVersion": 4.7,
"alwaysOutputData": true
},
{
"id": "5b92db30-55ff-4c7a-ab80-cdf6d03a6a7f",
"name": "Check if exist",
"type": "n8n-nodes-base.merge",
"position": [
-2176,
-384
],
"parameters": {
"mode": "combine",
"options": {},
"joinMode": "keepNonMatches",
"outputDataFrom": "input2",
"fieldsToMatchString": "id"
},
"typeVersion": 3.2
},
{
"id": "7eb63463-71d4-41ab-9282-e7faa265fad1",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"disabled": true,
"position": [
-3968,
-256
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours"
}
]
}
},
"typeVersion": 1.3
},
{
"id": "04a62f0e-09f5-4672-8df7-a8a3affb039a",
"name": "Run",
"type": "n8n-nodes-base.merge",
"position": [
-3680,
-368
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "4bbf2e7f-429f-465e-8b3e-b5baab8ff2da",
"name": "gostamp_qa",
"type": "n8n-nodes-qdrant.qdrantTool",
"position": [
816,
944
],
"parameters": {
"operation": "getCollection",
"collectionName": {
"__rl": true,
"mode": "list",
"value": "gostamp_qa",
"cachedResultName": "gostamp_qa"
},
"requestOptions": {}
},
"credentials": {
"qdrantRestApi": {
"id": "wdtsqmMIy3WZGw1j",
"name": "Qdrant Local"
}
},
"typeVersion": 1
},
{
"id": "9c29ef28-66f6-4278-be05-35997cb080d6",
"name": "Go! Stamp: AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
672,
736
],
"parameters": {
"text": "=Покупатель: {{ $json.userName }}\nТовар: {{ $json.productName }}\n{{ $json.brandSlug ? 'Бренд: ' + $json.brandSlug + '\\n' : '' }}\n{{ $json.text ? 'Отзыв: ' + $json.text + '\\n' : '' }}\n{{ $json.pros ? 'Плюсы: ' + $json.pros + '\\n' : '' }}\n{{ $json.cons ? 'Минусы: ' + $json.cons : '' }}",
"options": {
"maxIterations": 30,
"systemMessage": "Ты — экспертный копирайтер и технолог бренда Go! Stamp на маркетплейсе Wildberries. \nТвоя роль — «Заботливый эксперт»: отвечать тепло, профессионально и по делу.\n\n## ИНСТРУМЕНТЫ (RAG)\nУ тебя есть инструмент gostamp_qa — шаблоны для бренда Go! Stamp\nИспользуй его для написания ответа.\n\n\n## ОБЩИЕ ПРАВИЛА КОММУНИКАЦИИ (маркетплейс)\n\n**Обращение**: всегда на «вы». Если в отзыве видно имя — используй его в начале ответа.\n**Структура каждого ответа**: Эмпатия → Объяснение → Помощь (2–4 шага) → Up-sell (если уместно) → Закрывающая фраза отдельной строкой.\n**Up-sell**: только через заботу, только если реально решает боль клиента. Никогда — в первом ответе на брак, аллергию, некомплект.\n**Запрещено везде**:\n- «Благодарим Вас за интерес к нашему продукту»\n- «Данный продукт соответствует требованиям»\n- «Цена оправдана на 100%»\n- «Основная причина — нарушение техники»\n- «С уважением, технолог бренда»\n- Сплошной текст без абзацев\n**Эмпатия при негативе**: признай ситуацию, не спорь с эмоцией клиента, не ставь его в виноватую позицию.\n**Длина**: 2–4 коротких абзаца. Если есть шаги — выноси в список.\n\n## БРЕНД: Go! Stamp — Tone of Voice\n\n**Роль бренда**: Энергичный наставник по стемпингу.\n**Главная эмоция**: «Научим стемпингу легко и понятно».\n**Характер речи**: живой, бодрый, простой, прикладной. Экспертность — через быстрые лайфхаки и понятные шаги.\n\n**Ключевые слова**: легко, быстро, удобно, креативно.\n**Фирменные эмодзи**: 🎨 / ✨ (0–2 на ответ, чаще 0–1).\n\n**Начало ответа**:\n- На вопрос: «Здравствуйте, [имя], спасибо за вопрос 🎨»\n- На позитивный отзыв: «Спасибо вам 🎨»\n- На негативный отзыв: «Понимаем, как обидно, когда не получается»\n\n**Закрытие ответа**:\n- Нейтральное: «Если захотите, подскажем ещё несколько полезных нюансов»\n- После рекомендации: «Надеемся, ответ был полезен ✨»\n- После негатива: «Если хотите, поможем разобрать ситуацию точнее»\n- Всегда после ответа с новой строки: «✨ Анастасия, технолог бренда Go! Stamp»\n\n**Up-sell формула**: «Если для вашей задачи важно упростить процесс и получить более предсказуемый результат...» — строить на простоте процесса и предсказуемости результата.\n\n**СТРОГИЕ ЗАПРЕТЫ**: \n- длинные повторяющиеся методички, «Основная причина — нарушение техники» — делает бренд скучным и ставит клиента в виноватую позицию.\n- НЕ используй: «Благодарим за интерес», «С уважением», «Нам очень важно ваше мнение»\n- НЕ спорь с клиентом и не намекай на неправильное использование\n- НЕ используй жирный шрифт или курсив\n- НЕ придумывай продукты, названия товаров, цены, услуги которых нет в отзыве\n- НЕ предлагай компенсации или бесплатные товары\n- НЕ делай up-sell в первом ответе на сильную рекламацию"
},
"promptType": "define"
},
"retryOnFail": true,
"typeVersion": 3.1
},
{
"id": "6b92132f-845a-4eed-87e6-72540fd21176",
"name": "musanail_qa",
"type": "n8n-nodes-qdrant.qdrantTool",
"position": [
816,
1408
],
"parameters": {
"operation": "getCollection",
"collectionName": {
"__rl": true,
"mode": "list",
"value": "musanail_qa",
"cachedResultName": "musanail_qa"
},
"requestOptions": {}
},
"credentials": {
"qdrantRestApi": {
"id": "wdtsqmMIy3WZGw1j",
"name": "Qdrant Local"
}
},
"typeVersion": 1
},
{
"id": "ab6b8488-12ea-43b6-a1bf-502a0d21fd46",
"name": "Merge Shop",
"type": "n8n-nodes-base.merge",
"position": [
-2848,
-368
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "97370b41-a386-4b99-9d7e-d95ffdcd7708",
"name": "WB API: Get not MILK-RockNail answered feedbacks",
"type": "n8n-nodes-base.httpRequest",
"position": [
-3312,
-512
],
"parameters": {
"url": "https://feedbacks-api.wildberries.ru/api/v1/feedbacks",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"queryParameters": {
"parameters": [
{
"name": "dateFrom",
"value": "={{ $json.formattedDate }}"
},
{
"name": "isAnswered",
"value": "false"
},
{
"name": "take",
"value": "=10"
},
{
"name": "skip",
"value": "0"
}
]
}
},
"credentials": {
"httpBearerAuth": {
"id": "9wKiM2oK0hU7gJx8",
"name": "WB API — MILK"
}
},
"typeVersion": 4.4
},
{
"id": "1cebdb16-4e84-40e2-8f8f-c5166978879b",
"name": "WB API: Get not answered MUSA feedbacks",
"type": "n8n-nodes-base.httpRequest",
"position": [
-3312,
-224
],
"parameters": {
"url": "https://feedbacks-api.wildberries.ru/api/v1/feedbacks",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"queryParameters": {
"parameters": [
{
"name": "dateFrom",
"value": "={{ $json.formattedDate }}"
},
{
"name": "isAnswered",
"value": "false"
},
{
"name": "take",
"value": "=10"
},
{
"name": "skip",
"value": "0"
}
]
}
},
"credentials": {
"httpBearerAuth": {
"id": "LvcCKQVsuDrTnNDr",
"name": "WB API — Musanail"
}
},
"typeVersion": 4.4
},
{
"id": "3270b22d-256e-494c-b5e5-5a36397aecf2",
"name": "published",
"type": "n8n-nodes-base.set",
"position": [
1776,
-544
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "44882d03-dd7d-4624-bf06-67af0776fb74",
"name": "status",
"type": "string",
"value": "published"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "da83a8b6-cbd4-47b4-b1d0-6278a0fd89bb",
"name": "Musanail: AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
672,
1232
],
"parameters": {
"text": "=Покупатель: {{ $json.userName }}\nТовар: {{ $json.productName }}\n{{ $json.brandSlug ? 'Бренд: ' + $json.brandSlug + '\\n' : '' }}\n{{ $json.text ? 'Отзыв: ' + $json.text + '\\n' : '' }}\n{{ $json.pros ? 'Плюсы: ' + $json.pros + '\\n' : '' }}\n{{ $json.cons ? 'Минусы: ' + $json.cons : '' }}",
"options": {
"maxIterations": 30,
"systemMessage": "Ты — экспертный копирайтер и технолог бренда Musa на маркетплейсе Wildberries. \nТвоя роль — «Заботливый эксперт»: отвечать тепло, профессионально и по делу.\n\n## ИНСТРУМЕНТЫ (RAG)\nУ тебя есть инструмент musanail_qa — шаблоны для бренда Musa\nИспользуй его для написания ответа.\n\n## ОБЩИЕ ПРАВИЛА КОММУНИКАЦИИ (маркетплейс)\n\n**Обращение**: всегда на «вы». Если в отзыве видно имя — используй его в начале ответа.\n**Структура каждого ответа**: Эмпатия → Объяснение → Помощь (2–4 шага) → Up-sell (если уместно) → Закрывающая фраза отдельной строкой.\n**Up-sell**: только через заботу, только если реально решает боль клиента. Никогда — в первом ответе на брак, аллергию, некомплект.\n**Запрещено везде**:\n- «Благодарим Вас за интерес к нашему продукту»\n- «Данный продукт соответствует требованиям»\n- «Цена оправдана на 100%»\n- «Основная причина — нарушение техники»\n- «С уважением, технолог бренда»\n- Сплошной текст без абзацев\n**Эмпатия при негативе**: признай ситуацию, не спорь с эмоцией клиента, не ставь его в виноватую позицию.\n**Длина**: 2–4 коротких абзаца. Если есть шаги — выноси в список.\n\n## БРЕНД: Musa — Tone of Voice\n\n**Роль бренда**: Заботливый эксперт и поддерживающее комьюнити.\n**Главная эмоция**: «Мы рядом и готовы помочь».\n**Характер речи**: мягкий, тёплый, успокаивающий, понятный. Экспертность — высокая, но объясняется простым языком.\n\n**Ключевые слова**: забота, комфорт, поддержка, безопасность, деликатность.\n**Фирменные эмодзи**: 🤍 (0–2 на ответ, чаще 0–1).\n\n**Начало ответа**:\n- На вопрос: «Здравствуйте, [имя], спасибо за вопрос 🤍»\n- На позитивный отзыв: «Спасибо вам за тёплые слова 🤍»\n- На негативный отзыв: «Понимаем, как это может расстроить»\n\n**Закрытие ответа**:\n- Нейтральное: «Если останутся вопросы, мы рядом»\n- После рекомендации: «Надеемся, ответ был полезен 🤍»\n- После негатива: «Не оставим вас с этим вопросом»\n- Всегда после ответа с новой строки: «С уважением, технолог бренда Musa»\n\n**Up-sell формула**: «Если для вашей задачи нужен более деликатный / комфортный вариант...» — строить на заботе, комфорте, безопасности.\n\n**СТРОГИЕ ЗАПРЕТЫ**:\n- НЕ используй: «Благодарим за интерес», «С уважением», «Нам очень важно ваше мнение»\n- НЕ спорь с клиентом и не намекай на неправильное использование\n- НЕ используй жирный шрифт или курсив\n- НЕ придумывай продукты, названия товаров, цены, услуги которых нет в отзыве\n- НЕ предлагай компенсации или бесплатные товары\n- НЕ делай up-sell в первом ответе на сильную рекламацию"
},
"promptType": "define"
},
"retryOnFail": true,
"typeVersion": 3.1
},
{
"id": "333c8b5f-65b2-402b-bc38-ab8eb0f2d989",
"name": "MiLK: Merge",
"type": "n8n-nodes-base.merge",
"position": [
992,
-272
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "0f323b75-82f5-4f97-bdf8-e493073a0815",
"name": "MiLK: Merge1",
"type": "n8n-nodes-base.merge",
"position": [
992,
160
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "2a9f03d7-ef7b-4da7-afa1-de6eadccc41f",
"name": "MiLK: Merge2",
"type": "n8n-nodes-base.merge",
"position": [
992,
624
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "363e59f0-0bc0-4318-b096-8bf02c594987",
"name": "MiLK: Merge3",
"type": "n8n-nodes-base.merge",
"position": [
992,
1120
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "6691352f-f2d1-4f99-8a0b-8501aa6b0f15",
"name": "Date & Time",
"type": "n8n-nodes-base.dateTime",
"position": [
-3536,
-368
],
"parameters": {
"date": "={{ $today }}",
"format": "X",
"options": {
"fromFormat": "dd.MM.yyyy"
},
"operation": "formatDate"
},
"typeVersion": 2
},
{
"id": "4c62aa04-e971-4e01-9b82-a92a58fa6427",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
-1056,
-832
],
"parameters": {
"mode": "combine",
"options": {},
"joinMode": "keepEverything",
"fieldsToMatchString": "document.pageContent"
},
"typeVersion": 3.2
},
{
"id": "aa769f2b-c690-410a-a574-b7c8bf5e97e1",
"name": "RAG: merge",
"type": "n8n-nodes-base.merge",
"position": [
-624,
-416
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "7d33f1c4-93e1-49c3-afb3-7c4acd37d306",
"name": "AI: Clean",
"type": "n8n-nodes-base.set",
"position": [
-64,
-240
],
"parameters": {
"include": "selected",
"options": {},
"assignments": {
"assignments": [
{
"id": "e235de06-f0a3-49ee-a784-4142353b1850",
"name": "source",
"type": "string",
"value": "ai"
}
]
},
"includeFields": "id,\ntext,\npros,\ncons,\nuserName,\nproductValuation,\nproductDetails.nmId,\nproductDetails.productName,\nproductDetails.supplierName,\nproductDetails.brandSlug,\nproductDetails.productName",
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "ee432c66-724e-4dfd-8088-303bacb4edfa",
"name": "RAG: Clean",
"type": "n8n-nodes-base.set",
"position": [
1168,
-432
],
"parameters": {
"include": "selected",
"options": {},
"assignments": {
"assignments": [
{
"id": "c03f1346-4bad-414b-94fa-81d9695cb18f",
"name": "source",
"type": "string",
"value": "template"
},
{
"id": "367bd55f-10e6-4e01-9e57-4dfc908b1d6b",
"name": "output",
"type": "string",
"value": "={{ \n (() => {\n const options = [\n $json.document?.metadata?.answer_1,\n $json.document?.metadata?.answer_2,\n $json.document?.metadata?.answer_3,\n ].filter(a => a && a.trim() !== '');\n return options[Math.floor(Math.random() * options.length)] ?? null;\n })()\n}}"
}
]
},
"includeFields": "id,\ntext,\npros,\ncons,\nuserName,\nproductValuation,\nproductDetails.nmId,\nproductDetails.productName,\nproductDetails.supplierName,\nproductDetails.brandSlug,\nproductDetails.productName,\nscore",
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "425ae999-a23c-492a-b388-e7a7ec5729ee",
"name": "Musanail: Fix",
"type": "n8n-nodes-base.set",
"position": [
672,
1104
],
"parameters": {
"options": {},
"includeOtherFields": true
},
"typeVersion": 3.4,
"alwaysOutputData": true
},
{
"id": "ecc04aca-ffe2-4b6b-acc0-599d90276571",
"name": "Go! Stamp: Fix",
"type": "n8n-nodes-base.set",
"position": [
672,
608
],
"parameters": {
"options": {},
"includeOtherFields": true
},
"typeVersion": 3.4,
"alwaysOutputData": true
},
{
"id": "1fc1c9da-78d3-4e27-aa34-32de590ee6a9",
"name": "RockNail: Fix",
"type": "n8n-nodes-base.set",
"position": [
672,
144
],
"parameters": {
"options": {},
"includeOtherFields": true
},
"typeVersion": 3.4,
"alwaysOutputData": true
},
{
"id": "02afbb85-6192-4621-bb7d-8b43ffd595ab",
"name": "milk_openrouter",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
672,
0
],
"parameters": {
"model": "openrouter/free",
"options": {}
},
"credentials": {
"openRouterApi": {
"id": "psO104zZMtZzowwF",
"name": "OpenRouter account"
}
},
"typeVersion": 1
},
{
"id": "b2afcfa2-eb6e-49fa-9580-d4d53d5a9db1",
"name": "rocknail_openrouter",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
672,
464
],
"parameters": {
"model": "openrouter/free",
"options": {}
},
"credentials": {
"openRouterApi": {
"id": "psO104zZMtZzowwF",
"name": "OpenRouter account"
}
},
"typeVersion": 1
},
{
"id": "9cb04865-cf3c-4042-b33e-baa86380920a",
"name": "gostamp_openrouter",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
672,
944
],
"parameters": {
"model": "openrouter/free",
"options": {}
},
"credentials": {
"openRouterApi": {
"id": "psO104zZMtZzowwF",
"name": "OpenRouter account"
}
},
"typeVersion": 1
},
{
"id": "38b68f74-1d60-4a37-af1b-5d7382db0d72",
"name": "musanail_openrouter",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
672,
1408
],
"parameters": {
"model": "openrouter/free",
"options": {}
},
"credentials": {
"openRouterApi": {
"id": "psO104zZMtZzowwF",
"name": "OpenRouter account"
}
},
"typeVersion": 1
},
{
"id": "5a4681b0-6ed9-4d6f-afbd-ec6b725ae075",
"name": "brand_qa",
"type": "@n8n/n8n-nodes-langchain.embeddingsOllama",
"position": [
-1520,
-912
],
"parameters": {
"model": "nomic-embed-text:latest"
},
"credentials": {
"ollamaApi": {
"id": "2mmqCOK9kSPyn5q3",
"name": "Ollama account"
}
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "45fce4e9-74f4-42d9-872f-89e5e56f3311",
"name": "all_qa",
"type": "@n8n/n8n-nodes-langchain.embeddingsOllama",
"position": [
-1536,
-464
],
"parameters": {
"model": "nomic-embed-text:latest"
},
"credentials": {
"ollamaApi": {
"id": "2mmqCOK9kSPyn5q3",
"name": "Ollama account"
}
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "485c7dfe-e4be-483b-a28f-b017739e075f",
"name": "> 0.9 ?",
"type": "n8n-nodes-base.if",
"position": [
-272,
-416
],
"parameters": {
"options": {
"ignoreCase": false
},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "3771763c-78d3-4220-a8e8-6bfb638238c6",
"operator": {
"type": "number",
"operation": "gt"
},
"leftValue": "={{ $json.score }}",
"rightValue": "=0.9"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.3,
"alwaysOutputData": false
},
{
"id": "9c703f99-3163-4256-ba68-03cf97e3c6b3",
"name": "Brand-Switch: Store",
"type": "n8n-nodes-base.switch",
"position": [
2320,
-480
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "milk",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "ef16cca5-f24c-4991-9568-236587b35123",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.brandSlug }}",
"rightValue": "milk"
}
]
},
"renameOutput": true
},
{
"outputKey": "rocknail",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "a8f14610-8981-4e3d-953b-6085a154d2ec",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.brandSlug }}",
"rightValue": "rocknail"
}
]
},
"renameOutput": true
},
{
"outputKey": "gostamp",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "811ec1a5-a9ab-4cd9-8464-3b9da6deb519",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.brandSlug }}",
"rightValue": "gostamp"
}
]
},
"renameOutput": true
},
{
"outputKey": "musanail",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "96650ef9-1335-4ffb-aebd-ec6757acf426",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.brandSlug }}",
"rightValue": "musanail"
}
]
},
"renameOutput": true
}
]
},
"options": {},
"looseTypeValidation": true
},
"typeVersion": 3.4
},
{
"id": "18e1a3d9-e879-4ad3-8ed9-8759d09f40bf",
"name": "milk",
"type": "n8n-nodes-base.googleSheets",
"position": [
2560,
-704
],
"parameters": {
"columns": {
"value": {
"id": "={{ $json.id }}",
"cons": "={{ $json.cons }}",
"nmId": "={{ $json.nmId }}",
"pros": "={{ $json.pros }}",
"brand": "={{ $json.brandSlug }}",
"input": "={{ $json.text }}",
"output": "={{ $json.output }}",
"source": "={{ $json.source }}",
"status": "={{ $json.status }}",
"updated": "={{ $now.format('dd.MM.yyyy HH:mm:ss') }}",
"productName": "={{ $json.productName }}",
"supplierName": "={{ $json.supplierName }}",
"productValuation": "={{ $json.productValuation }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "string",
"display": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "learning",
"type": "string",
"display": true,
"required": false,
"displayName": "learning",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "supplierName",
"type": "string",
"display": true,
"required": false,
"displayName": "supplierName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "productName",
"type": "string",
"display": true,
"required": false,
"displayName": "productName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "nmId",
"type": "string",
"display": true,
"required": false,
"displayName": "nmId",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "brand",
"type": "string",
"display": true,
"required": false,
"displayName": "brand",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "input",
"type": "string",
"display": true,
"required": false,
"displayName": "input",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "cons",
"type": "string",
"display": true,
"required": false,
"displayName": "cons",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "pros",
"type": "string",
"display": true,
"required": false,
"displayName": "pros",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "productValuation",
"type": "string",
"display": true,
"required": false,
"displayName": "productValuation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "output",
"type": "string",
"display": true,
"required": false,
"displayName": "output",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "operator_notes",
"type": "string",
"display": true,
"required": false,
"displayName": "operator_notes",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "source",
"type": "string",
"display": true,
"required": false,
"displayName": "source",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "updated",
"type": "string",
"display": true,
"required": false,
"displayName": "updated",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sQbNw9AEdggLcMUhyymX6ADhz3SsLKA9bnvTG71OJcA/edit#gid=0",
"cachedResultName": "milk"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1sQbNw9AEdggLcMUhyymX6ADhz3SsLKA9bnvTG71OJcA",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sQbNw9AEdggLcMUhyymX6ADhz3SsLKA9bnvTG71OJcA/edit?usp=drivesdk",
"cachedResultName": "feedbacks"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "pHbq5wTdMuRf5V1o",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "2f1a12c8-f032-4c00-85ae-634ac4b90c36",
"name": "gostamp",
"type": "n8n-nodes-base.googleSheets",
"position": [
2560,
-352
],
"parameters": {
"columns": {
"value": {
"id": "={{ $json.id }}",
"cons": "={{ $json.cons }}",
"nmId": "={{ $json.nmId }}",
"pros": "={{ $json.pros }}",
"brand": "={{ $json.brandSlug }}",
"input": "={{ $json.text }}",
"output": "={{ $json.output }}",
"source": "={{ $json.source }}",
"status": "={{ $json.status }}",
"updated": "={{ $now.format('dd.MM.yyyy HH:mm:ss') }}",
"productName": "={{ $json.productName }}",
"supplierName": "={{ $json.supplierName }}",
"productValuation": "={{ $json.productValuation }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "string",
"display": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "learning",
"type": "string",
"display": true,
"required": false,
"displayName": "learning",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "supplierName",
"type": "string",
"display": true,
"required": false,
"displayName": "supplierName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "productName",
"type": "string",
"display": true,
"required": false,
"displayName": "productName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "nmId",
"type": "string",
"display": true,
"required": false,
"displayName": "nmId",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "brand",
"type": "string",
"display": true,
"required": false,
"displayName": "brand",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "input",
"type": "string",
"display": true,
"required": false,
"displayName": "input",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "cons",
"type": "string",
"display": true,
"required": false,
"displayName": "cons",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "pros",
"type": "string",
"display": true,
"required": false,
"displayName": "pros",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "productValuation",
"type": "string",
"display": true,
"required": false,
"displayName": "productValuation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "output",
"type": "string",
"display": true,
"required": false,
"displayName": "output",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "operator_notes",
"type": "string",
"display": true,
"required": false,
"displayName": "operator_notes",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "source",
"type": "string",
"display": true,
"required": false,
"displayName": "source",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "updated",
"type": "string",
"display": true,
"required": false,
"displayName": "updated",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1621321745,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sQbNw9AEdggLcMUhyymX6ADhz3SsLKA9bnvTG71OJcA/edit#gid=1621321745",
"cachedResultName": "gostamp"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1sQbNw9AEdggLcMUhyymX6ADhz3SsLKA9bnvTG71OJcA",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sQbNw9AEdggLcMUhyymX6ADhz3SsLKA9bnvTG71OJcA/edit?usp=drivesdk",
"cachedResultName": "feedbacks"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "pHbq5wTdMuRf5V1o",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "3d32733d-da5f-4271-b5ab-f05a0e8e1680",
"name": "musanail",
"type": "n8n-nodes-base.googleSheets",
"position": [
2560,
-176
],
"parameters": {
"columns": {
"value": {
"id": "={{ $json.id }}",
"cons": "={{ $json.cons }}",
"nmId": "={{ $json.nmId }}",
"pros": "={{ $json.pros }}",
"brand": "={{ $json.brandSlug }}",
"input": "={{ $json.text }}",
"output": "={{ $json.output }}",
"source": "={{ $json.source }}",
"status": "={{ $json.status }}",
"updated": "={{ $now.format('dd.MM.yyyy HH:mm:ss') }}",
"productName": "={{ $json.productName }}",
"supplierName": "={{ $json.supplierName }}",
"productValuation": "={{ $json.productValuation }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "string",
"display": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "learning",
"type": "string",
"display": true,
"required": false,
"displayName": "learning",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "supplierName",
"type": "string",
"display": true,
"required": false,
"displayName": "supplierName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "productName",
"type": "string",
"display": true,
"required": false,
"displayName": "productName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "nmId",
"type": "string",
"display": true,
"required": false,
"displayName": "nmId",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "brand",
"type": "string",
"display": true,
"required": false,
"displayName": "brand",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "input",
"type": "string",
"display": true,
"required": false,
"displayName": "input",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "cons",
"type": "string",
"display": true,
"required": false,
"displayName": "cons",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "pros",
"type": "string",
"display": true,
"required": false,
"displayName": "pros",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "productValuation",
"type": "string",
"display": true,
"required": false,
"displayName": "productValuation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "output",
"type": "string",
"display": true,
"required": false,
"displayName": "output",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "operator_notes",
"type": "string",
"display": true,
"required": false,
"displayName": "operator_notes",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "source",
"type": "string",
"display": true,
"required": false,
"displayName": "source",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "updated",
"type": "string",
"display": true,
"required": false,
"displayName": "updated",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1503640640,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sQbNw9AEdggLcMUhyymX6ADhz3SsLKA9bnvTG71OJcA/edit#gid=1503640640",
"cachedResultName": "musanail"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1sQbNw9AEdggLcMUhyymX6ADhz3SsLKA9bnvTG71OJcA",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sQbNw9AEdggLcMUhyymX6ADhz3SsLKA9bnvTG71OJcA/edit?usp=drivesdk",
"cachedResultName": "feedbacks"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "pHbq5wTdMuRf5V1o",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "9bcbf674-fa7d-4cd4-b666-c65b731e6360",
"name": "ai_draft",
"type": "n8n-nodes-base.set",
"position": [
1776,
-336
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "915e5268-7fc6-410a-a7bc-70d9930b093f",
"name": "status",
"type": "string",
"value": "ai_draft"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "42a38bbb-3693-424a-8dd7-d4ffaedc9bf8",
"name": "rocknail",
"type": "n8n-nodes-base.googleSheets",
"position": [
2560,
-528
],
"parameters": {
"columns": {
"value": {
"id": "={{ $json.id }}",
"cons": "={{ $json.cons }}",
"nmId": "={{ $json.nmId }}",
"pros": "={{ $json.pros }}",
"brand": "={{ $json.brandSlug }}",
"input": "={{ $json.text }}",
"output": "={{ $json.output }}",
"source": "={{ $json.source }}",
"status": "={{ $json.status }}",
"updated": "={{ $now.format('dd.MM.yyyy HH:mm:ss') }}",
"productName": "={{ $json.productName }}",
"supplierName": "={{ $json.supplierName }}",
"productValuation": "={{ $json.productValuation }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "string",
"display": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "learning",
"type": "string",
"display": true,
"required": false,
"displayName": "learning",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "supplierName",
"type": "string",
"display": true,
"required": false,
"displayName": "supplierName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "productName",
"type": "string",
"display": true,
"required": false,
"displayName": "productName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "nmId",
"type": "string",
"display": true,
"required": false,
"displayName": "nmId",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "brand",
"type": "string",
"display": true,
"required": false,
"displayName": "brand",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "input",
"type": "string",
"display": true,
"required": false,
"displayName": "input",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "cons",
"type": "string",
"display": true,
"required": false,
"displayName": "cons",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "pros",
"type": "string",
"display": true,
"required": false,
"displayName": "pros",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "productValuation",
"type": "string",
"display": true,
"required": false,
"displayName": "productValuation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "output",
"type": "string",
"display": true,
"required": false,
"displayName": "output",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "operator_notes",
"type": "string",
"display": true,
"required": false,
"displayName": "operator_notes",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "source",
"type": "string",
"display": true,
"required": false,
"displayName": "source",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "updated",
"type": "string",
"display": true,
"required": false,
"displayName": "updated",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1899414946,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sQbNw9AEdggLcMUhyymX6ADhz3SsLKA9bnvTG71OJcA/edit#gid=1899414946",
"cachedResultName": "rocknail"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1sQbNw9AEdggLcMUhyymX6ADhz3SsLKA9bnvTG71OJcA",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sQbNw9AEdggLcMUhyymX6ADhz3SsLKA9bnvTG71OJcA/edit?usp=drivesdk",
"cachedResultName": "feedbacks"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "pHbq5wTdMuRf5V1o",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "94d6dc4b-1c9e-4c35-a631-b290fbd1e63a",
"name": "Publish: Merge",
"type": "n8n-nodes-base.merge",
"position": [
2048,
-448
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "c74c1cb7-f1d6-457a-8cfb-30a9d5f5d275",
"name": "Call 'RAG: Ingestion'",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
2992,
-448
],
"parameters": {
"options": {
"waitForSubWorkflow": false
},
"workflowId": {
"__rl": true,
"mode": "list",
"value": "s1ijFnngS9h5tzIs",
"cachedResultUrl": "/workflow/s1ijFnngS9h5tzIs",
"cachedResultName": "RAG: Ingestion"
},
"workflowInputs": {
"value": {},
"schema": [],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": true
}
},
"typeVersion": 1.3
},
{
"id": "0661279e-2b8c-4db6-8c1d-5464f7ef9768",
"name": "Merge1",
"type": "n8n-nodes-base.merge",
"position": [
2800,
-480
],
"parameters": {
"numberInputs": 4
},
"typeVersion": 3.2
}
],
"active": true,
"pinData": {},
"settings": {
"binaryMode": "separate",
"availableInMCP": true,
"executionOrder": "v1"
},
"versionId": "e8a2e820-d047-45d1-8638-496f46e99c84",
"connections": {
"Run": {
"main": [
[
{
"node": "Date & Time",
"type": "main",
"index": 0
}
]
]
},
"Exec": {
"main": [
[
{
"node": "Run",
"type": "main",
"index": 0
}
]
]
},
"milk": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "RAG: merge",
"type": "main",
"index": 0
}
]
]
},
"Merge1": {
"main": [
[
{
"node": "Call 'RAG: Ingestion'",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "published",
"type": "main",
"index": 0
}
],
[
{
"node": "ai_draft",
"type": "main",
"index": 0
}
]
]
},
"all_qa": {
"ai_embedding": [
[
{
"node": "Get Score in all collection",
"type": "ai_embedding",
"index": 0
}
]
]
},
"review": {
"main": [
[
{
"node": "Get row(s) in sheet",
"type": "main",
"index": 0
},
{
"node": "Check if exist",
"type": "main",
"index": 1
}
]
]
},
"> 0.9 ?": {
"main": [
[
{
"node": "RAG: Clean",
"type": "main",
"index": 0
}
],
[
{
"node": "AI: Clean",
"type": "main",
"index": 0
}
]
]
},
"gostamp": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 2
}
]
]
},
"milk_qa": {
"ai_tool": [
[
{
"node": "MiLK: AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"ai_draft": {
"main": [
[
{
"node": "Publish: Merge",
"type": "main",
"index": 1
}
]
]
},
"brand_qa": {
"ai_embedding": [
[
{
"node": "Get Score in brand collection",
"type": "ai_embedding",
"index": 0
}
]
]
},
"musanail": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 3
}
]
]
},
"rocknail": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 1
}
]
]
},
"AI: Clean": {
"main": [
[
{
"node": "Brand-Switch",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "review",
"type": "main",
"index": 0
}
]
]
},
"published": {
"main": [
[
{
"node": "Publish: Merge",
"type": "main",
"index": 0
}
]
]
},
"Merge Shop": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"RAG: Clean": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"RAG: merge": {
"main": [
[
{
"node": "> 0.9 ?",
"type": "main",
"index": 0
}
]
]
},
"gostamp_qa": {
"ai_tool": [
[
{
"node": "Go! Stamp: AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Отзыв": {
"main": [
[
{
"node": "RAG: merge",
"type": "main",
"index": 1
},
{
"node": "Get Score in all collection",
"type": "main",
"index": 0
},
{
"node": "Get Score in brand collection",
"type": "main",
"index": 0
}
]
]
},
"Date & Time": {
"main": [
[
{
"node": "WB API: Get not MILK-RockNail answered feedbacks",
"type": "main",
"index": 0
},
{
"node": "WB API: Get not answered MUSA feedbacks",
"type": "main",
"index": 0
}
]
]
},
"MiLK: Merge": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"musanail_qa": {
"ai_tool": [
[
{
"node": "Musanail: AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"rocknail_qa": {
"ai_tool": [
[
{
"node": "RockNail: AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Brand-Switch": {
"main": [
[
{
"node": "MiLK: AI Agent",
"type": "main",
"index": 0
},
{
"node": "MiLK: Merge",
"type": "main",
"index": 0
}
],
[
{
"node": "RockNail: AI Agent",
"type": "main",
"index": 0
},
{
"node": "RockNail: Fix",
"type": "main",
"index": 0
}
],
[
{
"node": "Go! Stamp: AI Agent",
"type": "main",
"index": 0
},
{
"node": "Go! Stamp: Fix",
"type": "main",
"index": 0
}
],
[
{
"node": "Musanail: AI Agent",
"type": "main",
"index": 0
},
{
"node": "Musanail: Fix",
"type": "main",
"index": 0
}
]
]
},
"MiLK: Merge1": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"MiLK: Merge2": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"MiLK: Merge3": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Musanail: Fix": {
"main": [
[
{
"node": "MiLK: Merge3",
"type": "main",
"index": 0
}
]
]
},
"RockNail: Fix": {
"main": [
[
{
"node": "MiLK: Merge1",
"type": "main",
"index": 0
}
]
]
},
"Check if exist": {
"main": [
[
{
"node": "Отзыв",
"type": "main",
"index": 0
}
]
]
},
"Go! Stamp: Fix": {
"main": [
[
{
"node": "MiLK: Merge2",
"type": "main",
"index": 0
}
]
]
},
"MiLK: AI Agent": {
"main": [
[
{
"node": "MiLK: Merge",
"type": "main",
"index": 1
}
],
[]
]
},
"Publish: Merge": {
"main": [
[
{
"node": "Brand-Switch: Store",
"type": "main",
"index": 0
}
]
]
},
"milk_openrouter": {
"ai_languageModel": [
[
{
"node": "MiLK: AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Run",
"type": "main",
"index": 1
}
]
]
},
"Musanail: AI Agent": {
"main": [
[
{
"node": "MiLK: Merge3",
"type": "main",
"index": 1
}
]
]
},
"RockNail: AI Agent": {
"main": [
[
{
"node": "MiLK: Merge1",
"type": "main",
"index": 1
}
]
]
},
"gostamp_openrouter": {
"ai_languageModel": [
[
{
"node": "Go! Stamp: AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Brand-Switch: Store": {
"main": [
[
{
"node": "milk",
"type": "main",
"index": 0
}
],
[
{
"node": "rocknail",
"type": "main",
"index": 0
}
],
[
{
"node": "gostamp",
"type": "main",
"index": 0
}
],
[
{
"node": "musanail",
"type": "main",
"index": 0
}
]
]
},
"Get row(s) in sheet": {
"main": [
[
{
"node": "Check if exist",
"type": "main",
"index": 0
}
],
[]
]
},
"Go! Stamp: AI Agent": {
"main": [
[
{
"node": "MiLK: Merge2",
"type": "main",
"index": 1
}
]
]
},
"musanail_openrouter": {
"ai_languageModel": [
[
{
"node": "Musanail: AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"rocknail_openrouter": {
"ai_languageModel": [
[
{
"node": "RockNail: AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Get Score in all collection": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Get Score in brand collection": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"WB API: Get not answered MUSA feedbacks": {
"main": [
[
{
"node": "Merge Shop",
"type": "main",
"index": 1
}
]
]
},
"WB API: Get not MILK-RockNail answered feedbacks": {
"main": [
[
{
"node": "Merge Shop",
"type": "main",
"index": 0
}
]
]
}
}
}