> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kayanos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# إجراءات أتمتة KayanOS

> استخدم إجراءات KayanOS لقراءة البيانات وإجراء تغييرات مضبوطة وتنسيق العمل وإرجاع الاستجابات وإنشاء المستندات وإشعار الأشخاص المناسبين.

## ما الذي يفعله الإجراء؟

الإجراء هو نتيجة خطوة الأتمتة. يمكنه استرجاع المعلومات، أو إنشاء سجل أو تحديثه، أو انتظار حدث لاحق، أو تنسيق مهمة أو موافقة، أو إعداد مستند، أو إرجاع نتيجة طلب/استجابة، أو إشعار الأشخاص داخلياً، أو تحديث إسنادات الأدوار.

يعمل كل إجراء صادر عبر [اتصال KayanOS](/ar/build/automations-connections) المختار على مستوى المؤسسة. تحقق من الاتصال قبل ربط المدخلات؛ فالنتيجة الداخلية في KayanOS لا تلغي حد التفويض المطلوب هذا.

اختر الإجراء لأنه ينتج نتيجة لازمة وقابلة للمراجعة، لا لمجرد ظهوره في الكتالوج. الترتيب الآمن غالباً هو:

1. قراءة البيانات ذات الصلة أو إيجادها.
2. التحقق من شرط القرار.
3. تنفيذ كتابة أو استجابة مضبوطة واحدة.
4. إشعار الشخص أو الفريق المسؤول.
5. تسجيل ما يكفي لكي يستطيع المراجع العثور على النتيجة.

## قبل ربط أي إجراء

أجب عن هذه الأسئلة لكل إجراء قبل حفظه:

| السؤال                               | ما تبدو عليه الإجابة الجيدة                                                             |
| ------------------------------------ | --------------------------------------------------------------------------------------- |
| ما مصدر كل مدخل؟                     | حقل من مشغّل تم اختباره، أو مخرج إجراء سابق، أو قيمة تكوين مختارة صراحةً.               |
| ما أضيق هدف مسموح؟                   | جدول أو سجل أو نوع مهمة أو جلسة نموذج أو قالب أو نطاق دور أو مجموعة مستلمين واحدة.      |
| ما الشرط الذي يحمي الإجراء؟          | انتقال حالة واضح، وحقول لازمة، وفحص لعدم التكرار عندما يكون ذلك مناسباً.                |
| ما النتيجة المرئية التي تثبت النجاح؟ | معرّف سجل أو مهمة أو مستند أو إشعار داخل التطبيق أو استجابة معادة يمكن للمالك مراجعتها. |
| ماذا يحدث إذا غابت البيانات؟         | يتوقف المسار للمراجعة أو يتبع طريقاً موثقاً لا يسبب أثراً مدمراً.                       |

لا تربط تسمية معروضة عندما تقدم مخرجات المشغّل معرّفاً ثابتاً أو قيمة علاقة. المعرّفات والمحددات المقيدة أقل عرضة للتغير بصورة غير متوقعة.

## كتالوج الإجراءات الحالي

تحافظ الجداول على أسماء إجراءات KayanOS وحقول الإدخال المطلوبة الظاهرة حالياً في الكتالوج. قد يعرض المحرر حقولاً اختيارية إضافية؛ استخدمها لتضييق النطاق وجعل النتيجة أسهل تدقيقاً.

### إجراءات السجلات

