خودکارسازی تجمیع اخبار نظارتی مالی با n8n

خودکارسازی تجمیع اخبار نظارتی مالی با n8n

8 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۷

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 11227 · منبع: کاتالوگ Axeto

تجمیع اخبار نظارتی مالی با ScrapeGraphAI، هشدارهای Slack و Google Sheets

این گردش کار، تجمیع روزانه اخبار نظارتی مالی را از چندین وب‌سایت آژانس خودکار می‌کند. از ScrapeGraphAI برای استخراج آخرین به‌روزرسانی‌ها، فیلتر کردن آن‌ها برای ۲۴ ساعت گذشته، بایگانی آن‌ها در Google Sheets و ارسال هشدارهای Slack برای اطلاعات مرتبط جدید استفاده می‌کند. این امر تضمین می‌کند که تیم‌های انطباق، دیدگاهی یکپارچه و به‌روز از اقدامات نظارتی با حداقل تلاش دستی داشته باشند.

این گردش کار و موارد دیگر را در کاتالوگ n8n در Axeto.ai کاوش کنید.

نمای کلی گردش کار

گردش کار به چهار بلوک اصلی تقسیم شده است:

1. دریافت ورودی و زمان‌بندی: ماشه روزانه را تنظیم کرده و منابع نظارتی را برای خراشیدن تعریف می‌کند.

2. استخراج و تجزیه داده‌ها: از ScrapeGraphAI برای استخراج اخبار ساختاریافته از هر منبع استفاده می‌کند.

3. فیلتر کردن داده‌ها: اخبار منتشر شده در ۲۴ ساعت گذشته را جدا می‌کند.

4. تحویل داده‌ها و هشداردهی: تمام به‌روزرسانی‌ها را در Google Sheets بایگانی کرده و در صورت یافتن اطلاعات مرتبط جدید، اعلان‌های Slack ارسال می‌کند.

---

تجزیه و تحلیل دقیق گردش کار

۱. دریافت ورودی و زمان‌بندی

این بلوک گردش کار را روزانه آغاز کرده و لیست URLهای آژانس‌های نظارتی را برای خراشیدن آماده می‌کند.

گره‌ها (Nodes):

  • نظرسنجی روزانه نظارتی (Schedule Trigger)

* نقش: گردش کار را هر ۲۴ ساعت یک‌بار فعال می‌کند.

* پیکربندی: فاصله زمانی را روی ۲۴ ساعت تنظیم کرده و منطقه زمانی و ساعت شروع را در صورت نیاز تنظیم کنید.

  • منابع نظارتی (Code)

* نقش: آرایه‌ای از URLهای آژانس‌های نظارتی را تولید کرده و به هر کدام برچسب agency اختصاص می‌دهد.

* کد:

```javascript

const urls = [

'https://www.sec.gov/news/pressreleases',

'https://www.finra.org/rules-guidance/notices',

'https://www.esma.europa.eu/press-news'

];

return urls.map(url => ({

json: {

url,

agency: url.includes('sec.gov') ? 'SEC' : url.includes('finra.org') ? 'FINRA' : 'ESMA'

}

}));

```

  • تقسیم URLها (SplitInBatches)

* نقش: هر URL را به صورت جداگانه برای مدیریت بار خراشیدن پردازش می‌کند.

  • یادداشت دریافت منبع (Sticky Note)

* نقش: فرآیند زمان‌بندی و آماده‌سازی URL را مستند می‌کند.

---

۲. استخراج و تجزیه داده‌ها

این بلوک از ScrapeGraphAI برای استخراج داده‌های اخبار استفاده کرده و سپس نتایج را برای پردازش آسان‌تر مسطح می‌کند.

گره‌ها (Nodes):

  • خراشیدن به‌روزرسانی‌های نظارتی (ScrapeGraphAI)

* نقش: پنج به‌روزرسانی نظارتی اخیر را از هر URL ارائه شده استخراج می‌کند.

* پیکربندی:

* Prompt: درخواست داده‌های JSON با آرایه updates، که هر شیء حاوی title، summary، date (قالب ISO)، agency و source_url است.

* Website URL: به صورت پویا از URL ورودی تنظیم می‌شود.

  • مسطح کردن به‌روزرسانی‌ها (Code)

* نقش: آرایه‌های به‌روزرسانی تودرتو را به موارد JSON مسطح و جداگانه تبدیل کرده و فراداده (metadata) مانند زمان خراشیدن را اضافه می‌کند.

* کد: این گره داده‌های خراشیده شده را پیمایش کرده، هر به‌روزرسانی را استخراج کرده و در صورت لزوم فراداده جایگزین را اختصاص می‌دهد.

  • یادداشت پردازش و فیلتر (Sticky Note)

* نقش: مراحل استخراج و مسطح کردن داده‌ها را توضیح می‌دهد.

---

۳. فیلتر کردن داده‌ها

