snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 3s

This commit is contained in:
upstream-mirror
2026-09-17 23:28:13 +05:00
commit e7da97194a
32688 changed files with 4208681 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
---
title: إنشاء عرض تقويم للمهام المستحقة
description: اعرض مهامك والمواعيد النهائية على تقويم.
---
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## المتطلبات الأساسية
يحتاج كائن المهام إلى حقل **Due Date** (من نوع Date أو Date & Time).
## الخطوات
1. انتقل إلى **المهام**
2. انقر على القائمة المنسدلة لطريقة العرض → **+ إضافة طريقة عرض**
3. قم بتسمية العرض (مثال: "تقويم المهام")
4. انقر على **إنشاء**
5. انقر على **الخيارات** واختر **التقويم** كتخطيط
6. اختر **Due Date** كحقل التاريخ
7. انقر على **حفظ**
## تهيئة التقويم
### إظهار الحقول على الأحداث
1. انقر على **الخيارات → الحقول**
2. انقر على **أيقونة العين** لإظهار/إخفاء الحقول
3. اسحب لإعادة الترتيب
الحقول الموصى بعرضها:
* **Title** — اسم المهمة
* **Assignee** — الشخص المسؤول
* **Status** — التقدّم الحالي
### تصفية التقويم
أنشئ عروضًا مركّزة:
* **مهامي**: تصفية حسب Assignee = Me
* **هذا الأسبوع**: تصفية حسب Due Date = This week
* **متأخر**: التصفية حسب تاريخ الاستحقاق < اليوم، الحالة ≠ مكتمل
## حالات استخدام أخرى للتقويم
| كائن | حقل التاريخ | الغرض |
| --------------- | -------------- | ------------------------------- |
| الفرص | تاريخ الإغلاق | تتبع عمليات الإغلاق المتوقعة |
| الأحداث المخصصة | تاريخ الحدث | التخطيط للأنشطة |
| المشاريع | الموعد النهائي | مراقبة الجداول الزمنية للمشاريع |
## نصائح
* **راجِع أسبوعياً**: ابدأ كل أسبوع بالتحقق من عرض التقويم
* **اجمعه مع عرض الجدول**: استخدم التقويم للعرض العام، والجدول للتفاصيل
* **عيّن مستوى الرؤية**: اجعل تقاويم المهام الشخصية غير مدرجة
## ذات صلة
* [عرض التقويم](/l/ar/user-guide/views-pipelines/capabilities/calendar-view) — جميع ميزات التقويم
* [عوامل التصفية والفرز](/l/ar/user-guide/views-pipelines/capabilities/filters-and-sorting) — قم بتصفية تقويمك

View File

@@ -0,0 +1,80 @@
---
title: إنشاء عرض كانبان للمشاريع
description: تتبّع المشاريع عبر المراحل باستخدام لوحة مرئية.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
استخدم عرض كانبان لتمثيل مشاريعك بصريًا (أو أي كائن ذي مراحل) كبطاقات تتحرك عبر الأعمدة.
<VimeoEmbed videoId="927888627" title="عرض توضيحي بالفيديو" />
## المتطلبات الأساسية
يحتاج الكائن الخاص بك إلى **حقل Select** لاستخدامه كأعمدة (مثل: الحالة، المرحلة، الطور).
إذا لم يكن لديك واحد:
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. اختر الكائن الخاص بك
3. أضف حقل Select مع خيارات المراحل لديك
## الخطوات
1. انتقل إلى الكائن الخاص بك (مثل: المشاريع، المهام)
2. انقر على القائمة المنسدلة لطريقة العرض → **+ إضافة طريقة عرض**
3. قم بتسمية العرض (مثال: "لوحة المشروع")
4. انقر على **إنشاء**
5. انقر على **الخيارات** واختر **كانبان** كتخطيط
6. يستخدم العرض حقل Select الخاص بك للأعمدة تلقائيًا
7. انقر على **حفظ**
## تهيئة لوحتك
### إظهار الحقول الرئيسية على البطاقات
1. انقر على **الخيارات → الحقول**
2. ابحث عن الحقول في قسم "الحقول المخفية"
3. انقر على **أيقونة العين** لعرضها على البطاقات
4. اسحب لإعادة الترتيب
<img src="/images/user-guide/kanban-views/filter.png" style={{width:'100%'}} />
### تمكين العرض المدمج
للحصول على نظرة عامة عالية المستوى:
1. انقر على **الخيارات**
2. فعِّل **العرض المضغوط**
تعرض البطاقات اسم السجل فقط.
<img src="/images/user-guide/kanban-views/compact-view.png" style={{width:'100%'}} />
### إضافة عمليات التجميع
اعرض الأعداد أو الإجماليات أعلى كل عمود:
1. انقر على الرقم بجوار اسم العمود
2. حدّد عملية التجميع (Count، Sum، إلخ)
3. اختر حقلاً إذا لزم الأمر
## نقل البطاقات
اسحب وأفلِت البطاقات بين الأعمدة لتحديث حالتها.
<VimeoEmbed videoId="927888627" title="عرض توضيحي بالفيديو" />
## مثال: لوحة المهام
| العمود (الحالة) | البطاقات |
| --------------- | ------------------ |
| **للتنفيذ** | مهام جديدة |
| **قيد التقدم** | عمل نشط |
| **مراجعة** | في انتظار الموافقة |
| **تم** | مكتمل |
## ذات صلة
* [عروض كانبان](/l/ar/user-guide/views-pipelines/capabilities/kanban-views) — عمليات التجميع، العرض المضغوط، المراحل
* [كيفية إعداد مسار مبيعات](/l/ar/user-guide/views-pipelines/how-tos/set-up-a-sales-pipeline) — كانبان للفرص