| الإجراء                      | المدخلات المطلوبة                           | الغرض                                                  | الاستخدام الآمن                                                                                                                |
| ---------------------------- | ------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
| **Create Record**            | `Table Name`؛ `Records`                     | إنشاء سجل أو سجلات مرتبطة في جدول مختار.               | افحص وجود سجل مفتوح مسبقاً عندما تكون إعادة المحاولة أو الأحداث المتكررة ممكنة. أعطِ السجل الجديد مالكاً وحالة وعلاقة بالمصدر. |
| **Delete Record(s)**         | `Table Name`؛ `Records IDs`                 | حذف سجلات مختارة.                                      | اعتبره غير قابل للتراجع. استخدمه فقط في قاعدة دورة حياة معتمدة، وليس لإخفاء نتيجة فاشلة للأتمتة.                               |
| **Update Record**            | `Table Name`؛ `Values`                      | تغيير قيم صريحة في سجل محدد.                           | حدّث الحقول التي يملكها المسار فقط. لا تستبدل ملاحظات الموظفين أو قراراتهم أو حقول عملية أخرى.                                 |
| **Get Record**               | `Table Name`؛ `Record ID`                   | قراءة سجل معروف قبل اتخاذ قرار.                        | استخدمه عندما يكون معرّف الهدف معروفاً وتحتاج البيانات الحالية.                                                                |
| **Find Records**             | `Table Name`                                | البحث عن سجلات قبل قرار الإنشاء أو التحديث أو الإشعار. | ضيّق البحث بعلاقة ثابتة أو حالة أو معرّف. تعامل صراحة مع صفر أو نتيجة واحدة أو نتائج متعددة.                                   |
| **Wait for Record Change**   | `Table Name`؛ `Record ID`؛ `Watched Fields` | إيقاف المسار حتى يتغير سجل محدد في حقل ذي صلة.         | راقب فقط الحقول التي تمثل تسليماً حقيقياً. سجّل سبب الانتظار والحالة التي يجب أن تستأنف المسار.                                |
| **Wait for Record Creation** | `Table Name`؛ `Field`؛ `Value`              | إيقاف المسار حتى يُنشأ سجل مطابق.                      | استخدم قيمة ربط فريدة مثل معرّف الطلب المصدر، حتى لا يستأنف المسار سجل جديد غير مرتبط.                                         |

### إجراءات المهام والعمل المجمّع

| الإجراء                    | المدخلات المطلوبة                | الغرض                                              | الاستخدام الآمن                                                                                                                          |
| -------------------------- | -------------------------------- | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| **Create Task**            | `Task`                           | بدء مهمة متابعة محكومة.                            | ضمّن سجل المصدر والفريق المسؤول وسياق الموعد والقرار البشري التالي.                                                                      |
| **Create Epic**            | `Epic`                           | بدء عمل مجمّع له دورة حياة مشتركة.                 | استخدمه عندما تحتاج عدة مهام أو مراحل إلى مظلة مسؤولية واحدة؛ لا تنشئ عملاً مجمّعاً لإشعار من خطوة واحدة.                                |
| **Update Task**            | `Epic`                           | تغيير مهمة مختارة في الكتالوج الحالي.              | تأكد من الهدف المختار داخل المحرر. تعرض الواجهة الحالية تسمية الإدخال `Epic`؛ تعامل معها كتسمية مرئية وتحقق من الهدف الفعلي قبل التمكين. |
| **Update Epic**            | `Epic`                           | تغيير عنصر عمل مجمّع موجود.                        | قيد التحديثات بحقول دورة الحياة التي يملكها المسار.                                                                                      |
| **Respond To Task Action** | `Action ID`                      | الاستجابة لإجراء مهمة معلّق بواسطة معرّفه.         | استخدمه فقط عندما تنتج الخطوة السابقة إجراءً معلقاً صحيحاً أو تحدده.                                                                     |
| **Respond To Epic Action** | `Action ID`                      | الاستجابة لإجراء عمل مجمّع معلّق.                  | حافظ على العلاقة بين الحالة المصدر والإجراء المعلّق.                                                                                     |
| **Wait For Task Action**   | `Task ID`                        | إيقاف المسار حتى يتاح أو يكتمل إجراء في مهمة.      | استخدم معرّف مهمة من الحالة نفسها؛ لا تنتظر نوع مهمة عام.                                                                                |
| **Wait For Epic Action**   | `Epic ID`                        | إيقاف المسار حتى يتاح أو يكتمل إجراء في عمل مجمّع. | اقترنه بإجراء مراجعة تشغيلية أو مهلة موثقة.                                                                                              |
| **Execute Task Action**    | `Task Type`؛ `Task ID`؛ `Action` | استدعاء إجراء مسمى لمهمة موجودة.                   | تحقق من أن الإجراء مسموح للحالة الحالية ومن عدم تجاوز موافقة بشرية.                                                                      |
| **Execute Epic Action**    | `Epic Type`؛ `Epic ID`؛ `Action` | استدعاء إجراء مسمى لعمل مجمّع موجود.               | استخدم معرّف عمل دقيقاً وإجراءً معتمداً؛ وتجنب القفزات الواسعة في الحالة.                                                                |

