Skip to main content

ساعات الصمت: بوابات القنوات على مستوى المؤسسة مقابل نافذة الحملة الاحتياطية

بوابة ساعات الصمت في Orbit مملوكة للمستأجر: كل ما في هذه الصفحة هو عنصر تحكم تُكوّنه بنفسك (أو تختار إبقاءه معطّلاً). الاستثناء الوحيد هو نافذة TCPA الفيدرالية للصوت للمستلمين الأمريكيين، والمشمولة في قسمها الخاص أدناه. تفعيل ساعات الصمت قرارك أنت — لا يشترط CAN-SPAM ولا GDPR أي شيء منها. هذه الصفحة هي دليل المشغّل لتلك البوابة. ثلاث واجهات تُكوِّن وضعك:
  1. بوابة القناة على مستوى المؤسسة — مفاتيح تبديل لكل قناة في إعدادات المؤسسة (settings → quiet_hours.<channel>.enabled)، تُكتب عبر PUT /api/v1/settings/general وتظهر في إعدادات المؤسسة على لوحة التحكم (انظر أيضاً وضع الامتثال).
  2. نافذة الحملة الاحتياطية — زوج بدء/انتهاء واحد على مستوى المؤسسة لإرسالات drip وjourney التي لا تحمل صف الحملة فيها نافذة صريحة. في لوحة التحكم: الإعدادات → حدود الحملة → ساعات الصمت الافتراضية؛ عبر API: GET/PUT /api/v1/campaigns/quiet-hours/settings.
  3. نقطة نهاية المعاينةGET /api/v1/compliance/quiet-hours/preview، فحص للقراءة فقط يجيب على سؤال «هل يمر هذا الإرسال إلى هذا المستلم الآن؟». شغّلها قبل كل طرح؛ تُفصَّل في الدليل أدناه.

النافذتان

النافذة الاحتياطية للحملة هي بالضبط ما يقوله اسمها — احتياط، وليست بوابة ثانية. ترتيب الحل لإرسال حملة: نافذة صف الحملة الخاص أولاً، ثم احتياط المؤسسة، ثم الافتراضي للمنصة 21:00 → 09:00 (تستمر ساعات الصمت من 21:00 إلى 09:00 بالتوقيت المحلي للمستلم). يمكن أن يختلف المُقبضان. إرسال تُرسله حملة يقيّم نافذة مسار الحملة كطبقة واحدة؛ بوابة القناة على مستوى المؤسسة — عندما تكون قد فعّلت تلك القناة — هي طبقة منفصلة تُقيَّم في موضع الإرسال. عامل بوابة المؤسسة كوضع لحركة 1:1، والنافذة الاحتياطية للحملة كالنظام الافتراضي لحركة الجمهور الكبير. الإرسال المحظور يُبلِغ عن next_allowed_at — خطط حول النافذة بدلاً من إعادة المحاولة. نوافذ الاحتياط التي يمكنك ضبطها في أي من الطبقتين يمكنها فقط تضييق النطاق؛ لا توسّع أبداً بوابة قناة قمت بتفعيلها.

بوابة القناة على مستوى المؤسسة لكل قناة

بوابة القناة اختيارية (opt-in) لكل قناة. كل إدخال لكل قناة يدعم: مفاتيح على مستوى المؤسسة (تنطبق على كل القنوات معاً):

الوضع الافتراضي لكل قناة

ما لم تُفعِّل قناة، لا شيء يُحتَجَز. عندما تُفعِّل قناة دون تحديد ساعات، تطبق ساعات المنصة: مجموعة القنوات الكاملة التي تقبلها البوابة: sms, mms, whatsapp, rcs, viber, telegram, voice, email, instagram, messenger, line, apple_messages, fax, push, web_chat.

استثناءان يُبقيان حركة المرور الأساسية سارية

  • الموافقة الصريحة المسبقة — مع ضبط consent_overrides_quiet_hours على true (الافتراضي)، يعبر المستلم الذي لديه سجل موافقة صريحة عبر أي قناة غير صوتية. الصوت لا يأخذ هذا الاستثناء أبداً.
  • مسار حركة المعاملات — الإرسالات التي يوسمها المُتصِّل كمعاملات (OTP، التنبيهات، الإشعارات الحسابية) معفاة من البوابة حتى على قناة مفعّلة. الصوت لا يأخذ هذا الاستثناء أيضاً أبداً.
