Asistente de Investigación con IA construido con Linear+Scrapeless+Claude

Avanzado

Este es unMarket Research, AI Chatbotflujo de automatización del dominio deautomatización que contiene 17 nodos.Utiliza principalmente nodos como Code, Linear, Switch, LinearTrigger, Agent. Asistente de investigación con IA basado en Linear, Scrapeless y Claude

Requisitos previos
  • Clave de API de Anthropic
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": "yTpEZbAAFcS0Yp4m",
  "meta": {
    "instanceId": "7d291de9dc3bbf0106d65e069919a3de2507e3365a7b25788a79a3562af9bfc5",
    "templateCredsSetupCompleted": true
  },
  "name": "Build an AI-Powered Research Assistant with Linear + Scrapeless + Claude",
  "tags": [],
  "nodes": [
    {
      "id": "9137108b-6a96-4264-bb3f-4f0dc5d5c7a5",
      "name": "Activador de Linear",
      "type": "n8n-nodes-base.linearTrigger",
      "position": [
        -580,
        380
      ],
      "webhookId": "22e62b88-a910-4075-8527-106d75769acd",
      "parameters": {
        "teamId": "3a89590a-2521-4c4a-b3b2-7e7ad5962666",
        "resources": [
          "issue",
          "comment",
          "reaction"
        ]
      },
      "credentials": {
        "linearApi": {
          "id": "glWOH78HS1At4s5K",
          "name": "Linear account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d49110c2-f5f9-4939-b2a3-4ee7b9c1aa77",
      "name": "Interruptor",
      "type": "n8n-nodes-base.switch",
      "position": [
        -360,
        260
      ],
      "parameters": {
        "mode": "expression",
        "output": "={{\n  $json.type === 'Issue' && $json.data.title.toLowerCase().includes('/search') ? 0 :\n  $json.type === 'Issue' && $json.data.title.toLowerCase().includes('/trends') ? 1 :\n  $json.type === 'Issue' && $json.data.title.toLowerCase().includes('/unlock') ? 2 :\n  $json.type === 'Issue' && $json.data.title.toLowerCase().includes('/scrape') ? 3 :\n  $json.type === 'Issue' && $json.data.title.toLowerCase().includes('/crawl') ? 4 :\n  -1\n}}",
        "numberOutputs": 5
      },
      "typeVersion": 3.2
    },
    {
      "id": "627d13f1-1617-4a20-aa1f-2ae8cba643d6",
      "name": "Google Search",
      "type": "n8n-nodes-scrapeless.scrapeless",
      "position": [
        260,
        60
      ],
      "parameters": {
        "q": "={{ $json.data.title }}"
      },
      "credentials": {
        "scrapelessApi": {
          "id": "B73pdQXNjpqNbIhs",
          "name": "Scrapeless account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "16d29067-9aae-4159-8d31-37465885350d",
      "name": "Google Trends",
      "type": "n8n-nodes-scrapeless.scrapeless",
      "position": [
        260,
        220
      ],
      "parameters": {
        "q": "={{ $json.data.title }}",
        "operation": "googleTrends"
      },
      "credentials": {
        "scrapelessApi": {
          "id": "B73pdQXNjpqNbIhs",
          "name": "Scrapeless account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "cadc6292-efcf-4dcf-bc1f-03ea1a6c1a75",
      "name": "Web Unlocker",
      "type": "n8n-nodes-scrapeless.scrapeless",
      "position": [
        260,
        360
      ],
      "parameters": {
        "url": "={{ $json.data.title.replace(/\\/unlock/gi, '').trim() }}",
        "headless": false,
        "resource": "universalScrapingApi"
      },
      "credentials": {
        "scrapelessApi": {
          "id": "B73pdQXNjpqNbIhs",
          "name": "Scrapeless account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "979d5139-2593-4975-afa7-2ac16d8bb5da",
      "name": "Scrape",
      "type": "n8n-nodes-scrapeless.scrapeless",
      "position": [
        260,
        540
      ],
      "parameters": {
        "url": "={{ $json.data.title }}",
        "resource": "crawler"
      },
      "credentials": {
        "scrapelessApi": {
          "id": "B73pdQXNjpqNbIhs",
          "name": "Scrapeless account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "58658eec-316e-4fb2-8715-6f7efc49d381",
      "name": "Crawl",
      "type": "n8n-nodes-scrapeless.scrapeless",
      "position": [
        260,
        700
      ],
      "parameters": {
        "url": "={{ $json.data.title }}",
        "resource": "crawler",
        "operation": "crawl",
        "limitCrawlPages": 1
      },
      "credentials": {
        "scrapelessApi": {
          "id": "B73pdQXNjpqNbIhs",
          "name": "Scrapeless account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "410d82d4-2bdf-4242-b6a3-32e508608be4",
      "name": "Código2",
      "type": "n8n-nodes-base.code",
      "position": [
        0,
        0
      ],
      "parameters": {
        "jsCode": "const originalTitle = $json.data.title;\nlet cleanTitle = originalTitle;\n\nif (originalTitle.toLowerCase().includes('/search')) {\n  cleanTitle = originalTitle.replace(/\\/search/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/trends')) {\n  cleanTitle = originalTitle.replace(/\\/trends/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/unlock')) {\n  cleanTitle = originalTitle.replace(/\\/unlock/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/scrape')) {\n  cleanTitle = originalTitle.replace(/\\/scrape/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/crawl')) {\n  cleanTitle = originalTitle.replace(/\\/crawl/gi, '').trim();\n}\n\nreturn {\n\n  data: {\n    ...($json.data),\n    title: cleanTitle\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "8f633954-262b-482d-aa29-3a97a0e8cbb6",
      "name": "Código",
      "type": "n8n-nodes-base.code",
      "position": [
        580,
        340
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "return {\n  output: JSON.stringify($json, null, 2)\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "d8e55c8c-857b-403e-b2ee-afc1253d7aba",
      "name": "Código3",
      "type": "n8n-nodes-base.code",
      "position": [
        0,
        180
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "const originalTitle = $json.data.title;\nlet cleanTitle = originalTitle;\n\nif (originalTitle.toLowerCase().includes('/search')) {\n  cleanTitle = originalTitle.replace(/\\/search/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/trends')) {\n  cleanTitle = originalTitle.replace(/\\/trends/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/unlock')) {\n  cleanTitle = originalTitle.replace(/\\/unlock/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/scrape')) {\n  cleanTitle = originalTitle.replace(/\\/scrape/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/crawl')) {\n  cleanTitle = originalTitle.replace(/\\/crawl/gi, '').trim();\n}\n\nreturn {\n\n  data: {\n    ...($json.data),\n    title: cleanTitle\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "9e9a315e-6915-41a2-b77c-d46c773b9891",
      "name": "Código4",
      "type": "n8n-nodes-base.code",
      "position": [
        20,
        360
      ],
      "parameters": {
        "jsCode": "const originalTitle = $json.data.title;\nlet cleanTitle = originalTitle;\n\nif (originalTitle.toLowerCase().includes('/search')) {\n  cleanTitle = originalTitle.replace(/\\/search/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/trends')) {\n  cleanTitle = originalTitle.replace(/\\/trends/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/unlock')) {\n  cleanTitle = originalTitle.replace(/\\/unlock/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/scrape')) {\n  cleanTitle = originalTitle.replace(/\\/scrape/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/crawl')) {\n  cleanTitle = originalTitle.replace(/\\/crawl/gi, '').trim();\n}\n\nreturn {\n\n  data: {\n    ...($json.data),\n    title: cleanTitle\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "c076a7a6-c901-481d-8037-f1e06be1f8e4",
      "name": "Código5",
      "type": "n8n-nodes-base.code",
      "position": [
        20,
        520
      ],
      "parameters": {
        "jsCode": "const originalTitle = $json.data.title;\nlet cleanTitle = originalTitle;\n\nif (originalTitle.toLowerCase().includes('/search')) {\n  cleanTitle = originalTitle.replace(/\\/search/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/trends')) {\n  cleanTitle = originalTitle.replace(/\\/trends/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/unlock')) {\n  cleanTitle = originalTitle.replace(/\\/unlock/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/scrape')) {\n  cleanTitle = originalTitle.replace(/\\/scrape/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/crawl')) {\n  cleanTitle = originalTitle.replace(/\\/crawl/gi, '').trim();\n}\n\nreturn {\n\n  data: {\n    ...($json.data),\n    title: cleanTitle\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "b9e6ac08-8f3c-40cc-b183-a4303d9801cd",
      "name": "Código6",
      "type": "n8n-nodes-base.code",
      "position": [
        20,
        720
      ],
      "parameters": {
        "jsCode": "const originalTitle = $json.data.title;\nlet cleanTitle = originalTitle;\n\nif (originalTitle.toLowerCase().includes('/search')) {\n  cleanTitle = originalTitle.replace(/\\/search/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/trends')) {\n  cleanTitle = originalTitle.replace(/\\/trends/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/unlock')) {\n  cleanTitle = originalTitle.replace(/\\/unlock/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/scrape')) {\n  cleanTitle = originalTitle.replace(/\\/scrape/gi, '').trim();\n} else if (originalTitle.toLowerCase().includes('/crawl')) {\n  cleanTitle = originalTitle.replace(/\\/crawl/gi, '').trim();\n}\n\nreturn {\n\n  data: {\n    ...($json.data),\n    title: cleanTitle\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "96631700-d64b-41f7-ba06-263be9acd76e",
      "name": "Agente IA1",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1040,
        420
      ],
      "parameters": {
        "text": "={{ $json.output }}",
        "options": {
          "systemMessage": "You are a data analyst. Summarize search/scrape results concisely. Be factual and brief. Format for Linear comments.\n\nAnalyze the provided data and create a structured summary that includes:\n- Key findings and insights\n- Data source and reliability assessment  \n- Actionable recommendations\n- Relevant metrics and trends\n- Next steps for further research\n\nFormat your response with clear headers and bullet points for easy reading in Linear."
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "300d7264-86df-485a-9183-ed42df732ccc",
      "name": "Modelo de chat Anthropic1",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        980,
        720
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-sonnet-4-20250514",
          "cachedResultName": "Claude 4 Sonnet"
        },
        "options": {
          "temperature": 0.3,
          "maxTokensToSample": 4000
        }
      },
      "credentials": {
        "anthropicApi": {
          "id": "21C7G7zPQRFyxp1T",
          "name": "Anthropic account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "20f412e2-4081-40a7-a458-af7b2908cc44",
      "name": "Código7",
      "type": "n8n-nodes-base.code",
      "position": [
        1540,
        600
      ],
      "parameters": {
        "jsCode": "return {\n  output: $json.output\n    .replace(/\\\\n/g, '\\n')\n    .replace(/\\\\\"/g, '\"')\n    .replace(/\\\\\\\\/g, '\\\\')\n    .trim()\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "4379cc64-3b20-4ad5-a62b-470da3338cf8",
      "name": "Agregar comentario a incidencia1",
      "type": "n8n-nodes-base.linear",
      "position": [
        1760,
        600
      ],
      "parameters": {
        "comment": "={{ $json.output }}",
        "issueId": "={{ $('Linear Trigger').item.json.data.id }}",
        "resource": "comment",
        "additionalFields": {}
      },
      "credentials": {
        "linearApi": {
          "id": "glWOH78HS1At4s5K",
          "name": "Linear account"
        }
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "e01eaa88-0eff-40de-b80b-51ca1bcd3acb",
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "AI Agent1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code2": {
      "main": [
        [
          {
            "node": "627d13f1-1617-4a20-aa1f-2ae8cba643d6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code3": {
      "main": [
        [
          {
            "node": "16d29067-9aae-4159-8d31-37465885350d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code4": {
      "main": [
        [
          {
            "node": "cadc6292-efcf-4dcf-bc1f-03ea1a6c1a75",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code5": {
      "main": [
        [
          {
            "node": "979d5139-2593-4975-afa7-2ac16d8bb5da",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code6": {
      "main": [
        [
          {
            "node": "58658eec-316e-4fb2-8715-6f7efc49d381",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code7": {
      "main": [
        [
          {
            "node": "4379cc64-3b20-4ad5-a62b-470da3338cf8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "58658eec-316e-4fb2-8715-6f7efc49d381": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "979d5139-2593-4975-afa7-2ac16d8bb5da": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Code2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Code3",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Code4",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Code5",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Code6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent1": {
      "main": [
        [
          {
            "node": "Code7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cadc6292-efcf-4dcf-bc1f-03ea1a6c1a75": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "627d13f1-1617-4a20-aa1f-2ae8cba643d6": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "16d29067-9aae-4159-8d31-37465885350d": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9137108b-6a96-4264-bb3f-4f0dc5d5c7a5": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent1",
            "type": "ai_languageModel",
            "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, Chatbot 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 nodos17
Categoría2
Tipos de nodos7
Descripción de la dificultad

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

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34