### إجراءات النماذج وإجراءات الكيانات

| الإجراء                                            | المدخلات المطلوبة                                                                                                                                            | الغرض                                                                                                            | الاستخدام الآمن                                                                                                                                                                                                                             |
| -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Update Form Session Values**                     | `Session ID`؛ `Values`                                                                                                                                       | ملء أو تصحيح قيم مختارة في جلسة نموذج.                                                                           | حدّث القيم التي يملكها المسار فقط؛ واحفظ المعلومات التي أدخلها المشاركون إلا إذا سمحت السياسة بتغييرها صراحةً.                                                                                                                              |
| **Create Record: Attendance Schedule Adjustments** | اختر جدول `Attendance Schedule Adjustments` ثم أدخل `Member` و`Assignment` و`Start Day` و`Adjustment Type`. اختياري: `End Day` و`Note` و`Source Submission`. | تطبيق دوام ثابت أو نافذة مرنة معتمدة دون احتساب وقت عمل، ثم إعادة حساب الحضور. يُشتق المنصب والوردية من التعيين. | يعرض إجراء **Create Record** الحالي الحقول الخاصة بنوع التعديل المحدد فقط. يعتمد كل سجل مرسل تلقائياً. ترشح التعيينات حسب العضو. يستخدم معرّف تشغيل التدفق عند ترك Source Submission فارغاً. لا تنشئ تعديلاً متداخلاً للعضو واليوم نفسيهما. |
| **Respond To Form Action**                         | `Session ID`؛ `Action ID`                                                                                                                                    | الاستجابة لإجراء معلّق في جلسة نموذج.                                                                            | استخدم معرّفي الجلسة والإجراء الدقيقين الناتجين عن العملية ذات الصلة.                                                                                                                                                                       |
| **Respond To Entity Action**                       | `Table Name`؛ `Field Key`؛ `Action ID`                                                                                                                       | الاستجابة لإجراء معلّق على حقل كيان.                                                                             | تحقق من أن مفتاح الحقل ومعرّف الإجراء يشيران إلى دورة حياة السجل نفسها.                                                                                                                                                                     |
| **Wait For Form Action**                           | `Form`؛ `Form Session ID`                                                                                                                                    | إيقاف المسار حتى يحدث إجراء لاحق في جلسة نموذج مختارة.                                                           | استخدمه لتسليم بشري حقيقي مثل قرار المراجع بالموافقة أو إعادة الإرسال.                                                                                                                                                                      |
| **Wait For Form Signature**                        | `Form`؛ `Form Session ID`                                                                                                                                    | انتظار حدث توقيع في جلسة النموذج المختارة.                                                                       | تأكد من أن نسخة النموذج ومسار التوقيع هما المقصودان قبل الانتظار.                                                                                                                                                                           |
| **Wait For Entity Action**                         | `Table Name`؛ `Field Key`                                                                                                                                    | انتظار إجراء مضبوط على حقل كيان.                                                                                 | اجعل الحقل المراقب ضيقاً ووثق من المتوقع أن ينفذ الإجراء.                                                                                                                                                                                   |
| **Execute Form Action**                            | `Session ID`                                                                                                                                                 | استدعاء إجراء متاح في جلسة النموذج المختارة.                                                                     | لا تستخدمه إلا بعد التحقق من حالة الجلسة والموافقات المطلوبة.                                                                                                                                                                               |
| **Execute Entity Action**                          | `Table Name`؛ `Record ID`؛ `Field Key`؛ `Action`                                                                                                             | استدعاء إجراء على حقل كيان محدد.                                                                                 | تحقق من الجدول والسجل والحقل والإجراء معاً؛ فمفتاح حقل صحيح على سجل خاطئ يبقى خطراً.                                                                                                                                                        |
| **Return Form Response**                           | `JSON Body`                                                                                                                                                  | إرجاع استجابة JSON إلى مسار **On Form Call**.                                                                    | أعد أصغر مخطط استجابة موثق ولا تعرض حقولاً خاصة. اختبر استجابات النجاح وفشل التحقق.                                                                                                                                                         |

### سلوك اعتماد الساعات المرنة

