
تحلیل خودکار صورتحساب بانکی و گزارشدهی در اسلک
6 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۹
دانلود workflow
فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.
- فایل JSON را دانلود کنید.
- در n8n: Workflows → Import from File.
- Credentialهای هر node را متصل کنید.
- workflow را فعال کنید.
شناسه workflow: 13087 · منبع: کاتالوگ Axeto
تحلیل صورتحسابهای بانکی و دستهبندی هزینهها با گزارشهای ماهانه اسلک
این Workflow فرآیند تحلیل صورتحسابهای بانکی، دستهبندی هزینهها و تولید گزارشهای ماهانه برای اسلک را خودکار میکند. این ابزار برای پیگیری امور مالی شخصی، حسابداری کسبوکارهای کوچک و تحلیل بودجه طراحی شده است.
ویژگیهای کلیدی:
- نظارت خودکار ایمیل: شناسایی ایمیلهای صورتحساب بانکی دریافتی.
- استخراج صورتحساب PDF: استخراج دادههای ساختاریافته از صورتحسابهای PDF.
- دستهبندی مبتنی بر هوش مصنوعی: استفاده از هوش مصنوعی برای دستهبندی تراکنشها بر اساس اطلاعات تاجر.
- تحلیل هزینهها: محاسبه درآمد، هزینهها، نرخ پسانداز و تفکیک دستهبندیها.
- ماندگاری دادهها: ثبت خلاصههای ماهانه در یک Google Sheet.
- گزارشدهی اسلک: ارسال گزارشهای ماهانه قالببندی شده به یک کانال اسلک مشخص.
دسترسی به کاتالوگ Axeto.ai n8n: https://axeto.ai/n8n
---
تشریح Workflow
این Workflow از پنج بلوک اصلی تشکیل شده است:
1. نظارت و بازیابی ایمیل: دریافت ایمیلهای صورتحساب بانکی و پیوستهای آنها.
2. استخراج صورتحساب (PDF → داده ساختاریافته): استخراج جزئیات تراکنش و دستهبندیها از صورتحسابهای PDF با استفاده از PDF Vector.
3. تحلیل و غنیسازی هزینهها: محاسبه معیارهای مالی و قالببندی دادهها برای گزارشدهی.
4. ماندگاری (Google Sheets): افزودن خلاصهای از تحلیل صورتحساب به یک Google Sheet.
5. گزارشدهی (اسلک): ارسال یک گزارش ماهانه قالببندی شده به یک کانال اسلک.
---
۱. نظارت و بازیابی ایمیل
این بلوک مسئول شناسایی و بازیابی ایمیلهای جدید صورتحساب بانکی از جیمیل است.
#### Node ها:
- Gmail Trigger (
n8n-nodes-base.gmailTrigger)
* هدف: جیمیل را برای پیامهای ورودی جدید بررسی میکند.
* پیکربندی: تنظیم شده برای بررسی ایمیلهای جدید هر دقیقه. برای عدم شامل شدن اسپم یا سطل زباله پیکربندی شده است.
* خروجی: متادیتای پیامهای جدید جیمیل، از جمله شناسه پیام را منتشر میکند.
- Get a message (
n8n-nodes-base.gmail)
* هدف: محتوای کامل یک پیام جیمیل، از جمله پیوستها را بر اساس شناسه پیام از Trigger بازیابی میکند.
* پیکربندی:
* Operation: get message
* Message ID: از شناسه Gmail Trigger استفاده میکند (={{ $json.id }}).
* Attachments: برای دانلود پیوستها روی true تنظیم شده است.
* خروجی: محتوای کامل پیام و پیوستهای دانلود شده. Workflow انتظار دارد صورتحساب بانکی PDF در ویژگی باینری attachment_0 باشد.
---
۲. استخراج صورتحساب (PDF → داده ساختاریافته)
این بلوک از PDF Vector برای استخراج دادههای ساختاریافته از PDF صورتحساب بانکی دانلود شده استفاده میکند.
#### Node ها:
- PDF Vector - Extract Statement (
n8n-nodes-pdfvector.pdfVector)
* هدف: دادههای تراکنش، اطلاعات حساب و دستهبندی تراکنشها را از صورتحساب PDF استخراج میکند.
* پیکربندی:
* Resource: document
* Operation: extract
* Input type: file
* Binary property name: attachment_0 (از Node جیمیل قبلی).
* Prompt: هوش مصنوعی را برای استخراج فیلدهای خاص تراکنش (تاریخ، توضیحات، مبلغ، موجودی) و دستهبندی هر تراکنش با استفاده از قواعد کلمات کلیدی تاجر تعریف شده، راهنمایی میکند.
* Schema: ساختار JSON دقیقی را برای خروجی اعمال میکند، شامل accountNumber, statementPeriod, closingBalance و آرایهای از transactions (هر کدام با date, description, amount, category, balance).
* خروجی: دادههای JSON ساختاریافته شامل جزئیات صورتحساب استخراج شده، از جمله تراکنشهای دستهبندی شده، که در $json.data در دسترس است.
- Sticky Note1 (Spending Categories) (
n8n-nodes-base.stickyNote)
* هدف: به عنوان یک یادداشت مستندات در داخل Workflow، لیست دستهبندیهای هزینهی مورد نظر را نمایش میدهد.
* محتوا: "📊 Spending Categories: Income, Utilities, Groceries, Dining, Shopping, Transport, Subscriptions, Healthcare, Entertainment, Transfers"
* نکته: دستهبندیهای واقعی که توسط Schema PDF Vector اعمال میشوند ممکن است کمی متفاوت باشند (مثلاً شامل "Travel" و "Other").
---
۳. تحلیل و غنیسازی هزینهها
این بلوک دادههای استخراج شده را برای محاسبه معیارهای کلیدی مالی و آمادهسازی خلاصه پردازش میکند.
#### Node:
- Analyze Spending (
n8n-nodes-base.code)
* هدف: معیارهای مالی تجمعی را از دادههای صورتحساب استخراج شده محاسبه کرده و آنها را به رشتههای قابل خواندن توسط انسان قالببندی میکند.
* پیکربندی:
* دادههای استخراج شده از Node PDF Vector - Extract Statement را میخواند (const statement = $input.first().json.data;).
* محاسبات:
* totalSpending: مجموع مقادیر مطلق مبالغ تراکنش منفی.
* totalIncome: مجموع مبالغ تراکنش مثبت.
* categoryTotals: مجموع هزینهها بر اساس دستهبندی.
* categoryBreakdown: یک رشته قالببندی شده که هزینهها را بر اساس دستهبندی، مرتب شده بر اساس مبلغ، با درصدها نشان میدهد.
* largeTransactions: لیستی از تراکنشها که مبلغ مطلق آنها بیش از ۵۰۰ است.
savingsRate: محاسبه شده به صورت ((income - spending)/income)100، قالببندی شده تا یک رقم اعشار.
* transactionCount: تعداد کل تراکنشها.
* processedAt: زمان فعلی در فرمت ISO.
* خروجی: یک شیء JSON غنی شده شامل دادههای صورتحساب اصلی به علاوه تمام معیارهای محاسبه شده و رشتههای قالببندی شده.
---
۴. ماندگاری (Google Sheets)
این بلوک خلاصه دادههای ماهانه را برای نگهداری سوابق تاریخی در یک Google Sheet ثبت میکند.
#### Node:
- Log Monthly Summary (
n8n-nodes-base.googleSheets)
* هدف: یک ردیف جدید را در یک Google Sheet با معیارهای کلیدی مالی از تحلیل صورتحساب اضافه میکند.
* پیکربندی:
* Operation: append
* Document: یک Google Sheet به نام "Test-workflow" (شناسه: 18Jpu_lX1i9zkHo_TpS9lGYfvtRY7sHFo1qRbttj58YI).
* Sheet tab: "Trang tính1" (gid=0).
* نگاشت ستون: دادهها را به صراحت از خروجی Node Analyze Spending به ستونهای خاص نگاشت میکند:
* Period Start: ={{ $json.statementPeriod.startDate }}
* Period End: ={{ $json.statementPeriod.endDate }}
* Opening Balance: ={{ $json.openingBalance }}
* Closing Balance: ={{ $json.closingBalance }}
* Total Income: ={{ $json.totalIncome }}
* Total Spending: ={{ $json.totalSpending }}
* Savings Rate %: ={{ $json.savingsRate }}
* Transaction Count: ={{ $json.transactionCount }}
* Processed Date: ={{ $json.processedAt.split('T')[0] }} (فقط بخش تاریخ را استخراج میکند).
* خروجی: دادهها به عنوان یک ردیف جدید در Google Sheet مشخص شده اضافه میشوند.
---
۵. گزارشدهی (اسلک)
این بلوک نهایی یک گزارش مالی ماهانه قالببندی شده را به یک کانال اسلک ارسال میکند.
#### Node:
- Send Analysis Report (
n8n-nodes-base.slack)
* هدف: یک خلاصه مالی ماهانه دقیق را به یک کانال اسلک ارسال میکند.
* پیکربندی:
* Action: send message
* Target: channel
* Channel ID: C0A0JMC9VED (نام all-workflow).
* Message Text: از Markdown اسلک و عبارات n8n برای گنجاندن موارد زیر استفاده میکند:
* تاریخ شروع و پایان دوره صورتحساب.
* کل درآمد و هزینه (قالببندی شده تا دو رقم اعشار).
* تفکیک هزینهها بر اساس دستهبندی.
* لیستی از تراکنشهای بزرگ.
* نرخ پسانداز.
* ورودی: دادهها را از Node Log Monthly Summary دریافت میکند، اما محتوای پیام مستقیماً به خروجی Node Analyze Spending با استفاده از نام آن ارجاع میدهد ($('Analyze Spending').item.json...).
* خروجی: پیامی که به کانال اسلک پیکربندی شده ارسال میشود.
Nodeهای استفادهشده
سوالات متداول
این Workflow چگونه صورتحسابهای بانکی را دریافت میکند؟▾
این Workflow از طریق Gmail Trigger ایمیلهای حاوی صورتحساب بانکی را شناسایی و پیوستهای آنها را دانلود میکند.
چگونه دادههای صورتحساب PDF استخراج میشوند؟▾
از نود PDF Vector برای استخراج دادههای ساختاریافته مانند تاریخ، توضیحات، مبلغ و موجودی از صورتحسابهای PDF استفاده میشود.
دستهبندی هزینهها چگونه انجام میشود؟▾
هوش مصنوعی با استفاده از اطلاعات تاجر و قواعد تعریف شده، تراکنشها را به دستههای مختلف مانند درآمد، خوراک، حمل و نقل و سرگرمی دستهبندی میکند.
گزارش نهایی به کجا ارسال میشود؟▾
پس از تحلیل و جمعبندی دادهها، یک گزارش ماهانه قالببندی شده به کانال اسلک مشخص شده ارسال میگردد.
workflowهای مرتبط
- تحلیل خودکار مناقصهها با n8n، LlamaParse و GeminiDocument Extraction
- طبقهبندی خودکار حوادث امنیتی با GPT-4 و Google SheetsSecOps
- دستهبندی خودکار ایمیل جیمیل با GPT-4o و هشدار SlackAI Summarization
- دستهبندی خودکار پستهای وبلاگ با هوش مصنوعی و گیتهابContent Creation
- خودکارسازی اصلاح نقطه پایانی با Wazuh، ClamAV و GPT-4SecOps
- تغییر نام خودکار گرههای n8n با هوش مصنوعیEngineering
