AutomationFlowsSlack & Telegram › Monitor Idealista Rental Prices and Send Slack Alerts with Google Sheets Logging

Monitor Idealista Rental Prices and Send Slack Alerts with Google Sheets Logging

BySIÁN Agency @rapha on n8n.io

Apartment hunters, property managers, and relocation consultants who want instant Slack notifications when new rental listings appear on Idealista matching their exact criteria.

Cron / scheduled trigger★★★★☆ complexity9 nodesN8N Nodes Idealista ScraperSlackGoogle Sheets
Slack & Telegram Trigger: Cron / scheduled Nodes: 9 Complexity: ★★★★☆ Added:

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

This workflow follows the Google Sheets → Slack 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
{
  "nodes": [
    {
      "id": "e005dd32-8f95-4a64-945d-f620a7a3f057",
      "name": "Fetch Idealista Rentals",
      "type": "n8n-nodes-idealista-scraper.idealistaScraper",
      "position": [
        3472,
        816
      ],
      "parameters": {
        "sizeFilters": {},
        "priceFilters": {
          "maxPrice": 1500
        },
        "rentalFilters": {},
        "featureFilters": {
          "elevator": true
        },
        "advancedFilters": {},
        "conditionFilters": {},
        "floorTimeFilters": {
          "sinceDate": "W"
        },
        "propertyTypeFilters": {},
        "bedroomBathroomFilters": {
          "bedrooms1": true,
          "bedrooms2": true
        }
      },
      "typeVersion": 1
    },
    {
      "id": "390c332b-d77d-4daa-85ba-829a77b1cc37",
      "name": "Filter New Listings",
      "type": "n8n-nodes-base.code",
      "position": [
        3696,
        816
      ],
      "parameters": {
        "jsCode": "// Deduplication: compare scraped listings against workflow static data\n// Only genuinely NEW listings pass through to alerts\n\nconst items = $input.all();\nconst staticData = $getWorkflowStaticData('global');\n\nif (!staticData.seenIds) {\n  staticData.seenIds = {};\n}\n\nconst newListings = [];\nfor (const item of items) {\n  const id = item.json.propertyCode\n    || item.json.url\n    || `${item.json.price}_${item.json.address}`;\n\n  if (!staticData.seenIds[id]) {\n    staticData.seenIds[id] = new Date().toISOString();\n    newListings.push(item);\n  }\n}\n\n// Prune entries older than 30 days\nconst thirtyDaysAgo = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString();\nfor (const [id, dateStr] of Object.entries(staticData.seenIds)) {\n  if (dateStr < thirtyDaysAgo) {\n    delete staticData.seenIds[id];\n  }\n}\n\nreturn newListings;"
      },
      "typeVersion": 2
    },
    {
      "id": "08fef4f7-de1e-4081-a226-b616b6a317bf",
      "name": "Prepare Slack Message",
      "type": "n8n-nodes-base.set",
      "position": [
        3920,
        720
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b1b2c3d4-set1-4+123456789001",
              "name": "slackMessage",
              "type": "string",
              "value": "=:house: *New Rental on Idealista!*\n\n*Property listing*\n:moneybag:  EUR/month  |  :straight_ruler:  m\u00b2  |  :bed:  rooms\n:round_pushpin: \n\n:link: <|View on Idealista>"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "1ea13709-59d6-41ed-8721-72cbcb5ba35f",
      "name": "Post Slack Notification",
      "type": "n8n-nodes-base.slack",
      "position": [
        4144,
        720
      ],
      "parameters": {
        "text": "=",
        "otherOptions": {}
      },
      "typeVersion": 2.4
    },
    {
      "id": "e1a6cfdf-eda6-461f-b125-317cc07baa4b",
      "name": "Append Listings in Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3920,
        912
      ],
      "parameters": {
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "2c1fda89-ff2a-494b-b33d-d71d02882a5e",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2640,
        560
      ],
      "parameters": {
        "width": 480,
        "height": 832,
        "content": "## Untitled workflow\n\n### How it works\n\n1. It runs every six hours to check for new Idealista rental listings.\n2. It compares scraped results against stored history to detect only fresh listings.\n3. It formats any new listing details into a Slack-ready message.\n4. It sends the alert to Slack and saves the listing data to Google Sheets for deduplication on future runs.\n\n### Setup steps\n\n- [ ] Configure the schedule trigger interval if you want a different polling frequency.\n- [ ] Connect and authorize the Idealista scraper node with the target search criteria.\n- [ ] Ensure the workflow can access static data or state used by the deduplication code node.\n- [ ] Set up the Slack credential and choose the destination channel for alerts.\n- [ ] Connect Google Sheets credentials and select the spreadsheet/sheet used for history tracking.\n\n### Customization\n\nYou can adjust the deduplication logic, Slack message formatting, search filters, and the sheet structure to change what counts as a new listing and how alerts are presented."
      },
      "typeVersion": 1
    },
    {
      "id": "a104e796-4634-4813-b13b-eeaebad8c5c8",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3200,
        688
      ],
      "parameters": {
        "color": 7,
        "width": 640,
        "height": 304,
        "content": "## Scheduled scrape and filter\n\nThis left-to-middle cluster starts the recurring run, scrapes latest rentals, and filters out listings already seen in history."
      },
      "typeVersion": 1
    },
    {
      "id": "f6b0dbd6-88b8-454e-ab7f-b04639ae18c7",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3872,
        560
      ],
      "parameters": {
        "color": 7,
        "width": 416,
        "height": 512,
        "content": "## Notify and store results\n\nThis right-side cluster formats the alert for Slack, sends the message, and stores new listings in Google Sheets."
      },
      "typeVersion": 1
    },
    {
      "id": "a3d39de2-6ea8-48b7-b1d4-f37cfce21ff4",
      "name": "Every 6 Hours1",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        3248,
        816
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 6
            }
          ]
        }
      },
      "typeVersion": 1.2
    }
  ],
  "connections": {
    "Every 6 Hours1": {
      "main": [
        [
          {
            "node": "Fetch Idealista Rentals",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter New Listings": {
      "main": [
        [
          {
            "node": "Prepare Slack Message",
            "type": "main",
            "index": 0
          },
          {
            "node": "Append Listings in Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Slack Message": {
      "main": [
        [
          {
            "node": "Post Slack Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Idealista Rentals": {
      "main": [
        [
          {
            "node": "Filter New Listings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

Apartment hunters, property managers, and relocation consultants who want instant Slack notifications when new rental listings appear on Idealista matching their exact criteria.

Source: https://n8n.io/workflows/15024/ — 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

This workflow continuously monitors the Meta Ads Library for new creatives from a specific competitor pages, logs them into Google Sheets, and sends a concise Telegram notification with the number of

HTTP Request, Telegram, Google Sheets +1
Slack & Telegram

Enhance financial oversight with this automated n8n workflow. Triggered every 5 minutes, it fetches real-time bank transactions via an API, enriches and transforms the data, and applies smart logic to

HTTP Request, Email Send, Google Sheets +1
Slack & Telegram

This workflow automates competitive price intelligence using Bright Data's enterprise web scraping API. On a scheduled basis (default: daily at 9 AM), the system loops through configured competitor pr

HTTP Request, Google Sheets, Slack +1
Slack & Telegram

Ensure your customer SLAs never slip with this n8n automation template. The workflow runs on a schedule, fetching open tickets from Zendesk, calculating SLA time remaining, and sending proactive alert

Zendesk, Slack, Google Sheets
Slack & Telegram

&gt; n8n, Binance API, Google Sheets, Slack, Telegram, Jira & Email

HTTP Request, Google Sheets, Slack +3