إنشاء سجل **Attendance Schedule Adjustments** بإجراء **Create Record** الحالي هو قرار جدول دوام وليس مطالبة بوقت. لا ينشئ أبداً إدخال وقت عمل. تبقى البصمات الفعلية المغلقة المصدر الوحيد لدقائق العمل؛ ويمكن لبصمة دخول مفتوحة تثبيت وقت الوصول، لكنها لا تضيف دقائق عمل قبل وجود خروج صالح.

لا يحتوي السجل على حقل قرار أو حالة موافقة. يعامل كل تعديل مرسل على أنه معتمد. `Note` هو حقل النص الاختياري الوحيد. يدير النظام تلقائياً المراجعة ومصدر الاعتماد والمنصب والوردية ولقطة الجدول وحالة الأثر الرجعي، ولا تدخل هذه القيم في Create Record. يكون `Source Submission` اختيارياً لأن الخادم يستخدم معرّف تشغيل التدفق عند تركه فارغاً. استخدم مرجعاً ثابتاً عندما يجب أن يحدّث تشغيل لاحق التعديل نفسه؛ وتزيد السجلات رقم المراجعة الداخلي تلقائياً.

يعرض Create Record تفاصيل الجدول كحقول محددة النوع بدلاً من كائن JSON. يتحكم **نوع التعديل** في ظهور الحقول:

* **Fixed Times:** **وقت البداية** و**وقت النهاية**.
* **Shift Offset:** **دقائق الإزاحة** (القيمة الموجبة تؤخر الجدول والسالبة تقدمه).
* **Flex Window:** **وقت بداية النافذة** الاختياري و**وقت نهاية النافذة** المطلوب.

يتولى النظام وحده قيم التدقيق، ومنها JSON الموحّد للتعديل، والوضع المشتق، ولقطة الوردية، ومراجعة القرار الافتراضية، وصاحب الإجراء، ومهمة إعادة الاحتساب، ومؤشر الأثر الرجعي؛ ولا يمكن تعديلها كحقول في سجل الدفتر.

يلتقط الخادم `Shift Snapshot` تلقائياً من وردية التعيين المحدد ولا يُدخل يدوياً. أما `Retroactive` فيُشتق أيضاً في الخادم: تكون قيمته `true` عندما توجد قسيمة راتب معتمدة للتواريخ المتأثرة. يتطلب هذا التغيير صلاحية تصحيح الفترة المقفلة؛ ويحافظ على الحضور والرواتب المقفلة ويستخدم مسار التسوية الحالي في الفترة التالية.

* يقبل **الوقت الثابت** زوج بداية ونهاية صريحاً فقط إذا حافظ على مدة الوردية الأساسية. ويقدم **إزاحة الوردية** النتيجة نفسها بعدد دقائق موجب أو سالب. تنتقل كل فترات العمل والاستراحات المضبوطة بالإزاحة نفسها.
* تقيد **النافذة المرنة** أول دخول بحدود النافذة المعتمدة: الوصول قبلها يثبت عند بدايتها، وداخلها يستخدم وقت الوصول الفعلي، وبعد سقفها يثبت عند السقف ويُحسب الفرق كتأخير.
* عند عدم وجود دخول يبقى الجدول الأساسي فعالاً ولا تُمنح أي دقائق. يمكن لخروج مفقود أن يحدد التأخير، لكنه لا ينتج دقائق عمل أو وقت خروج أو مغادرة مبكرة أو عملاً إضافياً قبل تصحيحه.
* لا تتغير مدة العمل المطلوبة ولا سماح الاستراحة. تُقاس المغادرة المبكرة مقابل النهاية المعدلة، ويبدأ العمل الإضافي من دقائق البصمة المنتجة بعد النهاية المعدلة، وليس من الوصول المبكر أو عدم أخذ الاستراحة.
* مثال: دوام أساسي `08:00–16:00` ونافذة `08:00–10:00` ودخول `09:17` ينتج `09:17–17:17`. أما دخول `10:20` فيثبت عند `10:00` ويُحسب 20 دقيقة تأخير.
* يقتصر النطاق على 366 يوماً، ويسمح بتعديل معتمد واحد لكل عضو ويوم. تستبدل المراجعة الأعلى التعديل نفسه وتعيد حساب نطاقه المتأثر. لا تُعاد كتابة أيام الحضور المقفلة، بل يطبق سلوك تسوية الرواتب القائم.