View File

@@ -0,0 +1,51 @@
---
title: إنشاء عرض الجدول مع التجميع
description: نظم سجلاتك في مجموعات قابلة للطي حسب قيمة الحقل.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
قم بتجميع عرض الجدول حسب حقل الاختيار لتنظيم السجلات في أقسام قابلة للطي.
<img src="/images/user-guide/table-views/table-group-by.png" style={{width:'100%'}} />
## الخطوات
1. انتقل إلى الكائن (الأشخاص، الشركات، إلخ)
2. انقر على القائمة المنسدلة لطريقة العرض → **+ إضافة طريقة عرض**
3. قم بتسمية العرض (مثلا: "الشركات حسب النوع")
4. انقر على **إنشاء**
5. انقر على **الخيارات → التجميع**
6. اختر حقل الاختيار للتجميع حسبه
7. انقر على **حفظ**
## تكوين ترتيب المجموعات
ضمن **الخيارات → التجميع → الفرز**، اختر كيفية ترتيب المجموعات:
| الخيار | الوصف |
| -------------- | ----------------------------------------------------- |
| **أبجدي** | من A إلى Z |
| **أبجدي عكسي** | من Z إلى A |
| **ترتيب يدوي** | اسحب المجموعات لإعادة ترتيبها ضمن "المجموعات المرئية" |
انقر على **أيقونة العين** بجانب مجموعة لإخفائها من العرض.
<Note>
**لأفضل أداء، احصر العدد في 10-15 مجموعة مرئية.** إذا احتجت إلى المزيد، فكر في استخدام لوحة المعلومات بدلا من ذلك.
</Note>
## مثال: الشركات حسب الصناعة
1. اذهب إلى **الشركات**
2. أنشئ عرضا جديدا باسم "حسب الصناعة"
3. انقر على **الخيارات → التجميع**
4. اختر حقل **الصناعة**
5. حفظ
الآن أصبحت شركاتك منظمة حسب الصناعة، مما يسهل التركيز على شريحة واحدة في كل مرة.
## ذات صلة
* [عروض الجدول](/l/ar/user-guide/views-pipelines/capabilities/table-views) — جميع ميزات عرض الجدول
* [عوامل التصفية والفرز](/l/ar/user-guide/views-pipelines/capabilities/filters-and-sorting) — اجمع بين التجميع وعوامل التصفية

View File

@@ -0,0 +1,32 @@
---
title: تقييد الوصول إلى عرضك
description: تحكّم في من يمكنه رؤية عروضك المخصّصة.
---
لكل عرض (باستثناء العروض الافتراضية "كلّ [اسم الكائن]") إعداد رؤية خاص به.
## الخطوات
1. افتح العرض الذي تريد تقييد الوصول إليه
2. انقر على **الخيارات** في الزاوية اليمنى العليا
3. انقر على **الرؤية**
4. اختر **غير مدرج**
أصبح عرضك الآن مرئيًا لك فقط.
## خيارات الرؤية
| الإعداد | من يمكنه الرؤية |
| --------------- | ---------------------- |
| **مساحة العمل** | جميع أعضاء مساحة العمل |
| **غير مدرج** | أنت فقط |
## الملاحظات
* لا يمكن جعل العروض الافتراضية "كلّ [اسم الكائن]" غير مدرجة
* لا تظهر العروض غير المدرجة في القوائم المنسدلة للعروض لدى المستخدمين الآخرين
* يمكنك تغيير الرؤية للعودة إلى مساحة العمل في أي وقت
## ذات صلة
* [إعدادات العرض](/l/ar/user-guide/views-pipelines/capabilities/view-settings) — جميع خيارات إعداد العرض

