N
n8n Store
Workflow Market
Automate Web Content to Telegram with AI & Watermarking

Automate Web Content to Telegram with AI & Watermarking

by octik50 views

Description

Categories

⚙️ Automation

Nodes Used

n8n-nodes-base.ifn8n-nodes-base.coden8n-nodes-base.coden8n-nodes-base.htmln8n-nodes-base.htmln8n-nodes-base.noOpn8n-nodes-base.telegramn8n-nodes-base.editImagen8n-nodes-base.stickyNoten8n-nodes-base.stickyNote
PriceGratuit
Views0
Last Updated11/28/2025
workflow.json
{
  "id": "8ss0FUORDb4l8mOg",
  "meta": {
    "instanceId": "89f5f516692714561ad096a8d63dc4f48f09734df03d046e2820124ca0bbeceb",
    "templateCredsSetupCompleted": true
  },
  "name": "Automate Web Content to Telegram with AI & Watermarking",
  "tags": [
    {
      "id": "lQFVXsZEDnn3k8MC",
      "name": "second",
      "createdAt": "2025-10-09T17:26:35.146Z",
      "updatedAt": "2025-10-09T17:26:35.146Z"
    }
  ],
  "nodes": [
    {
      "id": "311ce37b-55cb-4f17-beb3-ad13eb6335a8",
      "name": "No Operation, do nothing",
      "type": "n8n-nodes-base.noOp",
      "position": [
        -1616,
        0
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f9c7876a-a7c9-438c-88c0-0318055920ad",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -2976,
        144
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "3825d423-488c-4b2a-b12d-7c38aedca32c",
      "name": "Fetch News Page",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2720,
        144
      ],
      "parameters": {
        "url": "https://www.film.ru/topic/news",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.1 Safari/537.36"
            },
            {
              "name": "Accept-Language",
              "value": "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7"
            },
            {
              "name": "Referer",
              "value": "https://www.kinonews.ru/"
            },
            {
              "name": "Accept",
              "value": "text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "7bacc6a1-2e97-4b55-b108-f659229bec69",
      "name": "Extract Links from HTML",
      "type": "n8n-nodes-base.html",
      "position": [
        -2480,
        144
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "link",
              "cssSelector": ".redesign_topic_main strong"
            },
            {
              "key": "image",
              "cssSelector": ".wrapper_block_stack var"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "28f476b6-0e09-4be8-b7a1-4e7cc23ced16",
      "name": "Clean and Trim Links",
      "type": "n8n-nodes-base.code",
      "position": [
        -2240,
        144
      ],
      "parameters": {
        "jsCode": "const baseUrl = \"https://www.film.ru\";\nconst latest = items[0].json;\n\n// Clearing the link string\nconst cleanLink = latest.link.match(/\\[([^\\]]+)\\]/)[1];\n// Clearing the image line\nconst cleanImage = latest.image.match(/\\[([^\\]]+)\\]/)[1];\n\nreturn [{\n  json: {\n    image: baseUrl + cleanImage,\n    fullUrl: baseUrl + cleanLink\n  }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "9f0fc8c5-a1b1-4dfa-80c0-187f1fb6995e",
      "name": "Check: Should We Parse?",
      "type": "n8n-nodes-base.if",
      "position": [
        -1824,
        16
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "8abe7fb7-1c01-4203-aff7-2fa559481e0c",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.url }}",
              "rightValue": "={{ $('Clean and Trim Links').item.json.fullUrl }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "9f5b393f-499a-4813-bf4b-e857eaac7421",
      "name": "Open Article by Link",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1952,
        272
      ],
      "parameters": {
        "url": "={{ $('Clean and Trim Links').item.json.fullUrl }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "6377883a-4426-44ea-a6f8-296cfc032aa9",
      "name": "Extract Article Description",
      "type": "n8n-nodes-base.html",
      "position": [
        -1760,
        272
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "Title",
              "cssSelector": ".wrapper_articles_left h1"
            },
            {
              "key": "Text",
              "cssSelector": ".wrapper_articles_text"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "65a7d643-77bb-438c-94a2-88eeec00970b",
      "name": "Clean and Trim Text",
      "type": "n8n-nodes-base.code",
      "position": [
        -1584,
        272
      ],
      "parameters": {
        "jsCode": "// Getting all the input elements\nconst items = $input.all();\n\n// Processing each element\nreturn items.map(item => {\n  const text = item.json.Text;\n  // Deleting all occurrences of [ ... ]\n  const cleanText = text.replace(/\\[[^\\]]*\\]/g, '');\n\n  // Returning the object with the cleared text\n  return {\n    json: {\n      cleanText: cleanText,\n    },\n  };\n});\n"
      },
      "typeVersion": 2
    },
    {
      "id": "242e9813-ac72-4105-a0cf-5d60ad2f5487",
      "name": "Check Links in Google Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -2000,
        16
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1839495031,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MhbaPSqLRXsJfeR-2JlvrIyFxvprgkmzIE5bib7-7MQ/edit#gid=1839495031",
          "cachedResultName": "film.ru test"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1MhbaPSqLRXsJfeR-2JlvrIyFxvprgkmzIE5bib7-7MQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MhbaPSqLRXsJfeR-2JlvrIyFxvprgkmzIE5bib7-7MQ/edit?usp=drivesdk",
          "cachedResultName": "table with links"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "gjJwyKGgWkkJzKG7",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "97add47a-2887-4613-9115-00c3bb5fac0b",
      "name": "Update Google Sheet with Clean Links",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1296,
        224
      ],
      "parameters": {
        "columns": {
          "value": {
            "url": "={{ $('Clean and Trim Links').item.json.fullUrl }}",
            "row_number": 2
          },
          "schema": [
            {
              "id": "url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1839495031,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MhbaPSqLRXsJfeR-2JlvrIyFxvprgkmzIE5bib7-7MQ/edit#gid=1839495031",
          "cachedResultName": "film.ru test"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1MhbaPSqLRXsJfeR-2JlvrIyFxvprgkmzIE5bib7-7MQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MhbaPSqLRXsJfeR-2JlvrIyFxvprgkmzIE5bib7-7MQ/edit?usp=drivesdk",
          "cachedResultName": "table with links"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "gjJwyKGgWkkJzKG7",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "f3113cd1-cd8a-4f10-b57e-edbcb7f90a72",
      "name": "Text processing",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -928,
        128
      ],
      "parameters": {
        "text": "=",
        "options": {
          "systemMessage": "=You are a news editor for a Telegram channel. Your responsibilities include only adding beautiful formatting to the news text—without changing the actual text. If the original text exceeds 700 characters, condense it in a way that preserves the meaning and ensures the text never exceeds 700 characters.\n\nUse Telegram's built-in formatting options, such as **Bold** and *Italic*, as well as appropriate emojis.\n\nCreate a beautifully formatted version of the news titled:\n\"{{ $('Extract Article Description').item.json.Title }}\"\n\n---\n{{ $('Clean and Trim Text').item.json.cleanText }}\n\n---\nThe response should be a ready-to-publish text."
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "7243c568-5b34-4aa5-b07e-564266e41672",
      "name": "Get Article Image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -576,
        128
      ],
      "parameters": {
        "url": "={{ $('Clean and Trim Links').item.json.image }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "d2636bcf-f0cd-4cc6-9511-44cd62a42980",
      "name": "Send Post to Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -96,
        128
      ],
      "webhookId": "1ad00b83-3981-4bb2-9a45-f0543755d0e1",
      "parameters": {
        "operation": "sendPhoto",
        "binaryData": true,
        "additionalFields": {
          "caption": "={{ $json.output }}",
          "parse_mode": "Markdown"
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "2tB7f68P5v3tbN8Y",
          "name": "Workflow Bot maniac"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "45c51ccf-45ba-4066-ac56-366bd065816e",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3392,
        0
      ],
      "parameters": {
        "width": 364,
        "height": 368,
        "content": "AI Telegram Web Parser\n\nAutomatically parses a website on schedule, rewrites the article text with AI, adds a watermark to the image, and publishes it to Telegram.\n\nFlow:\nFetch → Parse → Rewrite → Add watermark → Publish\n\nUse Case:\nKeep your Telegram channel updated with AI-enhanced posts from any website.\n\nRequirements:\nSchedule trigger · Google Sheet · AI Agent · Telegram bot"
      },
      "typeVersion": 1
    },
    {
      "id": "ff6757f2-b2e9-4f60-9d1f-934d240b26d1",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3008,
        64
      ],
      "parameters": {
        "color": 7,
        "width": 904,
        "height": 252,
        "content": "**1️. Fetch & Parse Website**\nRuns on schedule, fetches a webpage via HTTP, extracts and cleans article links using HTML and JavaScript."
      },
      "typeVersion": 1
    },
    {
      "id": "48ba4d61-100c-4483-861c-1282f917e297",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2048,
        -80
      ],
      "parameters": {
        "color": 7,
        "width": 888,
        "height": 524,
        "content": "**2️. Check & Update Links**\nReads the Google Sheet to skip old links.\nIf new → extracts article text and updates the sheet."
      },
      "typeVersion": 1
    },
    {
      "id": "f06873f2-07ca-4634-9899-a0e765b0d5b4",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1072,
        48
      ],
      "parameters": {
        "color": 7,
        "width": 440,
        "height": 476,
        "content": "**3️. Process Content with AI**\nUses an AI Agent to rewrite or summarize the article text for clarity and tone."
      },
      "typeVersion": 1
    },
    {
      "id": "f26c6855-fc5e-4de9-a1c8-8e111481f6a5",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -608,
        -112
      ],
      "parameters": {
        "color": 7,
        "width": 664,
        "height": 396,
        "content": "**4️. Prepare & Publish**\nFetches the article image, adds a watermark, and sends the final post to your Telegram channel."
      },
      "typeVersion": 1
    },
    {
      "id": "84e25a88-8a49-4a40-8f00-5cab9b687306",
      "name": "Add Watermark Text to Image",
      "type": "n8n-nodes-base.editImage",
      "position": [
        -336,
        -32
      ],
      "parameters": {
        "text": "KINO ЛЕГЕНДЫ NET",
        "options": {
          "font": "/usr/share/fonts/truetype/msttcorefonts/Verdana_Bold_Italic.ttf"
        },
        "fontSize": 48,
        "fontColor": "#F3ECEC",
        "operation": "text",
        "positionY": 150,
        "dataPropertyName": "=data"
      },
      "typeVersion": 1
    },
    {
      "id": "bf4e14c6-08cd-4af3-9c11-ba238227074a",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1024,
        416
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "b1db8d38-3fa2-4bc9-8aaf-df8f7ce37e89",
  "connections": {
    "Fetch News Page": {
      "main": [
        [
          {
            "node": "Extract Links from HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Text processing": {
      "main": [
        [
          {
            "node": "Get Article Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Fetch News Page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Article Image": {
      "main": [
        [
          {
            "node": "Add Watermark Text to Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Text processing",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Clean and Trim Text": {
      "main": [
        [
          {
            "node": "Update Google Sheet with Clean Links",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean and Trim Links": {
      "main": [
        [
          {
            "node": "Check Links in Google Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Open Article by Link": {
      "main": [
        [
          {
            "node": "Extract Article Description",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check: Should We Parse?": {
      "main": [
        [
          {
            "node": "No Operation, do nothing",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Open Article by Link",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Links from HTML": {
      "main": [
        [
          {
            "node": "Clean and Trim Links",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add Watermark Text to Image": {
      "main": [
        [
          {
            "node": "Send Post to Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Links in Google Sheet": {
      "main": [
        [
          {
            "node": "Check: Should We Parse?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Article Description": {
      "main": [
        [
          {
            "node": "Clean and Trim Text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Google Sheet with Clean Links": {
      "main": [
        [
          {
            "node": "Text processing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

相关工作流