### المستندات والروابط القصيرة واستجابات لوحات المعلومات

| الإجراء                              | المدخلات المطلوبة    | الغرض                                                     | الاستخدام الآمن                                                                             |
| ------------------------------------ | -------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| **Excel Template**                   | `Template`؛ `Values` | إنشاء جدول بيانات من قالب معتمد وقيم مربوطة.              | حافظ على نسخة القالب تحت التحكم وافحص الملف الناتج للتأكد من عدم غياب أو سوء ربط القيم.     |
| **Word Template**                    | `Template`؛ `Values` | إنشاء مستند نصي من قالب معتمد وقيم مربوطة.                | استخدم فقط القوالب المعتمدة للخدمة واستبعد البيانات التي لا يحتاجها المستلم.                |
| **Excel to PDF**                     | `File`               | تحويل ملف جدول بيانات معتمد إلى PDF.                      | تأكد من أن الملف المصدر هو الناتج المقصود قبل تحويله.                                       |
| **Word to PDF**                      | `File`               | تحويل ملف Word معتمد إلى PDF.                             | راجع التقسيم إلى صفحات والتوقيعات والحقول الحساسة في PDF الناتج.                            |
| **Create Short Link**                | `Target URL`         | إنشاء رابط لوجهة معتمدة.                                  | استخدم وجهة خضعت للمراجعة؛ ولا تستخدم الرابط القصير لتجاوز ضوابط الوصول.                    |
| **Return Dashboard Widget Response** | `JSON Body`          | إرجاع استجابة JSON إلى مسار **On Dashboard Widget Call**. | أعد فقط البيانات التي يحتاجها العنصر وتحقق من أي مرشح مشتق من الإدخال قبل البحث عن السجلات. |

### الحوكمة والإشعار الداخلي

| الإجراء               | المدخلات المطلوبة                                         | الغرض                                                      | الاستخدام الآمن                                                                                                                         |
| --------------------- | --------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| **Send Notification** | `Type`، و`Member ID` أو `Member Selectors`                | إرسال إشعار داخلي في KayanOS إلى عضو محدد أو مجموعة مقيدة. | استخدم أضيق نطاق للمستلمين. اختبر العنوان والنص والأولوية وحل المستلمين بأعضاء غير إنتاجيين أولاً.                                      |
| **Update Roles**      | `Scope`؛ `Role ID`؛ `Operation`؛ `Entity ID`؛ `Selectors` | تغيير إسنادات الأدوار داخل نطاق صريح.                      | تعامل معه بوصفه عالي المخاطر. اجعل النطاق والمحدد والكيان الهدف والعملية قابلة للمراجعة بصورة مستقلة؛ ولا تستخدم محدداً واسعاً للسهولة. |

## كيف تربط الإجراءات بلا مفاجآت

### 1. اقرأ قبل الإنشاء

عندما يمكن إعادة تشغيل المسار، ابدأ بـ **Get Record** أو **Find Records**. في مثال الترخيص، ابحث عن سجل مفتوح في `Inspection Cases` يرتبط معرّف طلبه بطلب الترخيص. إذا وجدته، فحدّثه أو أبلغه. وإذا لم تجد نتيجة وكان شرط القرار متحققاً، فأنشئ حالة واحدة فقط.

### 2. احتفظ بقيم الربط

عندما ينشئ إجراء سجلاً أو مهمة أو عملاً مجمّعاً أو جلسة نموذج أو ملفاً أو استجابة يحتاجها إجراء لاحق، احتفظ بالمعرّف الناتج واربطه بالحالة المصدر. هذه العلاقة هي ما يجعل إجراء الانتظار أو التحديث أو الاستجابة آمناً لاحقاً.

### 3. افصل عمل النظام عن القرار البشري

استخدم الإجراء لتجهيز البيانات أو إنشاء مهمة أو انتظار إجراء نموذج. لا تستخدم **Execute Task Action** أو **Execute Epic Action** أو **Execute Form Action** أو **Execute Entity Action** لتجاوز قرار تسنده السياسة إلى شخص أو دور.

### 4. اجعل إجراءات الاستجابة مقترنة ومحدودة

