16 Monitorear precios de la competencia

Avanzado

Este es unMarket Research, AI Summarizationflujo de automatización del dominio deautomatización que contiene 18 nodos.Utiliza principalmente nodos como Set, Code, Gmail, GoogleSheets, McpClientTool. Monitoreo automático de precios de la competencia basado en Bright Data MCP y Google Sheets

Requisitos previos
  • Cuenta de Google y credenciales de API de Gmail
  • Credenciales de API de Google Sheets
  • Clave de API de OpenAI
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "D2S34DY7VfnEPpyB",
  "meta": {
    "instanceId": "60046904b104f0f72b2629a9d88fe9f676be4035769f1f08dad1dd38a76b9480",
    "templateCredsSetupCompleted": true
  },
  "name": "16 Monitor Competitor Pricing",
  "tags": [],
  "nodes": [
    {
      "id": "605a1234-c0e6-4536-b77f-6847f00373ce",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        420,
        260
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "8sEyPDkC5p4w4Jha",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "555eb402-b520-43e2-95cd-bd17346d03db",
      "name": "Cliente MCP",
      "type": "n8n-nodes-mcp.mcpClientTool",
      "position": [
        600,
        260
      ],
      "parameters": {
        "toolName": "scrape_as_markdown",
        "operation": "executeTool",
        "toolParameters": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Tool_Parameters', ``, 'json') }}"
      },
      "credentials": {
        "mcpClientApi": {
          "id": "eqq94k789oJCd6jU",
          "name": "MCP Client (STDIO) account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2a0c20ec-11ed-47ab-9d72-386aae3abcfb",
      "name": "📅 Ejecutar verificación semanal",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -60,
        0
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                1
              ],
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "c3b79dd1-be34-4f56-82a2-7f5bfad4277b",
      "name": "🛒 URL de página de producto",
      "type": "n8n-nodes-base.set",
      "position": [
        120,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "29b0aaf6-ddbb-4f33-a937-6528a9c1ef13",
              "name": "url",
              "type": "string",
              "value": "https://www.nike.com/w/training-gym-clothing-58jtoz6ymx6"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "807fbabc-d4b7-4ab8-82fe-733df05d9a7f",
      "name": "🤖 Extraer precios de competidores (Agente MCP)",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        440,
        0
      ],
      "parameters": {
        "text": "=scrape all the details about every product from the following url:\n{{ $json.url }}",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2
    },
    {
      "id": "52f014cb-7795-4461-b6f0-ba361ac0fc47",
      "name": "📧 Notificar: Precios registrados en hoja",
      "type": "n8n-nodes-base.gmail",
      "position": [
        900,
        -200
      ],
      "webhookId": "20bff4a7-f214-4471-8cab-e9669040b7eb",
      "parameters": {
        "sendTo": "shahkar.genai@gmail.com",
        "message": "The Competitor pricing has just logged into google sheets.\n\nPlease take a look and adjust the prices",
        "options": {},
        "subject": "Competitor product pricing has just logged into google sheets",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "AQDSl75AdzK3vmqJ",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "118a498c-ee93-4a4c-88a5-9455985e515d",
      "name": "🧹 Formatear productos para Google Sheets",
      "type": "n8n-nodes-base.code",
      "position": [
        1200,
        180
      ],
      "parameters": {
        "jsCode": "// Input: 1 item with `output` containing an array of product objects\nconst products = items[0].json.output;\n\n// Return each product as its own item for Google Sheets\nreturn products.map(product => {\n  return {\n    json: {\n      name: product.name,\n      description: product.description,\n      price: product.price,\n      url: product.url\n    }\n  };\n});\n"
      },
      "typeVersion": 2
    },
    {
      "id": "24a199a7-2cc5-46bd-9b92-0d9878088136",
      "name": "📄 Guardar en Google Sheets (Registro de precios de competidores)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1420,
        180
      ],
      "parameters": {
        "columns": {
          "value": {
            "URL": "={{ $json.url }}",
            "Name": "={{ $json.name }}",
            "Price": "={{ $json.price }}",
            "Description": "={{ $json.description }}"
          },
          "schema": [
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Description",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Price",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Price",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/11NLHG0clJ78pV6YWc_Nt3Q8pjzrojiuwDOuvASViOI4/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "11NLHG0clJ78pV6YWc_Nt3Q8pjzrojiuwDOuvASViOI4",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/11NLHG0clJ78pV6YWc_Nt3Q8pjzrojiuwDOuvASViOI4/edit?usp=drivesdk",
          "cachedResultName": "Competitor product pricing"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "r2mDaisH6e9VkwHl",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "c8056167-a856-4bf6-9552-eb37194309b0",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -100,
        -660
      ],
      "parameters": {
        "color": 5,
        "width": 360,
        "height": 840,
        "content": "### 🔹 **Section 1: Schedule & Input Configuration**\n\n#### 🧩 Nodes:\n\n* `📅 Run Daily Check` *(Schedule Trigger)*\n* `🛒 Product Page URL` *(Edit Fields)*\n\n#### 🔍 **What’s Happening?**\n\nThis section **starts the workflow** at a scheduled time — daily, weekly, or hourly depending on your setup.\nThen, the `Edit Fields` node optionally allows you to **manually enter or override** the product URL(s) to track. This makes your workflow flexible.\n\n#### 💡 **Beginner Tips:**\n\n* Use `Edit Fields` when you want to quickly test a new product without changing the backend.\n* Use the schedule to **automate price checks daily**, saving manual effort.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "7c59258a-4dc0-4b13-8852-22c2b2576d8a",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        -820
      ],
      "parameters": {
        "color": 3,
        "width": 300,
        "height": 1000,
        "content": "### 🤖 **Section 2: Competitor Price Scraping via Agent**\n\n#### 🧩 Nodes:\n\n* `🤖 Scrape Competitor Prices (MCP Agent)`\n* 🌐 `MCP Client`\n* 💬 `OpenAI Chat Model`\n* 🧩 `Structured Output Parser`\n\n#### 🔍 **What’s Happening?**\n\nThis is the **core engine** of the workflow. It uses an AI-powered agent connected to **Bright Data’s MCP (Mobile Carrier Proxy)** to:\n\n1. Access dynamic websites like Nike.\n2. Scrape product data even if the content loads via JavaScript.\n3. Use OpenAI to intelligently plan scraping steps (optional).\n4. Parse the messy data into **structured JSON** (via the parser).\n\n#### 💡 **Beginner Tips:**\n\n* **Bright Data MCP** handles anti-bot tech on complex sites.\n* No coding needed — the agent knows how to fetch prices, descriptions, and links.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "38bfe2a4-a4a9-4969-b44f-50ba7db6b915",
      "name": "Nota adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        840,
        -1000
      ],
      "parameters": {
        "color": 6,
        "width": 220,
        "height": 980,
        "content": "### 📧 **Section 3: Email Notification**\n\n#### 🧩 Node:\n\n* `📧 Notify: Prices Logged in Sheet` *(Gmail)*\n\n#### 🔍 **What’s Happening?**\n\nOnce the data is successfully scraped, this node **sends an email notification** to let you (or your team) know that competitor prices are now stored in Google Sheets.\n\nThe email could say something like:\n\n> ✅ “New competitor pricing data has been added to the sheet. Click here to review.”\n\n#### 💡 **Beginner Tips:**\n\n* You’ll always stay **in the loop** — no need to check the sheet manually.\n* You can customize this email (add buttons, links, summaries, etc.).\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "93966003-b316-4c00-a830-afe8649e16df",
      "name": "Nota adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1160,
        -580
      ],
      "parameters": {
        "color": 2,
        "width": 420,
        "height": 960,
        "content": "### 📄 **Section 4: Data Transformation & Storage**\n\n#### 🧩 Nodes:\n\n* `🧹 Format Products for Google Sheets` *(Code)*\n* `📄 Save to Google Sheets (Competitor Pricing Log)` *(Google Sheets)*\n\n#### 🔍 **What’s Happening?**\n\nThis final section processes the raw data and **converts it into individual product rows** so that Google Sheets can store each one neatly.\n\nThe Code node:\n\n* Breaks the product list into single entries\n* Extracts: name, price, description, URL\n\nThen the Google Sheets node:\n\n* Appends each product to a **new row** in your sheet (like a live price tracker)\n\n#### 💡 **Beginner Tips:**\n\n* View trends over time in the sheet 📊\n* Filter or sort based on price changes\n* Use Google Sheets charts for visuals!\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "07140bb3-58b6-458e-8e9d-f52c81997164",
      "name": "Nota adhesiva5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1680,
        -580
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 240,
        "content": "## I’ll receive a tiny commission if you join Bright Data through this link—thanks for fueling more free content!\n\n### https://get.brightdata.com/1tndi4600b25"
      },
      "typeVersion": 1
    },
    {
      "id": "55412999-3cad-4a90-9753-a13e14d40bd1",
      "name": "Nota adhesiva9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1920,
        -640
      ],
      "parameters": {
        "color": 4,
        "width": 1300,
        "height": 320,
        "content": "=======================================\n            WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n    Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n   - YouTube: https://www.youtube.com/@YaronBeen/videos\n   - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
      },
      "typeVersion": 1
    },
    {
      "id": "26435f82-80f8-4f71-bb8d-64959689c338",
      "name": "Nota adhesiva4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1920,
        -300
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 2538,
        "content": "## 💼 Workflow Title: **Competitor Price Tracker & Logger**\n\n> 📌 This n8n automation regularly scrapes product prices from competitor websites (like Nike), stores the results in Google Sheets, and alerts you via email when new data is logged.\n\n---\n\n### 🔹 **Section 1: Schedule & Input Configuration**\n\n#### 🧩 Nodes:\n\n* `📅 Run Daily Check` *(Schedule Trigger)*\n* `🛒 Product Page URL` *(Edit Fields)*\n\n#### 🔍 **What’s Happening?**\n\nThis section **starts the workflow** at a scheduled time — daily, weekly, or hourly depending on your setup.\nThen, the `Edit Fields` node optionally allows you to **manually enter or override** the product URL(s) to track. This makes your workflow flexible.\n\n#### 💡 **Beginner Tips:**\n\n* Use `Edit Fields` when you want to quickly test a new product without changing the backend.\n* Use the schedule to **automate price checks daily**, saving manual effort.\n\n---\n\n### 🤖 **Section 2: Competitor Price Scraping via Agent**\n\n#### 🧩 Nodes:\n\n* `🤖 Scrape Competitor Prices (MCP Agent)`\n* 🌐 `MCP Client`\n* 💬 `OpenAI Chat Model`\n* 🧩 `Structured Output Parser`\n\n#### 🔍 **What’s Happening?**\n\nThis is the **core engine** of the workflow. It uses an AI-powered agent connected to **Bright Data’s MCP (Mobile Carrier Proxy)** to:\n\n1. Access dynamic websites like Nike.\n2. Scrape product data even if the content loads via JavaScript.\n3. Use OpenAI to intelligently plan scraping steps (optional).\n4. Parse the messy data into **structured JSON** (via the parser).\n\n#### 💡 **Beginner Tips:**\n\n* **Bright Data MCP** handles anti-bot tech on complex sites.\n* No coding needed — the agent knows how to fetch prices, descriptions, and links.\n\n---\n\n### 📧 **Section 3: Email Notification**\n\n#### 🧩 Node:\n\n* `📧 Notify: Prices Logged in Sheet` *(Gmail)*\n\n#### 🔍 **What’s Happening?**\n\nOnce the data is successfully scraped, this node **sends an email notification** to let you (or your team) know that competitor prices are now stored in Google Sheets.\n\nThe email could say something like:\n\n> ✅ “New competitor pricing data has been added to the sheet. Click here to review.”\n\n#### 💡 **Beginner Tips:**\n\n* You’ll always stay **in the loop** — no need to check the sheet manually.\n* You can customize this email (add buttons, links, summaries, etc.).\n\n---\n\n### 📄 **Section 4: Data Transformation & Storage**\n\n#### 🧩 Nodes:\n\n* `🧹 Format Products for Google Sheets` *(Code)*\n* `📄 Save to Google Sheets (Competitor Pricing Log)` *(Google Sheets)*\n\n#### 🔍 **What’s Happening?**\n\nThis final section processes the raw data and **converts it into individual product rows** so that Google Sheets can store each one neatly.\n\nThe Code node:\n\n* Breaks the product list into single entries\n* Extracts: name, price, description, URL\n\nThen the Google Sheets node:\n\n* Appends each product to a **new row** in your sheet (like a live price tracker)\n\n#### 💡 **Beginner Tips:**\n\n* View trends over time in the sheet 📊\n* Filter or sort based on price changes\n* Use Google Sheets charts for visuals!\n\n---\n\n## 🧠 Summary for Beginners\n\n| Step | Purpose                              | Benefit                                                  |\n| ---- | ------------------------------------ | -------------------------------------------------------- |\n| 1️⃣  | Trigger & Input                      | Controls when to run and what products to track          |\n| 2️⃣  | Scraping Agent                       | Collects competitor prices from hard-to-scrape websites  |\n| 3️⃣  | Email Notification                   | Keeps you informed every time new data is captured       |\n| 4️⃣  | Processing & Storing to Google Sheet | Stores clean data for review, tracking, or price updates |\n\n---"
      },
      "typeVersion": 1
    },
    {
      "id": "abf0acf3-d7eb-4ba1-8b50-386ecfb68eed",
      "name": "Analizador de salida con corrección automática",
      "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
      "position": [
        740,
        260
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "81ee9366-a769-4468-a29d-5f17ce24d237",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        720,
        480
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "8sEyPDkC5p4w4Jha",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8e60d01a-4743-4d26-b7c5-05e0c42aa5c5",
      "name": "Analizador de salida estructurada1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        880,
        480
      ],
      "parameters": {
        "jsonSchemaExample": "[\n  {\n    \"name\": \"Nike Universa\",\n    \"description\": \"Women's Medium-Support High-Waisted 7/8 Leggings with Pockets\",\n    \"price\": 93.97,\n    \"url\": \"https://www.nike.com/t/universa-womens-medium-support-high-waisted-7-8-leggings-with-pockets-tTQDxt/HQ6813-478\"\n  },\n  {\n    \"name\": \"Nike One\",\n    \"description\": \"Women's Dri-FIT Tank Top\",\n    \"price\": 50,\n    \"url\": \"https://www.nike.com/t/one-womens-dri-fit-tank-top-QHHXIcvJ/IH8605-652\"\n  },\n  {\n    \"name\": \"Nike Primary Fleece\",\n    \"description\": \"Men's Dri-FIT UV Pullover Performance Hoodie\",\n    \"price\": 80,\n    \"url\": \"https://www.nike.com/t/primary-fleece-mens-dri-fit-uv-pullover-performance-hoodie-B10qz3/FZ0969-237\"\n  },\n  {\n    \"name\": \"Nike Swoosh Medium Support\",\n    \"description\": \"Women's Padded Sports Bra\",\n    \"price\": 40,\n    \"url\": \"https://www.nike.com/t/swoosh-medium-support-womens-padded-sports-bra-1mKhIH9g/DX6821-712\"\n  },\n  {\n    \"name\": \"Nike Dri-FIT Legend\",\n    \"description\": \"Men's Fitness T-Shirt\",\n    \"price\": 30,\n    \"url\": \"https://www.nike.com/t/dri-fit-legend-mens-fitness-t-shirt-JmKL0d/DX0989-411\"\n  }\n]\n"
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "f5a47b0c-868f-4398-9391-86184f4319a3",
  "connections": {
    "555eb402-b520-43e2-95cd-bd17346d03db": {
      "ai_tool": [
        [
          {
            "node": "807fbabc-d4b7-4ab8-82fe-733df05d9a7f",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "605a1234-c0e6-4536-b77f-6847f00373ce": {
      "ai_languageModel": [
        [
          {
            "node": "807fbabc-d4b7-4ab8-82fe-733df05d9a7f",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "81ee9366-a769-4468-a29d-5f17ce24d237": {
      "ai_languageModel": [
        [
          {
            "node": "abf0acf3-d7eb-4ba1-8b50-386ecfb68eed",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "2a0c20ec-11ed-47ab-9d72-386aae3abcfb": {
      "main": [
        [
          {
            "node": "c3b79dd1-be34-4f56-82a2-7f5bfad4277b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c3b79dd1-be34-4f56-82a2-7f5bfad4277b": {
      "main": [
        [
          {
            "node": "807fbabc-d4b7-4ab8-82fe-733df05d9a7f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "abf0acf3-d7eb-4ba1-8b50-386ecfb68eed": {
      "ai_outputParser": [
        [
          {
            "node": "807fbabc-d4b7-4ab8-82fe-733df05d9a7f",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "8e60d01a-4743-4d26-b7c5-05e0c42aa5c5": {
      "ai_outputParser": [
        [
          {
            "node": "abf0acf3-d7eb-4ba1-8b50-386ecfb68eed",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "118a498c-ee93-4a4c-88a5-9455985e515d": {
      "main": [
        [
          {
            "node": "24a199a7-2cc5-46bd-9b92-0d9878088136",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "807fbabc-d4b7-4ab8-82fe-733df05d9a7f": {
      "main": [
        [
          {
            "node": "118a498c-ee93-4a4c-88a5-9455985e515d",
            "type": "main",
            "index": 0
          },
          {
            "node": "52f014cb-7795-4461-b6f0-ba361ac0fc47",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿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 - Investigación de mercado, Resumen de IA

¿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.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos18
Categoría2
Tipos de nodos11
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Autor
Yaron Been

Yaron Been

@yaron-nofluff

Building AI Agents and Automations | Growth Marketer | Entrepreneur | Book Author & Podcast Host If you need any help with Automations, feel free to reach out via linkedin: https://www.linkedin.com/in/yaronbeen/ And check out my Youtube channel: https://www.youtube.com/@YaronBeen/videos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34