# تأخير زمني

عنصر **Time Delay** يجعل المستخدمين ينتظرون لوقت محدد. بعد التأخير، ينتقلون إلى الخطوة التالية. يمكن أن يكون التأخير فترة ثابتة، أو وقتًا محددًا، أو تاريخًا. يمكن أن يعتمد أيضًا على قيمة Tag أو سمة Event.

## خيارات التأخير

### مدة ثابتة

عند تعيينه على فترة ثابتة، يسمح عنصر Time Delay للمستخدمين بمواصلة رحلتهم فقط عند انقضاء المدة الزمنية المحددة.

على سبيل المثال، إذا تم تعيين التأخير على 8 ساعات، فإن المستخدم الذي يصل إلى عنصر Journey هذا سينتظر لمدة 8 ساعات قبل الانتقال إلى الخطوة التالية.

<Aside type="note">
يرجى الأخذ في الاعتبار أن فترة التأخير **لا يمكن أن تكون أطول من 30 يومًا.**
</Aside>

<img src="/journey-elements-README-32.webp" alt="عنصر Time Delay مهيأ لمدة ثابتة، يظهر مستخدمًا ينتظر لفترة محددة قبل المتابعة."/>

### وقت محدد

يمكنك تعيين وقت محدد للمستخدمين للمضي قدمًا. المستخدمون الذين يصلون إلى عنصر التأخير سيتابعون في الوقت المحدد.

<Aside type="caution">
يتم تعيين خيار الوقت المحدد حسب المنطقة الزمنية للمستخدم.
</Aside>

على سبيل المثال، إذا وصل مستخدم إلى عنصر تأخير في الصباح الباكر وقمت بتعيين التأخير للانتظار حتى الساعة 5:30 مساءً، فسيتابع هؤلاء المستخدمون إلى نقطة Journey التالية في الساعة 5:30 مساءً وفقًا للمنطقة الزمنية لأجهزتهم.

<Aside type="note">
إذا كان الوقت الذي تحدده قد مضى بالفعل لبعض المستخدمين في مناطقهم الزمنية، فسينتظر هؤلاء المستخدمون حتى نفس الوقت المحدد في اليوم التالي.
</Aside>

<img src="/journey-elements-README-33.webp" alt="يتم إيقاف رحلة المستخدم مؤقتًا بواسطة عنصر Time Delay حتى يتم الوصول إلى وقت محدد في منطقته الزمنية المحلية."/>

### التاريخ

إذا كنت ترغب في إعداد حملة لمرة واحدة في تاريخ محدد (على سبيل المثال، إرسال إشعار الجمعة السوداء)، فحدد تاريخًا ووقتًا معينين لمواصلة الرحلة.

<Aside type="caution">
يرجى تذكر أن التاريخ والوقت يتم تعيينهما وفقًا للمنطقة الزمنية للمستخدم. إذا كان التاريخ والوقت اللذان تحددهما قد مضيا بالفعل لبعض المستخدمين في مناطقهم الزمنية، فسينتقلون فورًا إلى عنصر Journey التالي. 
</Aside>

<img src="/journey-elements-README-34.webp" alt="عنصر Time Delay معين بتاريخ محدد، مثالي لجدولة الحملات لمرة واحدة مثل العروض الترويجية للأعياد."/>

### يوم من الأسبوع

إذا كنت تريد أن ينتقل المستخدم إلى نقطة Journey التالية فقط في يوم محدد من الأسبوع، فحدد خيار **يوم من الأسبوع** وقم بتعيين اليوم والوقت المطلوبين.

<Aside type="caution">
يرجى تذكر أن اليوم والوقت يتم تعيينهما وفقًا للمنطقة الزمنية للمستخدم. إذا كان اليوم والوقت اللذان تحددهما قد مضيا بالفعل لبعض المستخدمين في مناطقهم الزمنية، فسينتظرون حتى نفس اليوم والوقت في الأسبوع التالي.
</Aside>

<img src="/journey-elements-README-35.webp" alt="عنصر Time Delay مهيأ ليوم محدد من الأسبوع، مما يسمح بالجداول الأسبوعية المتكررة."/>

### التأخير بناءً على بيانات المستخدم أو الحدث

