{
  "id": "ay8QocZjaU95DnrF",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Automate Tool Assessment Using AI, Apify & Telegram Integration",
  "tags": [
    {
      "id": "YIDY0oSuimvxgwa5",
      "name": "Tool Evaluation",
      "createdAt": "2025-08-20T15:42:28.113Z",
      "updatedAt": "2025-08-20T15:42:28.113Z"
    },
    {
      "id": "t4H6jneh81YugIfQ",
      "name": "Web Scraping",
      "createdAt": "2025-08-20T15:43:22.326Z",
      "updatedAt": "2025-08-20T15:43:22.326Z"
    },
    {
      "id": "peuneMRaGvLwHBhL",
      "name": "AI Analysis",
      "createdAt": "2025-08-20T15:43:06.044Z",
      "updatedAt": "2025-08-20T15:44:20.819Z"
    }
  ],
  "nodes": [
    {
      "id": "fd5b2e52-120f-4788-aa0e-c4c081f16a23",
      "name": "Telegram Trigger",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -1696,
        304
      ],
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "b9119902-ef41-4463-b602-b5885ba125a9",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        16,
        512
      ],
      "parameters": {
        "model": "openai/gpt-oss-120b",
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "90716ee6-5ba7-4011-97e6-53198fdfa043",
      "name": "Send a text message1",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1040,
        304
      ],
      "parameters": {
        "text": "=Website_url: {{ $json.website_url.replace(/[*[]()~>#+\\-=|{}.!]/g, '\\\\$&') }}\n\n\ud83d\udccc Concise Summary:\n{{ $json.website_concise_summary.replace(/[_*\\[\\]()~>#+-=|{}.!]/g, '\\$&') }}\n\ud83d\udcbc Business Impact:\n{{ $json.business_impact_and_opportunities.replace(/[[]()~>#+\\-=|{}.!]/g, '\\\\$&') }}\n\u26a1 Actionable Insights:\n{{ $json.Actionable_insights.replace(/[_*\\[\\]()~>#+-=|{}.!]/g, '\\$&') }}\n\n\u2705 Decision Verdict:\nVerdict: {{ $json.Actionable_insights.replace(/[_*\\[\\]()~>#+-=|{}.!]/g, '\\$&') }}\nrationate: {{ $json.rationale.replace(/[_*\\[\\]()~>#+-=|{}.!]/g, '\\$&') }}\neffort_hours: {{ $json.effort_hours }}\ntime_to_value_days: {{ $json.time_to_value_days }}\nurgency: {{ $json.urgency.replace(/[_*[]()~>#+\\-=|{}.!]/g, '\\\\$&') }} \nConfidence: {{ $json.confidence }} \nalternative_approach: {{ $json.alternative_approach.replace(/[_*\\[\\]()~>#+-=|{}.!]/g, '\\$&') }}\n",
        "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
        "additionalFields": {
          "parse_mode": "Markdown",
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "aad96069-c146-42a5-abd4-1dfaa7bce3a0",
      "name": "Extract URL from Message",
      "type": "n8n-nodes-base.code",
      "position": [
        -1440,
        304
      ],
      "parameters": {
        "jsCode": "const items = $input.all();\nconst urlRegex = /(https?:\\/\\/[^\\s]+)/g;\n\nconst urls = items\n  .map((item) => {\n    const text = item?.json?.message?.text;\n    const urlMatch = text.match(urlRegex);\n    return urlMatch ? { url: urlMatch[0] } : null;\n  })\n  .filter((item) => item !== null);\n\nreturn urls;\n"
      },
      "typeVersion": 2
    },
    {
      "id": "bf94bd5c-dca7-48b2-a25f-93e4cfd95d32",
      "name": "URL Present?",
      "type": "n8n-nodes-base.if",
      "position": [
        -1296,
        304
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "bc130a04-e980-48e3-8b56-1054d5eae30a",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.url }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "96377652-af18-42fe-a692-784deedf84a3",
      "name": "Notify User: No Link Found",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -1056,
        416
      ],
      "parameters": {
        "text": "Hmm, I couldn\u2019t find a valid link in your message.Can you try sending the URL again?",
        "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "de57d539-97c3-4861-8752-a49738544824",
      "name": "Set Input URL Field",
      "type": "n8n-nodes-base.set",
      "position": [
        -832,
        304
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "564b26f4-7c46-44a4-b7ae-c628586ef0ce",
              "name": "URL",
              "type": "string",
              "value": "={{ $json.url }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "091481fb-3f6e-441f-a8da-696605c31477",
      "name": "Launch Web Content Extraction",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -640,
        304
      ],
      "parameters": {
        "url": "https://api.apify.com/v2/acts/6sigmag~deep-website-content-crawler/run-sync-get-dataset-items",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"startUrls\": [\n    \"{{ $json.URL }}\"\n  ]\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "apifyApi"
      },
      "credentials": {
        "apifyApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ee17684f-0a7d-468b-876d-a509dd174c95",
      "name": "Set Raw Web Content",
      "type": "n8n-nodes-base.set",
      "position": [
        -464,
        304
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "10609423-d2ba-4e83-9f98-4c9982ee4a46",
              "name": "Website_content",
              "type": "string",
              "value": "={{ $json.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "2ebc19f5-a69e-4192-b350-c6303b8bacbc",
      "name": "Clean Website Content",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        -272,
        288
      ],
      "parameters": {
        "text": "={{ $json.Website_content }}",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=You are an information extraction engine.\nYour only task is to produce a detailed, factual, and structured representation of the provided website content.\n\nGuidelines:\n\nRemove all irrelevant text such as navigation menus, cookie banners, buttons, advertisements, promotional slogans, and UI labels.\n\nPreserve all meaningful information including main content, subheadings, product/service details, features, specifications, pricing, FAQs, reviews, benefits, risks, limitations, and any unique insights.\n\nExpand abbreviations or vague terms into their full meaning if possible (e.g., \"AI\" \u2192 \"Artificial Intelligence\").\n\nPresent the output in plain text with clear sections and indentation. Use this format:\n\nTitle/Heading\n\nSection Content\n\nKey Points (bullet list where applicable)\n\nDo not add opinions, summaries, or assumptions. Only report what is actually in the text.\n\nIf something is unclear or incomplete on the website, explicitly mark it as [Unclear/Incomplete].\n\nThe final output should be detailed context only \u2014 no conclusions, no advice, no summarization."
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "e54c5e12-adc5-4a25-abc7-f3da63f92031",
      "name": "Set Clean Detailed Context",
      "type": "n8n-nodes-base.set",
      "position": [
        80,
        288
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "3d2507cf-8af7-45aa-827f-680754aa644f",
              "name": "cleaned_detailed_context",
              "type": "string",
              "value": "={{ $json.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "ba3cadbe-1ccb-4141-8979-d311d03244d7",
      "name": "Contextual Website Analyzer AI",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        240,
        288
      ],
      "parameters": {
        "text": "={{ $json.cleaned_detailed_context }}",
        "options": {
          "systemMessage": "=Retrieve the expert\u2019s profile (expertise, tools, goals) from the database.\n\nAnalyze the provided website (URL or content) deeply, mapping findings to the expert\u2019s context.\n\nProduce structured plain-text outputs with strict section headers.\n\nDeliver a Decision Verdict with rationale, effort, time-to-value, urgency, and confidence.\n\nHard Requirements\n\nNo hallucinations. Use only: (a) the provided database/context, (b) website content. If missing \u2192 \u201cNot stated.\u201d\n\nIgnore noise (UI, nav menus, cookie banners, etc.).\n\nPlain text only. No markdown tables or links.\n\nEvery section = one single paragraph. Do not break into multiple lines or lists, except Decision Verdict which is structured.\n\nConcise Summary Rule: \u2264 90 words.\n\nWorkflow\n\nStep 1 \u2014 Context Retrieval\nFetch the expert\u2019s:\n\nCore expertise: [from database/context]\n\nKey tools: [from database/context]\n\nCurrent focus: [from database/context]\n\nNear-term goals: [from database/context]\n\nLong-term goals: [from database/context]\n\nStep 2 \u2014 Website Analysis\nExtract relevant content only: offering, capabilities, integrations, target audience, pricing/constraints, security/compliance, extensibility (API/webhooks). Normalize jargon.\n\nOutput Format (Plain Text Only; exact headers)\n\n[Context Retrieved from Database]\n<One paragraph with 2\u20134 sentences about the expert\u2019s expertise, tools, and goals.>\n\n[Website Concise Summary]\n<One paragraph (\u226490 words) summarizing what the website is, its core offering, target audience, positioning.>\n\n[Key Considerations]\n<One paragraph covering tech stack, integrations, API/webhooks, fit with expert\u2019s stack, compliance, and pricing visibility.>\n\n[Business Impact & Opportunities]\n<One paragraph describing potential effects on the expert\u2019s business, product plays, marketplace leverage, and partnerships.>\n\n[Benefits & Strengths]\n<One paragraph with strengths the expert could exploit (speed, compliance, integrations, credibility, etc.).>\n\n[Risks & Weaknesses]\n<One paragraph with risks such as vendor lock-in, pricing opacity, missing APIs, overlaps, scalability, compliance gaps.>\n\n[Actionable Insights]\n<One paragraph with 5\u20138 strong recommendations fused into a single flow (use commas/semicolons, not bullets).>\n\n[Decision Verdict]\nVerdict: LEARN_NOW / DEFER_MONITOR / IGNORE_AS_NOISE\nRationale: <3\u20136 lines tying the decision to the expert\u2019s goals, with trade-offs.>\nEffort: X hours\nTime-to-Value: X days\nUrgency: High / Medium / Low\nConfidence: X%\nAlternative Approach: <one-line fallback strategy>"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "d6162477-e0ad-4d5c-b7e4-715ab6e17338",
      "name": "Fetch Profile from Google Sheets",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        224,
        544
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RCMapKv9IPdwNz4Rp-Ma2iKzdWDEbxggYrq9K2_pU-w/edit#gid=0",
          "cachedResultName": "Company Details"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1RCMapKv9IPdwNz4Rp-Ma2iKzdWDEbxggYrq9K2_pU-w",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RCMapKv9IPdwNz4Rp-Ma2iKzdWDEbxggYrq9K2_pU-w/edit?usp=drivesdk",
          "cachedResultName": "Tool Evaluation & Analysis Records"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "9554d3a9-8bab-44a4-b436-b1a1f61581e4",
      "name": "Structure AI Analysis Output",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        384,
        560
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"context_retrieved_from_google_sheet\": {\n      \"type\": \"array\",\n      \"items\": { \"type\": \"string\" }\n    },\n    \"website_concise_summary\": {\n      \"type\": \"array\",\n      \"items\": { \"type\": \"string\" }\n    },\n    \"key_considerations\": {\n      \"type\": \"array\",\n      \"items\": { \"type\": \"string\" }\n    },\n    \"business_impact_and_opportunities\": {\n      \"type\": \"array\",\n      \"items\": { \"type\": \"string\" }\n    },\n    \"benefits_and_strengths\": {\n      \"type\": \"array\",\n      \"items\": { \"type\": \"string\" }\n    },\n    \"risks_and_weaknesses\": {\n      \"type\": \"array\",\n      \"items\": { \"type\": \"string\" }\n    },\n    \"actionable_insights\": {\n      \"type\": \"array\",\n      \"items\": { \"type\": \"string\" }\n    },\n    \"decision_verdict\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"verdict\": { \"type\": \"string\" },\n        \"rationale\": { \"type\": \"string\" },\n        \"effort_hours\": { \"type\": \"number\" },\n        \"time_to_value_days\": { \"type\": \"number\" },\n        \"urgency\": { \"type\": \"string\" },\n        \"confidence\": { \"type\": \"number\" },\n        \"alternative_approach\": { \"type\": \"string\" }\n      },\n      \"required\": [\n        \"verdict\",\n        \"rationale\",\n        \"effort_hours\",\n        \"time_to_value_days\",\n        \"urgency\",\n        \"confidence\",\n        \"alternative_approach\"\n      ]\n    }\n  },\n  \"required\": [\n    \"context_retrieved_from_google_sheet\",\n    \"website_concise_summary\",\n    \"key_considerations\",\n    \"business_impact_and_opportunities\",\n    \"benefits_and_strengths\",\n    \"risks_and_weaknesses\",\n    \"actionable_insights\",\n    \"decision_verdict\"\n  ]\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "30303b5c-b4ac-488d-bd4c-81bc751235c1",
      "name": "Record Website Analysis Results",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        752,
        304
      ],
      "parameters": {
        "columns": {
          "value": {
            "Verdict": "={{ $json.output.decision_verdict.verdict }}",
            "urgency": "={{ $json.output.decision_verdict.urgency }}",
            "rationale": "={{ $json.output.decision_verdict.rationale }}",
            "confidence": "={{ $json.output.decision_verdict.confidence }}",
            "website_url": "={{ $('Set Input URL Field').item.json.URL }}",
            "effort_hours": "={{ $json.output.decision_verdict.effort_hours }}",
            "Key considerations": "={{ $json.output.key_considerations[0] }}",
            "time_to_value_days": "={{ $json.output.decision_verdict.time_to_value_days }}",
            "Actionable_insights": "={{ $json.output.actionable_insights[0] }}",
            "alternative_approach": "={{ $json.output.decision_verdict.alternative_approach }}",
            "risks_and_weaknesses": "={{ $json.output.risks_and_weaknesses[0] }}",
            "benefits_and_strengths": "={{ $json.output.benefits_and_strengths[0] }}",
            "website_concise_summary": "={{ $json.output.website_concise_summary[0] }}",
            "business_impact_and_opportunities": "={{ $json.output.business_impact_and_opportunities[0] }}"
          },
          "schema": [
            {
              "id": "website_concise_summary",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "website_concise_summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Key considerations",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Key considerations",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "business_impact_and_opportunities",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "business_impact_and_opportunities",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "benefits_and_strengths",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "benefits_and_strengths",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "risks_and_weaknesses",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "risks_and_weaknesses",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Actionable_insights",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Actionable_insights",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Verdict",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Verdict",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "rationale",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "rationale",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "effort_hours",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "effort_hours",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "time_to_value_days",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "time_to_value_days",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "urgency",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "urgency",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "confidence",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "confidence",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "alternative_approach",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "alternative_approach",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "website_url",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "website_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "website_concise_summary"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1992152627,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RCMapKv9IPdwNz4Rp-Ma2iKzdWDEbxggYrq9K2_pU-w/edit#gid=1992152627",
          "cachedResultName": "Analysis Results"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1RCMapKv9IPdwNz4Rp-Ma2iKzdWDEbxggYrq9K2_pU-w",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RCMapKv9IPdwNz4Rp-Ma2iKzdWDEbxggYrq9K2_pU-w/edit?usp=drivesdk",
          "cachedResultName": "Tool Evaluation & Analysis Records"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "b9eff0a7-042e-4919-a507-0dd88d43bb2a",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1728,
        16
      ],
      "parameters": {
        "width": 416,
        "height": 688,
        "content": "**Title**: Telegram Input & URL Extraction\n**Purpose**: Detect incoming Telegram messages and extract a website URL if present.\n\n**Nodes Covered**:\nReceive Telegram Submission\n\nExtract URL from Message\n**What Happens:**\nWorkflow begins when a Telegram message is received. The message is checked for a valid URL and, if found, the URL is extracted for processing. If no URL is present, user is notified to resend."
      },
      "typeVersion": 1
    },
    {
      "id": "a8c55a3c-a626-490a-b170-f688af302487",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -864,
        16
      ],
      "parameters": {
        "color": 3,
        "width": 544,
        "height": 688,
        "content": "**Title:** Website Content Extraction\nPurpose: Prepare the extracted URL and pull detailed content from the target website.\n\n**Nodes Covered:**\nSet Input URL Field\nLaunch Web Content Extraction\nSet Raw Web Content\n\n**What Happens:**\nThe valid URL is stored and sent to an external crawler (Apify), which returns raw website content for AI processing.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f5c12bd5-a7a4-48b5-a634-cc03713de1bf",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -304,
        16
      ],
      "parameters": {
        "color": 4,
        "width": 848,
        "height": 688,
        "content": "**Title:** Content Cleaning & Contextual Analysis\n**Purpose:** Use AI to remove noise from website data, then analyze and contextualize it according to business needs.\n\n**Nodes Covered:**\nClean Website Content (LLM)\nSet Clean Detailed Context\nFetch Profile from Google Sheets\nContextual Website Analyzer AI\nStructure AI Analysis Output\n**What Happens:**\n\nAI models clean up the website text, relate it to the user\u2019s background and business goals (pulled from Google Sheets), and generate structured insights and recommendations."
      },
      "typeVersion": 1
    },
    {
      "id": "6ddb9df9-36a7-4fc0-b70c-74f509da0035",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        32
      ],
      "parameters": {
        "color": 6,
        "width": 672,
        "height": 688,
        "content": "**Title:** Results Recording & User Feedback\n**Purpose:** Save analysis to Google Sheets and send summary verdict and insights back to the Telegram user.\n\n**Nodes Covered:**\nRecord Website Analysis Results\nReply to User with Decision & Summary\n\n**What Happens:**\nResults are logged for records, and the user instantly receives a concise decision and business analysis on Telegram."
      },
      "typeVersion": 1
    },
    {
      "id": "af29b84d-518c-4d0a-9068-4cccc0e16c58",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1296,
        16
      ],
      "parameters": {
        "color": 5,
        "width": 416,
        "height": 688,
        "content": "**Title:** Input Validation & User Notification\n**Purpose:** Ensure a valid URL exists before continuing workflow, and provide feedback when needed.\n\n**Nodes Covered:**\nURL Present?\nNotify User: No Link Found\n\n**What Happens:**\nIf the extracted URL is missing or invalid, the user receives a Telegram reply to resend a correct link. If the link exists, the workflow continues."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "3a3bf771-bb72-46ce-ac78-fba3abe6a295",
  "connections": {
    "URL Present?": {
      "main": [
        [
          {
            "node": "Set Input URL Field",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Notify User: No Link Found",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram Trigger": {
      "main": [
        [
          {
            "node": "Extract URL from Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Input URL Field": {
      "main": [
        [
          {
            "node": "Launch Web Content Extraction",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Raw Web Content": {
      "main": [
        [
          {
            "node": "Clean Website Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean Website Content": {
      "main": [
        [
          {
            "node": "Set Clean Detailed Context",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Clean Website Content",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Contextual Website Analyzer AI",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Extract URL from Message": {
      "main": [
        [
          {
            "node": "URL Present?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Clean Detailed Context": {
      "main": [
        [
          {
            "node": "Contextual Website Analyzer AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structure AI Analysis Output": {
      "ai_outputParser": [
        [
          {
            "node": "Contextual Website Analyzer AI",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Launch Web Content Extraction": {
      "main": [
        [
          {
            "node": "Set Raw Web Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Contextual Website Analyzer AI": {
      "main": [
        [
          {
            "node": "Record Website Analysis Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Record Website Analysis Results": {
      "main": [
        [
          {
            "node": "Send a text message1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Profile from Google Sheets": {
      "ai_tool": [
        [
          {
            "node": "Contextual Website Analyzer AI",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}