این بلوک اخبار استخراج و مسطح شده را فیلتر می‌کند تا فقط موارد منتشر شده در ۲۴ ساعت گذشته را شامل شود.

گره‌ها (Nodes):

  • فیلتر به‌روزرسانی‌های اخیر (Code)

* نقش: به‌روزرسانی‌های قدیمی‌تر از ۲۴ ساعت یا آن‌هایی که تاریخ نامعتبر دارند را حذف می‌کند.

* منطق: فیلد date هر به‌روزرسانی را با زمان فعلی مقایسه کرده و از حد قطع ۲۴ ساعته (۸۶,۴۰۰,۰۰۰ میلی‌ثانیه) استفاده می‌کند. به‌روزرسانی‌های با تاریخ‌های گمشده یا نادرست حذف می‌شوند.

---

۴. تحویل داده‌ها و هشداردهی

این بلوک نهایی تمام به‌روزرسانی‌های فیلتر شده را در Google Sheets بایگانی کرده و در صورت یافتن اطلاعات مرتبط جدید، هشدارهای Slack ارسال می‌کند.

گره‌ها (Nodes):

  • ثبت در Google Sheets (Google Sheets)

* نقش: هر به‌روزرسانی را به عنوان یک ردیف جدید در یک Google Sheet مشخص اضافه می‌کند.

* پیکربندی:

* Spreadsheet ID: {{YOUR_SPREADSHEET_ID}} را با شناسه سند واقعی خود جایگزین کنید یا از طریق متغیرهای محیطی پیکربندی کنید.

* Sheet Name: "RegUpdates".

* Column Mapping: فیلدهای به‌روزرسانی (Date, Title, Agency, Summary, Scraped At, Source URL) را به ستون‌های شیت نگاشت می‌کند.

* Operation: Append.

  • ارسال هشدار انطباق (Slack)

* نقش: هنگام شناسایی به‌روزرسانی‌های جدید، پیامی را در یک کانال Slack مشخص ارسال می‌کند.

* پیکربندی: از شناسه Webhook Slack برای ارسال پیام‌ها استفاده می‌کند. محتوای پیام را می‌توان در داخل گره پیکربندی کرد.

  • یادداشت تحویل (Sticky Note)

* نقش: توضیح می‌دهد که Google Sheets به عنوان بایگانی برای تمام داده‌ها عمل می‌کند، در حالی که هشدارهای Slack فقط برای به‌روزرسانی‌های جدید فعال می‌شوند.

---

جدول خلاصه

نام گره (Node Name)نوع گره (Node Type)نقش عملکردی (Functional Role)گره(های) ورودی (Input Node(s))گره(های) خروجی (Output Node(s))یادداشت چسبنده مرتبط (Associated Sticky Note)
نظرسنجی روزانه نظارتیSchedule Triggerماشه روزانه گردش کار-منابع نظارتی-
منابع نظارتیCodeتولید لیست URLهای نظارتینظرسنجی روزانه نظارتیتقسیم URLها-
تقسیم URLهاSplitInBatchesپردازش متوالی هر URLمنابع نظارتیخراشیدن به‌روزرسانی‌های نظارتییادداشت دریافت منبع (مستندسازی این مرحله دریافت)
خراشیدن به‌روزرسانی‌های نظارتیScrapeGraphAIاستخراج به‌روزرسانی‌های نظارتی ساختاریافتهتقسیم URLهامسطح کردن به‌روزرسانی‌هایادداشت پردازش و فیلتر (توضیح استخراج و مسطح کردن)
مسطح کردن به‌روزرسانی‌هاCodeمسطح کردن به‌روزرسانی‌های تودرتو به موارد جداگانهخراشیدن به‌روزرسانی‌های نظارتیفیلتر به‌روزرسانی‌های اخیریادداشت پردازش و فیلتر
فیلتر به‌روزرسانی‌های اخیرCodeفیلتر به‌روزرسانی‌ها از ۲۴ ساعت گذشتهمسطح کردن به‌روزرسانی‌هاثبت در Google Sheets، ارسال هشدار انطباقیادداشت پردازش و فیلتر
ثبت در Google SheetsGoogle Sheetsافزودن به‌روزرسانی‌ها به بایگانی Google Sheetفیلتر به‌روزرسانی‌های اخیر-یادداشت تحویل (بایگانی تمام داده‌ها)
ارسال هشدار انطباقSlackارسال هشدار Slack هنگام وجود به‌روزرسانی‌های جدیدفیلتر به‌روزرسانی‌های اخیر-یادداشت تحویل (هشدار انطباق فقط در به‌روزرسانی‌های جدید)
📝 نمای کلیSticky Noteنمای کلی گردش کار و دستورالعمل‌های راه‌اندازی--توضیحات کلی گردش کار و مراحل راه‌اندازی را ارائه می‌دهد
یادداشت دریافت منبعSticky Noteمستندسازی بلوک دریافت--ماشه روزانه و تقسیم URL را توضیح می‌دهد
یادداشت پردازش و فیلترSticky Noteمستندسازی فرآیند پردازش و فیلتر--نحوه پردازش داده‌های ScrapeGraphAI را توضیح می‌دهد
یادداشت تحویلSticky Noteمستندسازی مراحل تحویل داده‌ها و هشداردهی--بایگانی Google Sheets و هشداردهی Slack را توضیح می‌دهد