View File

@@ -0,0 +1,120 @@
---
title: إعداد مسار المبيعات
description: قم بتهيئة مسار المبيعات لديك لتتبّع الفرص عبر المراحل.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
يمثّل مسار المبيعات في Twenty عرض كانبان لكائن الفرص لديك، حيث يمثّل كل عمود مرحلة في عملية المبيعات الخاصة بك.
## الخطوة 1: تهيئة المراحل الخاصة بك
تُحدَّد المراحل في حقل **Stage** الخاص بكائن الفرص.
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. حدّد **الفرص**
3. ابحث عن حقل **Stage** وانقر عليه
4. أضِف المراحل أو أزلها أو أعد تسميتها بما يتوافق مع عمليتك
<VimeoEmbed videoId="927890428" title="عرض توضيحي بالفيديو" />
### المراحل الموصى بها
| المرحلة | الغرض |
| ----------------- | ----------------------------- |
| **جديد** | فرص جديدة تم تحديدها للتو |
| **مؤهل** | تم التأكّد من ملاءمتها الجيدة |
| **اجتماع** | تجري مناقشات |
| **عرض** | تم إرسال العرض |
| **تفاوض** | جارٍ العمل على الشروط |
| **مغلقة - رابحة** | صفقة ناجحة |
| **مغلقة - خاسرة** | صفقة غير ناجحة |
<Note>
**5-7 المراحل مثلى.** مراحل كثيرة جدا تجعل من الصعب مسح خط الأنابيب، وقلة قليلة جدا تفقد الرؤية في إحراز التقدم.
</Note>
## الخطوة 2: إنشاء عرض لمسار المبيعات
1. اذهب إلى **الفرص**
2. انقر على القائمة المنسدلة لطريقة العرض → **+ إضافة طريقة عرض**
3. سمِّه "مسار المبيعات"
4. انقر على **إنشاء**
5. افتح **الخيارات** واختر **Kanban** كتخطيط
يستخدم العرض تلقائيًا حقل Stage للأعمدة.
## الخطوة 3: تهيئة العرض الخاص بك
### إظهار الحقول الرئيسية
1. انقر على **الخيارات → الحقول**
2. ابحث عن الحقول في قسم "الحقول المخفية"
3. انقر على **أيقونة العين** لعرض: Company، Amount، Close Date، Owner
### تمكين عمليات التجميع
إظهار الإجماليات أعلى كل عمود:
1. انقر على الرقم المعروض بجانب اسم Stage أعلى العمود
2. حدّد نوع التجميع (Count، Sum، Average، إلخ)
3. اختر الحقل المراد تجميعه (مثال: Amount)
**مثال:** اعرض إجمالي قيمة الصفقات لكل مرحلة من خلال تجميع حقل Amount باستخدام المجموع.
### استخدام طريقة العرض المدمجة (اختياري)
للحصول على نظرة عامة عالية المستوى مع أدنى قدر من محتوى البطاقات:
1. انقر على **الخيارات**
2. فعِّل مفتاح التبديل لخيار **العرض المضغوط**
## الخطوة 4: إنشاء عروض شخصية وعروض للفريق
### "مسار المبيعات الخاص بي"
* **عامل التصفية**: Owner = Me
* **الظهور**: غير مُدرَج (عرض شخصي)
### "مسار المبيعات للفريق"
* **عامل التصفية**: None (عرض الكل)
* **الظهور**: Workspace (عرض مشترك)
### "الإغلاق هذا الشهر"
* **النوع**: Table
* **عامل التصفية**: Close Date = This month، Stage ≠ Closed Won، Stage ≠ Closed Lost
* **الفرز**: Close Date تصاعديًا
## العمل مع الفرص
### إنشاء الفرص
* انقر على **+ New** في عرض الفرص
* أو انقر على **+** في عمود مرحلة معيّنة
### الانتقال عبر المراحل
اسحب وأفلِت بطاقات الفرص بين الأعمدة لتحديث مرحلتها.
<VimeoEmbed videoId="927888627" title="عرض توضيحي بالفيديو" />
## أفضل الممارسات
### نظافة مسار المبيعات
* حدِّث الصفقات يوميًا مع تقدّمها
* انقل الصفقات الراكدة أو أغلِقها على الفور
* اجعل تواريخ الإقفال واقعية
### الانضباط في المراحل
* حدِّد معايير واضحة لكل مرحلة
* انقل الصفقات فور استيفاء المعايير
* لا تدَع الصفقات تبقى في المراحل لوقت طويل
## ذات صلة
* [عروض كانبان](/l/ar/user-guide/views-pipelines/capabilities/kanban-views) — عمليات التجميع والعرض المضغوط
* [عوامل التصفية والفرز](/l/ar/user-guide/views-pipelines/capabilities/filters-and-sorting) — إنشاء عروض مُفلترة

