RECIPE 078
AI 이미지 생성 → SNS 자동 업로드
- ▸키워드나 콘텐츠 주제로 AI 이미지 자동 생성
- ▸생성된 이미지를 Google Drive에 저장
- ▸Instagram/Twitter에 이미지 + 캡션 자동 게시
✅사전 준비
- □OpenAI DALL-E 3 API 키 또는 Stability AI API 키
- □Google Drive 폴더 생성 및 OAuth2 설정
- □Instagram Business API 또는 Buffer API 설정
- □이미지 스타일 가이드 및 브랜드 색상 정의
DALL-E 3 이미지 생성
Node: HTTP Request
Method: POST
URL: https://api.openai.com/v1/images/generations
Headers:
Authorization: Bearer YOUR_OPENAI_API_KEY
Body:
{
"model": "dall-e-3",
"prompt": "{{ $json.image_prompt }}, professional photo, brand colors: blue and white, clean background",
"n": 1,
"size": "1024x1024",
"quality": "standard",
"response_format": "url"
}이미지 URL → Google Drive 저장
// HTTP Request로 이미지 다운로드
Node: HTTP Request
Method: GET
URL: {{ $json.data[0].url }}
Response Format: File
// Google Drive에 업로드
Node: Google Drive (Upload File)
Folder ID: YOUR_FOLDER_ID
File Name: ai_image_{{ $now.toFormat('yyyyMMdd_HHmmss') }}.png
Mime Type: image/pngSNS 캡션 자동 생성
System: SNS 마케터입니다.
User: 다음 이미지 주제로 Instagram 캡션을 작성하세요.
주제: {{ $json.topic }}
톤: 친근하고 전문적
길이: 150자 이내
해시태그: 5개 포함
이모지: 2~3개 사용⚠️ 주의DALL-E 3로 생성된 이미지는 OpenAI 이용약관에 따라 상업적 사용이 가능하지만, 실제 인물, 유명 브랜드 로고, 저작권 있는 캐릭터가 포함된 프롬프트는 피해야 합니다.
⚡
워크플로우 JSON
아래 JSON을 복사해 n8n에 바로 임포트하세요
📥 n8n 임포트 방법
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
{
"recipeId": "recipe078",
"title": "이메일 뉴스레터 성과 주간 집계",
"chapter": 7,
"category": "콘텐츠 & 미디어 자동화",
"difficulty": "⭐⭐",
"estimatedTime": "30분",
"usedApps": [
"Mailchimp API",
"Google Sheets",
"Slack"
],
"description": "매주 금요일 오후 6시 Mailchimp API에서 이번 주 캠페인 성과(오픈율·클릭률·구독 취소율)를 자동 수집해 Google Sheets에 누적 기록하고, 전주 대비 증감률을 계산해 Slack에 주간 뉴스레터 성과 리포트를 발송합니다.",
"nodes": [
{
"id": "node1",
"type": "n8n-nodes-base.scheduleTrigger",
"name": "매주 금요일 오후 6시 실행",
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 18 * * 5"
}
]
}
}
},
{
"id": "node2",
"type": "n8n-nodes-base.httpRequest",
"name": "이번 주 캠페인 성과 조회",
"parameters": {
"method": "GET",
"url": "https://{{$env.MAILCHIMP_DC}}.api.mailchimp.com/3.0/campaigns",
"authentication": "basicAuth",
"basicAuth": {
"user": "anystring",
"password": "={{$env.MAILCHIMP_API_KEY}}"
},
"queryParameters": {
"since_send_time": "={{$now.minus({days: 7}).toISO()}}",
"status": "sent",
"count": "10"
}
}
},
{
"id": "node3",
"type": "n8n-nodes-base.googleSheets",
"name": "성과 시트 누적 기록",
"parameters": {
"operation": "appendOrUpdate",
"spreadsheetId": "={{$env.NEWSLETTER_SHEET_ID}}",
"sheetName": "주간성과",
"columns": {
"mappingMode": "defineBelow",
"value": {
"기록일": "={{$now.format('YYYY-MM-DD')}}",
"캠페인명": "={{$json['campaigns'][0]['settings']['subject_line']}}",
"발송수": "={{$json['campaigns'][0]['recipients']['recipient_count']}}",
"오픈율": "={{($json['campaigns'][0]['report_summary']['open_rate'] * 100).toFixed(1)}}%",
"클릭률": "={{($json['campaigns'][0]['report_summary']['click_rate'] * 100).toFixed(1)}}%",
"수신거부율": "={{($json['campaigns'][0]['report_summary']['unsubscribe_rate'] * 100).toFixed(2)}}%"
}
}
}
},
{
"id": "node4",
"type": "n8n-nodes-base.slack",
"name": "주간 성과 리포트 발송",
"parameters": {
"channel": "={{$env.CONTENT_SLACK_CHANNEL}}",
"text": "📧 주간 뉴스레터 성과 리포트\n\n캠페인: {{$node['이번 주 캠페인 성과 조회'].json['campaigns'][0]['settings']['subject_line']}}\n오픈율: {{($node['이번 주 캠페인 성과 조회'].json['campaigns'][0]['report_summary']['open_rate'] * 100).toFixed(1)}}%\n클릭률: {{($node['이번 주 캠페인 성과 조회'].json['campaigns'][0]['report_summary']['click_rate'] * 100).toFixed(1)}}%\n\n📊 전체 기록: {{$env.NEWSLETTER_SHEET_URL}}"
}
}
],
"envVariables": {
"MAILCHIMP_DC": "Mailchimp 데이터센터 코드",
"MAILCHIMP_API_KEY": "Mailchimp API 키",
"NEWSLETTER_SHEET_ID": "Google Sheets 뉴스레터 성과 시트 ID",
"NEWSLETTER_SHEET_URL": "Google Sheets 공유 URL",
"CONTENT_SLACK_CHANNEL": "콘텐츠 팀 Slack 채널 ID"
},
"tips": [
"스티비(Stibee) API도 동일한 방식으로 연결할 수 있어요. 부록 B를 참고해서 스티비 API 키를 발급받으세요.",
"전주 대비 증감률을 Slack 메시지에 포함하려면 Google Sheets에서 이전 행 데이터를 읽어와 Code 노드에서 비교 계산을 추가하세요.",
"레시피 015(이메일 오픈율 추적)와 데이터 구조가 동일해요. 두 레시피를 결합하면 발송 즉시 기록하는 실시간 트래킹도 가능해요."
],
"qrUrl": "www.koreaaitimes.com/books/n8n-vol2/recipe078"
}