8
n8n 한국어amn8n.com

독일 아파트 찾기 및 자동 신청 (메모 기능 포함)

고급

이것은Personal Productivity, Multimodal AI분야의자동화 워크플로우로, 22개의 노드를 포함합니다.주로 Set, Cron, Function, EmailSend, GoogleDrive 등의 노드를 사용하며. Immobilienscout24 및 Google 서비스 통합을 사용한 독일 아파트 자동 검색 및 신청

사전 요구사항
  • Google Drive API 인증 정보
  • 대상 API의 인증 정보가 필요할 수 있음
  • Google Sheets API 인증 정보
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "name": "Germany Apartment Finder & Auto-Apply (with Sticky Notes)",
  "tags": [
    "apartments",
    "automation",
    "germany",
    "immobilienscout24"
  ],
  "nodes": [
    {
      "id": "1",
      "name": "Cron 트리거",
      "type": "n8n-nodes-base.cron",
      "position": [
        250,
        300
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "2",
      "name": "설정 구성",
      "type": "n8n-nodes-base.set",
      "position": [
        450,
        300
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "CITY",
              "value": "Berlin"
            },
            {
              "name": "MAX_RENT",
              "value": "1200"
            },
            {
              "name": "ROOMS",
              "value": "2"
            },
            {
              "name": "MY_EMAIL",
              "value": "your.email@example.com"
            },
            {
              "name": "MY_NAME",
              "value": "Max Mustermann"
            },
            {
              "name": "GDRIVE_SCHUFA_FILE_ID",
              "value": "your-schufa-file-id"
            },
            {
              "name": "GDRIVE_SALARY_FILE_ID",
              "value": "your-salary-file-id"
            },
            {
              "name": "GOOGLE_SHEET_ID",
              "value": "your-google-sheet-id"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3",
      "name": "GeoID 조회",
      "type": "n8n-nodes-base.function",
      "position": [
        650,
        300
      ],
      "parameters": {
        "functionCode": "const geoidMap = { Berlin: 12770000 };\nconst city = $json[\"CITY\"] || \"Berlin\";\nreturn [{ json: { city, geoid: geoidMap[city] || geoidMap[\"Berlin\"] } }];"
      },
      "typeVersion": 1
    },
    {
      "id": "4",
      "name": "Immobilienscout24에서 목록 가져오기",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        850,
        300
      ],
      "parameters": {
        "url": "=https://www.immobilienscout24.de/Suche/S-T/Wohnung-Miete/Berlin/umkreis- {{$json[\"geoid\"]}} ?numberofroomsfrom={{$json[\"ROOMS\"]}}&price=-{{ $json[\"MAX_RENT\"] }}&sorting=2",
        "options": {
          "headers": {
            "Accept": "application/json"
          }
        },
        "responseFormat": "json"
      },
      "typeVersion": 1
    },
    {
      "id": "5",
      "name": "결과 필터링",
      "type": "n8n-nodes-base.function",
      "position": [
        1050,
        300
      ],
      "parameters": {
        "functionCode": "return items.filter(item => item.json.type === 'apartment' &&\n  parseFloat(item.json.price) <= parseFloat($json[\"MAX_RENT\"]) &&\n  parseInt(item.json.rooms) >= parseInt($json[\"ROOMS\"]));"
      },
      "typeVersion": 1
    },
    {
      "id": "6",
      "name": "아파트 하나씩 처리",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1250,
        300
      ],
      "parameters": {
        "batchSize": 1
      },
      "typeVersion": 1
    },
    {
      "id": "7",
      "name": "Schufa 가져오기 (Google Drive)",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1450,
        100
      ],
      "parameters": {
        "fileId": "={{$json[\"GDRIVE_SCHUFA_FILE_ID\"]}}",
        "authentication": "oAuth2"
      },
      "typeVersion": 1
    },
    {
      "id": "8",
      "name": "급여 명세서 가져오기 (Google Drive)",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1450,
        500
      ],
      "parameters": {
        "fileId": "={{$json[\"GDRIVE_SALARY_FILE_ID\"]}}",
        "authentication": "oAuth2"
      },
      "typeVersion": 1
    },
    {
      "id": "9",
      "name": "커버 레터 생성",
      "type": "n8n-nodes-base.function",
      "position": [
        1650,
        300
      ],
      "parameters": {
        "functionCode": "return [{ json: { coverLetter: `Sehr geehrte Damen und Herren,\\n\\n Ich interessiere mich sehr für die Wohnung mit Exposé-ID ${$json[\"exposeId\"]}  (${ $json[\"price\"] } EUR, ${ $json[\"rooms\"] } Zimmer).\\n\\n Im Anhang finden Sie meine Schufa-Auskunft und aktuelle Gehaltsabrechnungen.\\n\\n Vielen Dank für Ihre Zeit und ich freue mich auf Ihre Rückmeldung.\\n\\n Mit freundlichen Grüßen,\\n${$json[\"MY_NAME\"]}` } }];"
      },
      "typeVersion": 1
    },
    {
      "id": "10",
      "name": "신청 이메일 전송",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1850,
        300
      ],
      "parameters": {
        "content": "={{$json[\"coverLetter\"]}}",
        "subject": "Wohnungsbewerbung – Interesse an Exposé-ID {{$json[\"exposeId\"]}}",
        "toEmail": "={{$json[\"contactEmail\"]}}",
        "fromEmail": "={{$json[\"MY_EMAIL\"]}}",
        "attachments": [
          {
            "binaryPropertyName": "schufa"
          },
          {
            "binaryPropertyName": "salary"
          }
        ]
      },
      "typeVersion": 1
    },
    {
      "id": "11",
      "name": "Google 시트에 기록",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2050,
        300
      ],
      "parameters": {
        "range": "A:E",
        "values": [
          [
            "={{$json[\"title\"]}}",
            "={{$json[\"address\"]}}",
            "={{$json[\"price\"]}}",
            "={{new Date().toISOString()}}",
            "={{$json[\"exposeId\"]}}"
          ]
        ],
        "sheetId": "={{$json[\"GOOGLE_SHEET_ID\"]}}",
        "authentication": "oAuth2",
        "valueInputMode": "USER_ENTERED"
      },
      "typeVersion": 1
    },
    {
      "id": "sticky1",
      "name": "Sticky: Cron 트리거",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        250,
        230
      ],
      "parameters": {
        "content": "Triggers the workflow every day at 8 AM Berlin time."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky2",
      "name": "Sticky: 설정 구성",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        450,
        230
      ],
      "parameters": {
        "content": "Set your configuration: city, max rent, rooms, email, file IDs etc."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky3",
      "name": "Sticky: GeoID 조회",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        650,
        230
      ],
      "parameters": {
        "content": "Convert city name to GeoID needed by ImmobilienScout24 API."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky4",
      "name": "Sticky: Immobilienscout24에서 목록 가져오기",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        850,
        230
      ],
      "parameters": {
        "content": "Fetch apartment listings from ImmobilienScout24 with filters applied."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky5",
      "name": "Sticky: 결과 필터링",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1050,
        230
      ],
      "parameters": {
        "content": "Filter listings to only include apartments matching rent and rooms criteria."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky6",
      "name": "Sticky: 아파트 하나씩 처리",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1250,
        230
      ],
      "parameters": {
        "content": "Process apartments one by one to send applications."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky7",
      "name": "Sticky: Schufa 가져오기",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1450,
        30
      ],
      "parameters": {
        "content": "Fetch Schufa report from Google Drive to attach in application."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky8",
      "name": "Sticky: 급여 명세서 가져오기",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1450,
        430
      ],
      "parameters": {
        "content": "Fetch latest salary slips from Google Drive for application."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky9",
      "name": "Sticky: 커버 레터 생성",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1650,
        230
      ],
      "parameters": {
        "content": "Generate a personalized cover letter with expose ID and applicant name."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky10",
      "name": "Sticky: 신청 이메일 전송",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1850,
        230
      ],
      "parameters": {
        "content": "Send the apartment application email with attachments."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky11",
      "name": "Sticky: Google 시트에 기록",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2050,
        230
      ],
      "parameters": {
        "content": "Log applied apartments in Google Sheets for tracking."
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {
    "timezone": "Europe/Berlin",
    "executionOrder": "regular",
    "saveDataOnSuccess": "allExecutions"
  },
  "connections": {
    "1": {
      "main": [
        [
          {
            "node": "2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2": {
      "main": [
        [
          {
            "node": "3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3": {
      "main": [
        [
          {
            "node": "Fetch Listings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5": {
      "main": [
        [
          {
            "node": "6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6": {
      "main": [
        [
          {
            "node": "7",
            "type": "main",
            "index": 0
          },
          {
            "node": "8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7": {
      "main": [
        [
          {
            "node": "9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8": {
      "main": [
        [
          {
            "node": "9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9": {
      "main": [
        [
          {
            "node": "10",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "10": {
      "main": [
        [
          {
            "node": "11",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Listings": {
      "main": [
        [
          {
            "node": "5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

고급 - 개인 생산성, 멀티모달 AI

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
고급
노드 수22
카테고리2
노드 유형9
난이도 설명

고급 사용자를 위한 16+개 노드의 복잡한 워크플로우

저자
Abbas Ali

Abbas Ali

@abbas12142

Automation Engineer passionate about building smart, scalable workflows with n8n. I specialize in API integrations, webhook handling, and streamlining business tasks using low-code tools. From AI-powered bots to real-time data pipelines, I love solving problems with automation. Let’s turn manual processes into efficient systems!

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34