
مسیریاب ایمیل هوشمند با Gmail، ChatGPT-4o و Slack
9 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۶
دانلود workflow
فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.
- فایل JSON را دانلود کنید.
- در n8n: Workflows → Import from File.
- Credentialهای هر node را متصل کنید.
- workflow را فعال کنید.
شناسه workflow: 9376 · منبع: کاتالوگ Axeto
مسیریاب ایمیل مبتنی بر هوش مصنوعی با Gmail، ChatGPT-4o و Slack
این Workflow به طور خودکار ایمیلهای خوانده نشده Gmail را با استفاده از طبقهبندی هوش مصنوعی و اعلانهای Slack مدیریت و مسیریابی میکند. این سیستم برای تیمهای پشتیبانی طراحی شده است تا درخواستهای ایمیلی را بر اساس دستهبندی محتوا به طور خودکار طبقهبندی و به کانالهای مناسب Slack هدایت کنند. این Workflow با بررسی پایگاه داده Supabase از پردازش تکراری رشتههای ایمیل جلوگیری میکند.
شما میتوانید این Workflow و موارد دیگر را در کاتالوگ Axeto پیدا کنید: https://axeto.ai/n8n
نمای کلی Workflow
این Workflow مراحل منطقی زیر را دنبال میکند:
1. دریافت ورودی: شناسایی ایمیلهای خوانده نشده جدید از Gmail.
2. حذف موارد تکراری رشته: جستجو در Supabase برای بررسی اینکه آیا رشته ایمیل قبلاً پردازش شده است یا خیر.
3. انشعاب شرطی: تعیین اینکه آیا پردازش ادامه یابد یا متوقف شود، بر اساس وجود رشته.
4. طبقهبندی هوش مصنوعی: استفاده از ChatGPT-4o برای طبقهبندی ایمیل به دستهبندیهای از پیش تعریف شده.
5. مسیریابی از طریق Switch: هدایت ایمیلهای طبقهبندی شده به کانالهای مربوطه Slack.
6. اعلان Slack: ارسال پیامهای قالببندی شده به کانالهای خاص Slack (#support یا #new-requests).
7. ثبت دادهها: ثبت جزئیات رشته ایمیل پردازش شده در Supabase برای مراجعه آتی.
8. پس از پردازش: علامتگذاری ایمیل به عنوان خوانده شده در Gmail برای جلوگیری از پردازش مجدد.
تشریح گره به گره
۱. Gmail Trigger
- نقش: با شناسایی ایمیلهای خوانده نشده جدید در صندوق ورودی Gmail شما، Workflow را آغاز میکند.
- پیکربندی:
* هر دقیقه Gmail را بررسی میکند.
* فقط برای ایمیلهای خوانده نشده فیلتر میکند.
- خروجی: فراداده ایمیل، شامل
From,Subject,snippet,threadId, وidرا ارائه میدهد. - یادداشت چسبان: "هنگام دریافت ایمیل خوانده نشده جدید فعال میشود، دادههای ایمیل را به پاییندست ارسال میکند."
۲. Get a row (Supabase)
- نقش: با جستجو در پایگاه داده Supabase شما، بررسی میکند که آیا رشته ایمیل ورودی قبلاً پردازش شده است یا خیر.
- پیکربندی:
* جدول: threads
* فیلتر: thread_id با threadId از Gmail Trigger مطابقت دارد.
- ورودی: خروجی از گره
Gmail Trigger. - خروجی: یک ردیف از جدول
threadsدر صورت وجود رشته، یا نتیجه خالی در صورت جدید بودن. - یادداشت چسبان: "بررسی میکند که آیا رشته ایمیل در Supabase وجود دارد."
۳. If
- نقش: به عنوان یک دروازه شرطی عمل میکند. اگر رشته ایمیل در Supabase یافت شود (به این معنی که قبلاً پردازش شده است) Workflow را متوقف میکند و در صورت جدید بودن رشته، اجازه ادامه را میدهد.
- پیکربندی:
شرط: بررسی میکند که آیا thread_id از گره Get a row خالی نیست*.
- ورودی: خروجی از گره
Get a row. - خروجی:
* True (رشته وجود دارد): Workflow پایان مییابد.
* False (رشته جدید): به گره بعدی ادامه میدهد.
- یادداشت چسبان: "در صورت وجود رشته متوقف میشود، در صورت جدید بودن ادامه مییابد."
۴. Message a model (OpenAI)
- نقش: از ChatGPT-4o برای طبقهبندی محتوای ایمیل به دستهبندیهای از پیش تعریف شده استفاده میکند.
- پیکربندی:
* مدل: chatgpt-4o-latest
پیام سیستم: به هوش مصنوعی دستور میدهد که فقط* یک شیء JSON با فیلد category (مانند {"category":"support|new-request|enquiry|general|spam|other"}) برگرداند.
* پیام کاربر: شامل Subject و snippet ایمیل است.
* خروجی JSON: برای پاسخهای ساختاریافته فعال شده است.
- ورودی: خروجی از گره
If(فقط در صورتی که شرط نادرست باشد). - خروجی: یک شیء JSON حاوی
categoryتعیین شده توسط هوش مصنوعی. - یادداشت چسبان: "ایمیل را به دستهبندیها طبقهبندی میکند."
۵. Switch
- نقش: ایمیل طبقهبندی شده را بر اساس دستهبندی تعیین شده توسط هوش مصنوعی به کانال مناسب Slack هدایت میکند.
- پیکربندی:
* قانون ۱: اگر category برابر "support" باشد، به خروجی ۱ ارسال میشود.
* قانون ۲: اگر برابر "new-request" باشد، به خروجی ۲ ارسال میشود.
* دستهبندیهای دیگر به طور ضمنی نادیده گرفته میشوند.
- ورودی: خروجی از گره
Message a model. - خروجی:
* خروجی ۱: برای دستهبندی "support".
* خروجی ۲: برای دستهبندی "new-request".
- یادداشت چسبان: "ایمیل را بر اساس دستهبندی به کانالهای Slack هدایت میکند."
۶. Send a message (Slack - #support)
- نقش: یک اعلان قالببندی شده به کانال Slack
#supportارسال میکند. - پیکربندی:
* شناسه کانال: C09EVCZR4P6 (یا شناسه کانال #support خاص شما).
* پیام: شامل فرستنده ایمیل، موضوع و خلاصه.
- ورودی: خروجی از گره
Switch(برای دستهبندی "support"). - خروجی: تأیید ارسال پیام.
- یادداشت چسبان: "پیام را به کانال Slack
#supportارسال میکند."
۷. Send a message 2 (Slack - #new-requests)
- نقش: یک اعلان قالببندی شده به کانال Slack
#new-requestsارسال میکند. - پیکربندی:
* شناسه کانال: C09EQ9Q1Z3R (یا شناسه کانال #new-requests خاص شما).
* پیام: شامل فرستنده ایمیل، موضوع و خلاصه.
- ورودی: خروجی از گره
Switch(برای دستهبندی "new-request"). - خروجی: تأیید ارسال پیام.
- یادداشت چسبان: "پیام را به کانال Slack
#new-requestsارسال میکند."
۸. Create a row (Supabase)
- نقش: رشته ایمیل پردازش شده را در جدول
threadsSupabase ثبت میکند تا از تکرار در آینده جلوگیری کند. - پیکربندی:
* جدول: threads
* فیلدها:
* thread_id: از ایمیل اصلی.
* first_message_id: از ایمیل اصلی.
* from_addr: از ایمیل اصلی.
* subject: از ایمیل اصلی.
- ورودی: خروجی از هر یک از گرههای Slack
Send a message. - خروجی: یک ردیف جدید در جدول
threads. - یادداشت چسبان: "رکورد را برای حذف موارد تکراری اضافه میکند."
۹. Mark a message as read (Gmail)
- نقش: ایمیل پردازش شده را در Gmail به عنوان خوانده شده علامتگذاری میکند و اطمینان میدهد که دوباره توسط Trigger دریافت نخواهد شد.
- پیکربندی:
* شناسه پیام: id از ایمیل اصلی.
- ورودی: خروجی از گره
Create a row(Supabase). - خروجی: ندارد (پایان Workflow).
- یادداشت چسبان: "پس از پردازش، ایمیل را به عنوان خوانده شده علامتگذاری میکند."
---
جدول خلاصه
| نام گره | نوع گره | نقش عملکردی | گره(های) ورودی | گره(های) خروجی | یادداشت چسبان |
|---|---|---|---|---|---|
| Gmail Trigger | n8n-nodes-base.gmailTrigger | دریافت ورودی ایمیلهای خوانده نشده | ندارد | Get a row | هنگام دریافت ایمیل خوانده نشده فعال میشود، دادههای ایمیل را ارسال میکند |
| Get a row | n8n-nodes-base.supabase | بررسی وجود رشته | Gmail Trigger | If | رشته ایمیل موجود در Supabase را بررسی میکند |
| If | n8n-nodes-base.if | انشعاب شرطی برای توقف/ادامه | Get a row | Message a model (false) | در صورت وجود رشته متوقف میشود، در صورت جدید بودن ادامه مییابد |
| Message a model | @n8n/n8n-nodes-langchain.openAi | طبقهبندی هوش مصنوعی ایمیل | If (false) | Switch | ایمیل را به دستهبندیها طبقهبندی میکند |
| Switch | n8n-nodes-base.switch | مسیریابی ایمیل بر اساس دستهبندی | Message a model | Send a message, Send a message 2 | ایمیل را بر اساس دستهبندی به کانالهای Slack هدایت میکند |
| Send a message | n8n-nodes-base.slack | ارسال به کانال Slack #support | Switch (support) | Create a row | پیام را به کانال Slack #support ارسال میکند |
| Send a message 2 | n8n-nodes-base.slack | ارسال به کانال Slack #new-requests | Switch (new-request) | Create a row | پیام را به کانال Slack #new-requests ارسال میکند |
| Create a row | n8n-nodes-base.supabase | ثبت اطلاعات رشته در Supabase | Send a message, Send a message 2 | Mark a message as read | رکورد را برای حذف موارد تکراری اضافه میکند |
| Mark a message as read | n8n-nodes-base.gmail | علامتگذاری ایمیل به عنوان خوانده شده در Gmail | Create a row | ندارد | پس از پردازش، ایمیل را به عنوان خوانده شده علامتگذاری میکند |
بازتولید Workflow
۱. افزودن گره Gmail Trigger:
* نوع: n8n-nodes-base.gmailTrigger
* پیکربندی برای فیلتر کردن فقط ایمیلهای خوانده نشده.
* تنظیم فاصله زمانی بررسی روی ۱ دقیقه.
* حساب Gmail خود را با مجوزهای لازم وصل کنید.
۲. افزودن گره Get a row (Supabase):
* نوع: n8n-nodes-base.supabase
* عملیات: Get
* جدول: threads
* شرط فیلتر: thread_id برابر با {{$json["threadId"]}} (از Gmail Trigger).
* اعتبارنامه Supabase خود (کلید API و URL) را وصل کنید.
۳. افزودن گره If:
* نوع: n8n-nodes-base.if
* شرط: بررسی کنید که آیا {{$json["thread_id"]}} خالی نیست (رشته خالی نیست).
* ورودی: خروجی از Get a row.
* شاخه True: خروجی ندارد (Workflow را متوقف میکند).
* شاخه False: به گره بعدی ادامه میدهد.
۴. افزودن گره Message a model (OpenAI):
* نوع: @n8n/n8n-nodes-langchain.openAi
* مدل: chatgpt-4o-latest
* پیامها:
* سیستم: "You are an email triage classifier. Return ONLY a JSON object: {\"category\":\"support|new-request|enquiry|general|spam|other\"}"
* کاربر: ترکیب موضوع و خلاصه از Gmail Trigger:
```
Subject: {{$node["Gmail Trigger"].json["Subject"]}}
Content: {{$node["Gmail Trigger"].json["snippet"]}}
```
* خروجی JSON را فعال کنید.
* اعتبارنامه کلید API OpenAI خود را وصل کنید.
۵. افزودن گره Switch:
* نوع: n8n-nodes-base.switch
* قوانین:
* مورد ۱: اگر {{$json["message"]["content"]["category"]}} برابر "support" باشد → خروجی ۱.
* مورد ۲: اگر برابر "new-request" باشد → خروجی ۲.
* ورودی: خروجی از Message a model.
۶. افزودن گره Send a message (Slack):
* نوع: n8n-nodes-base.slack
* برای کانال #support پیکربندی کنید (مانند C09EVCZR4P6).
* محتوای پیام را برای شامل کردن فرستنده، موضوع و خلاصه تنظیم کنید.
* اعتبارنامه OAuth2 Slack خود را وصل کنید.
* ورودی: خروجی ۱ از گره Switch.
۷. افزودن گره Send a message 2 (Slack):
* نوع: n8n-nodes-base.slack
* برای کانال #new-requests پیکربندی کنید (مانند C09EQ9Q1Z3R).
* محتوای پیام را به طور مشابه تنظیم کنید.
* اعتبارنامه OAuth2 Slack خود را وصل کنید.
* ورودی: خروجی ۲ از گره Switch.
۸. افزودن گره Create a row (Supabase):
* نوع: n8n-nodes-base.supabase
* عملیات: Create
* جدول: threads
* فیلدها را نگاشت کنید: thread_id, first_message_id, from_addr, subject با استفاده از دادههای Gmail Trigger.
* اعتبارنامه Supabase خود را وصل کنید.
* ورودی: خروجی از هر یک از گرههای Slack Send a message.
۹. افزودن گره Mark a message as read (Gmail):
* نوع: n8n-nodes-base.gmail
* عملیات: Mark as read
* شناسه پیام: {{$json["id"]}} از Gmail Trigger.
* اعتبارنامه Gmail خود را وصل کنید.
* ورودی: خروجی از Create a row.
Nodeهای استفادهشده
سوالات متداول
این Workflow چگونه به مدیریت ایمیلها کمک میکند؟▾
این Workflow ایمیلهای خوانده نشده Gmail را دریافت کرده، با استفاده از ChatGPT-4o آنها را دستهبندی میکند و سپس به کانالهای مشخصی در Slack هدایت میکند تا تیم پشتیبانی بتواند به سرعت به آنها رسیدگی کند.
چگونه از پردازش تکراری ایمیلها جلوگیری میشود؟▾
Workflow با بررسی پایگاه داده Supabase، قبل از پردازش هر ایمیل، بررسی میکند که آیا رشته (thread) آن قبلاً پردازش شده است یا خیر. در صورت پردازش قبلی، از پردازش مجدد جلوگیری میشود.
چه ابزارهایی در این Workflow استفاده شدهاند؟▾
این Workflow از Gmail برای دریافت ایمیل، ChatGPT-4o برای طبقهبندی محتوا با هوش مصنوعی، Slack برای ارسال اعلانها و Supabase برای مدیریت دادهها و جلوگیری از تکرار استفاده میکند.
workflowهای مرتبط
- تحلیل خودکار مناقصهها با n8n، LlamaParse و GeminiDocument Extraction
- حذف خودکار اسپم جیمیل: گردش کار ماهانه n8nPersonal Productivity
- طبقهبندی خودکار حوادث امنیتی با GPT-4 و Google SheetsSecOps
- دستهبندی خودکار ایمیل جیمیل با GPT-4o و هشدار SlackAI Summarization
- دستهبندی خودکار پستهای وبلاگ با هوش مصنوعی و گیتهابContent Creation
- اتوماسیون زیرنویسگذاری ویدیو با n8n، Google Drive و SubmagicContent Creation
