مقدمه
ثبت خودکار فاکتورهای دریافتی با n8n
N8Nابزاری است که به کمک آن می توانید در مدتزمان کوتاهی، فرایندهای خود را با هوش مصنوعی خودکار کنید و از مزایای اتوماسیون هوشمند بهره مند شوید.
N8N برای چه کسب و کارهایی مناسب است:
اگر سازمان شما کوچک می باشد و هم اکنون بسیاری از کار های خود را با نرم افزار هایی همچون اکسل انجام می دهید، N8N برای کسب و کار شما ایده آل است و در صورتی که کسب و کاری متوسط یا بزرگ دارید می توانید بخش های بسیاری از فرایند های غیر کلیدی خود را با این ابزار هوشمند کنید.
اگر به پیادهسازی اختصاصی، اتصال n8n به نرمافزارهای سازمانی یا سفارشیسازی Workflowها متناسب با کسبوکارتان نیاز دارید، Danix با بررسی نیازهای کسبوکار شما، میتواند این فرایند را از طراحی تا استقرار برای شما انجام دهیم.
برای کسب و کارهای کوچک به این لینک مراجعه کنید و برای کسب و کارهای بزرگ و متوسط میتوانید از این لینک استفاده نمایید.
همچنین اگر ترجیح میدهید شخصاً نصب و راهاندازی را انجام دهید، میتوانید از اطلاعات موجود در مقالات، دسته N8N استفاده کنید .همچنین می توانید template موجود در این workflow را به صورت رایگان از این قسمت دانلود کنید.
پسوورد فایل فشرده: danixai.com
ثبت خودکار فاکتورهای دریافتی با n8n
قبل از شروع درثبت خودکار فاکتورهای دریافتی با n8n
اگر هنوز n8n را نصب نکردهاید، پیشنهاد میکنیم ابتدا مقاله «آموزش n8n» را مطالعه کنید. در آن مقاله، مراحل نصب با Node.js و Docker، راهاندازی اولیه و ساخت اولین Workflow بهصورت کامل آموزش داده شده است. پس از نصب و راهاندازی، به این مقاله بازگردید و مراحل پیادهسازی این Workflow را دنبال کنید.
این Workflow چه کاری انجام میدهد؟
این Workflow برای دریافت و پردازش خودکار فاکتورهای PDF طراحی شده است. اجرای آن با Node مربوط به Gmail آغاز میشود. این Node ایمیلهای ورودی را بررسی میکند و پیامهایی را که از فرستنده تعیینشده دریافت شدهاند و فایل پیوست دارند، وارد فرآیند میکند.
پس از دریافت ایمیل، Workflow Labelهای آن را نیز بررسی میکند. این کار به سیستم اجازه میدهد متوجه شود آیا فاکتور قبلاً پردازش شده است یا خیر.
اگر فایل پیوست PDF باشد و ایمیل Label مربوط به پردازششدن را نداشته باشد، فایل به LlamaParse ارسال میشود. LlamaParse برای پردازش PDFهایی که ممکن است دارای جدول، ساختار پیچیده و اطلاعات چندبخشی باشند استفاده شده است.
پس از آمادهشدن نتیجه، متن استخراجشده به زنجیره LLM ارسال میشود. OpenAI بر اساس Prompt مشخصشده اطلاعات فاکتور را استخراج میکند و Structured Output Parser ساختار خروجی را مشخص میکند.
در پایان، اطلاعات استخراجشده به Google Sheets اضافه میشود. سپس Label مربوط به پردازش موفق به ایمیل اصلی اضافه میشود تا Workflow در اجرای بعدی همان فاکتور را دوباره پردازش نکند.
کاربردهای این Workflow درثبت خودکار فاکتورهای دریافتی با n8n
۱. ثبت خودکار فاکتورهای دریافتی
شرکتهایی که روزانه تعداد زیادی فاکتور از طریق ایمیل دریافت میکنند میتوانند اطلاعات فاکتورها را بدون ورود دستی در Google Sheets ثبت کنند.
۲. اتوماسیون حسابداری
اطلاعاتی مانند مبلغ کل، مالیات، شماره فاکتور و نام تأمینکننده میتوانند مستقیماً وارد سیستم ثبت مالی شوند.
۳. کنترل و تطبیق فاکتورها
Google Sheets میتواند بهعنوان یک جدول اولیه برای بررسی و تطبیق فاکتورهای دریافتی با سفارشهای خرید مورد استفاده قرار گیرد.
۴. مدیریت اطلاعات تأمینکنندگان
نام، آدرس و شماره شناسایی مالیاتی تأمینکننده از فاکتور استخراج شده و میتواند برای ساخت یا بهروزرسانی اطلاعات Vendor استفاده شود.
۵. ساخت دیتابیس فاکتورها
بهجای ذخیره اطلاعات در فایلهای PDF پراکنده، میتوان دادههای استخراجشده را در Google Sheets، Airtable یا Database ذخیره کرد.
۶. پردازش خودکار ایمیلهای مالی
این Workflow میتواند بخشی از یک سیستم بزرگتر مدیریت ایمیلهای مالی باشد و بعداً قابلیتهایی مانند ارسال هشدار یا تأیید حسابداری نیز به آن اضافه شود.
۷. کاهش ورود اطلاعات دستی
کاربر دیگر مجبور نیست تکتک فیلدهای فاکتور را از PDF بخواند و وارد جدول کند. مدل زبانی این کار را بهصورت خودکار انجام میدهد.
۸. اتصال به سیستمهای ERP
خروجی ساختاریافته Workflow را میتوان به API یک نرمافزار حسابداری یا ERP ارسال کرد تا ثبت اطلاعات بهصورت کاملاً خودکار انجام شود.
پیشنیازها درثبت خودکار فاکتورهای دریافتی با n8n
برای اجرای این Template به چند سرویس و Credential نیاز دارید:
- نصب و راهاندازی n8n
- حساب Gmail
- دسترسی OAuth به Gmail
- ایجاد Label در Gmail با نامی مانند
invoice synced - یک حساب LlamaCloud یا LlamaParse
- API Key مربوط به LlamaParse
- حساب OpenAI و API Key
- دسترسی Google Sheets
- یک Google Sheet برای ذخیره اطلاعات
- دسترسی اینترنت برای ارتباط n8n با سرویسهای خارجی
همچنین فایلهای فاکتور باید در قالب PDF باشند؛ زیرا شرط موجود در Workflow فقط MIME Type برابر با application/pdf را قبول میکند.
دانلود Template درثبت خودکار فاکتورهای دریافتی با n8n
فایل JSON این Workflow را از این قسمت دانلود کنید.
پسوورد فایل فشرده: danixai.com
آموزش Import کردن Workflow درثبت خودکار فاکتورهای دریافتی با n8n
- وارد داشبورد n8n شوید.
- روی Import from File کلیک کنید.
- فایل JSON را انتخاب کنید.
- Workflow ایجاد خواهد شد.
- Credentialهای موردنیاز را تنظیم کنید.
ساختار Workflow درثبت خودکار فاکتورهای دریافتی با n8n
ساختار اصلی این Workflow به شکل زیر است:
Gmail Trigger
↓
Split Out Labels
↓
Get Labels Names
↓
Combine Label Names
↓
Email with Label Names
↓
Should Process Email?
↓
Upload to LlamaParse
↓
Get Processing Status
↓
Is Job Ready?
↓
Get Parsed Invoice Data
↓
Apply Data Extraction Rules
↓
Map Output
↓
Google Sheets
↓
Add “invoice synced” Label
در مسیر پردازش LlamaParse، اگر وضعیت Job برابر PENDING باشد، Workflow وارد Node مربوط به Wait میشود و پس از یک ثانیه دوباره وضعیت پردازش را بررسی میکند.
آموزش کامل تمام Nodeها درثبت خودکار فاکتورهای دریافتی با n8n
Receiving Invoices
وظیفه Node: این Node یک Gmail Trigger است و نقطه شروع Workflow محسوب میشود. وظیفه آن شناسایی ایمیلهای جدیدی است که شرایط مشخصشده را دارند.
ورودی: ایمیلهای حساب Gmail متصلشده.
خروجی: اطلاعات ایمیل، Labelها و فایل پیوست در قالب دادههای n8n.
تنظیمات مهم: Trigger روی دریافت ایمیلهای دارای Attachment تنظیم شده و فرستنده نیز روی invoices@paypal.com قرار گرفته است.
نکات قابل تغییر: فرستنده را میتوانید به ایمیل واقعی شرکت یا تأمینکننده تغییر دهید. همچنین فاصله بررسی روی هر دقیقه قرار گرفته است.
دلیل استفاده: بدون این Trigger، فرآیند استخراج خودکار با دریافت ایمیل شروع نمیشود.
Split Out Labels
وظیفه Node: این Node آرایه labelIds مربوط به ایمیل را به آیتمهای جداگانه تبدیل میکند.
ورودی: شناسههای Label موجود روی ایمیل.
خروجی: هر Label بهصورت یک آیتم جداگانه در اختیار Node بعدی قرار میگیرد.
تنظیمات مهم: فیلد labelIds برای Split شدن انتخاب شده است.
نکات قابل تغییر: اگر ساختار خروجی Gmail تغییر کند، باید نام فیلد بررسی شود.
دلیل استفاده: Gmail شناسه Labelها را ارائه میکند، اما Workflow برای تصمیمگیری به نام Labelها نیاز دارد.
Get Labels Names
وظیفه Node: این Node با استفاده از Gmail API، نام واقعی هر Label را از روی شناسه آن دریافت میکند.
ورودی: شناسه Label تولیدشده توسط Node قبلی.
خروجی: اطلاعات Label، از جمله نام آن.
تنظیمات مهم: Resource روی label و Operation روی get قرار دارد.
نکات قابل تغییر: Credential Gmail باید دسترسی لازم برای خواندن Labelها را داشته باشد.
دلیل استفاده: شرط بعدی Workflow بر اساس نام Label تصمیم میگیرد، نه فقط شناسه آن.
Combine Label Names
وظیفه Node: این Node نام Labelهای مختلف یک ایمیل را جمعآوری میکند.
ورودی: خروجی Node مربوط به دریافت نام Labelها.
خروجی: فیلدی به نام labels که مجموعه نام Labelها را در خود نگه میدارد.
تنظیمات مهم: Aggregate روی فیلد name انجام میشود و نتیجه در فیلد labels قرار میگیرد.
نکات قابل تغییر: اگر قصد بررسی Label دیگری دارید، لازم نیست این Node را تغییر دهید؛ کافی است شرط مربوط به آن را اصلاح کنید.
دلیل استفاده: Workflow باید بداند ایمیل چه Labelهایی دارد تا از پردازش دوباره جلوگیری کند.
Email with Label Names
وظیفه Node: این Merge Node اطلاعات اصلی ایمیل را با نام Labelهای استخراجشده ترکیب میکند.
ورودی: اطلاعات Gmail و خروجی Aggregate.
خروجی: یک داده ترکیبی شامل اطلاعات ایمیل و Labelهای قابل خواندن.
تنظیمات مهم: حالت Combine و روش Multiplex برای ترکیب دادهها استفاده شده است.
نکات قابل تغییر: هنگام تغییر ساختار دادههای Gmail باید رفتار این Merge بررسی شود.
دلیل استفاده: Node شرط بعدی به اطلاعات ایمیل و Labelها بهصورت همزمان نیاز دارد.
Should Process Email
این Node یک IF است که تعیین میکند آیا ایمیل وارد فرآیند پردازش شود یا خیر.
ورودی: ایمیل دارای Labelهای خواندهشده و اطلاعات فایل پیوست.
خروجی: مسیر True برای ایمیلهای قابل پردازش و مسیر False برای مواردی که شرایط را ندارند.
دو شرط اصلی بررسی میشود. نخست، MIME Type فایل باید application/pdf باشد. دوم، Label مربوط به invoice synced نباید در لیست Labelهای ایمیل وجود داشته باشد.
این طراحی باعث میشود Workflow فقط فاکتورهای PDF جدید را پردازش کند.
Upload to LlamaParse
این Node یک HTTP Request است که فایل PDF را به API سرویس LlamaParse ارسال میکند.
ورودی: فایل PDF موجود در فیلد Binary با نام attachment_0.
خروجی: اطلاعات Job ایجادشده در LlamaParse، از جمله شناسه پردازش.
تنظیمات مهم: درخواست با متد POST و نوع multipart/form-data ارسال میشود.
احراز هویت: Header Authentication برای ارسال Credential مربوط به API استفاده شده است.
LlamaParse برای پردازش اسناد پیچیده مناسب است و در سناریوهایی که فاکتور دارای جدول و ساختار چندستونه است، میتواند نسبت به استخراج ساده متن کاربرد بیشتری داشته باشد.
Get Processing Status
وظیفه Node: وضعیت Job ایجادشده در LlamaParse را بررسی میکند.
ورودی: شناسه Job برگشتی از Upload.
خروجی: وضعیت پردازش مانند SUCCESS، ERROR، CANCELED یا PENDING.
تنظیمات مهم: شناسه Job بهصورت Expression در URL درخواست API قرار میگیرد.
نکات قابل تغییر: اگر نسخه API LlamaParse تغییر کند، Endpoint باید مطابق API جدید اصلاح شود.
دلیل استفاده: پردازش PDF ممکن است فوری تمام نشود و Workflow باید آمادهشدن نتیجه را تشخیص دهد.
Is Job Ready
این Node یک Switch است و بر اساس وضعیت پردازش، مسیر مناسب را انتخاب میکند.
چهار حالت در Workflow تعریف شده است:
SUCCESSERRORCANCELEDPENDING
اگر وضعیت SUCCESS باشد، Workflow به Node دریافت نتیجه میرود. اگر PENDING باشد، به Wait منتقل میشود.
در نسخه فعلی، خروجیهای ERROR و CANCELED مسیر عملیاتی بعدی ندارند. بنابراین برای محیط Production بهتر است برای آنها مسیر ثبت خطا یا ارسال هشدار اضافه شود.
Wait to stay within service limits
وظیفه Node: اجرای Workflow را برای مدت کوتاهی متوقف میکند.
ورودی: وضعیت PENDING.
خروجی: پس از پایان زمان انتظار، Workflow دوباره به Get Processing Status متصل میشود.
تنظیمات مهم: مقدار Wait برابر یک ثانیه تنظیم شده است.
دلیل استفاده: جلوگیری از ارسال درخواستهای متوالی و بیوقفه برای بررسی وضعیت Job.
در پروژههای واقعی میتوان این مقدار را بیشتر کرد تا تعداد درخواستهای API کاهش یابد. مقدار مناسب به سرعت پردازش فایل و محدودیت سرویس LlamaParse بستگی دارد.
Get Parsed Invoice Data
پس از موفقشدن Job، این HTTP Request نتیجه Markdown پردازششده را از LlamaParse دریافت میکند.
ورودی: شناسه Job موفق.
خروجی: متن Markdown مربوط به فاکتور.
تنظیمات مهم: Endpoint نتیجه با شناسه Job ساخته میشود و احراز هویت توسط Header Authentication انجام میشود.
این Markdown ورودی اصلی مرحله هوش مصنوعی است. در واقع LlamaParse نقش تبدیل سند PDF به محتوای قابل پردازش را دارد و OpenAI در مرحله بعد مسئول استخراج دادههای موردنظر است.
Apply Data Extraction Rules
این Node یک Basic LLM Chain است و قلب بخش هوش مصنوعی Workflow محسوب میشود.
وظیفه: استخراج اطلاعات مشخص از Markdown فاکتور.
Prompt از مدل میخواهد تاریخ فاکتور، شماره فاکتور، شماره سفارش خرید، اطلاعات فروشنده و خریدار، اطلاعات مالیاتی، آدرسها، اقلام، قیمتها و مبلغ نهایی را استخراج کند.
همچنین به مدل گفته شده اگر اطلاعاتی در فاکتور وجود نداشت، آن قسمت را خالی بگذارد.
دلیل استفاده: تبدیل متن خام فاکتور به اطلاعات ساختاریافته قابل استفاده در سیستمهای دیگر.
OpenAI Model
این Node مدل زبانی مورد استفاده در Chain را تأمین میکند.
مدل تنظیمشده در Template، gpt-3.5-turbo-1106 است و Temperature روی صفر قرار گرفته است.
Temperature صفر برای چنین سناریویی انتخاب مناسبی است، زیرا هدف Workflow تولید متن خلاقانه نیست؛ بلکه استخراج داده با ساختار ثابت اهمیت دارد.
در پروژههای جدید میتوانید مدل مورد استفاده را بر اساس نیاز، هزینه، سرعت و کیفیت استخراج تغییر دهید.
Structured Output Parser
Structured Output Parser وظیفه دارد مشخص کند خروجی مدل باید چه ساختاری داشته باشد.
در Schema تعریفشده، فیلدهایی مانند تاریخ فاکتور، شماره فاکتور، نام تأمینکننده، اطلاعات مشتری، آدرس حمل، اقلام فاکتور و مبالغ مالی وجود دارند.
فیلد Line items نیز برای نگهداری چند قلم کالا یا خدمت بهصورت آرایه طراحی شده است.
استفاده از این Parser اهمیت زیادی دارد، زیرا خروجی مدل را برای انتقال به مراحل بعدی منظمتر میکند و نیاز به پاکسازی دستی دادهها را کاهش میدهد.
Map Output
این Node یک Set Node است که خروجی نهایی LLM را در اختیار مرحله ذخیرهسازی قرار میدهد.
ورودی: خروجی Node مربوط به استخراج اطلاعات.
خروجی: مقدار موجود در فیلد output.
تنظیمات مهم: حالت Raw انتخاب شده و مقدار $json.output بهعنوان JSON Output قرار گرفته است.
دلیل استفاده: سادهسازی ساختار داده پیش از ارسال به Google Sheets.
Append to Reconciliation Sheet
این Node اطلاعات استخراجشده را به Google Sheets اضافه میکند.
ورودی: خروجی Map Output.
خروجی: نتیجه عملیات Append در Google Sheets.
تنظیمات مهم: Operation روی append قرار گرفته و ستونهای مختلف فاکتور در Schema تعریف شدهاند.
ستونهایی مانند تاریخ، شماره فاکتور، نام تأمینکننده، نام مشتری، شماره مالیاتی، اقلام، مبلغ قبل از مالیات، مبلغ همراه مالیات و مبلغ نهایی در نظر گرفته شدهاند.
Google Sheets در اینجا نقش دیتاست مرکزی ساده را ایفا میکند. در پروژههای بزرگتر میتوان این Node را با Database، Airtable، Excel یا API سیستم حسابداری جایگزین کرد.
Add “invoice synced” Label
این Node در پایان Workflow یک Label به ایمیل اصلی اضافه میکند.
ورودی: شناسه ایمیل اصلی که از Gmail Trigger دریافت شده است.
خروجی: نتیجه عملیات افزودن Label.
تنظیمات مهم: Operation روی addLabels قرار دارد.
این Label نقش یک علامت پردازششدن را دارد. در اجرای بعدی، شرط Should Process Email وجود این Label را بررسی میکند و از پردازش دوباره همان ایمیل جلوگیری خواهد شد.
Sticky Noteهای Workflow درثبت خودکار فاکتورهای دریافتی با n8n
Template شامل چند Sticky Note نیز است. این Nodeها در اجرای Workflow نقشی ندارند و صرفاً برای مستندسازی طراحی شدهاند.
Sticky Note مربوط به Gmail توضیح میدهد که ایمیلهای دارای Attachment باید بررسی شوند. Note مربوط به LlamaParse دلیل استفاده از سرویس پردازش PDF را توضیح میدهد.
Sticky Note مربوط به LLM نیز به استخراج دادههای ساختاریافته اشاره میکند. Note دیگری درباره Label، دلیل استفاده از invoice synced برای جلوگیری از Duplicate Processing را مشخص میکند.
دو Note دیگر نیز برای مشخصکردن بخشهای قابل تغییر Workflow قرار گرفتهاند؛ یکی تغییر فیلتر ایمیل و دیگری تنظیم Google Sheets.
این مستندات برای کاربری که Template را Import میکند مفید هستند، اما حذف آنها هیچ تأثیری روی منطق اجرای Workflow ندارد.
نحوه شخصیسازی Workflow درثبت خودکار فاکتورهای دریافتی با n8n
تغییر فرستنده ایمیل
در Node Receiving Invoices میتوانید مقدار Sender را تغییر دهید. اگر فاکتورها از چند شرکت دریافت میشوند، میتوانید منطق فیلتر را گستردهتر کنید.
همچنین بهتر است شرط مربوط به Attachment را متناسب با ساختار واقعی ایمیلهای خود بررسی کنید.
تغییر Label
Label invoice synced فقط یک نمونه برای علامتگذاری ایمیل پردازششده است. میتوانید نام آن را تغییر دهید، اما باید مقدار مورد استفاده در شرط Should Process Email? نیز هماهنگ شود.
همچنین شناسه Label موجود در Node نهایی Gmail باید به Label واقعی شما اشاره کند.
تغییر Prompt
Prompt مربوط به Apply Data Extraction Rules مهمترین بخش قابل شخصیسازی است.
برای مثال میتوانید فیلدهایی مانند شماره حساب بانکی، کد اقتصادی، تاریخ سررسید، روش پرداخت یا شناسه قرارداد را به Prompt اضافه کنید.
تغییر Schema
اگر فیلد جدیدی به Prompt اضافه میکنید، بهتر است Schema در Structured Output Parser نیز تغییر کند.
برای مثال اگر Due date به اطلاعات موردنیاز اضافه شده است، باید نوع و ساختار این فیلد نیز در Parser تعریف شود.
تغییر مدل OpenAI
در Node OpenAI Model میتوانید مدل زبانی را متناسب با نیاز پروژه تغییر دهید.
برای اسناد حساس مالی، کیفیت استخراج اهمیت زیادی دارد. بنابراین بهتر است قبل از انتخاب نهایی مدل، چند نمونه فاکتور واقعی را آزمایش کنید.
تغییر مقصد داده
Google Sheets تنها مقصد ممکن نیست. میتوانید Node Append to Reconciliation Sheet را با PostgreSQL، MySQL، Airtable، Excel یا API نرمافزار حسابداری جایگزین کنید.
تغییر زمانبندی
Gmail Trigger در این Template تقریباً هر یک دقیقه ایمیلها را بررسی میکند.
در صورت افزایش حجم ایمیلها یا محدودیت منابع میتوانید روش Trigger و فاصله بررسی را متناسب با معماری خود تغییر دهید.
مزایای استفاده از این Workflow درثبت خودکار فاکتورهای دریافتی با n8n
۱. کاهش ورود اطلاعات دستی
کاربر لازم نیست اطلاعات فاکتور را بهصورت دستی از PDF وارد جدول کند.
۲. پردازش خودکار ایمیل
فرآیند از دریافت ایمیل آغاز میشود و نیازی به اجرای دستی Workflow ندارد.
۳. استخراج اطلاعات ساختاریافته
بهجای دریافت یک متن طولانی، اطلاعات در قالب فیلدهای مشخص تولید میشود.
۴. پردازش PDFهای پیچیده
استفاده از LlamaParse برای اسنادی که ساختار جدولی دارند، مزیت مهمی برای این سناریو محسوب میشود.
۵. جلوگیری از پردازش تکراری
Label موجود در Gmail کمک میکند فاکتور پردازششده دوباره وارد فرآیند نشود.
۶. قابلیت توسعه بالا
خروجی Workflow را میتوان به دیتابیس، CRM، ERP یا سیستم حسابداری متصل کرد.
۷. کاهش خطای انسانی
اتوماسیون ورود اطلاعات میتواند خطاهای ناشی از تایپ دستی را کاهش دهد؛ البته خروجی AI همچنان باید در فرآیندهای حساس کنترل شود.
نکات مهم درثبت خودکار فاکتورهای دریافتی با n8n
- قبل از اجرای Workflow، Credentialهای Gmail، OpenAI، LlamaParse و Google Sheets را تنظیم کنید.
- Label مورد استفاده برای ایمیلهای پردازششده باید در Gmail وجود داشته باشد.
- نام Label و شناسه آن در Node نهایی Gmail باید با حساب شما هماهنگ شود.
- این Template فقط PDF را در شرط اصلی پردازش میکند و فایلهای تصویری یا سایر فرمتها وارد مسیر اصلی نمیشوند.
- API Key مربوط به LlamaParse و OpenAI را در متن Workflow یا فایل عمومی قرار ندهید.
- فاکتورهای مالی ممکن است حاوی اطلاعات حساس باشند؛ قبل از ارسال آنها به سرویسهای ابری، سیاستهای امنیتی سازمان را بررسی کنید.
- خروجی مدل هوش مصنوعی را برای فرآیندهای مالی حساس بدون کنترل انسانی معتبر فرض نکنید.
- در صورت افزایش تعداد فاکتورها، محدودیت API و هزینه سرویسهای خارجی را بررسی کنید.
- برای خطاهای LlamaParse در مسیر
ERRORوCANCELEDبهتر است یک مسیر مدیریت خطا ایجاد کنید. - اگر فاکتورهای شما زبان، ساختار یا قالب متفاوتی دارند، Prompt را با نمونههای واقعی آزمایش و اصلاح کنید.
خطاهای رایج (Troubleshooting) درثبت خودکار فاکتورهای دریافتی با n8n
فاکتور اصلاً پردازش نمیشود
علت: فایل ممکن است PDF نباشد یا MIME Type آن چیزی غیر از application/pdf باشد.
راهحل: اطلاعات Binary ایمیل را بررسی کنید و مطمئن شوید فایل واقعاً با MIME Type مناسب دریافت شده است.
ایمیل دوباره پردازش نمیشود
علت: احتمالاً Label invoice synced روی ایمیل وجود دارد.
راهحل: این رفتار طبیعی Workflow است. اگر میخواهید ایمیل دوباره پردازش شود، Label را حذف کنید یا شرط IF را تغییر دهید.
LlamaParse نتیجه نمیدهد
علت: API Key اشتباه، Credential نامعتبر، فایل نامناسب یا مشکل در API میتواند باعث خطا شود.
راهحل: Node Upload to LlamaParse را بهصورت جداگانه اجرا کنید و Response API را بررسی کنید.
Workflow در وضعیت PENDING باقی میماند
علت: پردازش فایل در LlamaParse هنوز تمام نشده است یا سرویس با تأخیر پاسخ میدهد.
راهحل: مقدار Wait را افزایش دهید و وضعیت Job را مجدداً بررسی کنید. همچنین Response مربوط به API را بررسی کنید.
اطلاعات فاکتور ناقص استخراج میشود
علت: ممکن است PDF کیفیت مناسبی نداشته باشد، ساختار آن پیچیده باشد یا Prompt اطلاعات موردنظر را بهدرستی مشخص نکرده باشد.
راهحل: Prompt را دقیقتر کنید و نمونههای واقعی فاکتور را آزمایش کنید. در صورت نیاز Schema خروجی را نیز اصلاح کنید.
Google Sheets اطلاعات را ثبت نمیکند
علت: Credential، شناسه Spreadsheet، Sheet یا ساختار ستونها ممکن است اشتباه باشد.
راهحل: اتصال Google Sheets را بررسی کنید و مطمئن شوید ستونهای Sheet با فیلدهای خروجی Workflow سازگاری دارند.
Label نهایی به ایمیل اضافه نمیشود
علت: شناسه Label موجود در Node Add "invoice synced" Label متعلق به حساب Gmail دیگری است یا Credential دسترسی کافی ندارد.
راهحل: Label را در حساب Gmail خود ایجاد کنید و شناسه صحیح آن را در Node قرار دهید.
جمعبندی
این Template نمونهای کاربردی از ترکیب n8n، Gmail، LlamaParse، OpenAI و Google Sheets برای اتوماسیون فرآیندهای مالی است. هدف اصلی آن دریافت فاکتور PDF از ایمیل، استخراج اطلاعات مهم و ثبت ساختاریافته آنها در یک جدول است.
در این Workflow، Gmail نقطه شروع فرآیند است و Labelها برای کنترل وضعیت پردازش استفاده میشوند. LlamaParse وظیفه پردازش ساختار PDF را بر عهده دارد و نتیجه را برای مرحله هوش مصنوعی آماده میکند. سپس OpenAI با کمک Prompt و Structured Output Parser اطلاعات موردنیاز را استخراج میکند.
مزیت مهم این معماری، جداکردن مراحل پردازش سند از استخراج اطلاعات است. این موضوع باعث میشود در آینده بتوان هر بخش را مستقل تغییر داد. برای مثال میتوان مدل هوش مصنوعی، مقصد ذخیرهسازی یا قوانین استخراج را تغییر داد.
استخراج اطلاعات فاکتور با n8n میتواند نقطه شروع مناسبی برای ساخت یک سیستم کاملتر مدیریت اسناد باشد. با اضافهکردن Database، سیستم حسابداری، کنترل انسانی، گزارشگیری و اعلان خطا میتوان همین Workflow را به یک راهکار اتوماسیون مالی قابل توسعه تبدیل کرد.



