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

# تتبّع مدة بقاء الفرص في كل مرحلة

> راقِب سرعة الصفقات بتتبُّع وقت دخول الفرص إلى كل مرحلة.

<Tip>
  هذا مثال على إنشاء [حقول الصيغة](/l/ar/user-guide/workflows/how-tos/crm-automations/formula-fields) باستخدام سير العمل — وتحديدًا حسابات التواريخ.
</Tip>

يساعدك تتبُّع وقت دخول الفرص إلى كل مرحلة على تحديد نقاط الاختناق وقياس سرعة الصفقات.

يرشدك هذا الدليل إلى إعداد حقول مخصّصة وسير عمل لتسجيل وقت انتقال الفرصة إلى كل مرحلة تلقائيًا، وحساب عدد الأيام التي أمضتها في المرحلة السابقة.

## الخطوة 1: إنشاء حقول مخصّصة

تحتاج إلى نوعين من الحقول لكل مرحلة:

* **حقول التاريخ والوقت**: تسجيل وقت دخول الفرصة إلى كل مرحلة
* **حقول الأرقام**: تخزين عدد الأيام التي أمضتها الفرصة في كل مرحلة

### إنشاء حقول "آخر دخول"

1. انتقل إلى **الإعدادات → نموذج البيانات → الفرص**
2. لكل مرحلة، انقر **+ إضافة حقل** وقم بالتهيئة:
   * **الاسم**: آخر دخول \[اسم المرحلة] (مثال: "آخر دخول جديد"، "آخر دخول مؤهّل")
   * **النوع**: تاريخ ووقت
   * **الوصف**: الطابع الزمني عند دخول الفرصة هذه المرحلة
3. انقر على **حفظ**

أنشئ هذه الحقول:

* آخر دخول جديد
* آخر دخول مؤهّل
* آخر دخول اجتماع
* آخر دخول عرض
* آخر دخول تفاوض
* آخر دخول مغلقة - ربح
* آخر دخول مغلقة - خسارة

### إنشاء حقول "الأيام في المرحلة"

1. لكل مرحلة، انقر **+ إضافة حقل** وقم بالتهيئة:
   * **الاسم**: الأيام في \[اسم المرحلة] (مثال: "الأيام في جديد"، "الأيام في مؤهّل")
   * **النوع**: رقم
   * **الوصف**: عدد الأيام المقضية في هذه المرحلة
2. انقر على **حفظ**

أنشئ هذه الحقول:

* الأيام في جديد
* الأيام في مؤهّل
* الأيام في اجتماع
* الأيام في عرض
* الأيام في تفاوض

<Note>
  لا تحتاج إلى حقول "الأيام في" لمرحلتي "مغلقة - ربح" و"مغلقة - خسارة" لأنها مراحل نهائية.
</Note>

### اختياري: جعل الحقول للقراءة فقط

إذا كنت لا تريد أن يحرّر المستخدمون هذه الحقول المحسوبة يدويًا:

1. انتقل إلى **الإعدادات → الأعضاء → الأدوار**
2. حدِّد الدور لتهيئته
3. اعثر على كائن الفرص
4. عيِّن حقول "آخر دخول" و"الأيام في" كحقول للقراءة فقط

## الخطوة 2: إنشاء سير العمل

يتولّى سير العمل الواحد هذا المهمتين معًا:

* يسجّل الطابع الزمني عند الدخول إلى مرحلة جديدة
* يحسب الأيام المُستغرَقة في المرحلة السابقة

### إنشاء سير العمل

1. انتقل إلى **سير العمل**
2. انقر **+ سير عمل جديد**
3. سمِّه "تتبُّع وقت المرحلة"

### تهيئة المشغِّل

1. أضِف مشغِّل **تحديث السجل**
2. حدِّد **الفرص** ككائن
3. التصفية على: تم تحديث حقل **المرحلة**

### إضافة تفرّعات لكل مرحلة

<Note>
  لإنشاء تفرّع جديد، انقر بزر الفأرة الأيمن على لوحة سير العمل ثم انقر **إجراء جديد**. بعد ذلك، اربط هذا الإجراء بالعُقدة السابقة بسحب السهم من العُقدة السابقة إلى هذا الإجراء الجديد.
</Note>

***

**التفرّع 1: المرحلة = جديد (المرحلة الأولى)**

نظرًا لأنها المرحلة الأولى، فإننا نسجّل فقط طابع وقت الدخول—ولا توجد مرحلة سابقة للحساب.

1. أضِف عُقدة **تصفية**: المرحلة = جديد
2. أضِف إجراء **كود**:

```javascript theme={null}
export const main = async (): Promise<object> => {
  return { now: new Date().toISOString() };
};
```

3. أضِف إجراء **تحديث سجل**:
   * السجل: الفرصة المُشغِّلة
   * الحقل: آخر دخول جديد
   * القيمة: `now` من عُقدة الكود

***

**التفرّع 2: المرحلة = مؤهّل**

