Gmail과 GPT 요약을 사용한 일일 이메일 요약 자동 발송
중급
이것은Personal Productivity, AI Summarization분야의자동화 워크플로우로, 6개의 노드를 포함합니다.주로 Cron, Gmail, OpenAi, Function 등의 노드를 사용하며. Gmail 및 GPT 요약을 사용한 일일 이메일 다이제스트 자동 전송, 매일 오후 발송
사전 요구사항
- •Google 계정 및 Gmail API 인증 정보
- •OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"nodes": [
{
"name": "오후 트리거 (오후 4시)",
"type": "n8n-nodes-base.cron",
"notes": {
"text": "### 1. Trigger in the Afternoon\n\nThis `Cron` node is configured to run automatically every **day at 4:00 PM (16:00)** based on your n8n server's local time zone.\n\n**To change the schedule:** Adjust the 'Hour' and 'Minute' fields to your preferred time.",
"position": "right"
},
"position": [
240,
300
],
"parameters": {
"mode": "everyDay",
"value": {
"hour": [
16
],
"minute": [
0
]
},
"options": {}
},
"typeVersion": 1,
"id": "-4--0"
},
{
"name": "오늘 날짜 계산",
"type": "n8n-nodes-base.function",
"notes": {
"text": "### 2. Calculate Today's Dates\n\nThis `Function` node calculates the start of the current day (midnight) and the current time, which will be used to fetch emails received *today* up to the moment the workflow runs.\n\n**Output:** It generates two fields:\n* `minDate`: The ISO string for today's midnight (00:00:00).\n* `nowDate`: The ISO string for the current time (when the workflow runs).\n\n**No configuration needed here**; it automatically determines the dates.",
"position": "right"
},
"position": [
480,
300
],
"parameters": {
"options": {},
"function": "const DateTime = this.getNodeParameter('DateTime');\n\nconst now = DateTime.now();\n\n// Calculate the start of the current day (e.g., today at 00:00:00)\nconst startOfDay = now.startOf('day');\n\nreturn [{ json: { \n minDate: startOfDay.toISO(),\n nowDate: now.toISO()\n} }];"
},
"typeVersion": 1,
"id": "--1"
},
{
"name": "오늘의 이메일 가져오기 (Gmail)",
"type": "n8n-nodes-base.gmail",
"notes": {
"text": "### 3. Get Today's Emails\n\nThis `Gmail` node fetches emails received in your inbox since the beginning of the current day until the workflow is triggered.\n\n**Setup:**\n1. **Gmail Credential:** Click on 'Credentials' and select 'New Credential'. Choose 'Gmail API'. Follow the n8n instructions to connect your Gmail account.\n2. **Query:** The 'Query' field uses Gmail's search operators (`after:` and `before:`) combined with the dates calculated in the previous node to ensure it only fetches today's emails.\n3. **Max Results:** Adjust `Max Results` if you typically receive many more than 20 emails in a day that you'd want summarized. (Be mindful of AI token limits for very large inputs).\n\n**Important:** Ensure your Gmail API has the necessary read scope (`https://www.googleapis.com/auth/gmail.readonly` or full access).",
"position": "right"
},
"position": [
720,
300
],
"parameters": {
"query": "after:{{ $json.minDate }} before:{{ $json.nowDate }}",
"options": {
"maxResults": 20
},
"emailType": "inbox",
"operation": "getAll"
},
"credentials": {
"gmailApi": {
"id": "YOUR_GMAIL_CREDENTIAL_ID",
"resolve": false
}
},
"typeVersion": 2,
"id": "-Gmail--2"
},
{
"name": "이메일 내용 결합",
"type": "n8n-nodes-base.function",
"notes": {
"text": "### 4. Combine Email Content\n\nThis `Function` node takes all the fetched emails and combines their sender, subject, and snippet (a short preview) into a single text string.\n\n**Purpose:** This consolidated text string will then be fed into the AI summarization node.\n\n**No configuration needed here**; it's pre-programmed to format your email data.",
"position": "right"
},
"position": [
960,
300
],
"parameters": {
"options": {},
"function": "let emailContent = \"\";\n\nif (items.length === 0) {\n emailContent = \"No new emails received today.\";\n} else {\n emailContent = \"Today's Emails Summary:\\n\\n\";\n for (const item of items) {\n const email = item.json;\n const sender = email.payload.headers.find(h => h.name === 'From').value || 'Unknown Sender';\n const subject = email.payload.headers.find(h => h.name === 'Subject').value || 'No Subject';\n const snippet = email.snippet || 'No snippet available.';\n\n emailContent += `From: ${sender}\\nSubject: ${subject}\\nSnippet: ${snippet}\\n---\\n`;\n }\n}\n\nreturn [{ json: { combinedEmails: emailContent } }];"
},
"typeVersion": 1,
"id": "--3"
},
{
"name": "AI: 이메일 요약",
"type": "n8n-nodes-base.openAi",
"notes": {
"text": "### 5. AI: Summarize Emails\n\nThis `OpenAI` node takes the combined email content and generates a high-level summary using artificial intelligence.\n\n**Setup:**\n1. **OpenAI Credential:** Select your existing OpenAI API Key credential.\n2. **Model:** You can choose `gpt-3.5-turbo` for cost-effectiveness or `gpt-4o` for potentially better and more nuanced summaries.\n3. **Prompt:** The system prompt instructs the AI on how to summarize the emails, focusing on key topics and action items.\n\n**Output:** The AI-generated summary will be in `{{ $node[\"AI: Summarize Emails\"].json.choices[0].message.content }}`.",
"position": "right"
},
"position": [
1200,
300
],
"parameters": {
"model": "gpt-3.5-turbo",
"options": {},
"messages": [
{
"role": "system",
"content": "You are an AI assistant specialized in summarizing daily email communications. Your task is to read the provided email subjects and snippets, identify the most important topics and action items, and create a concise, readable summary. Group related emails if possible. If there are no emails, state that clearly."
},
{
"role": "user",
"content": "Summarize the following daily email content:\n\n{{ $json.combinedEmails }}"
}
]
},
"credentials": {
"openAiApi": {
"id": "YOUR_OPENAI_CREDENTIAL_ID",
"resolve": false
}
},
"typeVersion": 1,
"id": "AI--4"
},
{
"name": "요약 이메일 발송",
"type": "n8n-nodes-base.gmail",
"notes": {
"text": "### 6. Send Summary Email\n\nThis `Gmail` node sends the final AI-generated summary to your specified email address.\n\n**Setup:**\n1. **Gmail Credential:** Select your existing Gmail API credential.\n2. **From Email:** Enter your Gmail address (this must be the same account you authenticated).\n3. **To Email:** **IMPORTANT: Change `YOUR_RECIPIENT_EMAIL@example.com` to your actual email address!**\n4. **Subject:** Includes the current date for easy reference.\n5. **Text:** The email body contains the summary generated by the AI.\n\nAfter setting up, you can test by clicking 'Execute Workflow' (from the 'Afternoon Trigger' node) to receive an immediate summary of today's emails.",
"position": "right"
},
"position": [
1440,
300
],
"parameters": {
"text": "Hello!\n\nHere's your daily email summary from n8n for today:\n\n{{ $node[\"AI: Summarize Emails\"].json.choices[0].message.content }}\n\n---\n\n*This is an automated summary generated by n8n. Please log into your inbox for full details.*",
"options": {},
"subject": "Daily Email Summary: {{ DateTime.now().toFormat('cccc, LLLL dd, yyyy') }}",
"toEmail": "YOUR_RECIPIENT_EMAIL@example.com",
"fromEmail": "YOUR_GMAIL_EMAIL@gmail.com"
},
"credentials": {
"gmailApi": {
"id": "YOUR_GMAIL_CREDENTIAL_ID",
"resolve": false
}
},
"typeVersion": 2,
"id": "--5"
}
],
"pinData": {},
"version": 1,
"connections": {
"AI--4": {
"main": [
[
{
"node": "--5",
"type": "main"
}
]
]
},
"--3": {
"main": [
[
{
"node": "AI--4",
"type": "main"
}
]
]
},
"--1": {
"main": [
[
{
"node": "-Gmail--2",
"type": "main"
}
]
]
},
"-4--0": {
"main": [
[
{
"node": "--1",
"type": "main"
}
]
]
},
"-Gmail--2": {
"main": [
[
{
"node": "--3",
"type": "main"
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 개인 생산성, AI 요약
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
OpenAI와 Gmail을 사용하는 매일 긍정적인 뉴스 요약
OpenAI와 Gmail을 사용한 매일 긍정적인 뉴스 요약
If
Cron
Gmail
+
If
Cron
Gmail
9 노드Piotr Sobolewski
개인 생산성
기업 온라인 이미지 모니터링기
AI 감정 분석 및 다중 플랫폼 추적을 사용한 일일 기업 온라인 이미지 모니터링
Set
Cron
Gmail
+
Set
Cron
Gmail
17 노드Piotr Sobolewski
시장 조사
자동화된 멀티플랫폼 게임 할인 추적
Deku Deals 및 Gmail 알림을 사용한 멀티 플랫폼 게임 할인 자동 추적
If
Cron
Gmail
+
If
Cron
Gmail
11 노드Piotr Sobolewski
개인 생산성
자동 웹 크롤러: 세분화된 구인/제품 모니터링 및 Telegram 알림
자동화网页爬虫:细分职位/제품모니터링与Telegram警报
If
Cron
Function
+
If
Cron
Function
6 노드Piotr Sobolewski
시장 조사
OpenAI와 Gmail을 사용하여 팟캐스트 트랙션 요약 및 키워드 생성
OpenAI와 Gmail을 사용하여 팟캐스트 트랙션 요약 및 키워드 생성
Set
Gmail
Open Ai
+
Set
Gmail
Open Ai
6 노드Piotr Sobolewski
콘텐츠 제작
宁静 CFO 日出 — 软科技晨间简报(가족 CEO)🌸
🌸 CFO 일출 — 가족 CEO를 위한 소프트테크 오전 브리핑 (n8n 템플릿)
Set
Cron
Open Ai
+
Set
Cron
Open Ai
15 노드Shelly-Ann Davy
개인 생산성
워크플로우 정보
난이도
중급
노드 수6
카테고리2
노드 유형4
저자
Piotr Sobolewski
@piotrsobolewskiAI PhD with 7 years experience as a game dev CEO, currently teaching, helping others and building something new.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유