RECIPE E
시나리오 E — 콘텐츠 팀 주간 발행 자동화
- ▸아이디어 발굴부터 발행, 성과 측정까지 콘텐츠 팀의 주간 사이클을 완전 자동화할 수 있다
- ▸팀원별 역할에 따라 자동으로 업무를 배분하고 진행 상황을 공유할 수 있다
- ▸채널별 성과 데이터를 통합해 다음 주 콘텐츠 전략에 자동으로 반영할 수 있다
✅사전 준비
- □챕터 7 전체 레시피(071~080) 및 미니 프로젝트 P7 완료
- □Notion '콘텐츠 DB' 구성 (제목/상태/담당자/발행일 컬럼)
- □WordPress REST API 연결 완료
- □Mailchimp 또는 Substack API 키 준비
- □Slack #content, #content-publish 채널 생성
- □YouTube Data API v3 및 GA4 API 연결 완료
콘텐츠 팀 주간 사이클 전체 흐름
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[월요일 08:00] 주간 기획 킥오프
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
트렌드 키워드 자동 수집 (Google Trends)
→ 경쟁사 RSS 수집 & 요약
→ 지난주 성과 TOP 3 콘텐츠 분석
→ Notion '이번 주 추천 주제' 페이지 자동 생성
→ Slack #content 에 기획 회의 어젠다 공유
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[화~목] 콘텐츠 작성 & 검토
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Notion 상태 변경 (작성완료)
→ 에디터에게 Slack DM 검토 요청
→ 검토 기한 D+1 리마인더 자동 설정
Notion 상태 변경 (검토완료)
→ 발행 담당자에게 Slack DM 발행 준비 알림
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[수·금 10:00] 콘텐츠 발행
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Notion에서 '발행 예정' 콘텐츠 조회
→ WordPress 블로그 자동 발행
→ Mailchimp 뉴스레터 발송
→ SNS 멀티채널 동시 발행
→ Slack #content-publish 발행 완료 알림
→ Notion 상태 '발행완료' 업데이트
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[금요일 17:00] 주간 성과 집계
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
YouTube Analytics 조회
→ GA4 블로그 트래픽 조회
→ Mailchimp 뉴스레터 성과 조회
→ 성과 시트 자동 기록
→ TOP 3 콘텐츠 선정
→ Slack #content 주간 성과 리포트 공유TOP 3 콘텐츠 자동 선정 — Code 노드
const contents = $('성과 시트').all();
// 통합 점수 계산 (조회수 40% + 공유 30% + 전환 30%)
const scored = contents.map(c => {
const views = Number(c.json.views ?? 0);
const shares = Number(c.json.shares ?? 0);
const conversions = Number(c.json.conversions ?? 0);
// 정규화 (최대값 기준 0~100)
const score =
(views / 1000) * 40 +
(shares / 100) * 30 +
(conversions / 50) * 30;
return { ...c.json, score: Math.round(score) };
});
const top3 = scored
.sort((a, b) => b.score - a.score)
.slice(0, 3);
const report = top3
.map((c, i) =>
`${['🥇','🥈','🥉'][i]} *${c.title}*
조회: ${c.views} 공유: ${c.shares} 전환: ${c.conversions}`
)
.join('\n\n');
return [{ json: { top3Report: report, top3 } }];Notion 상태 변경 감지 폴링 — Schedule + Filter
노드 구성:
Schedule Trigger (10분마다)
→ Notion Query DB (filter: 상태 = 작성완료)
→ Google Sheets에서 '이미 처리된 ID' 조회
→ Code 노드: 미처리 항목만 필터링
→ 처리 로직 실행
→ Google Sheets에 처리된 ID 기록
처리 중복 방지 Sheets 구조:
A열: notion_page_id
B열: processed_at
C열: action💡 TIP콘텐츠 팀이 여러 명이라면 Notion '담당자' 속성에 팀원 이름을 넣고, Code 노드에서 이름과 Slack User ID를 매핑하는 객체를 만들어두면 담당자별 자동 DM 발송이 가능합니다. 예: const slackIds = { '김철수': 'U012ABC', '이영희': 'U034DEF' }
⚠️ 주의WordPress 자동 발행 시 카테고리·태그·SEO 메타데이터(Yoast SEO 플러그인 필드)가 누락되지 않도록 주의하세요. Notion 콘텐츠 DB에 카테고리 ID, 태그 ID, SEO 제목, SEO 설명 컬럼을 미리 추가하고 발행 시 함께 전송해야 검색 노출에 불이익이 없습니다.
⚡
워크플로우 JSON
아래 JSON을 복사해 n8n에 바로 임포트하세요
📥 n8n 임포트 방법
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
{
"id": "scenario_E",
"chapter": 9,
"title": "시나리오 E — 콘텐츠 팀 주간 발행 자동화",
"difficulty": "⭐⭐⭐",
"target": "2~5명 규모의 콘텐츠 팀 또는 미디어 스타트업",
"outcome": "월요일에 트렌드 키워드가 자동으로 수집되고, 팀원이 콘텐츠를 발행하면 자동으로 모든 채널에 배포되고, 금요일엔 주간 성과 리포트가 자동으로 도착해요.",
"linked_recipes": [
{
"recipe": "071",
"desc": "트렌드 수집"
},
{
"recipe": "075",
"desc": "발행 리마인더"
},
{
"recipe": "012",
"desc": "SNS 자동 배포"
},
{
"recipe": "073",
"desc": "뉴스레터→블로그"
},
{
"recipe": "078",
"desc": "성과 집계"
},
{
"recipe": "080",
"desc": "월간 리포트"
}
],
"workflow_diagram": [
"[월요일 오전 7시] Schedule Trigger",
"↓",
"Google Trends API → 트렌드 키워드 수집",
"OpenAI → 콘텐츠 아이디어 생성",
"Google Sheets → 이번 주 아이디어 시트 업데이트",
"Slack → 팀 아이디어 공유",
"[발행 예정 D-2] 매일 자동 체크",
"↓",
"Notion → 미완성 콘텐츠 확인",
"Slack → 담당자 리마인더",
"[새 블로그 포스팅 발행 시]",
"↓",
"RSS Trigger",
"↓",
"Twitter + Facebook + 팀 Slack → 동시 발행",
"[금요일 오후 6시]",
"↓",
"Mailchimp API → 주간 뉴스레터 성과",
"YouTube API → 주간 영상 성과",
"Google Sheets → 누적 기록",
"Slack → 주간 성과 요약 리포트"
],
"workflow_url": "www.koreaaitimes.com/books/n8n-vol2/recipeE"
}