عند الانتقال إلى مرحلة مؤهّل، سجّل وقت الدخول واحسب أيضًا الأيام التي أمضتها في مرحلة جديد.

1. أضِف عُقدة **تصفية**: المرحلة = مؤهّل
2. أضِف إجراء **كود**:

```javascript theme={null}
export const main = async (params: {
  lastEnteredPreviousStage: Date;
}): Promise<object> => {
  const { lastEnteredPreviousStage } = params;

  const now = new Date();
  const entryDate = new Date(lastEnteredPreviousStage);
  const diffTime = Math.abs(now.getTime() - entryDate.getTime());
  const daysInPreviousStage = Math.ceil(diffTime / (1000 * 60 * 60 * 24));

  return {
    now: now.toISOString(),
    daysInPreviousStage: daysInPreviousStage
  };
};
```

3. اضبط مُدخلات عُقدة الكود: اربط `lastEnteredPreviousStage` بحقل **آخر دخول جديد**
4. أضِف إجراء **تحديث سجل**:
   * السجل: الفرصة المُشغِّلة
   * الحقول المطلوب تحديثها:
     * آخر دخول مؤهّل = `now`
     * الأيام في جديد = `daysInPreviousStage`

***

**التفرّع 3: المرحلة = اجتماع**

عند الانتقال إلى مرحلة اجتماع، سجّل وقت الدخول واحسب أيضًا الأيام التي أمضتها في مرحلة مؤهّل.

1. أضِف عُقدة **تصفية**: المرحلة = اجتماع
2. أضِف إجراء **كود**:

```javascript theme={null}
export const main = async (params: {
  lastEnteredPreviousStage: Date;
}): Promise<object> => {
  const { lastEnteredPreviousStage } = params;

  const now = new Date();
  const entryDate = new Date(lastEnteredPreviousStage);
  const diffTime = Math.abs(now.getTime() - entryDate.getTime());
  const daysInPreviousStage = Math.ceil(diffTime / (1000 * 60 * 60 * 24));

  return {
    now: now.toISOString(),
    daysInPreviousStage: daysInPreviousStage
  };
};
```

3. اضبط مُدخلات عُقدة الكود: اربط `lastEnteredPreviousStage` بحقل **آخر دخول مؤهّل**
4. أضِف إجراء **تحديث سجل**:
   * السجل: الفرصة المُشغِّلة
   * الحقول المطلوب تحديثها:
     * آخر دخول اجتماع = `now`
     * الأيام في مؤهّل = `daysInPreviousStage`

***

**تابِع لبقية المراحل:**

| المرحلة       | السجلات                | يحسب             |
| ------------- | ---------------------- | ---------------- |
| عرض           | آخر دخول عرض           | الأيام في اجتماع |
| تفاوض         | آخر دخول تفاوض         | الأيام في عرض    |
| مغلقة - ربح   | آخر دخول مغلقة - ربح   | الأيام في تفاوض  |
| مغلقة - خسارة | آخر دخول مغلقة - خسارة | الأيام في تفاوض  |

لا حاجة لعودة التفرّعات للاندماج—فكل واحد يعمل بشكل مستقل عند تحقق شرط مرحلته.

## الخطوة 3: تحليل الوقت في المرحلة

مع تسجيل الطوابع الزمنية وعدّ الأيام، يمكنك الآن تحليل سرعة الصفقات.

### إنشاء عرض "صفقات بطيئة"

1. أنشئ عرض جدول للفرص
2. أضِف أعمدة: الاسم، المرحلة، الأيام في \[المرحلة السابقة]، المبلغ
3. رتِّب حسب حقل "الأيام في" (تنازليًا)
4. رشِّح حسب المرحلة للتركيز على مرحلة واحدة في كل مرة

الصفقات في الأعلى أمضت أطول وقت في المرحلة السابقة.

### استخدم التجميعات

في عرض كانبان لمسار الصفقات لديك:

1. انقر الرقم بجانب اسم مرحلة
2. حدِّد **المتوسط**
3. اختر حقل "الأيام في"

سيُظهر هذا متوسط الوقت الذي تمضيه الصفقات في كل مرحلة.

## ملخص

| المكوِّن              | الغرض                                          |
| --------------------- | ---------------------------------------------- |
| **حقول آخر دخول**     | تخزين وقت دخول الفرصة إلى كل مرحلة             |
| **حقول الأيام في**    | تخزين عدد الأيام المقضية في كل مرحلة           |
| **سير العمل**         | يسجّل الطابع الزمني ويحسب الأيام في خطوة واحدة |
| **العروض والتجميعات** | تحليل سرعة الصفقات وتحديد نقاط الاختناق        |

## ذات صلة

* [سير العمل](/l/ar/user-guide/workflows/overview) — أساسيات الأتمتة
* [كيفية إنشاء حقول مخصّصة](/l/ar/user-guide/data-model/how-tos/create-custom-fields) — تهيئة الحقول
* [عروض كانبان](/l/ar/user-guide/views-pipelines/capabilities/kanban-views) — التجميعات
