كيفية إنشاء تذكيرات تلقائية بانتهاء عقود الإيجار باستخدام Power Automate وExcel (خطوة بخطوة)
تفويت موعد انتهاء عقد إيجار من أكثر الأخطاء كلفةً في العقارات التجارية. فالمستأجر الذي لا يتصل به أحد قبل 12 شهرًا من انتهاء عقده كثيرًا ما يوقّع في مكان آخر قبل 6 أشهر منه. يتابع معظم الوسطاء والملّاك ومديري العقارات مواعيد الانتهاء في جدول بيانات، ولا يفيد جدول البيانات إلا إذا فتحه أحد.
في هذا الدليل سنبني تدفقًا في Power Automate يقرأ سجل عقود الإيجار كل صباح ويرسل إليك بريدًا إلكترونيًا عندما يتبقى على انتهاء أي عقد 365 أو 180 أو 90 يومًا بالضبط. يستغرق الأمر نحو 20 دقيقة، ولا يستخدم سوى Excel وOutlook، ولا يحتاج إلى ترخيص متميز. وينجح النهج نفسه مع تجديد العقود وتراخيص البرمجيات وشهادات التأمين وأي تاريخ لا تستطيع تحمّل تفويته.
ما الذي تحتاج إليه
Microsoft 365 مع Outlook وOneDrive for Business (أو SharePoint)
إمكانية الوصول إلى Power Automate (make.powerautomate.com)
مصنّف Excel تكون فيه عقود الإيجار منسّقة كجدول
الخطوة 1: جهّز سجل عقود الإيجار في Excel
أنشئ مصنّفًا (اسمه لدينا Lease-Tracker.xlsx) بصف واحد لكل عقد وبالأعمدة التالية: Lease ID وTenant وProperty وUnit وSize (SF) وExpiry Date وUse. حدّد البيانات واضغط Ctrl+T لتنسيقها كجدول، ثم سمِّ الجدول Leases (Table Design > Table Name). لا يستطيع Power Automate قراءة بيانات Excel إلا إذا كانت داخل جدول مسمّى.

نصيحة: اجعل Expiry Date عمود تاريخ حقيقيًا لا نصًا، لأن التدفق يُجري عليه عمليات حسابية على التواريخ.
الخطوة 2: أنشئ تدفقًا سحابيًا مجدولًا
في Power Automate، انتقل إلى Create واختر Scheduled cloud flow.

سمِّه Lease Expiry Reminders، واضبطه ليتكرر كل يوم بدءًا من الغد عند الساعة 8:00 صباحًا، ثم انقر Create.

الخطوة 3: اضبط المنطقة الزمنية في مشغّل Recurrence
افتح مشغّل Recurrence واضبط Time zone على (UTC-05:00) Eastern Time (US & Canada)، أو على منطقتك الزمنية. واضبط At these hours على 8 وAt these minutes على 0. يجب أن تظهر المعاينة «Runs at 8:00 every day». ومن دون منطقة زمنية يعمل التدفق بتوقيت UTC، وقد يختلف «اليوم» بيوم كامل.

الخطوة 4: التقط تاريخ اليوم
أضف إجراء Compose وأعد تسميته Today. في Inputs، افتح محرر التعبيرات (fx) وأدخل:
formatDateTime(convertFromUtc(utcNow(), 'Eastern Standard Time'), 'yyyy-MM-dd')
يمنحك هذا تاريخًا نظيفًا مثل 2026-09-27 بتوقيتك المحلي، تقارن به جميع الخطوات اللاحقة.
الخطوة 5: اقرأ عقود الإيجار من Excel
أضف List rows present in a table (Excel Online Business). اضبط Location على OneDrive for Business، وDocument Library على OneDrive، وFile على /Blog Demos/Lease-Tracker.xlsx (مسارك الخاص)، وTable على Leases.
ثم افتح Advanced parameters واضبط DateTime Format على ISO 8601. هذه هي الخطوة التي يغفل عنها معظم الناس: فمن دونها يُرجع Excel التواريخ كأرقام تسلسلية مثل 46382، وتتعطل كل العمليات الحسابية على التواريخ.

ملاحظة: يُرجع هذا الإجراء 256 صفًا افتراضيًا. إذا كان سجلك أكبر، ففعّل Pagination في إعدادات (Settings) الإجراء.
الخطوة 6: أبقِ فقط على العقود التي تبلغ إحدى المحطات اليوم
أضف إجراء Filter array وأعد تسميته Leases hitting a milestone. اضبط From على مخرج body/value من خطوة Excel. انقر Edit in advanced mode والصق:
@contains(createArray(90, 180, 365), div(sub(ticks(item()?['Expiry Date']), ticks(outputs('Today'))), 864000000000))
كيف يعمل: تحوّل الدالة ticks() كل تاريخ إلى عدد من الفواصل الزمنية مدة كل منها 100 نانوثانية. وبطرح تاريخ اليوم من تاريخ الانتهاء والقسمة على 864,000,000,000 (عدد الـ ticks في اليوم الواحد) تحصل على عدد الأيام المتبقية. وcreateArray(90, 180, 365) هي قائمة المحطات لديك، وcontains() لا تُبقي على الصف إلا إذا كان عدد أيامه المتبقية ضمن تلك القائمة. هل تريد تذكيرًا قبل 30 يومًا أيضًا؟ أضف 30 إلى المصفوفة.