---

بازتولید گردش کار

برای بازسازی این گردش کار از ابتدا:

1. یک گره Schedule Trigger اضافه کنید:

* نام آن را "نظرسنجی روزانه نظارتی" بگذارید.

* آن را طوری پیکربندی کنید که هر ۲۴ ساعت یک‌بار فعال شود.

* منطقه زمانی و ساعت شروع را مطابق با نیازهای خود تنظیم کنید.

2. یک گره Code اضافه کنید:

* نام آن را "منابع نظارتی" بگذارید.

* کد جاوا اسکریپت زیر را در آن قرار دهید:

```javascript

const urls = [

'https://www.sec.gov/news/pressreleases',

'https://www.finra.org/rules-guidance/notices',

'https://www.esma.europa.eu/press-news'

];

return urls.map(url => ({

json: {

url,

agency: url.includes('sec.gov') ? 'SEC' : url.includes('finra.org') ? 'FINRA' : 'ESMA'

}

}));

```

* گره "نظرسنجی روزانه نظارتی" را به این گره "منابع نظارتی" متصل کنید.

3. یک گره SplitInBatches اضافه کنید:

* نام آن را "تقسیم URLها" بگذارید.

* گره "منابع نظارتی" را به این گره متصل کنید.

4. یک گره ScrapeGraphAI اضافه کنید:

* نام آن را "خراشیدن به‌روزرسانی‌های نظارتی" بگذارید.

* گره "تقسیم URLها" را به این گره متصل کنید.

* گره را با یک prompt برای استخراج title، summary، date، agency و source_url در قالب ISO در یک آرایه updates پیکربندی کنید. پارامتر websiteUrl را به صورت پویا تنظیم کنید.

5. یک گره Code دیگر اضافه کنید:

* نام آن را "مسطح کردن به‌روزرسانی‌ها" بگذارید.

* گره "خراشیدن به‌روزرسانی‌های نظارتی" را به این گره متصل کنید.

* کد جاوا اسکریپت را برای مسطح کردن آرایه تودرتوی updates به موارد جداگانه پیاده‌سازی کنید.

6. یک گره Code دیگر اضافه کنید:

* نام آن را "فیلتر به‌روزرسانی‌های اخیر" بگذارید.

* گره "مسطح کردن به‌روزرسانی‌ها" را به این گره متصل کنید.

* کد جاوا اسکریپت را برای فیلتر کردن موارد، نگه داشتن فقط موارد ۲۴ ساعت گذشته، پیاده‌سازی کنید.

7. یک گره Google Sheets اضافه کنید:

* نام آن را "ثبت در Google Sheets" بگذارید.

* گره "فیلتر به‌روزرسانی‌های اخیر" را به این گره متصل کنید.

* گره را با شناسه Spreadsheet خود، نام شیت "RegUpdates" پیکربندی کرده و فیلدهای مربوطه را نگاشت کنید. عملیات را روی "Append" تنظیم کنید.

8. یک گره Slack اضافه کنید:

* نام آن را "ارسال هشدار انطباق" بگذارید.

* گره "فیلتر به‌روزرسانی‌های اخیر" را به این گره متصل کنید.

* Webhook Slack و محتوای پیام را پیکربندی کنید.

9. یادداشت‌های چسبنده اضافه کنید:

* یادداشت‌های چسبنده را در سراسر گردش کار اضافه کنید تا هر مرحله را همانطور که در تجزیه و تحلیل دقیق توضیح داده شده است، مستند کنید.

Nodeهای استفاده‌شده

سوالات متداول

این گردش کار n8n چه کاری انجام می‌دهد؟

این گردش کار به طور خودکار اخبار نظارتی مالی را از وب‌سایت‌های مختلف آژانس‌ها جمع‌آوری می‌کند، اخبار ۲۴ ساعت گذشته را استخراج می‌کند، آن‌ها را در Google Sheets بایگانی می‌کند و هشدارهای Slack را برای اطلاعات جدید ارسال می‌کند.

چه ابزارهایی در این گردش کار استفاده شده است؟

این گردش کار از n8n، ScrapeGraphAI برای استخراج داده‌ها، Google Sheets برای بایگانی و Slack برای ارسال هشدار استفاده می‌کند.

چگونه این گردش کار اخبار را فیلتر می‌کند؟

گردش کار اخبار استخراج شده را بر اساس تاریخ انتشار فیلتر می‌کند تا فقط مواردی که در ۲۴ ساعت گذشته منتشر شده‌اند، در نظر گرفته شوند.

workflowهای مرتبط

این workflow در کاتالوگ Axeto.ai بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.