
دستیار ایمیل هوش مصنوعی: اولویتبندی Gmail و خلاصههای Slack
14 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۱۸
دانلود workflow
فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.
- فایل JSON را دانلود کنید.
- در n8n: Workflows → Import from File.
- Credentialهای هر node را متصل کنید.
- workflow را فعال کنید.
شناسه workflow: 5446 · منبع: کاتالوگ Axeto
دستیار ایمیل هوش مصنوعی: اولویتبندی Gmail با خلاصههای ChatGPT و خلاصههای روزانه Slack
این گردش کار، پردازش پیامهای ورودی Gmail را خودکار میکند و از هوش مصنوعی برای طبقهبندی، اولویتبندی و خلاصهسازی ایمیلها بهره میبرد. سپس برچسبهایی را در Gmail اعمال میکند، اطلاعات مرتبط را در Google Sheets ثبت میکند و اعلانهای بهموقع را از طریق Slack ارسال میکند. همچنین یک خلاصه روزانه از ایمیلهای مهم تهیه و برای بررسی به Slack ارسال میشود.
میتوانید این گردش کار را در حساب Axeto.ai خود در اینجا پیدا و وارد کنید: Axeto.ai n8n Workflows
---
۱. نمای کلی گردش کار
این گردش کار برای افراد حرفهای پرمشغلهای طراحی شده است که نیاز به مدیریت کارآمد صندوق ورودی خود دارند. این گردش کار از مدل GPT-4o-mini شرکت OpenAI برای درک محتوا و فوریت ایمیلهای دریافتی استفاده میکند. گردش کار به دو بخش اصلی عملکردی تقسیم میشود:
- ۱.۱ پردازش و اولویتبندی ایمیل در لحظه: این بخش برای هر ایمیل جدید دریافتی در Gmail فعال میشود. محتوای ایمیل را برای طبقهبندی و خلاصهسازی به یک مدل هوش مصنوعی ارسال میکند. بر اساس ارزیابی فوریت توسط هوش مصنوعی، برچسبهای خاصی را در Gmail اعمال میکند، جزئیات ایمیل را در یک Google Sheet ثبت میکند و برای ایمیلهای با فوریت بالا یا متوسط، هشدارهای فوری به Slack ارسال میکند.
- ۱.۲ تدوین خلاصه روزانه و اطلاعرسانی در Slack: این بخش یک بار در روز در زمانبندی شده اجرا میشود. تمام ایمیلهای ثبت شده از روز قبل را بازیابی میکند، ایمیلهای علامتگذاری شده به عنوان فوریت بالا یا متوسط را فیلتر میکند، یک خلاصه مختصر را قالببندی میکند و آن را برای بررسی در یک کانال اختصاصی Slack منتشر میکند.
۲. تحلیل گام به گام
۲.۱ پردازش و اولویتبندی ایمیلها در لحظه
این بخش به گرههایی میپردازد که مسئول رسیدگی به هر ایمیل ورودی به محض دریافت آن هستند.
- گرههای درگیر:
* gmailTrigger (Gmail Trigger)
* messageAModel (OpenAI - LangChain)
* code (Code)
* if (If)
* sendAMessage (Slack)
* addLabelToMessage (Gmail)
* addLabelToMessage1 (Gmail)
* appendRowInSheet1 (Google Sheets)
* appendRowInSheet (Google Sheets)
- جزئیات گرهها:
1. gmailTrigger
* نوع: n8n-nodes-base.gmailTrigger
* نقش: صندوق ورودی Gmail شما را برای پیامهای جدید نظارت میکند.
* پیکربندی: برای بررسی هر دقیقه تنظیم شده است. در این مرحله فیلتر خاصی اعمال نمیشود تا اطمینان حاصل شود که همه ایمیلهای جدید دریافت میشوند.
* اعتبارنامهها: نیاز به احراز هویت OAuth2 برای حساب Gmail شما دارد.
* ورودی/خروجی: ورودی ندارد؛ دادههای مربوط به هر ایمیل جدید شناسایی شده را خروجی میدهد.
* مشکلات احتمالی: انقضای توکن OAuth، محدودیتهای نرخ API Gmail.
2. messageAModel
* نوع: @n8n/n8n-nodes-langchain.openAi
* نقش: موضوع ایمیل و بخشی از محتوای آن را برای طبقهبندی به API OpenAI (GPT-4o-mini) ارسال میکند. به هوش مصنوعی دستور داده میشود تا یک شیء JSON حاوی summary (خلاصه)، urgency (فوریت - مثلاً "High", "Medium", "Low")، category (دسته بندی) و intent (قصد) را برگرداند.
* پیکربندی:
* مدل: gpt-4o-mini
* System Prompt: مدل را ملزم میکند که خروجی JSON را دقیقاً و بدون قالببندی markdown تولید کند.
* عبارات: به طور پویا موضوع و بخشی از ایمیل را از گره gmailTrigger تزریق میکند.
* اعتبارنامهها: کلید API OpenAI شما را نیاز دارد.
* ورودی: دادهها از گره gmailTrigger.
* خروجی: پاسخ متنی خام از API OpenAI، که انتظار میرود یک رشته JSON باشد.
* مشکلات احتمالی: محدودیتهای نرخ API OpenAI، تجاوز از محدودیتهای توکن برای ایمیلهای بسیار طولانی، احتمال خروجی JSON نامعتبر.
3. code
* نوع: n8n-nodes-base.code
* نقش: رشته JSON دریافتی از گره OpenAI را تجزیه میکند. هرگونه آثار قالببندی (مانند بکتیکها یا نقل قولهای هوشمند) را پاک کرده و رشته را به یک شیء JSON قابل استفاده تبدیل میکند.
* منطق: شامل مدیریت خطا است: اگر تجزیه JSON ناموفق باشد، یک شیء خطا حاوی پاسخ خام را برمیگرداند که به عیبیابی کمک میکند.
* ورودی: پاسخ خام هوش مصنوعی از messageAModel.
* خروجی: یک شیء JSON ساختاریافته با فیلدهایی مانند summary, urgency, category, و intent.
* موارد لبهای: گرههای پاییندستی باید برای مدیریت پرچمهای خطای احتمالی در صورت شکست تجزیه JSON آماده باشند.
4. if
* نوع: n8n-nodes-base.if
* نقش: فیلد urgency را از پاسخ تجزیه شده هوش مصنوعی ارزیابی میکند تا تعیین کند آیا ایمیل نیاز به توجه فوری دارد یا خیر.
* شرایط: بررسی میکند که آیا فیلد urgency دقیقاً برابر با "High" یا "Medium" (حساس به حروف بزرگ و کوچک) است.
* ورودی: شیء JSON تجزیه شده از گره code.
* خروجی: گردش کار را به دو مسیر تقسیم میکند:
* True: برای ایمیلهایی با فوریت "High" یا "Medium".
* False: برای همه ایمیلهای دیگر (مثلاً فوریت "Low" یا اگر فیلد فوریت وجود نداشته باشد/غیرمنتظره باشد).
* موارد لبهای: اگر فیلد urgency وجود نداشته باشد یا نامعتبر باشد، احتمالاً در شاخه "False" قرار میگیرد.
5. sendAMessage
* نوع: n8n-nodes-base.slack
* نقش: برای ایمیلهایی که به عنوان فوریت "High" یا "Medium" طبقهبندی شدهاند، یک اعلان فوری به یک کانال Slack مشخص ارسال میکند.
* پیکربندی:
* کانال: برای ارسال به یک کانال Slack خاص (مثلاً #alerts) پیکربندی شده است.
* متن پیام: برای گنجاندن خلاصه ایمیل، فوریت و فرستنده برای زمینه سریع، قالببندی شده است.
* اعتبارنامهها: نیاز به احراز هویت OAuth2 Slack دارد.
* ورودی: دادهها را از شاخه "True" گره if دریافت میکند.
* خروجی: دادهها را به گره بعدی در مسیر "True" ارسال میکند.
* مشکلات احتمالی: محدودیتهای نرخ API Slack، انقضای توکن OAuth.
6. addLabelToMessage
* نوع: n8n-nodes-base.gmail
* نقش: یک برچسب Gmail خاص (مثلاً "Low Urgency") را به ایمیلهایی که به عنوان فوریت بالا یا متوسط علامتگذاری نشدهاند، اعمال میکند.
* پیکربندی: از شناسه پیام از گره gmailTrigger و عملیات "addLabels" استفاده میکند.
* اعتبارنامهها: از همان اعتبارنامههای OAuth2 Gmail به عنوان تریگر استفاده میکند.
* ورودی: دادهها را از شاخه "False" گره if دریافت میکند.
* خروجی: دادهها را به گره appendRowInSheet1 ارسال میکند.
* مشکلات احتمالی: شناسه برچسب نادرست، خطاهای API Gmail.
7. addLabelToMessage1
* نوع: n8n-nodes-base.gmail
* نقش: یک برچسب Gmail خاص (مثلاً "High/Medium Urgency") را به ایمیلهای طبقهبندی شده به عنوان مهم اعمال میکند.
* پیکربندی: مشابه addLabelToMessage، با استفاده از شناسه پیام و عملیات "addLabels".
* ورودی: دادهها را از گره sendAMessage (که در مسیر "True" گره if قرار دارد) دریافت میکند.
* خروجی: دادهها را به گره appendRowInSheet ارسال میکند.
* مشکلات احتمالی: مشابه addLabelToMessage.
8. appendRowInSheet1
* نوع: n8n-nodes-base.googleSheets
* نقش: فراداده ایمیلهای با فوریت کم را در یک صفحه Google Sheet ثبت میکند.
* پیکربندی: یک ردیف جدید به یک صفحه مشخص (مثلاً "Sheet1") در سند Google Sheet شما اضافه میکند. ستونها معمولاً شامل فرستنده، خلاصه، فوریت، دسته بندی و زمان هستند.
* اعتبارنامهها: نیاز به احراز هویت OAuth2 Google Sheets دارد.
* ورودی: دادهها را از گره addLabelToMessage دریافت میکند.
* مشکلات احتمالی: خطاهای دسترسی به صفحه، عدم وجود مجوزهای کافی.
9. appendRowInSheet
* نوع: n8n-nodes-base.googleSheets
* نقش: فراداده ایمیلهای با فوریت بالا/متوسط را در همان صفحه Google Sheet ثبت میکند.
* پیکربندی: مشابه appendRowInSheet1، به همان صفحه اضافه میکند.
* ورودی: دادهها را از گره addLabelToMessage1 دریافت میکند.
* مشکلات احتمالی: مشابه appendRowInSheet1.
۲.۲ تدوین خلاصه روزانه و اعلان Slack
این بخش گرههای مسئول تولید و ارسال خلاصهای از ایمیلهای مهم در پایان روز را پوشش میدهد.
- گرههای درگیر:
* scheduleTrigger (Schedule Trigger)
* getRow(s)InSheet (Google Sheets)
* code1 (Code)
* code2 (Code)
* sendMessage1 (Slack)
- جزئیات گرهها:
1. scheduleTrigger
* نوع: n8n-nodes-base.scheduleTrigger
* نقش: فرآیند خلاصه روزانه را در زمان مشخصی در هر روز آغاز میکند.
* پیکربندی: برای فعال شدن روزانه در ساعت ۱۹:۰۰ (زمان سرور) تنظیم شده است.
* خروجی: گره getRow(s)InSheet را فعال میکند.
2. getRow(s)InSheet
* نوع: n8n-nodes-base.googleSheets
* نقش: تمام دادههای ایمیل ثبت شده را از صفحه Google Sheet ("Sheet1") بازیابی میکند.
* پیکربندی: کل صفحه را میخواند؛ فیلتر کردن توسط گرههای کد بعدی انجام میشود.
* اعتبارنامهها: نیاز به احراز هویت OAuth2 Google Sheets دارد.
* ورودی: توسط scheduleTrigger فعال میشود.
* خروجی: تمام ردیفها از صفحه Google Sheet مشخص شده.
* مشکلات احتمالی: خطاهای دسترسی به صفحه، مشکلات مجوز.
3. code1
* نوع: n8n-nodes-base.code
* نقش: ردیفهای بازیابی شده را فیلتر میکند تا فقط ایمیلهای ثبت شده امروز با فوریت "High" یا "Medium" (بدون حساسیت به حروف بزرگ و کوچک) را شامل شود.
* منطق: بخش تاریخ را از زمانبندی هر ردیف با تاریخ فعلی مقایسه کرده و فیلد فوریت را بررسی میکند.
* ورودی: تمام ردیفها از getRow(s)InSheet.
* خروجی: لیستی حاوی فقط ایمیلهای مرتبط و مهم از روز جاری.
4. code2
* نوع: n8n-nodes-base.code
* نقش: لیست فیلتر شده ایمیلهای مهم را به یک پیام قابل خواندن Slack قالببندی میکند.
* منطق: از طریق ایمیلهای فیلتر شده تکرار شده و یک پیام با قالب markdown میسازد. اگر ایمیل مهمی برای آن روز پیدا نشد، یک پیام جایگزین مانند "No important messages today." تولید میکند.
* ورودی: لیست فیلتر شده از code1.
* خروجی: یک شیء JSON حاوی متن پیام خلاصه قالببندی شده.
5. sendMessage1
* نوع: n8n-nodes-base.slack
* نقش: پیام خلاصه روزانه تدوین شده را به یک کانال Slack مشخص (مثلاً #daily-digest) ارسال میکند.
* اعتبارنامهها: نیاز به احراز هویت OAuth2 Slack دارد.
* ورودی: شیء پیام قالببندی شده از code2.
* مشکلات احتمالی: محدودیتهای نرخ API Slack، انقضای توکن OAuth.
---
۳. جدول خلاصه
| نام نود (Node Name) | نوع نود (Node Type) | نقش عملکردی (Functional Role) | نود(های) ورودی (Input Node(s)) | نود(های) خروجی (Output Node(s)) |
|---|---|---|---|---|
gmailTrigger | n8n-nodes-base.gmailTrigger | نظارت بر ایمیلهای جدید Gmail | messageAModel | |
messageAModel | @n8n/n8n-nodes-langchain.openAi | طبقهبندی محتوای ایمیل از طریق GPT-4o-mini | gmailTrigger | code |
code | n8n-nodes-base.code | تجزیه پاسخ JSON هوش مصنوعی، پاکسازی قالببندی | messageAModel | if |
if | n8n-nodes-base.if | بررسی فوریت بالا یا متوسط بودن | code | sendAMessage (True), addLabelToMessage (False) |
sendAMessage | n8n-nodes-base.slack | ارسال هشدار فوری Slack برای ایمیلهای مهم | if (True) | addLabelToMessage1 |
addLabelToMessage | n8n-nodes-base.gmail | برچسبگذاری ایمیلهای کماهمیت در Gmail | if (False) | appendRowInSheet1 |
addLabelToMessage1 | n8n-nodes-base.gmail | برچسبگذاری ایمیلهای فوری در Gmail | sendAMessage | appendRowInSheet |
appendRowInSheet1 | n8n-nodes-base.googleSheets | ثبت فراداده ایمیلهای کماهمیت | addLabelToMessage | |
appendRowInSheet | n8n-nodes-base.googleSheets | ثبت فراداده ایمیلهای با فوریت بالا/متوسط | addLabelToMessage1 | |
scheduleTrigger | n8n-nodes-base.scheduleTrigger | فعالسازی کامپایل خلاصه روزانه در ساعت 19:00 | getRow(s)InSheet | |
getRow(s)InSheet | n8n-nodes-base.googleSheets | بازیابی تمام ردیفهای ایمیل ثبتشده | scheduleTrigger | code1 |
code1 | n8n-nodes-base.code | فیلتر کردن ردیفها برای ایمیلهای با فوریت بالا/متوسط امروز | getRow(s)InSheet | code2 |
code2 | n8n-nodes-base.code | قالببندی پیام خلاصه روزانه Slack | code1 | sendMessage1 |
sendMessage1 | n8n-nodes-base.slack | ارسال خلاصه روزانه به کانال Slack | code2 |
۴. بازسازی گردش کار از ابتدا
برای ساختن این گردش کار در Axeto.ai:
1. راهاندازی تریگر جیمیل:
* یک نود Gmail Trigger ( n8n-nodes-base.gmailTrigger) اضافه کنید.
* آن را برای بررسی هر دقیقه پیکربندی کنید.
* حساب جیمیل خود را با استفاده از اعتبارنامههای OAuth2 متصل کنید.
2. افزودن طبقهبندی OpenAI:
* یک نود OpenAI ( @n8n/n8n-nodes-langchain.openAi) اضافه کنید.
* Model ID را روی gpt-4o-mini تنظیم کنید.
* System Prompt را طوری پیکربندی کنید که مدل را برای خروجی JSON برای summary, urgency, category, و intent و اجتناب از markdown راهنمایی کند.
* در بخش Prompt، موضوع و خلاصه ایمیل را از نود تریگر جیمیل با استفاده از عبارات (مانند {{ $json.subject }} و {{ $json.snippet }}) به صورت پویا درج کنید.
* کلید OpenAI API خود را در بخش اعتبارنامهها وارد کنید.
3. تجزیه پاسخ هوش مصنوعی:
* یک نود Code ( n8n-nodes-base.code) اضافه کنید.
* کد جاوا اسکریپت زیر را در ویرایشگر Code جایگذاری کنید:
```javascript
// Input: Raw AI response string
// Output: Parsed JSON object or an error object
let rawResponse = $input.first().json.message; // Adjust based on actual output field name
let parsedJson;
try {
// Attempt to clean and parse the JSON string
// Remove potential markdown code block fences
rawResponse = rawResponse.replace(/^``json\n/, '').replace(/\n``$/, '');
// Attempt to fix common JSON string issues like trailing commas or incorrect quotes if necessary
// For simplicity, we'll assume basic JSON validity after removing fences.
// More robust parsing might be needed for complex cases.
parsedJson = JSON.parse(rawResponse);
// Basic validation: check if essential fields exist
if (!parsedJson.summary || !parsedJson.urgency || !parsedJson.category || !parsedJson.intent) {
throw new Error("Missing required fields in AI response.");
}
return parsedJson;
} catch (error) {
console.error("JSON Parsing Error:", error);
// Return an error object that downstream nodes can check
return {
error: true,
errorMessage: Failed to parse AI response: ${error.message},
rawResponse: rawResponse
};
}
```
* توجه: ممکن است لازم باشد $input.first().json.message را برای مطابقت با نام دقیق فیلد خروجی از نود OpenAI خود تنظیم کنید. خروجی نود OpenAI را برای تأیید بررسی کنید.
4. پیادهسازی بررسی فوریت:
* یک نود If ( n8n-nodes-base.if) اضافه کنید.
* Condition 1 را برای بررسی اینکه آیا فیلد urgency (از خروجی نود Code) برابر با High است، تنظیم کنید.
* Condition 2 را با استفاده از عملگر OR اضافه کنید: بررسی کنید که آیا فیلد urgency برابر با Medium است.
5. مدیریت ایمیلهای با فوریت بالا/متوسط:
* هشدار اسلک: یک نود Slack ( n8n-nodes-base.slack) را به مسیر "True" نود If اضافه کنید. آن را پیکربندی کنید تا پیامی به کانال هشدار مورد نظر شما ارسال کند، شامل جزئیات مربوطه مانند فرستنده، موضوع، خلاصه و فوریت. خروجی آن را به نود "Add Label" جیمیل برای ایمیلهای با فوریت بالا/متوسط متصل کنید.
* برچسب جیمیل: یک نود Gmail ( n8n-nodes-base.gmail) را به خروجی نود Slack اضافه کنید. آن را برای "Add Labels" با استفاده از شناسه پیام از تریگر جیمیل پیکربندی کنید و برچسب را برای ایمیلهای با فوریت بالا/متوسط مشخص کنید. خروجی آن را به نود "Append Row" Google Sheets برای فوریت بالا/متوسط متصل کنید.
* لاگ صفحه گسترده گوگل: یک نود Google Sheets ( n8n-nodes-base.googleSheets) را به خروجی نود "Add Label" جیمیل اضافه کنید. آن را برای "Append Row" به صفحه گسترده تعیین شده خود پیکربندی کنید و فیلدهایی مانند From، Summary، Urgency، Category و Timestamp را نگاشت کنید.
6. مدیریت ایمیلهای با فوریت پایین:
* برچسب جیمیل: یک نود Gmail ( n8n-nodes-base.gmail) دیگر را به مسیر "False" نود If اضافه کنید. آن را برای "Add Labels" با استفاده از شناسه پیام پیکربندی کنید و برچسب را برای ایمیلهای با فوریت پایین مشخص کنید. خروجی آن را به نود "Append Row" Google Sheets برای فوریت پایین متصل کنید.
* لاگ صفحه گسترده گوگل: یک نود Google Sheets ( n8n-nodes-base.googleSheets) دیگر را به خروجی نود "Add Label" جیمیل اضافه کنید. آن را برای "Append Row" به همان صفحه گسترده پیکربندی کنید و فیلدهای مربوطه را نگاشت کنید.
7. راهاندازی تریگر خلاصه روزانه:
* یک نود Schedule Trigger ( n8n-nodes-base.scheduleTrigger) اضافه کنید.
* آن را برای اجرای روزانه در زمان دلخواه خود (مثلاً ۱۹:۰۰) پیکربندی کنید.
8. بازیابی ایمیلهای ثبت شده:
* یک نود Google Sheets ( n8n-nodes-base.googleSheets) را بعد از تریگر Schedule اضافه کنید.
* آن را برای خواندن تمام ردیفها از صفحه گسترده لاگ ایمیل خود پیکربندی کنید.
9. فیلتر کردن ایمیلهای مهم امروز:
* یک نود Code ( n8n-nodes-base.code) را بعد از نود Google Sheets اضافه کنید.
* از جاوا اسکریپت برای فیلتر کردن ردیفها استفاده کنید: فقط آنهایی را که تاریخشان با تاریخ امروز مطابقت دارد و فوریت آنها "High" یا "Medium" (بدون حساسیت به بزرگی و کوچکی حروف) است، نگه دارید.
10. قالببندی پیام خلاصه:
* یک نود Code ( n8n-nodes-base.code) دیگر را بعد از نود کد فیلترینگ اضافه کنید.
* از جاوا اسکریپت برای قالببندی ایمیلهای فیلتر شده به یک پیام تمیز و خوانا برای Slack استفاده کنید. در صورت عدم وجود ایمیلهای مهم، پیامی را شامل شود.
11. ارسال خلاصه روزانه به اسلک:
* یک نود نهایی Slack ( n8n-nodes-base.slack) را بعد از نود کد قالببندی خلاصه اضافه کنید.
* آن را پیکربندی کنید تا پیام قالببندی شده را به کانال خلاصه روزانه انتخابی شما ارسال کند.
فراموش نکنید که اعتبارنامهها را برای Gmail، OpenAI و Google Sheets در Axeto.ai پیکربندی کنید.
Nodeهای استفادهشده
سوالات متداول
این گردش کار n8n چگونه به اولویتبندی ایمیلهای Gmail کمک میکند؟▾
این گردش کار از هوش مصنوعی (مدل GPT-4o-mini) برای تجزیه و تحلیل محتوای ایمیلها استفاده میکند تا فوریت آنها را تعیین کند. سپس بر اساس این ارزیابی، برچسبهای اولویتبندی را در Gmail اعمال میکند.
چه نوع اعلانهایی از طریق Slack ارسال میشود؟▾
این گردش کار اعلانهای فوری برای ایمیلهای با اولویت بالا یا متوسط به Slack ارسال میکند. همچنین یک خلاصه روزانه از ایمیلهای مهم را برای بررسی در کانال Slack منتشر میکند.
آیا این گردش کار میتواند ایمیلها را دستهبندی کند؟▾
بله، این گردش کار از هوش مصنوعی برای دستهبندی ایمیلها بر اساس محتوای آنها استفاده میکند و این اطلاعات را در Google Sheets ثبت میکند.
برای استفاده از این گردش کار به چه ابزارهایی نیاز دارم؟▾
شما به یک حساب n8n، دسترسی به Gmail (با احراز هویت OAuth2)، کلید API OpenAI و یک حساب Google Sheets نیاز دارید.
workflowهای مرتبط
- طبقهبندی خودکار حوادث امنیتی با GPT-4 و Google SheetsSecOps
- دستهبندی خودکار ایمیل جیمیل با GPT-4o و هشدار SlackAI Summarization
- دستهبندی خودکار پستهای وبلاگ با هوش مصنوعی و گیتهابContent Creation
- خودکارسازی اصلاح نقطه پایانی با Wazuh، ClamAV و GPT-4SecOps
- تغییر نام خودکار گرههای n8n با هوش مصنوعیEngineering
- ردیابی خودکار هزینهها از LINE با GPT-4 و Google SheetsPersonal Productivity