الخطوة 7: لا تتابع إلا إذا كان هناك ما يستحق الإبلاغ
أضف Condition وأعد تسميته Any leases to report. على اليسار، أضف التعبير length(body('Leases_hitting_a_milestone')), واختر is greater than، وأدخل 0 على اليمين. كل ما تبقى يوضع في فرع True، فلا يصلك بريد إلا في الأيام التي يحتاج فيها عقدٌ ما إلى اهتمام فعلي.

الخطوة 8: نسّق الصفوف للبريد الإلكتروني
في فرع True، أضف إجراء Select وأعد تسميته Build reminder rows. اضبط From على Body الخاص بـ Filter array، ثم أضف أزواج المفاتيح والقيم التالية (استخدم fx لكل قيمة):
Tenant: item()?['Tenant']
Property: concat(item()?['Property'], ', ', item()?['Unit'])
Expiry Date: formatDateTime(item()?['Expiry Date'], 'MMM d, yyyy')
Days Left: div(sub(ticks(item()?['Expiry Date']), ticks(outputs('Today'))), 864000000000)
Size (SF): formatNumber(int(item()?['Size (SF)']), '#,##0')

الخطوة 9: حوّلها إلى جدول وأرسلها بالبريد
أضف Create HTML table (وأعد تسميته Reminder table) مع ضبط From على Output الخاص بـ Select. ثم أضف Send an email (V2)، وأعد تسميته Email the reminder، واضبط:
إلى: بريدك الإلكتروني، أو صندوق البريد المشترك لفريقك
الموضوع (كتعبير): concat('Lease expiry reminders: ', length(body('Leases_hitting_a_milestone')), ' lease(s) hit a milestone today')
النص: حوّل المحرر إلى عرض التعليمات البرمجية (الزر </>) والصق كود HTML أدناه. تمنح كتلة style الجدول ترويسة وحدودًا مناسبة.
<style>table{border-collapse:collapse;font-family:Segoe UI,Arial,sans-serif;font-size:13px}th{background:#1f3b57;color:#ffffff;padding:8px 10px;text-align:left}td{border:1px solid #dde3ea;padding:8px 10px}tr:nth-child(even) td{background:#f4f7fa}</style><p>Good morning,</p><p>These leases reach a 90, 180 or 365-day milestone today. Time to start the renewal conversation.</p>@{body('Reminder_table')}<p>Source: Lease-Tracker.xlsx</p>
الخطوة 10: احفظ واختبر
انقر Save، ثم Test > Manually > Run flow. يجب أن تظهر علامة اختيار خضراء بجانب كل خطوة.

وهذا هو البريد الذي وصل إلى صندوق الوارد لدينا. كانت ثلاثة من عقودنا النموذجية على بُعد 90 و180 و365 يومًا بالضبط من انتهائها، فظهرت الثلاثة كلها في القائمة.

أفكار للارتقاء بتذكيرات انتهاء عقود الإيجار
أرسل كل تذكير إلى الوسيط المسؤول: أضف عمود Broker Email واستخدم Apply to each مع رسالة منفصلة لكل صف.
انشر في قناة Microsoft Teams بدلًا من البريد الإلكتروني (أو إلى جانبه).
أضف 30 أو 60 يومًا إلى مصفوفة المحطات للتذكيرات الأخيرة قبل الانتهاء.
سجّل تاريخ «آخر تذكير» في Excel باستخدام Update a row، ليكون لديك سجل تدقيق.
استخدم التدفق نفسه لتواريخ الخيارات، ومراجعات الإيجار، وانتهاء شهادات التأمين.
الجزء الممتع: اختبار سريع لمحفظة عقودك
امنح نفسك نقطة عن كل عبارة تبدو مألوفة لك:
في سجل عقودك عمود اسمه «ملاحظات (مهم)».
علمتَ بانتقال مستأجر من المستأجر نفسه.
هناك تاريخ انتهاء عقد مدوّن على ورقة لاصقة في مكان ما. ربما أسفل لوحة المفاتيح.
«تجديد» في تقويمك يعني أنك تذكّرت في الساعة 11 مساءً من الليلة السابقة.
من 0 إلى 1: مكتب منظَّم جيدًا. من 2 إلى 3: سيسترد هذا التدفق كلفته هذا الربع. 4: أعدّه اليوم، ثم ابحث عن تلك الورقة اللاصقة.
هل أصبح جدول البيانات لا يكفي؟
تدفق كهذا خطوة أولى ممتازة، لكن جدول البيانات لا يستطيع أن يخبرك بمن تتصل، ولا أن يجمع جولاتك وعروضك وخطابات النوايا في مكان واحد، ولا أن يرد على الهاتف وأنت في الخارج تعرض المساحات. لهذا بنينا Frontage، نظام CRM لتأجير العقارات التجارية مخصصًا للوسطاء الكنديين. فهو يستورد قائمة مواعيد الانتهاء التي تحتفظ بها أصلًا، ويُبرز العقود عند المحطات التي تختارها (3 أو 6 أو 9 أو 12 أو 18 شهرًا)، ويحوّل كلًّا منها إلى صفقة بنقرة واحدة. باقة Starter مجانية، ومن دون بطاقة ائتمان.
هل تحتاج إلى مساعدة في أتمتة عملياتك؟ تبني Smart Solutions حلول Power Automate وPower Apps للشركات الكندية. تواصل معنا لنتحدث عمّا تودّ أتمتته.




تعليقات