اضبط consent_overrides_quiet_hours على false فقط إذا كنت تريد إرسالات متوقفة بلا استثناءات موافقة.

نافذة الحملة الاحتياطية

أي مُتصِّل معتمَد يقرؤها؛ فقط المالك/المسؤول يكتبها. اقرأ نافذة الاحتياط الحالية:
platform_default_start / platform_default_end يُردِّدان الساعات التي تستخدمها إرسالات drip وjourney عندما يكون التجاوز معطّلاً — ورِثها أو استبدلها، الخيار لك. في لوحة التحكم هذا النموذج هو الإعدادات → حدود الحملة → ساعات الصمت الافتراضية. اضبط نافذتك الخاصة (كلتا الساعتين مطلوبتان عندما تكون enabled true):
امسح عائداً إلى الافتراضي للمنصة:
النوافذ الليلية (مثلاً بدء 22، انتهاء 7) مقبولة في كلتا الطبقتين — زوج start > end يلفّ حول منتصف الليل.

حل المنطقة الزمنية للمستلم

تعمل البوابة بالتوقيت المحلي للمستلم. يتبع حل المنطقة الزمنية هذه السلسلة:
  1. إشارة recipientTimezone صريحة من المُتصِّل، عند تقديمها.
  2. رمز منطقة الولايات المتحدة → منطقة زمنية IANA، لأرقام +1.
  3. رمز البلد E.164 → منطقة زمنية IANA تمثيلية (أوروبا، آسيا، الأمريكتين، والأسواق المشغّلة الشائعة).
  4. لمستلمي البريد الإلكتروني، المنطقة الزمنية الافتراضية للمؤسسة.
  5. عندما لا يحل أي مما سبق — unknown_timezone_policy للمؤسسة (قابل للتكوين أيضاً في لوحة التحكم عند الإعدادات → الصوت):
إذا حل المستلم إلى منطقة زمنية، فإن حظر قناة مفعّلة عادي يُرجع 422 QUIET_HOURS_BLOCKED (الصوت: TCPA_DIALING_WINDOW_BLOCKED) مع النافذة وnext_allowed_at في تفاصيل الخطأ.

استثناء TCPA الفيدرالي للصوت

صوت الحملة والمُطلِب للمستلمين الأمريكيين محظور بشدة خارج النافذة الفيدرالية 08:00–21:00 بالتوقيت المحلي للمستلم — لا بوابة مؤسسة ولا نافذة احتياط ولا علم موافقة يُخفِّفه، والمستلم الأمريكي الذي لا يمكن حل منطقته الزمنية يُحظر fail-closed. هذا هو المُقبض الوحيد الذي تملكه المنصة؛ ينطبق على صوت الحملة والمُطلِب فقط، وليس على المكالمات 1:1 المخصصة أو أي قناة مراسلة. المستلمون غير الأمريكيين يتبعون القواعد العادية: سياسة skip fail-open تنطبق على المستلمين خارج الولاية القضائية الأمريكية، وبوابة قناة الصوت الخاصة بك (إذا فُعِّلت) تتراكب عليها. يمكنك دائماً التضييق أكثر من النافذة الفيدرالية — مثلاً بوابة صوت 09:00–20:00 بالتوقيت المحلي للمستلم — لكنك لا تستطيع أبداً توسيعها. صوت 1:1 المخصص من لوحة التحكم خارج النافذة الفيدرالية يتصل مع سجل تنبيهي ما لم تُفعِّل قناة voice في بوابة المؤسسة، مما يجعله حظراً شديداً (422 TCPA_DIALING_WINDOW_BLOCKED).

الموافقة تتجاوز ساعات الصمت