ينتمي **Return Form Response** إلى **On Form Call**، وينتمي **Return Dashboard Widget Response** إلى **On Dashboard Widget Call**. عرّف حقول JSON المتوقعة قبل البناء، وأعد هذا المخطط فقط، واختبر حالات المدخل الناقص وعدم وجود نتيجة والخطأ بصورة منفصلة.

## أنماط مسارات مفصلة

### نمط: من الإدخال إلى المعاينة بلا تكرار

1. ابدأ بـ **Record Changes** على `Permit Applications`.
2. تحقق من أن الحالة أصبحت `Ready for inspection` وأن الطلب يتضمن المنطقة والعنوان المطلوبين.
3. استخدم **Find Records** للبحث عن حالة معاينة مفتوحة ترتبط بالطلب.
4. إذا لم توجد، فاستخدم **Create Record** لإنشاء سجل واحد في `Inspection Cases` بعلاقة الطلب المصدر والمنطقة والحالة والوحدة المسؤولة.
5. استخدم **Create Task** لفريق المعاينة الميدانية و**Send Notification** لمنسقهم المقيد بالنطاق.
6. احتفظ بمعرّف الحالة المنشأة أو أظهره بحيث يستطيع المراجع تتبع النتيجة من طلب الترخيص.

### نمط: انتظار قرار بشري ثم إعداد مستند

1. ابدأ بـ **On Form Action** عندما يُرسل ملف الحالة لاتخاذ قرار.
2. استخدم **Wait For Form Signature** أو **Wait For Form Action** لنقطة القرار المعتمدة فعلياً.
3. تحقق من القرار المقبول ومسار التوقيع المطلوب.
4. استخدم **Word Template** بالحقول المعتمدة فقط.
5. استخدم **Word to PDF** عند الحاجة، ثم حدّث سجل الحالة بمرجع الناتج.
6. أبلغ مالك الخدمة المسؤول داخل KayanOS.

### نمط: خدمة استجابة لوحة معلومات

1. ابدأ بـ **On Dashboard Widget Call**.
2. تحقق من الوضع والمدخل مقابل نطاق الخدمة المسموح للمستخدم به.
3. استخدم **Find Records** لاسترجاع التجميعات أو السجلات اللازمة فقط.
4. شكّل النتيجة حسب مخطط JSON الموثق.
5. اختم بـ **Return Dashboard Widget Response**.

## اختبر كل إجراء بالترتيب الصحيح

استخدم سجلاً غير إنتاجي معتمداً واحداً ونفذ الفحوص التالية:

1. اختبار المشغّل: تحقق من حدث المصدر والبيانات المتوقعة.
2. اختبار القراءة: تحقق من أن إجراءات البحث تجد مجموعة السجلات المقصودة.
3. اختبار الكتابة: أنشئ أو حدّث هدفاً غير إنتاجي معرفاً بوضوح.
4. اختبار الانتظار/التنفيذ: تأكد من ربط المهمة أو العمل المجمّع أو جلسة النموذج أو إجراء الكيان الصحيحين.
5. اختبار الإشعار/الاستجابة: تحقق من المستلم أو الحمولة المعادة دون استخدام مواطن حقيقي أو مستلم خارجي أو نطاق دور إنتاجي.
6. المراجعة: حدد النتيجة داخل KayanOS وسجل معرّفها ومالكها ونتيجتها.

<Warning>
  لا تضع إجراء كتابة أو تنفيذ أو تحديث أدوار أو إنشاء مستند أو إشعاراً مباشرة بعد حدث غير مفلتر. اجعل الشرط والهدف
  الناتج صريحين أولاً.
</Warning>

![تكوين إجراء أتمتة KayanOS لمتابعة داخلية مضبوطة.](https://kayanos.app/docs-images/ar/build/automations-actions.png)

## متابعة البناء

* اجمع المشغلات والإجراءات في [وصفات أتمتة KayanOS](/ar/build/automations-recipes).
* اختبر المسار وشغّله وشخّصه في [اختبار الأتمتة وتشغيلها واستكشاف أعطالها](/ar/build/automations-test-run-and-troubleshoot).
* راجع [الصلاحيات والإتاحة](/ar/reference/permissions-and-availability) قبل تمكين إجراءات الأدوار أو الإشعارات.
