أتمتة اعتماد الفواتير: مطابقة فواتير الموردين مع أوامر الشراء باستخدام Power Automate والذكاء الاصطناعي
في دليل استخراج بيانات الفواتير استخرجنا الأرقام من فواتير PDF. وهذا هو الجزء السهل. أما العمل الحقيقي في الحسابات الدائنة فيبدأ بعد ذلك: إلى أي أمر شراء تنتمي هذه الفاتورة، وهل هي ضمن الميزانية، ومن يجب أن يعتمدها، وكيف تصل إلى النظام المالي؟
في هذا الدليل نبني ذلك النصف الثاني. تصل فواتير الموردين إلى صندوق بريد مشترك للحسابات الدائنة. يقرأ موجّه (prompt) ذكاء اصطناعي كل ملف PDF ويعثر على أمر الشراء المطابق، حتى عندما ينسى المورد طباعة رقم أمر الشراء. يتحقق التدفق من المبلغ مقابل أمر الشراء، ويرسل الفاتورة إلى الشخص المسؤول عن ذلك الأمر، ويضيف اعتمادًا ماليًا لأي مبلغ يتجاوز 10,000 دولار، ويسجّل كل قرار في SharePoint.
إليك قائمة الحسابات الدائنة بعد دفعة واحدة من الفواتير التي تحاكي الواقع:

ما الذي ستبنيه
صندوق بريد واحد للحسابات الدائنة: يرسل الموردون الفواتير إلى ap@yourcompany.com، وهو صندوق بريد مشترك يراه الفريق بأكمله.
ذكاء اصطناعي يقرأ ويطابق: موجّه يستخرج حقول الفاتورة ويختار أمر الشراء المفتوح الصحيح من قائمتك.
فحص هامش السماح: إذا تجاوزت الفاتورة الرصيد المتبقي في أمر الشراء بأكثر من 5%، يتوقف التدفق وتُصنَّف الفاتورة Over PO (تتجاوز أمر الشراء).
المعتمِد الصحيح: يذهب طلب الاعتماد إلى صاحب أمر الشراء، لا إلى قائمة انتظار مشتركة للحسابات الدائنة.
التصعيد: أي مبلغ يتجاوز 10,000 دولار يحتاج أيضًا إلى موافقة مدير مالي.
سجل واضح: تُحفظ الحالة ونتيجة المطابقة والمعتمِد والتعليقات على كل فاتورة.
خطوة أخيرة اختيارية: ترحيل الفواتير المعتمدة إلى نظامك المالي عبر طلب HTTP.
ما الذي ستحتاج إليه
Microsoft 365 مع صندوق بريد مشترك للحسابات الدائنة.
موقع SharePoint للقوائم. استخدمنا موقع إدارة العقارات نفسه المستخدم في أدلتنا الأخرى.
Power Automate مع AI Builder أو Copilot Credits لتشغيل الموجّه. في اختباراتنا استهلكت كل فاتورة نحو 0.3 رصيد.
موصّل Approvals، وهو مضمَّن في Power Automate.
الخطوة 1: قائمة أوامر الشراء
قائمة أوامر الشراء هي ما يجعل التوجيه ممكنًا. يحتوي كل صف على رقم أمر الشراء والمورد والموقع والوصف ورمز الحساب في دفتر الأستاذ (GL) ومبلغ أمر الشراء وما فُوتِر منه حتى الآن، والأهم من ذلك صاحب أمر الشراء، أي الشخص الذي طلب العمل وسيعتمد الفاتورة.