بـ consent_overrides_quiet_hours: true (الافتراضي)، يعبر المستلم الذي تحتفظ بموافقة صريحة له البوابة على القنوات غير الصوتية — استثناء TCPA «prior express consent». يظل المستلم المسموح قابلاً للوصول داخل ساعاتك المغلقة؛ والمُتصِّل بلا سجل موافقة يُحتَجَز حتى تفتح النافذة. اضبطها على false عندما لا يجب أن تُخفِّف الموافقة نافذتك أبداً. تتجاهل البوابة العلم كلياً على قناة voice — الصوت يعتمد على النافذة الفيدرالية والطبقات الاتحادية، وليس على استثناء الموافقة.

الطبقات الاتحادية المصغرة TCPA

بعض الولايات الأمريكية تُراكِب فوق الساعات الفيدرالية نافذة اتصال أشد أو حظراً على أيام الأسبوع (حظر فلوريدا يوم الأحد، نوافذ أوكلاهوما/ميسيسيبي، وغيرها). تتركب الطبقات بقاعدة الأشد تقييداً يفوز: يجب أن يجتاز الإرسال النافذة الفيدرالية و كل طبقة ولاية قابلة للتطبيق؛ يمكن للطبقة أن تُضيِّق لكن لا توسّع أبداً. حظر الصوت يُتعقَّب بهذه أسباب الفشل:
  • outside_state_window — طبقة ولاية ضيّقت النافذة وهذه الساعة وقعت خارجها.
  • state_blocked_day — الطبقة تحظر الاتصال في هذا اليوم من الأسبوع كلياً.
الجدول الكامل لكل ولاية وأي ولايات المستلم تحل إلى كل طبقة موجود في نوافذ الاتصال حسب ولاية الولايات المتحدة.

دليل التشغيل

قائمة مراجعة الطرح. قبل أن تُفعِّل قناة أو تدفع قائمة واسعة:
  1. عاين عينة من المستلمين بـ GET /api/v1/compliance/quiet-hours/preview?phone=<E.164>&channel=<channel>، مضيفاً timezone_override=<IANA> فقط عندما يحمل نظام CRM لديك إشارة أفضل مما تحله الرقم.
  2. أكّد كتلة بوابة المؤسسة: GET /api/v1/settings/general واقرأ شجرة quiet_hours قبل PUT — الكتابات تُدمَج في المستوى الأعلى، لكن مفتاح quiet_hours نفسه يُستبدَل كلياً (انظر قسم الكتابة أدناه).
  3. للطروح الكبيرة، راقب GET /api/v1/settings/compliance-health — تحذيراته تُرتِّب أسوأ مخالف (المرسل الأكثر احتجازاً، مجموعات الأخطاء) لتُصلِّح أولاً أكثر المسارات ضجيجاً.
الاحتجازات لكل مستلم، وليست لكل مستأجر. مُتصِّل واحد محتجَز عند 21:05 بالتوقيت المحلي للمستلم يحظر فقط إرسالات ذلك المُتصِّل؛ بقية دفعتك تستمر بالقبول بالتوازي. إرسال 1:1 محتجَز يُلقي 422 QUIET_HOURS_BLOCKED مع next_allowed_at في تفاصيل الخطأ — خُطِّط عند ذلك الطابع الزمني بدلاً من إعادة المحاولة في حلقة. الإرسال المحتجَز لا يستهلك أبداً حصة أو حجز خانة، لذا تُقبَل إعادات المحاولة نظيفة بمجرد فتح النافذة. تستغرق الكتابات حتى دقيقة تقريباً للوصول إلى كل موضع إرسال — إعدادات المؤسسة مُخزَّنة مؤقتاً في مسار الإرسال. القراءات فورية؛ تحقق من الوضع المُدمَج بـ GET قبل الطرح.

أمثلة عملية

طرح كبير عند 21:05 — سلوك قائمة الاحتجاز

تدفع قائمة من 1,000 مستلم عبر API عند لحظة يقع فيها جزء من قائمتك خارج بوابة مؤسستك 08:00–21:00 بالتوقيت المحلي للمستلم. كل مستلم يُحل مستقلاً ضد بوابة sms المفعّلة لديك:
  • المستلمون داخل النافذة يُقبَلون فوراً.
  • المستلمون المحتجَزون يحصلون على 422 مع next_allowed_at؛ عاملك يُوقِفهم ويستمر بالدفعة. الدفعة نفسها لا تتوقف — الاحتجازات لكل مستلم.
  • عندما تُعاد فتح نافذة كل مستلم، أعد إرسال الصف المُوقِف؛ لم تُحرَق أي خانة أثناء الاحتجاز.