View File

@@ -0,0 +1,149 @@
---
title: إظهار المبلغ المتوقع في خط الأنابيب
description: احسب واعرض قيم الصفقات الموزونة استنادًا إلى احتمال المرحلة.
---
المبلغ المتوقع هو قيمة محسوبة: **المبلغ × الاحتمال**. يساعدك هذا على توقّع الإيرادات من خلال وزن الصفقات بناءً على مدى احتمالية إغلاقها.
<Tip>
هذا مثال على إنشاء [حقول الصيغ](/l/ar/user-guide/workflows/how-tos/crm-automations/formula-fields) باستخدام سير العمل.
</Tip>
يرشدك هذا الدليل إلى إعداد الحقول المخصصة وسير العمل اللازمة لحساب المبالغ المتوقعة وعرضها في خط سير المبيعات لديك.
## الخطوة 1: إنشاء حقول مخصصة
تحتاج إلى حقلين مخصصين على كائن «الفرص».
### إنشاء حقل الاحتمال
1. انتقل إلى **الإعدادات → نموذج البيانات → الفرص**
2. انقر **+ إضافة حقل**
3. التكوين:
* **الاسم**: الاحتمال
* **النوع**: رقم
* **الوصف**: احتمال قائم على المرحلة (0-100%)
4. انقر على **حفظ**
### إنشاء حقل المبلغ المتوقع
1. انقر **+ إضافة حقل**
2. التكوين:
* **الاسم**: المبلغ المتوقع
* **النوع**: عملة
* **الوصف**: محسوب: المبلغ × الاحتمال
3. انقر على **حفظ**
### اختياري: جعل الحقول للقراءة فقط للمستخدمين
إذا كنت لا تريد أن يحرّر المستخدمون هذه الحقول المحسوبة يدويًا:
1. انتقل إلى **الإعدادات → الأعضاء → الأدوار**
2. حدِّد الدور لتكوينه
3. اعثر على كائن «الفرص»
4. عيّن حقلي **الاحتمال** و**المبلغ المتوقع** كحقول للقراءة فقط
يضمن هذا أن يتم تحديث هذه القيم عبر «سير العمل» فقط.
## الخطوة 2: إنشاء سير العمل رقم 1 — تحديث الاحتمال عند تغيير المرحلة
يضبط سير العمل هذا «الاحتمال» تلقائيًا عند انتقال فرصة إلى مرحلة جديدة.
### إنشاء سير العمل
1. انتقل إلى **سير العمل**
2. انقر **+ سير عمل جديد**
3. سمِّه "تحديث الاحتمال عند تغيير المرحلة"
### تكوين المشغّل
1. أضِف مشغّل **إنشاء أو تحديث سجل**
2. حدِّد **الفرص** على أنه الكائن
3. التصفية على: تم تحديث حقل **المرحلة**
### أضِف تفرعات لكل مرحلة
أنشئ تفرعًا لكل مرحلة مع احتمالها:
| المرحلة | الاحتمال |
| ------------------ | -------- |
| جديد | 10% |
| مؤهل | 25% |
| اجتماع | 40% |
| العرض | 60% |
| تفاوض | 80% |
| تم الإغلاق - ربح | 100% |
| تم الإغلاق - خسارة | 0% |
<Note>
لإنشاء تفرع جديد، انقر بزر الماوس الأيمن على لوحة سير العمل وانقر **إجراء جديد**. بعد ذلك، اربط هذا الإجراء بالعقدة السابقة عبر سحب السهم من العقدة السابقة إلى هذا الإجراء الجديد.
</Note>
لكل مرحلة:
1. أضِف عقدة **تصفية**: المرحلة = [اسم المرحلة]
2. أضِف إجراء **تحديث سجل**:
* السجل: الفرصة المُشغِّلة
* الحقل: الاحتمال
* القيمة: [احتمال تلك المرحلة]
### حساب المبلغ المتوقع
بعد انضمام التفرعات مجددًا:
1. أضِف عقدة **تصفية**: المبلغ غير فارغ
2. أضِف إجراء **تحديث سجل**:
* السجل: الفرصة المُشغِّلة
* الحقل: المبلغ المتوقع
* القيمة: المبلغ × الاحتمال
## الخطوة 3: إنشاء سير العمل رقم 2 — إعادة الحساب عند تغيير المبلغ
يحدّث سير العمل هذا «المبلغ المتوقع» عند تغيّر «مبلغ الصفقة».
### إنشاء سير العمل
1. انتقل إلى **سير العمل**
2. انقر **+ سير عمل جديد**
3. سمِّه "إعادة حساب المبلغ المتوقع عند تغيير المبلغ"
### تكوين المشغّل
1. أضِف مشغّل **إنشاء أو تحديث سجل**
2. حدِّد **الفرص** على أنه الكائن
3. التصفية على: تم تحديث حقل **المبلغ**
### إضافة المنطق
1. أضِف عقدة **تصفية**: المبلغ غير فارغ
2. أضِف إجراء **تحديث سجل**:
* السجل: الفرصة المُشغِّلة
* الحقل: المبلغ المتوقع
* القيمة: المبلغ × الاحتمال
## الخطوة 4: العرض في خط سير المبيعات لديك
اعرض الآن إجماليات «المبلغ المتوقع» في طريقة عرض كانبان لديك:
1. افتح طريقة عرض كانبان **خط سير المبيعات**
2. انقر **الرقم** الموجود بجوار أي اسم مرحلة أعلى العمود
3. اختر **المجموع**
4. اختر **المبلغ المتوقع**
سيعرض كل عمود الآن إجمالي القيمة الموزونة في خط السير لتلك المرحلة.
## ملخص
| المكوّن | الغرض |
| ---------------------- | ----------------------------------------------------------------- |
| **حقل الاحتمال** | يخزّن احتمال الفوز القائم على المرحلة |
| **حقل المبلغ المتوقع** | يخزّن المبلغ × الاحتمال |
| **سير العمل رقم 1** | يحدّث «الاحتمال» عند تغيير المرحلة، ثم يعيد حساب «المبلغ المتوقع» |
| **سير العمل رقم 2** | يعيد حساب «المبلغ المتوقع» عند تغيير «المبلغ» |
| **التجميع** | يعرض مجموع «المبلغ المتوقع» لكل مرحلة |
## ذات صلة
* [حقول الصيغ](/l/ar/user-guide/workflows/how-tos/crm-automations/formula-fields) — إنشاء حقول محسوبة باستخدام سير العمل
* [طرق عرض كانبان](/l/ar/user-guide/views-pipelines/capabilities/kanban-views) — تجميعات الأعمدة
* [كيفية إنشاء حقول مخصصة](/l/ar/user-guide/data-model/how-tos/create-custom-fields) — تكوين الحقول

View File

@@ -0,0 +1,231 @@
---
title: تتبّع مدة بقاء الفرص في كل مرحلة
description: راقِب سرعة الصفقات بتتبُّع وقت دخول الفرص إلى كل مرحلة.
---
<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
export const main = async (): Promise<object> => {
return { now: new Date().toISOString() };
};
```
3. أضِف إجراء **تحديث سجل**:
* السجل: الفرصة المُشغِّلة
* الحقل: آخر دخول جديد
* القيمة: `now` من عُقدة الكود
---
**التفرّع 2: المرحلة = مؤهّل**
عند الانتقال إلى مرحلة مؤهّل، سجّل وقت الدخول واحسب أيضًا الأيام التي أمضتها في مرحلة جديد.
1. أضِف عُقدة **تصفية**: المرحلة = مؤهّل
2. أضِف إجراء **كود**:
```javascript
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
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) — التجميعات