أضف أيضًا عمود POOwnerEmail. إنه مخفي في لقطة الشاشة، لكنه العنوان الذي يُرسَل إليه طلب الاعتماد.
الخطوة 2: قائمة AP Invoices والمكتبة
أنشئ قائمة AP Invoices تحتوي على أعمدة للمورد وتاريخ الفاتورة وتاريخ الاستحقاق ورقم أمر الشراء والموقع ورمز GL والمجموع الفرعي والضريبة والإجمالي، وعمود اختيار Status (Received، Needs review، Over PO، Pending approval، Approved، Rejected، Posted)، إضافة إلى MatchResult وApprover وApprovedOn وApprovalComments وConfidence ورابط إلى ملف PDF. وأضف مكتبة مستندات باسم AP Invoice Files للاحتفاظ بنسخة من كل فاتورة.
الخطوة 3: علِّم موجّهًا قراءة الفواتير والعثور على أمر الشراء
في Power Automate، انتقل إلى AI hub > Prompts > Build your own prompt. لهذا الموجّه مدخلان:
Invoice: مدخل من نوع صورة أو مستند. وهو ملف PDF نفسه.
OpenPOs: مدخل نصي. سيملؤه التدفق بسطر واحد لكل أمر شراء مفتوح.
تخبر التعليمات النموذج بما يجب أن يعيده بصيغة JSON، والأهم من ذلك ما يجب فعله عندما لا يوجد رقم أمر شراء على الفاتورة: "اختر أمر الشراء المفتوح الذي يتطابق مورده وموقعه ووصفه بوضوح مع هذه الفاتورة، واضبط poSource على matched. وإذا لم يتطابق أي منها بوضوح، فأعِد رقم أمر شراء فارغًا". كما تتضمن قاعدة "لا تخمّن أي مبلغ أبدًا". اضبط Output على JSON واختبره بفاتورة حقيقية:

لم يكن على فاتورة الاختبار تلك من Brightline Electrical أي رقم لأمر شراء. قرأ الموجّه عبارة "LED high-bay fixture, loading dock" وطابقها مع PO-1057، "Replace LED fixtures at loading dock (12 units)". وهذا نوع من التقدير كان يتطلب في السابق تدخّل شخص.
الخطوة 4: بناء التدفق
أنشئ تدفقًا سحابيًا تلقائيًا بالمشغّل When a new email arrives in a shared mailbox (V2). حدّد عنوان صندوق البريد، واضبط Only with Attachments وInclude Attachments على Yes، واضبط Folder على Inbox.
ثم أضف هذه الخطوات:
Get open POs: إجراء Get items في SharePoint على قائمة Purchase Orders، مع عامل التصفية Status eq 'Open'.
PO lines: إجراء Select في وضع النص يحوّل كل أمر شراء إلى سطر واحد للموجّه.
Invoice PDF: إجراء Compose يختار المرفق. استخدمنا المرفق الأول؛ ويوضح دليل الاستخراج كيفية التصفية لملفات PDF فقط والمرور على عدة مرفقات.
Save invoice PDF: إجراء Create file في SharePoint داخل مكتبة AP Invoice Files.
Extract invoice details: إجراء Run a prompt في AI Builder، مع ضبط Invoice على محتوى المرفق (content bytes) وضبط OpenPOs على أسطر أوامر الشراء المدمجة.
Invoice: إجراء Compose يحتفظ بمخرجات JSON من الموجّه كي يستخدمها باقي التدفق بالاسم.
التعبيران اللذان يؤديان العمل:
concat(item()?['Title'],' | ',item()?['VendorName'],' | ',item()?['SiteName'],' | ',item()?['Description'],' | ',string(sub(float(coalesce(item()?['POAmount'],0)),float(coalesce(item()?['InvoicedToDate'],0)))))
body('Extract_invoice_details')?['responsev2']?['predictionOutput']?['structuredOutput']الأول يبني سطر أمر الشراء، بما في ذلك الرصيد المتبقي. والثاني يستخرج مخرجات JSON من خطوة الذكاء الاصطناعي.
الخطوة 5: مطابقة الفاتورة مع أمر الشراء
أضف إجراء Filter array باسم Matching PO على أوامر الشراء المفتوحة، يُبقي على الأمر الذي يساوي رقمه الرقم الذي أعاده الموجّه. ويأخذ إجراء Compose باسم PO أول تطابق. ثم يحدد إجراءا Compose ما يحدث بعد ذلك.
Status تكون Needs review عند عدم وجود أمر شراء، وOver PO عندما تتجاوز الفاتورة الرصيد المتبقي بأكثر من 5%، وNeeds review عندما تقل ثقة الذكاء الاصطناعي عن 0.7، وPending approval في ما عدا ذلك:
if(empty(outputs('PO')),'Needs review',if(greater(float(coalesce(outputs('Invoice')?['subtotal'],0)),mul(sub(float(coalesce(outputs('PO')?['POAmount'],0)),float(coalesce(outputs('PO')?['InvoicedToDate'],0))),1.05)),'Over PO',if(less(float(coalesce(outputs('Invoice')?['confidence'],0)),0.7),'Needs review','Pending approval')))Match result هي المنطق نفسه مكتوبًا في جملة يستطيع أي شخص قراءتها، مثل "Over PO: invoice $3,980.00 vs remaining $3,600.00" أو "Matched PO-1057 (no PO printed, matched by AI), within PO balance". وتظهر في القائمة وفي طلب الاعتماد، فلا يضطر أحد إلى استنتاج سبب إيقاف فاتورة ما.
قارن المجموع الفرعي لا الإجمالي، لأن أوامر الشراء تُصدَر عادةً قبل الضريبة. وغيّر 1.05 إلى أي هامش سماح يعتمده فريقك المالي.
الخطوة 6: تسجيل الفاتورة
أضف إجراء Create item في SharePoint على قائمة AP Invoices واربط كل حقل من إجراءي Compose الخاصين بـ Invoice وPO: المورد والتواريخ ورقم أمر الشراء والموقع ورمز GL من أمر الشراء، والمبالغ والحالة ونتيجة المطابقة ودرجة الثقة ورابط ملف PDF المحفوظ. التسجيل قبل الاعتماد يعني أن كل فاتورة تظهر في القائمة منذ لحظة وصولها، حتى تلك التي تحتاج إلى مراجعة.
الخطوة 7: توجيه الاعتماد
أضف إجراء Condition: Status تساوي Pending approval. وفي فرع True:
الاعتماد الأول: إجراء Start and wait for an approval، من نوع Approve/Reject - First to respond. ويكون Assigned to هو البريد الإلكتروني لصاحب أمر الشراء من إجراء Compose الخاص بـ PO. وتستخدم التفاصيل تنسيق Markdown لعرض المورد والفاتورة والمبالغ وأمر الشراء والموقع ورمز GL ونتيجة المطابقة، مع رابط إلى ملف PDF.
معتمَدة وتتجاوز 10000: إجراء Condition ثانٍ يتحقق من أن نتيجة الاعتماد الأول هي Approve وأن الإجمالي أكبر من 10,000.
الاعتماد الثاني: في فرع True الخاص به، اعتماد مالي يتضمن اسم المعتمِد الأول وتعليقه.
حفظ القرار: إجراء Update item على فاتورة الحسابات الدائنة بالحالة وأسماء المعتمِدين والتاريخ والتعليقات. يوجد واحد في كل فرع، حتى لا يشير أي فرع إلى اعتماد لم يُنفَّذ.

يرى المعتمِد كل ما يحتاج إليه في مكان واحد، في Outlook أو Teams أو تطبيق Power Automate:

وبالنسبة إلى فاتورة المصاعد البالغة 14,012 دولارًا، يتلقى الفريق المالي طلبًا ثانيًا يعرض مسبقًا ما قاله صاحب أمر الشراء:

الخطوة 8: الاختبار
أرسلنا خمس فواتير موردين إلى صندوق بريد الحسابات الدائنة:
Brightline Electrical، بمبلغ 2,983.20 دولارًا: لا يوجد رقم أمر شراء على الفاتورة. طابقها الذكاء الاصطناعي مع PO-1057، فذهبت إلى Daniel Morgan واعتُمدت.
Northshore Facility Services، بمبلغ 3,943.70 دولارًا: رقم PO-1042 مطبوع، وضمن الميزانية، واعتمدتها Priya Shah.
ClearAir Mechanical، بمبلغ 4,497.40 دولارًا: 3,980 دولارًا قبل الضريبة مقابل 3,600 دولار متبقية في PO-1051. أُوقفت بحالة Over PO، ولم يُرسَل أي طلب اعتماد.
Metro Lift & Escalator، بمبلغ 14,012.00 دولارًا: PO-1060، اعتمدتها Aisha Rahman، ثم Elena Petrova من الفريق المالي لأنها تتجاوز 10,000 دولار.
Peak Roofing، بمبلغ 5,424.00 دولارًا: إصلاح طارئ دون أي أمر شراء على الإطلاق. صُنِّفت Needs review مع السبب "No PO on the invoice and no matching open PO".
انتهت كل فاتورة في المكان الصحيح، وأُوقفت الفاتورتان المشكلتان قبل أن يعتمدهما أحد عن طريق الخطأ.
ميزة إضافية: ترحيل الفواتير المعتمدة إلى نظامك المالي
الاعتماد ليس النهاية عادةً. فلا يزال على أحدهم إدخال الفاتورة يدويًا في QuickBooks أو Xero أو Sage أو NetSuite أو Dynamics. ومعظم الأنظمة المالية توفر واجهة REST API، لذا يمكن للتدفق القيام بذلك. أضف هذه الخطوات بعد حفظ القرار، في فرع الاعتماد:
HTTP: الطريقة POST، وعنوان URI لنقطة نهاية الفواتير في نظامك المالي، والمتن أدناه.
المصادقة: استخدم طريقة OAuth أو مفتاح API الخاصة بالنظام. احتفظ بالأسرار في متغير بيئة أو في Azure Key Vault، ولا تكتبها أبدًا داخل التدفق.
تحليل الاستجابة: اقرأ معرّف الفاتورة الذي يعيده النظام المالي.
Update item: اضبط Status على Posted واحفظ ذلك المعرّف في عمود ERPReference، كي تتمكن دائمًا من تتبع الفاتورة من SharePoint إلى دفتر الأستاذ.
يبدو متن الطلب النموذجي على هذا النحو (تختلف أسماء الحقول من نظام إلى آخر):
{
"vendorName": "@{outputs('Invoice')?['vendorName']}",
"invoiceNumber": "@{outputs('Invoice')?['invoiceNumber']}",
"invoiceDate": "@{outputs('Invoice')?['invoiceDate']}",
"dueDate": "@{outputs('Invoice')?['dueDate']}",
"currency": "CAD",
"lines": [{
"description": "@{outputs('Invoice')?['description']}",
"glAccount": "@{outputs('PO')?['GLCode']}",
"amount": @{outputs('Invoice')?['subtotal']},
"taxAmount": @{outputs('Invoice')?['tax']},
"purchaseOrder": "@{outputs('PO')?['Title']}",
"costCentre": "@{outputs('PO')?['SiteName']}"
}],
"externalReference": "@{outputs('Invoice')?['vendorName']}-@{outputs('Invoice')?['invoiceNumber']}"
}ثلاث نصائح من التجربة:
اجعل إعادة المحاولة آمنة. أرسل مرجعًا خارجيًا فريدًا مثل اسم المورد مع رقم الفاتورة، وتحقق منه أولًا، حتى لا تُنشئ إعادة المحاولة فاتورة ثانية أبدًا.
فعّل سياسة إعادة المحاولة في إعدادات إجراء HTTP، وأضف فرعًا يضبط Status على "Posting failed" ويرسل بريدًا إلكترونيًا إلى الحسابات الدائنة إذا استمر فشل الاستدعاء.
ابحث عن موصّل أولًا. لكل من Dynamics 365 Business Central وQuickBooks Online وXero موصّلات في Power Automate توفّر عليك عناء المصادقة. أما إجراء HTTP فهو موصّل متميز (premium).
استبعدنا هذه الخطوة من العرض التوضيحي لعدم وجود دفتر أستاذ فعلي خلفه، لكنها الخطوة التي تحوّل هذا من سير عمل للاعتماد إلى حسابات دائنة بلا تدخل يدوي.
اختبار سريع: هل كنت ستدفعها؟
خمس ثوانٍ لكل واحدة. إجابة التدفق في النهاية.
فاتورة بمبلغ 3,120 دولارًا مقابل أمر شراء متبقٍّ فيه 3,000 دولار.
فاتورة بمبلغ 3,300 دولار مقابل أمر الشراء نفسه.
فاتورة بمبلغ 9,800 دولار من المورد الصحيح، لكنها تحمل رقم أمر شراء يخص شخصًا آخر.
فاتورة بمبلغ 480 دولارًا دون أمر شراء، من مورد لم تسمع به من قبل، مستحقة "فورًا".
الإجابات: الأولى ضمن هامش 5%، لذا تذهب إلى صاحب أمر الشراء. والثانية Over PO وتتوقف. والثالثة تُطابَق مع أمر شراء مختلف، فيرى المعتمِد عدم تطابق يمكنه الاستفسار عنه. والرابعة Needs review، وهي بصراحة تستحق مكالمة هاتفية قبل أن يدفعها أحد.
أفكار للمضي أبعد
تحديث رصيد أمر الشراء: بعد الاعتماد، أضف المجموع الفرعي إلى InvoicedToDate، كي تُفحص الفاتورة التالية مقابل ما تبقى فعلًا.
اكتشاف التكرار: قبل التسجيل، ابحث عن المورد نفسه ورقم الفاتورة نفسه في قائمة الحسابات الدائنة.
إبلاغ الحسابات الدائنة بما يحتاج إلى اهتمام: أرسل بريدًا إلكترونيًا من صندوق البريد المشترك لكل فاتورة بحالة Needs review أو Over PO.
المطابقة الثلاثية: أضف قائمة Goods Received وتحقق من أن ما فُوتِر قد سُلِّم فعلًا.
راقب تغييرات الحسابات المصرفية: اجعل الموجّه ينبّه إلى أي فاتورة تختلف بيانات الدفع فيها عن سجل المورد. فهذا هو أكثر أشكال الاحتيال في الفواتير شيوعًا.
لماذا يهم هذا
الحسابات الدائنة هي المكان الذي تلتقي فيه النوايا الحسنة بكومة من ملفات PDF. فنادرًا ما يكون المعتمِد من فريق الحسابات الدائنة، وأمر الشراء موجود في نظام آخر، والفاتورة تفتقر إلى نصف ما تحتاج إليه للربط بينهما. وعندما تجمع أوامر الشراء والفواتير والأشخاص في مكان واحد وتضع الذكاء الاصطناعي في الواجهة، تستغرق المطابقة ثوانيَ، ويصل كل طلب اعتماد إلى الشخص الصحيح، ويقضي فريق الحسابات الدائنة وقته في معالجة الاستثناءات بدلًا من الأعمال الورقية.
هل تحتاج إلى مساعدة؟
تبني Smart Solutions مسارات عمل لاعتماد الفواتير وتدفقات Power Automate وتكاملات مالية للشركات الكندية. وإذا كنت تفضّل أن تكون أوامر الشراء والاعتمادات والفواتير في منتج واحد، فألقِ نظرة على ProcuraCloud، منصتنا للمشتريات المخصصة للشركات الصغيرة والمتوسطة. في المقال التالي: استخدام هذه الفواتير المعتمدة وعقود العملاء لإعداد فواتير العملاء الشهرية بالذكاء الاصطناعي.




تعليقات