تحقق من مستلم محدد دون حرق المحاولة:
next_allowed_at طابع زمني ISO آمن من التوقيت الصيفي — مرِّره مباشرة إلى مجدولك.

مستلم صوت أمريكي غير محلول المنطقة الزمنية — fail-closed

اتصال صوت حملة إلى +15551234567 حيث رمز المنطقة لا يحل أي منطقة زمنية يصطدم بوضع fail-closed للحارس الفيدرالي: يُرفَض الاتصال بـ 422 TCPA_TIMEZONE_UNKNOWN قبل أي حساب نافذة. أصلح البيانات — اضبط المنطقة الزمنية للمُتصِّل على السجل أو مرِّر recipientTimezone — ثم أعد الإدخال في القائمة. نفس الإدخال غير المحلول على قناة sms مع unknown_timezone_policy: "deny" ينتهي بـ 422 QUIET_HOURS_TIMEZONE_UNKNOWN؛ مع سياسة skip الافتراضية يمر fail-open. سياسة deny هي الافتراضي فقط لصوت المستلم الأمريكي، وفقاً لاستثناء الفيدرالي أعلاه.

تجاوز الموافقة داخل النافذة

مُتصِّلان، بوابة sms مفعّلة، 22:30 بالتوقيت المحلي للمستلم (خارج نافذتك):
بـ consent_overrides_quiet_hours: false، يُحتَجَز كلاهما حتى 08:00 بالتوقيت المحلي للمستلم. على voice، العلم لا ينطبق إطلاقاً — كل محاولة صوت تُبوَّب على حساب النافذة وحده.

تفعيل قناة عبر API إعدادات المؤسسة

لا توجد نقطة نهاية كتابة ساعات صمت مخصَّصة لبوابة القناة؛ تعيش داخل مخزن إعدادات المؤسسة، وكل إرسال يقرؤها. حدِّثها عبر PUT /api/v1/settings/general (مالك/مسؤول):
اقرأ الوضع الحالي بـ GET /api/v1/settings/general وانظر كتلة quiet_hours في settings المُعادة.
ادمج ثم تحقق. PUT /settings/general يُدمِج الإعدادات في المستوى الأعلى، لذا كتابة تحتوي فقط quiet_hours تُبقي إعداداتك الأخرى سليمة — لكن كتابة تضع في جذرها كائن quiet_hours كاملاً تُستبدِل هذا المفتاح. إذا كنت تريد الاحتفاظ بالمدخلات الموجودة (مثلاً نافذة default أو مفاتيح الورقة المُخزَّنة لنافذة الحملة الاحتياطية)، اقرأ الكتلة الحالية أولاً وادمج قبل الكتابة.
تستغرق الكتابات حتى دقيقة تقريباً للوصول إلى كل موضع إرسال — إعدادات المؤسسة مُخزَّنة مؤقتاً في مسار الإرسال.

اختر وضعاً

  1. اترك كل شيء معطّلاً (الافتراضي) إذا كنت تعمل خارج ولايات ساعات الصمت القضائية، أو تعالج الحدود في مكان آخر. تحفوة واحدة: صوت الحملة والمُطلِب الأمريكي يظل محظوراً بشدة — لا يمكن إيقافه.
  2. مشغّل تسويق أمريكي — فعّل sms (والصوت إذا اتصلت مخصص) في بوابة المؤسسة؛ ساعات المنصة 08:00–21:00 بالتوقيت المحلي للمستلم تُطبَّق فوراً. استثناء الموافقة يُبقي المستلمين المسموحين قابلين للوصول.
  3. مشغّل EU/APAC بحملات drip — اضبط احتياط الحملة على نافذتك المحلية (مثلاً 22:00 → 07:00) في الإعدادات → حدود الحملة حتى كل drip وjourney يفتقر إلى نافذته الخاصة يرسل ضمن نظامك. أضف بوابة المؤسسة لكل قناة إذا أردت أيضاً احتجاز حركة 1:1.

انظر أيضاً