استخدم هذا الخيار عندما يجب أن يأتي وقت الانتظار من Tag، أو سمة Event، أو قيمة تم تعيينها من استجابة [**Webhook**](#use-a-date-from-a-webhook-response).

1. في **خيار التأخير الزمني**، حدد **بناءً على بيانات المستخدم/الحدث**.
2. تحت **الحصول على التاريخ من**، حدد **ملف تعريف المستخدم** لاستخدام Tag، أو **Event** لاستخدام سمة حدث أو قيمة من استجابة webhook.
3. إذا حددت **ملف تعريف المستخدم**، فاختر الـ Tag الذي يحتوي على التاريخ.
4. إذا حددت **Event**، فاختر الحدث والسمة التي تحتوي على التاريخ. للقيم المعينة من webhook، انظر [استخدام تاريخ من استجابة webhook](#use-a-date-from-a-webhook-response) أدناه.
5. قم بتعيين الإزاحة: **قبل**، **بعد**، أو **في** التاريخ، ثم أدخل عدد الأيام.

<img src="/journey-elements-README-36.webp" alt="تأخير زمني يعتمد على بيانات المستخدم أو الحدث، مما يتيح جدولة ديناميكية وشخصية داخل Customer Journey."/>


<Aside type="note" title="متطلبات تنسيق التاريخ">

* **Tags:** استخدم Tag من [نوع التاريخ](/ar/product/audience-data-and-segmentation/user-data-tags/tags#types-of-tags) و[قم بتعيين قيمه](/ar/developer/api-reference/device-api#settags) بتنسيق `2006-01-02T15:04:05` (بتوقيت **UTC**).
* **Events:** [أنشئ Event](/ar/product/audience-data-and-segmentation/events#1-create-events-in-pushwoosh-control-panel)، و[أضف سمة تاريخ](/ar/product/audience-data-and-segmentation/events#2-set-attributes)، وأرسل طلبات [/postEvent](/ar/developer/api-reference/user-centric-api#postevent) مع تواريخ بتنسيق `2006-01-02 15:04:05`.

</Aside>


<Aside type="caution">
إذا كان **التاريخ أو الوقت قد مضى بالفعل** عندما يصل المستخدم إلى هذا العنصر، فإنه يخرج من الرحلة.
</Aside>

#### استخدام تاريخ من استجابة webhook

إذا كان عنصر [**Webhook**](/ar/product/customer-journey/journey-elements/channels/webhook/#map-webhook-response-data-to-variables) في وقت سابق من الرحلة قد تم تكوين **تعيين الاستجابة** له، فإن السمات المعينة متاحة تحت **Event**.

1. في **خيار التأخير الزمني**، حدد **بناءً على بيانات المستخدم/الحدث**.
2. تحت **الحصول على التاريخ من**، حدد **Event**.
3. في **Event**، حدد خطوة webhook بالاسم الذي أعطيته لها (على سبيل المثال، `Get appointment details`).
4. في **قيمة الحدث**، حدد السمة المعينة التي تحمل التاريخ (على سبيل المثال، `visit_date`).
5. قم بتعيين الإزاحة (على سبيل المثال، **قبل** `2` **أيام**).

<img src="/journey-elements-time-delay-1.webp" alt="Time Delay معين على Event Webhook مع visit_date وإزاحة يومين قبل" />

يجب أن تتبع القيمة نفس قواعد تنسيق التاريخ مثل Tags و Events (انظر **متطلبات تنسيق التاريخ** أعلاه).

<Aside type="caution">
إذا كانت القيمة المعينة مفقودة أو ليست تاريخًا صالحًا، يخرج المستخدم من الرحلة مع خطأ في هذه الخطوة. قم بتشغيل [**اختبار webhook**](/ar/product/customer-journey/journey-elements/channels/webhook/#test-the-webhook) قبل الإطلاق لتأكيد التعيين الخاص بك.
</Aside>


### تقسيم الفروع عندما يكون التاريخ في الماضي أو فارغًا

للسماح للمستخدمين بالاستمرار عندما لا يستوفون شرط التأخير، قم بتمكين **التقسيم إلى فروع إذا كان التاريخ في الماضي أو كان التاريخ فارغًا**. ينقسم التدفق إلى **في المستقبل** و **في الماضي**. استخدم فرع **في الماضي** للمستخدمين الذين لا تتطابق قيم Tag أو سمات Event أو التواريخ المعينة من webhook مع التأخير. يمكنك إضافة عناصر أخرى على هذا الفرع (على سبيل المثال، **Time Delay** آخر، **تقسيم شرطي**، **انتظار المشغل**، أو رسالة).

على سبيل المثال، قمت بتعيين تذكير قبل يومين من موعد باستخدام سمة تاريخ حدث الموعد. إذا كان الموعد غدًا، فلن يستوفي المستخدم شرط اليومين السابقين وسيخرج ما لم تقم بتمكين تقسيم الفروع.

### عندما تتغير تواريخ المواعيد في منتصف الرحلة

إذا تغير تاريخ في Tag أو سمة Event بينما يكون المستخدم بالفعل في الرحلة، تظل إعدادات **Time Delay** كما كانت عندما وصل المستخدم إلى العنصر.

فكر في إنشاء عدة journeys عندما يقوم المستخدمون غالبًا بإعادة جدولة المواعيد أو عمليات التسليم أو الأحداث المماثلة.

على سبيل المثال، ابدأ رحلة على حدث `AppointmentCreated` مع سمة DateTime (رحلة تذكير). قم بتعيين تذكير push قبل يومين من الزيارة باستخدام **بناءً على بيانات المستخدم/الحدث**. للتعامل مع إعادة الجدولة:

1. أنشئ حدث `AppointmentChanged`.
2. في رحلة التذكير، قم بتعيين `AppointmentChanged` كهدف تحويل حتى يخرج المستخدمون الذين يعيدون الجدولة من الرحلة.
3. أنشئ رحلة جديدة تبدأ عند `AppointmentChanged` لتذكير المستخدمين الذين قاموا بتحديث تاريخ ووقت زيارتهم.