RECIPE 077
일일 업무 자동 브리핑 생성
- ▸매일 아침 캘린더, 미완료 태스크, 주요 알림을 자동 수집
- ▸AI로 하루 업무 브리핑 생성 및 요약
- ▸Slack 또는 이메일로 개인화된 모닝 브리핑 발송
✅사전 준비
- □Google Calendar OAuth2 자격증명 설정
- □Notion 또는 Todoist Task 목록 API 설정
- □OpenAI API 키
- □Slack 개인 DM 또는 이메일 설정
오늘의 일정 수집 (Google Calendar)
Node: Google Calendar (Get Events)
Calendar ID: primary
Time Min: {{ $now.startOf('day').toISO() }}
Time Max: {{ $now.endOf('day').toISO() }}
Order By: startTime
Single Events: trueAI 브리핑 생성 프롬프트
System: 당신은 개인 비서입니다. 간결하고 실용적인 일일 브리핑을 작성합니다.
User: 오늘의 정보:
[오늘 일정]
{{ $json.events.map(e => e.summary + ' ' + e.start.dateTime).join('\n') }}
[미완료 태스크]
{{ $json.tasks.slice(0, 10).map(t => '- ' + t.title).join('\n') }}
[주요 알림]
{{ $json.notifications }}
위 정보를 바탕으로 오늘의 업무 브리핑을 작성해주세요:
- 핵심 일정 요약
- 오늘 집중해야 할 TOP 3 태스크
- 주의사항 또는 준비할 것💡 TIPCron 표현식 `0 7 * * 1-5`를 사용하면 평일 오전 7시에만 브리핑이 발송되어 주말에는 자동으로 쉴 수 있습니다.
⚡
워크플로우 JSON
아래 JSON을 복사해 n8n에 바로 임포트하세요
📥 n8n 임포트 방법
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
{
"recipeId": "recipe077",
"title": "유튜브 조회수 목표 달성 → 팀 알림",
"chapter": 7,
"category": "콘텐츠 & 미디어 자동화",
"difficulty": "⭐",
"estimatedTime": "20분",
"usedApps": [
"YouTube Data API",
"Slack"
],
"description": "매일 오전 10시 YouTube API로 지정 영상의 조회수를 자동 확인해, 설정한 목표(1천·1만·10만 뷰)를 달성했을 때 팀 Slack에 🎉 축하 메시지를 자동 발송합니다.",
"nodes": [
{
"id": "node1",
"type": "n8n-nodes-base.scheduleTrigger",
"name": "매일 오전 10시 실행",
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 10 * * *"
}
]
}
}
},
{
"id": "node2",
"type": "n8n-nodes-base.httpRequest",
"name": "유튜브 조회수 조회",
"parameters": {
"method": "GET",
"url": "https://www.googleapis.com/youtube/v3/videos",
"queryParameters": {
"part": "statistics",
"id": "={{$env.YOUTUBE_VIDEO_ID}}",
"key": "={{$env.YOUTUBE_API_KEY}}"
}
}
},
{
"id": "node3",
"type": "n8n-nodes-base.switch",
"name": "목표 조회수 달성 확인",
"parameters": {
"dataPropertyName": "={{parseInt($json['items'][0]['statistics']['viewCount'])}}",
"rules": {
"rules": [
{
"operation": "largerEqual",
"value": 100000,
"output": 2
},
{
"operation": "largerEqual",
"value": 10000,
"output": 1
},
{
"operation": "largerEqual",
"value": 1000,
"output": 0
}
]
}
}
},
{
"id": "node4",
"type": "n8n-nodes-base.slack",
"name": "1천 뷰 달성 축하",
"parameters": {
"channel": "={{$env.CONTENT_SLACK_CHANNEL}}",
"text": "🎉 1,000뷰 달성!\n조회수: {{$json['items'][0]['statistics']['viewCount'].toLocaleString()}}회\n계속 달려봐요! 🚀"
}
},
{
"id": "node5",
"type": "n8n-nodes-base.slack",
"name": "1만 뷰 달성 축하",
"parameters": {
"channel": "={{$env.CONTENT_SLACK_CHANNEL}}",
"text": "🎊 10,000뷰 달성!!\n조회수: {{$json['items'][0]['statistics']['viewCount'].toLocaleString()}}회\n대단해요! 🏆"
}
},
{
"id": "node6",
"type": "n8n-nodes-base.slack",
"name": "10만 뷰 달성 축하",
"parameters": {
"channel": "={{$env.CONTENT_SLACK_CHANNEL}}",
"text": "🏅 100,000뷰 달성!!!\n조회수: {{$json['items'][0]['statistics']['viewCount'].toLocaleString()}}회\n🎉🎉🎉 전 팀원 축하해요!!"
}
}
],
"envVariables": {
"YOUTUBE_VIDEO_ID": "모니터링할 유튜브 영상 ID",
"YOUTUBE_API_KEY": "YouTube Data API 키",
"CONTENT_SLACK_CHANNEL": "콘텐츠 팀 Slack 채널 ID"
},
"tips": [
"동일한 목표 알림이 매일 반복 발송되지 않도록 Google Sheets에 '달성 알림 발송 여부'를 기록하고 IF 노드로 한 번만 발송하게 처리하세요.",
"여러 영상을 동시에 모니터링하려면 Google Sheets에 영상 ID 목록을 관리하고 Loop Over Items 노드로 반복 처리하세요.",
"구독자 수 모니터링은 레시피 024와 동일한 구조이므로 함께 참고하면 유튜브 채널 전체 성과 모니터링 시스템을 만들 수 있어요."
],
"qrUrl": "www.koreaaitimes.com/books/n8n-vol2/recipe077"
}