# مرجع النقاط

تحمل كل [نقطة](/ar/developer/api-reference/customer-journey-api/journey-object/#point) كائن `point_data` بمفتاح متداخل واحد بالضبط، يطابق `point_type` للنقطة (انظر [ربط نوع النقطة بالمفتاح](/ar/developer/api-reference/customer-journey-api/journey-object/#point-types-and-point_data)). توثق هذه الصفحة الهيكل تحت كل مفتاح.

<Aside type="note">
نقاط الدخول، والتوقيت، والتقسيم، والإجراء، والتحويل موثقة بالكامل أدناه.

بالنسبة لنقاط المراسلة (`send_*`، `inapp`)، تغطي هذه الصفحة الحقول الهيكلية فقط: أي preset أو محتوى يجب الإشارة إليه وأي إعدادات قناة يجب تمريرها.
يتم تعريف محتوى الرسالة نفسه في الـ preset ويوثق في [واجهة برمجة تطبيقات الإعدادات المسبقة (Presets API)](/ar/developer/api-reference/presets-api/) ووثائق كل قناة.
تشير بعض الحقول إلى كائنات متداخلة تعكس عناصر التحكم في منشئ Customer Journey.
</Aside>
## نقاط الدخول

تحتاج الـ Journey إلى نقطة دخول واحدة على الأقل. جميع نقاط الدخول لها مخرج `default` واحد.

### start_by_segment

يدخل المستخدمون الذين يطابقون segment معين. `POINT_TYPE_START_BY_SEGMENT`.

| الحقل | النوع | الوصف |
|---|---|---|
| `application_code` | string | [رمز التطبيق](/ar/developer/api-reference/api-identifiers/#application-code). |
| `filter_code` | string | [رمز Segment/filter](/ar/developer/api-reference/api-identifiers/#segment--filter-code) الذي يحدد الجمهور. |
| `repeat` | `SegmentRepeat` | جدول دخول متكرر اختياري (انظر [SegmentRepeat](#segmentrepeat)). |
| `start_at` | timestamp | لا تقم بالمعالجة قبل هذا الوقت (ISO 8601). |
| `is_deactivated` | bool | ما إذا كانت نقطة الدخول هذه معطلة. |

### message_bus (الدخول عبر event)

يدخل المستخدمون عندما يقومون بتشغيل event. `POINT_TYPE_EVENT`.

| الحقل | النوع | الوصف |
|---|---|---|
| `event_name` | string | [اسم الـ Event](/ar/developer/api-reference/api-identifiers/#event-name) الذي يتم الاستماع إليه. |
| `application_code` | string | [رمز التطبيق](/ar/developer/api-reference/api-identifiers/#application-code). |
| `event_conditions` | `PointEventCondition[]` | الشروط التي تتم مطابقتها مع سمات الـ event. |
| `active_period` | `Period` | نافذة زمنية يكون فيها المشغل نشطًا. |
| `multi_entry` | `MultiEntry` | كيف يمكن للمستخدم الدخول أكثر من مرة (انظر [MultiEntry](#multientry)). |
| `attribute_entry` | `AttributeEntry` | تسجيل معرفات المستخدمين (User IDs) المحمولة في سمة event بدلاً من المستخدم الذي قام بتشغيل الـ event (انظر [AttributeEntry](#attributeentry)). |
| `allow_reenter` | bool | ما إذا كان يمكن للمستخدمين إعادة الدخول إلى الـ journey. |

##### AttributeEntry

يسجل [معرفات المستخدمين (User IDs)](/ar/developer/api-reference/api-identifiers/#user-id) المحمولة في سمة event، بدلاً من المستخدم الذي قام بتشغيل الـ event. يعكس [المستخدمون من سمة event](/ar/product/customer-journey/journey-elements/entry-elements/trigger-based-entry/#users-from-an-event-attribute) في منشئ Customer Journey.

| الحقل | النوع | الوصف |
|---|---|---|
| `enabled` | bool | ما إذا كان سيتم تسجيل المستخدمين المذكورين في سمة event بدلاً من المستخدم الذي قام بتشغيل الـ event. |
| `attribute_name` | string | اسم سمة الـ event التي تحمل User ID (أو قائمة من User IDs) للتسجيل. |

### start_by_api

نقطة دخول يتم تغذيتها بواسطة استدعاء [Start by API](/ar/developer/api-reference/customer-journey-api/start-by-api/). `POINT_TYPE_START_BY_API`.

| الحقل | النوع | الوصف |
|---|---|---|
| `application_code` | string | [رمز التطبيق](/ar/developer/api-reference/api-identifiers/#application-code). |
| `attributes` | string[] | أسماء السمات المخصصة التي يمكن تمريرها في `attribute_values` لطلب [Start by API](/ar/developer/api-reference/customer-journey-api/start-by-api/#request-body). |
| `is_deactivated` | bool | ما إذا كانت نقطة الدخول هذه معطلة. |

## نقاط التوقيت

### delay (wait)

يوقف كل مستخدم لفترة زمنية ثابتة أو محسوبة. `POINT_TYPE_WAIT`. يحدد كائن `point_data.delay` مفتاح فترة زمنية واحدًا بالضبط من المفاتيح التالية:

| مفتاح الفترة الزمنية | النوع | الوصف |
|---|---|---|
| `sec` | uint64 | انتظر عددًا ثابتًا من الثواني. |
| `exact_time` | [`ExactTime`](#time-objects) | انتظر حتى وقت معين من اليوم (`hour`، `minute`). |
| `exact_date_time` | [`ExactDateTime`](#time-objects) | انتظر حتى تاريخ ووقت مطلقين. |
| `exact_week_days_time` | `ExactWeekDaysTime` | انتظر حتى أوقات محددة في أيام أسبوع محددة (خريطة من اليوم `0`=الاثنين ... `6`=الأحد ← `ExactTime`). |
| `dynamic_time` | [`DynamicTime`](#dynamictime) | انتظر بالنسبة لقيمة من tag أو event. |

يضيف `dynamic_time` مع `split_branches: true` فرع `output1` (انظر [مفاتيح المخرجات](/ar/developer/api-reference/customer-journey-api/journey-object/#output-keys)).

#### DynamicTime

| الحقل | النوع | الوصف |
|---|---|---|
| `from` | enum `DynamicTimeFrom` | ما إذا كان الوقت الأساسي يأتي من tag أو event. |
| `direction` | enum `DynamicTimeDirection` | الإزاحة قبل أو بعد الوقت الأساسي. |
| `duration` | uint64 | حجم الإزاحة. |
| `unit` | enum `DynamicTimeUnit` | وحدة `duration` (دقائق، ساعات، أيام، ...). |
| `split_branches` | bool | تقسيم المستخدمين إلى فروع منفصلة عندما تختلف أوقاتهم المحسوبة. |
| `tag_name` | string | الـ Tag الذي يحمل الوقت الأساسي (عندما يكون `from` هو tag). |
| `event_name` / `event_attribute` / `point_id` | string | مصدر الـ Event للوقت الأساسي (عندما يكون `from` هو event). |

### wait_event

ينتظر حتى يقوم المستخدمون بتشغيل event (أو انتهاء المهلة). `POINT_TYPE_WAIT_EVENT`. المخرج `default` هو المسار **غير المشغل**. المسار المشغل هو `output1` أو، مع نص برمجي، فرع واحد لكل شرط.

| الحقل | النوع | الوصف |
|---|---|---|
| `events` | `PointWaitEventInfo[]` | الـ Events التي يجب انتظارها. |
| `conditions_script` | string | نص برمجي اختياري لمنطق معقد متعدد الـ events. تصبح أسماء شروطه المحللة هي مفاتيح المخرجات. |
| `multi_entry` | `MultiEntry` | سلوك إعادة الدخول. |

## نقاط التقسيم والفلترة

### boolean_splitter

يوجه المستخدمين إلى فروع بناءً على شرط. `POINT_TYPE_BOOLEAN_SPLITTER`.

| الحقل | النوع | الوصف |
|---|---|---|
| `application_code` | string | [رمز التطبيق](/ar/developer/api-reference/api-identifiers/#application-code). |
| `split_strategy` | enum | `SPLIT_FILTER` (حسب الـ segment)، `SPLIT_TAGS` (حسب شروط الـ tag)، أو `SPLIT_EVENTS` (حسب شروط الـ event). |
| `load_policy` | enum | `ALL` (قد يتطابق أي من أجهزة المستخدم) أو `FILTER` (الجهاز الحالي فقط). |
| `filter_code` | string | رمز الـ Segment، عندما تكون `split_strategy` هي `SPLIT_FILTER`. |
| `filter_expressions` | `FilterExpression[]` | شروط الـ Tag، عندما تكون `split_strategy` هي `SPLIT_TAGS`: فرع `output` إضافي واحد لكل تعبير. |
| `event` | `BooleanSplitterEventInfo` | شروط الـ Event، عندما تكون `split_strategy` هي `SPLIT_EVENTS`: فرع `output` إضافي واحد لكل شرط. |

### ab_splitter

يقسم المستخدمين عشوائيًا إلى متغيرات مرجحة. `POINT_TYPE_AB_SPLITTER`. مفاتيح المخرجات هي `output0`، `output1`، ... (واحد لكل إدخال في `split`، مفهرس من 0. لا يوجد `default`).

| الحقل | النوع | الوصف |
|---|---|---|
| `split` | uint32[] | النسبة المئوية لكل فرع. يجب أن يكون المجموع 100. الفهرس `i` يرتبط بمفتاح المخرج `output{i}`. |
| `auto_select_winner` | bool | ما إذا كان سيتم اختيار فرع فائز تلقائيًا. |
| `winner_strategy` | enum | `ANY_GOAL` أو `SPECIFIC_GOAL`. |
| `goal_uuid` | string | الهدف المستخدم لتحديد الفائز (مع `SPECIFIC_GOAL`). |
| `winner_split` | uint32 | رقم الفرع الفائز (يبدأ من 1، `0` = لا يوجد فائز بعد). |

### filter

يسمح فقط للمستخدمين المطابقين بالاستمرار (`default`)، ويوجه الباقي إلى `output1`. `POINT_TYPE_FILTER`.

| الحقل | النوع | الوصف |
|---|---|---|
| `filter` | enum `Filter` | فحص محدد مسبقًا: `EMAIL_EXISTS`، `PUSH_TOKEN_EXISTS`، `SMS_TOKEN_EXISTS`، `WHATSAPP_TOKEN_EXISTS`، `LINE_TOKEN_EXISTS`، أو `CUSTOM`. |
| `filter_raw` | string | تعبير فلتر مخصص، عندما يكون `filter` هو `CUSTOM`. |

## نقاط الإجراء

### set_tags

يحدث الـ tags على المستخدم. `POINT_TYPE_SET_TAGS`.

| الحقل | النوع | الوصف |
|---|---|---|
| `application_code` | string | [رمز التطبيق](/ar/developer/api-reference/api-identifiers/#application-code). |
| `tags` | [`Tag`](#tag)[] | الـ Tags التي سيتم كتابتها. |

#### Tag

| الحقل | النوع | الوصف |
|---|---|---|
| `name` | string | اسم الـ Tag. |
| `type` | enum `TagType` | نوع البيانات والعملية: `TYPE_STRING`، `TYPE_INTEGER`، `TYPE_DATE`، `TYPE_BOOLEAN`، `TYPE_LIST`، `TYPE_LIST_APPEND`، `TYPE_LIST_REMOVE`، `TYPE_DYNAMIC`، ... |
| _value_ | oneof | مفتاح قيمة واحد بالضبط يطابق `type`: `str`، `int`، `bool`، `date`، `price`، `version`، `timezone`، `list`، أو `dynamic`. |

### web_hook

يرسل طلب HTTP صادر. `POINT_TYPE_WEBHOOK`. مخرج `default` واحد.

| الحقل | النوع | الوصف |
|---|---|---|
| `method` | string | طريقة HTTP (`GET`، `POST`، `PUT`، ...). |
| `url` | string | عنوان URL المستهدف. |
| `request_template` | string | قالب نص الطلب. يدعم قوالب [Liquid](/ar/developer/api-reference/messaging-api-v2/payload-reference/). |
| `headers` | map&lt;string, string&gt; | ترويسات HTTP. |
| `disabled` | bool | للقراءة فقط. `true` عندما يقوم Pushwoosh بتعطيل الـ webhook تلقائيًا بعد أخطاء متكررة. |
| `reactivate` | bool | للكتابة فقط. اضبط `true` لإعادة تمكين webhook معطل. |

## نقاط التحويل

### goal_event

يتتبع هدف تحويل. `POINT_TYPE_GOAL_EVENT`. ليس له مخرجات.

| الحقل | النوع | الوصف |
|---|---|---|
| `event_name` | string | اسم event الهدف. |
| `application_code` | string | [رمز التطبيق](/ar/developer/api-reference/api-identifiers/#application-code). |
| `event_conditions` | `PointEventCondition[]` | الشروط التي تتم مطابقتها مع سمات event الهدف. |
| `is_throw_out` | bool | ما إذا كان سيتم إزالة المستخدم من الـ journey بمجرد الوصول إلى الهدف. |
| `is_cancel_event` | bool | ما إذا كان هذا هدفًا سلبيًا (إلغاء). |

## نقاط الخروج

### terminator

ينهي الـ journey للمستخدم. `POINT_TYPE_EXIT`. كائن فارغ (`{}`) ولا توجد مخرجات.

```json
{ "point_type": "POINT_TYPE_EXIT", "point_data": { "terminator": {} }, "outputs": [] }
```

## نقاط المراسلة

ترسل جميع نقاط المراسلة عبر قناة وتشارك في غلاف مشترك. لكل منها مخرج `default` واحد ما لم يتم تمكين مقسم (انظر [مفاتيح المخرجات](/ar/developer/api-reference/customer-journey-api/journey-object/#output-keys)).

الحقول المشتركة:

| الحقل | النوع | الوصف |
|---|---|---|
| `application_code` | string | [رمز التطبيق](/ar/developer/api-reference/api-identifiers/#application-code). |
| `preset_code` | string | [Preset](/ar/developer/api-reference/presets-api/) (قالب) للإرسال. يستخدم `inapp` `richmedia_code` بدلاً من ذلك. |
| `content` / `title` | string | محتوى رسالة مضمن، عند عدم استخدام preset (يعتمد على القناة). |
| `campaign_code` | string | [رمز الحملة](/ar/developer/api-reference/api-identifiers/#campaign-code) للتتبع. يتم إنشاؤه تلقائيًا إذا تم حذفه. |
| `split_params` | [`BehaviorSplitter`](#behaviorsplitter) | اختياري: انتظر تفاعلًا وتفرع بناءً عليه. |
| `message_type` | enum | نوع الرسالة [تسويقية مقابل معاملات](/ar/product/messaging-channels/marketing-vs-transactional/) (يتحكم في معالجة مجموعة التحكم). |

أنواع النقاط وحقولها الإضافية البارزة:

| نوع النقطة | مفتاح `point_data` | ملاحظات |
|---|---|---|
| `POINT_TYPE_SEND_PUSH` | `send_push` | `split_params` (سلوك) بالإضافة إلى مقسم التسليم يمكن أن ينتج ما يصل إلى ثلاثة مخرجات. `send_by_user_id`، `wait_optimal_time`. |
| `POINT_TYPE_SEND_EMAIL` | `send_email` | `liquid_template_params`، `personalise`. انظر [Email API](/ar/developer/api-reference/email-api/). |
| `POINT_TYPE_SEND_SMS` | `send_sms` | انظر [SMS](/ar/developer/api-reference/sms/). |
| `POINT_TYPE_SEND_WHATSAPP` | `send_whatsapp` | يضيف preset الرد السريع مخرجًا واحدًا لكل رد (المفتاح = قيمة الرد). انظر [WhatsApp](/ar/developer/api-reference/whatsapp/). |
| `POINT_TYPE_SEND_TELEGRAM` | `send_telegram` | قناة Telegram. |
| `POINT_TYPE_SEND_KAKAO` | `send_kakao` | انظر [Kakao](/ar/developer/api-reference/kakao/). |
| `POINT_TYPE_SEND_LINE` | `send_line` | انظر [LINE API](/ar/developer/api-reference/line-api/). |
| `POINT_TYPE_SEND_DATA` | `send_data` | رسالة بيانات صامتة (بدون واجهة مستخدم). |
| `POINT_TYPE_INAPP` | `inapp` | يستخدم `richmedia_code`، `expire_in_days`، `capping`. |

## الأنواع المشتركة

### SegmentRepeat

| الحقل | النوع | الوصف |
|---|---|---|
| `enabled` | bool | ما إذا كان الدخول المتكرر قيد التشغيل. |
| `frequency` | string | `daily`، `weekly`، `monthly`، أو `dates`. |
| `every` | uint32 | كرر كل N فترة. |
| `dates` | string[] | تواريخ محددة، عندما تكون `frequency` هي `dates`. |
| `time` | `SegmentRepeatTime` | تكوين وقت اليوم. |

### كائنات الوقت

- `ExactTime`: `{ "hour": 0–23, "minute": 0–59 }`.
- `ExactDateTime`: `{ "year", "month": 1–12, "day": 1–31, "hour": 0–23, "minute": 0–59 }`.

### BehaviorSplitter

| الحقل | النوع | الوصف |
|---|---|---|
| `enabled` | bool | ما إذا كان يجب انتظار تفاعل والتفرع بناءً عليه. |
| `interval` | uint64 | عدد الثواني لانتظار التفاعل. |

### MultiEntry

يتحكم في عدد الجلسات النشطة التي يمكن أن يمتلكها المستخدم في الـ journey في نفس الوقت. يعكس [التحكم في عدد الجلسات التي يمكن أن يمتلكها المستخدم في نفس الوقت](/ar/product/customer-journey/journey-elements/entry-elements/trigger-based-entry/#control-how-many-sessions-a-user-can-have-at-the-same-time) في منشئ Customer Journey. يستخدم من قبل [نقطة دخول الـ event](#message_bus-event-entry) و [wait_event](#wait_event).

| الحقل | النوع | الوصف |
|---|---|---|
| `enabled` | bool | ما إذا كان يمكن للمستخدم أن يكون لديه جلسات نشطة متعددة في نفس الوقت. `false`: جلسة نشطة واحدة لكل مستخدم. `true`: جلسات نشطة متعددة لكل مستخدم. |
| `attribute_name` | string | اختياري. سمة الـ Event التي تحدد نطاق كل جلسة. عند التعيين، يمكن للمستخدم أن يكون لديه جلسة نشطة واحدة لكل قيمة مميزة لهذه السمة (على سبيل المثال، واحدة لكل `order_id`). تشترك الـ Events التي لها نفس القيمة في جلسة واحدة. اتركه فارغًا لتحديد نطاق جميع إدخالات المستخدم معًا. |

## مواضيع ذات صلة

<CardGrid>
  <LinkCard title="كائن Journey" href="/developer/api-reference/customer-journey-api/journey-object/" />
  <LinkCard title="الإنشاء والتحديث" href="/developer/api-reference/customer-journey-api/create-update/" />
  <LinkCard title="واجهة برمجة تطبيقات الإعدادات المسبقة (Presets API)" href="/developer/api-reference/presets-api/" />
</CardGrid>