발행일: 2026-10-06(화) 11:44
← 목차로 돌아가기|하루 30분 n8n 시리즈 ② 실무 자동화 레시피 100
RECIPE 083

Google Drive 파일 변경 감지 → 팀 알림

  • ▸Google Drive 특정 폴더의 파일 추가/수정 자동 감지
  • ▸변경 사항을 Slack 채널에 즉시 알림
  • ▸파일 변경 이력을 Sheets에 자동 기록

✅사전 준비

  • □Google Drive OAuth2 자격증명 설정
  • □모니터링할 폴더 ID 확인 (Drive URL에서 추출)
  • □Slack 채널 웹훅 URL 준비
  • □Google Sheets 변경 이력 시트 생성

Google Drive 파일 목록 폴링

// Cron: */10 * * * * (10분마다)

Node: HTTP Request
Method: GET
URL: https://www.googleapis.com/drive/v3/files
Query Parameters:
  q: '{{ $env.DRIVE_FOLDER_ID }}' in parents and modifiedTime > '{{ $now.minus({minutes: 10}).toISO() }}'
  fields: files(id,name,mimeType,modifiedTime,lastModifyingUser,webViewLink)
  orderBy: modifiedTime desc
Authentication: OAuth2 (Google)

변경 유형 분류 (Code 노드)

const files = $json.files || [];

return files.map(file => {
  const isNew = new Date(file.modifiedTime) > new Date($now.minus({minutes: 10}).toISO());
  return {
    json: {
      ...file,
      changeType: isNew ? '신규 추가' : '수정',
      modifier: file.lastModifyingUser?.displayName || '알 수 없음'
    }
  };
});

Slack 알림 메시지

:file_folder: *Google Drive 변경 감지*

유형: {{ $json.changeType }}
파일명: {{ $json.name }}
수정자: {{ $json.modifier }}
시각: {{ $json.modifiedTime }}
링크: {{ $json.webViewLink }}
💡 TIPGoogle Drive API의 Changes API(watch)를 사용하면 폴링 없이 실시간 변경 알림을 받을 수 있습니다. 단, HTTPS 웹훅 엔드포인트가 필요하며 설정이 다소 복잡합니다.
⚡

워크플로우 JSON

아래 JSON을 복사해 n8n에 바로 임포트하세요

📥 n8n 임포트 방법
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
{
  "recipeId": "recipe083",
  "title": "네이버 블로그 RSS → 콘텐츠 자동 분배",
  "chapter": 8,
  "category": "국내 서비스 특화 레시피",
  "difficulty": "⭐⭐",
  "estimatedTime": "25분",
  "usedApps": [
    "네이버 블로그 RSS",
    "Slack",
    "Twitter"
  ],
  "description": "네이버 블로그에 새 글이 올라오면 RSS Feed Trigger가 자동 감지해 글 제목·요약·URL을 카카오스토리·SNS·내부 Slack에 동시 자동 공유합니다. 별도 API 없이 RSS만으로 연동할 수 있어 가장 간편한 국내 서비스 연동입니다.",
  "nodes": [
    {
      "id": "node1",
      "type": "n8n-nodes-base.rssFeedReadTrigger",
      "name": "네이버 블로그 새 글 감지",
      "parameters": {
        "url": "={{$env.NAVER_BLOG_RSS_URL}}",
        "pollTimes": {
          "item": [
            {
              "mode": "everyHour"
            }
          ]
        }
      }
    },
    {
      "id": "node2",
      "type": "n8n-nodes-base.twitter",
      "name": "Twitter 자동 공유",
      "parameters": {
        "operation": "create",
        "text": "📝 새 블로그 글이 올라왔어요!\n\n{{$json['title']}}\n\n▶️ {{$json['link']}}\n\n#네이버블로그 #{{$env.BRAND_HASHTAG}}"
      }
    },
    {
      "id": "node3",
      "type": "n8n-nodes-base.slack",
      "name": "팀 Slack 공유",
      "parameters": {
        "channel": "={{$env.CONTENT_SLACK_CHANNEL}}",
        "text": "📝 새 블로그 포스팅 발행!\n\n*{{$json['title']}}*\n{{$json['contentSnippet'].slice(0, 100)}}...\n\n🔗 {{$json['link']}}"
      }
    }
  ],
  "envVariables": {
    "NAVER_BLOG_RSS_URL": "네이버 블로그 RSS URL (블로그 주소 + /rss)",
    "BRAND_HASHTAG": "브랜드 해시태그",
    "CONTENT_SLACK_CHANNEL": "콘텐츠 팀 Slack 채널 ID"
  },
  "tips": [
    "네이버 블로그 RSS 주소는 '내 블로그 주소/rss'입니다. 예: blog.naver.com/myblog/rss",
    "카카오스토리 API는 별도 등록이 필요하지만, Twitter와 Slack은 기존 노드를 그대로 활용할 수 있어요.",
    "레시피 012(블로그 → SNS 자동 공유)와 동일한 구조입니다. 워드프레스 블로그 대신 네이버 블로그 RSS를 연결하는 차이만 있어요."
  ],
  "qrUrl": "www.koreaaitimes.com/books/n8n-vol2/recipe083"
}
← 이전 레시피☰ 목차다음 레시피 →