AutomationFlowsSlack & Telegram › Send Daily 4k Bluray Preorder Updates From Blu-ray.com to Discord

Send Daily 4k Bluray Preorder Updates From Blu-ray.com to Discord

ByJason Krol @shorttompkins on n8n.io

This is a simple webpage scraper that specifically grabs today's newest 4K Bluray Preorders as listed on the Blu-ray.com website. This is a scheduled workflow that can run every day and will post a formatted summary message of links to a Discord channel of your choice. Just…

Event trigger★★★★☆ complexity12 nodesHTTP RequestDiscord
Slack & Telegram Trigger: Event Nodes: 12 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #6830 — we link there as the canonical source.

This workflow follows the Discord → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "qXu0tfPcXDGpUc78",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "New 4k Blurays",
  "tags": [
    {
      "id": "XrTXLWIfdhG5osoz",
      "name": "Discord Bot",
      "createdAt": "2025-07-26T13:00:23.072Z",
      "updatedAt": "2025-07-26T13:00:23.072Z"
    }
  ],
  "nodes": [
    {
      "id": "cd316a5a-80f3-426a-9445-1ef353935606",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -128,
        -176
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "a0904d67-33af-48be-9779-ca3dea0eaf31",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -128,
        16
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 23
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a5af30f0-c089-449e-a507-4875bca3fb62",
      "name": "Filter Todays Items",
      "type": "n8n-nodes-base.code",
      "position": [
        816,
        -80
      ],
      "parameters": {
        "jsCode": "function isValidDate(str) {\n  const date = new Date(str);\n  return !isNaN(date.getTime());\n}\n\nlet activeDate = \"\";\nlet preOrders = [];\nfor (const item of $input.first().json.links) {\n  if (isValidDate(item)) {\n    activeDate = item;\n  } else {  \n    // if the current activeDate is todays date, grab the item\n    if (activeDate === $('Format Todays Date').first().json.formattedDate) {\n      preOrders.push(item.substring(item.indexOf(\"]\")+1));\n    }\n  }\n}\n\nreturn [\n  {\n    json: {\n      items: preOrders\n    }\n  }\n];"
      },
      "typeVersion": 2
    },
    {
      "id": "022e701c-0396-4cc7-a2cd-d19ca8674ccc",
      "name": "Format Todays Date",
      "type": "n8n-nodes-base.code",
      "position": [
        144,
        -80
      ],
      "parameters": {
        "jsCode": "const today = new Date();\nconst formatted = today.toLocaleDateString('en-US', {\n  year: 'numeric',\n  month: 'long',\n  day: '2-digit',\n  timeZone: 'America/New_York'\n});\n\nreturn [{ json: { formattedDate: formatted } }];"
      },
      "typeVersion": 2
    },
    {
      "id": "5e895cde-5267-4a75-b591-9ef2878f3336",
      "name": "Scrape Page",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        368,
        -80
      ],
      "parameters": {
        "url": "https://www.blu-ray.com/movies/movies.php?show=newpreorders",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "37894741-4b1f-4a83-bd1b-5fb48e223f02",
      "name": "Get Hyperlinks",
      "type": "n8n-nodes-base.html",
      "position": [
        592,
        -80
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "links",
              "cssSelector": "td[width=728]>h3, td[width=728]>div div",
              "returnArray": true,
              "returnValue": "html"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "4f621c43-bdc5-45c4-b9d4-185c1ae2c7cd",
      "name": "Format Message",
      "type": "n8n-nodes-base.code",
      "position": [
        1040,
        -80
      ],
      "parameters": {
        "jsCode": "function extractTitleAndHref(htmlString) {\n  const hrefStart = htmlString.indexOf('href=\"') + 6;\n  const hrefEnd = htmlString.indexOf('\"', hrefStart);\n  const href = htmlString.substring(hrefStart, hrefEnd);\n\n  const titleStart = htmlString.indexOf('title=\"') + 7;\n  const titleEnd = htmlString.indexOf('\"', titleStart);\n  const title = htmlString.substring(titleStart, titleEnd);\n\n  return { title, href };\n}\n\nlet message = \"*New 4k Preorders Today!*\\n\"\n\nfor (const link of $input.first().json.items) {\n  let anchor = extractTitleAndHref(link);\n  \n  message += \"[\" + anchor.title + \"](\" + anchor.href + \")\\n\";\n}\n\nreturn [{json: { message: message.substring(0,2000) }}];"
      },
      "typeVersion": 2
    },
    {
      "id": "4a183f69-e7c8-4dec-9539-c06aa54403b4",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        -192
      ],
      "parameters": {
        "color": 3,
        "width": 192,
        "height": 256,
        "content": "### To Do:\nUpdate this to be set to your correct TimeZone."
      },
      "typeVersion": 1
    },
    {
      "id": "65f6e537-25a4-4172-95b1-f00ce88ba963",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1216,
        -208
      ],
      "parameters": {
        "color": 3,
        "width": 208,
        "height": 272,
        "content": "### To Do:\nConnect to your Discord channel webhook here:"
      },
      "typeVersion": 1
    },
    {
      "id": "cce9e2db-c782-42e8-be70-2b6fc284526a",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        768,
        -208
      ],
      "parameters": {
        "color": 5,
        "width": 192,
        "height": 272,
        "content": "### Optional:\nAdjust the formatting of the message that gets posted to Discord:"
      },
      "typeVersion": 1
    },
    {
      "id": "608c52a5-f4c8-494f-97d7-6e2781cede4d",
      "name": "Post to Discord",
      "type": "n8n-nodes-base.discord",
      "position": [
        1264,
        -80
      ],
      "parameters": {
        "content": "={{ $json.message }}",
        "options": {},
        "authentication": "webhook"
      },
      "credentials": {
        "discordWebhookApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "4493320f-25af-4e7e-83cd-36e59a46ed49",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -176,
        -16
      ],
      "parameters": {
        "width": 192,
        "height": 256,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n### Note:\nThis is scheduled to run every day at 11pm.\n"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8c88d280-3fc6-452e-b0d6-b6168c6f6bb2",
  "connections": {
    "Scrape Page": {
      "main": [
        [
          {
            "node": "Get Hyperlinks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Message": {
      "main": [
        [
          {
            "node": "Post to Discord",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Hyperlinks": {
      "main": [
        [
          {
            "node": "Filter Todays Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Format Todays Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Todays Date": {
      "main": [
        [
          {
            "node": "Scrape Page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Todays Items": {
      "main": [
        [
          {
            "node": "Format Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Format Todays Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This is a simple webpage scraper that specifically grabs today's newest 4K Bluray Preorders as listed on the Blu-ray.com website. This is a scheduled workflow that can run every day and will post a formatted summary message of links to a Discord channel of your choice. Just…

Source: https://n8n.io/workflows/6830/ — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

Unlock low-cost, high-control generative media workflows directly from n8n by integrating with ComfyUI. Ideal for indie creators, AI developers, or small teams seeking scalable media automation—from i

Execute Workflow Trigger, HTTP Request, Read Write File +2
Slack & Telegram

Automate cryptocurrency market monitoring by tracking top 24-hour gainers and losers from 1750+ coins, delivering professional Discord (optional Telegram, Slack etc) updates with rich embeds and real-

HTTP Request, Discord
Slack & Telegram

This n8n workflow enables a Virtual Try-On experience where users upload a dress image and the system: Combines it with a fashion model image Generates a realistic try-on image* Generates a fashion wa

Form Trigger, Telegram, Discord +3
Slack & Telegram

This workflow connects Telegram to Midjourney through GoAPI, enabling automated image generation and upscaling directly from chat.

Telegram Trigger, HTTP Request, Telegram +1
Slack & Telegram

Uses the rentcast.io api to get approximate value of real estate. Updates the asset in YNAB. Get Rentcast.io api key Get YNAB API Key Get YNAB and

HTTP Request, Crypto, Execute Workflow Trigger +1