Skip to content

الإشعارات ​

هذه الصفحة للمسؤول. تشرح ما الإشعار، وكيف تجعل الإشعارات تُرسل إلى Webhook وبالبريد من صفحة Notification delivery (تسليم الإشعارات)، وما معنى كل نوع من الإشعارات.

ما الإشعار ​

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

يذهب الإشعار دائمًا إلى صفحة Notifications (الإشعارات) لصاحبه أولًا. تلك الصفحة هي الإشعار. أما Webhook والبريد فطريقتان إضافيتان للوصول إلى من لا ينظر، وتضبطهما مرة واحدة للتثبيت كله.

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

في صفحة Notifications يحمل كل إشعار Needs you (يحتاج إليك) أو Needs a look (يحتاج إلى نظرة) أو For your information (للعلم) إلى أن يُقرأ. الزران Mark read (علّمه مقروءًا) و Mark all read (علّم الكل مقروءًا) يمسحان ذلك، و Open (افتح) يذهب إلى الصفحة التي يتحدث عنها الإشعار في صفحة الإدارة.

إعداد Webhook ​

مع Webhook، يُرسل كل إشعار لكل شخص أيضًا إلى عنوان واحد، بصيغة JSON. استخدمه لتمرير الإشعارات إلى قناة محادثة أو أداة أتمتة.

  1. افتح Notification delivery.
  2. تحت Webhook، اكتب العنوان في Webhook URL، مثل https://hooks.example.com/marketing.
  3. اكتب سرًّا في Signing secret (سرّ التوقيع). وهو اختياري، ويُنصح به: انظر التحقق من التوقيع.
  4. اضغط Save delivery settings (حفظ إعدادات التسليم).
  5. اضغط Send a test (أرسل اختبارًا) واقرأ ما أجاب به Webhook.

يسري فورًا. العنوان What is sent (ما الذي يُرسل) يعرض Delivering (التسليم يعمل) حين يكون Webhook أو خادم بريد مضبوطًا، و This site only (هذا الموقع فقط) حين لا يكون أي منهما.

ما يجب أن يكون عليه العنوان ​

  • يجب أن يبدأ بـ https:// وأن يكون عنوانًا عامًا. والعنوان الذي على هذا الجهاز أو على شبكته يُرفض.
  • يجب ألا يحمل اسم مستخدم ولا كلمة مرور.
  • لا تُتبع إعادة التوجيه أبدًا. إن قال الاختبار إن Webhook أجاب بإعادة توجيه، فاحفظ العنوان الذي يستقر عنده فعلًا.
  • هذه الصفحة وحدها، أو متغير بيئة، تضبط العنوان. لا يستطيع أي مساعد ذكي أن يضبط أو يغيّر المكان الذي يرسل إليه الخادم.

يُفحص العنوان من جديد في كل مرة يُرسل فيها شيء، لا عند الحفظ فقط.

مستقبِل على شبكتك ​

إن كان المستقبِل على جهاز الخادم نفسه أو على شبكته، فعلّم Allow a private address (اسمح بعنوان خاص). عندئذ لا يُفحص العنوان. ويظل HTTPS مطلوبًا، إلا إن كان العنوان هو هذا الجهاز نفسه (localhost).

ما الذي يُرسل ​

كل إشعار طلب POST واحد جسمه JSON:

json
{
  "kind": "queue_failed",
  "severity": "warning",
  "title": "...",
  "body": "...",
  "link": "https://ads.example.com/#/queue",
  "username": "sara",
  "at": "2026-10-10T03:00:12+00:00"
}
الحقلما فيه
kindنوع الإشعار، من الجدول في ما الذي يُخبَر به، ومتى. والاختبار يرسل test.
severityinfo أو warning أو error.
titleسطر واحد.
bodyما حدث، وما يطلبه من الشخص.
linkالصفحة التي يتحدث عنها في صفحة الإدارة، أو لا شيء.
usernameصاحب الإشعار. فارغ لإشعار عن التثبيت نفسه.
atمتى كُتب، بتوقيت UTC.

النص في title و body بالإنجليزية.

ينبغي أن يجيب مستقبِلك بحالة 2xx. يحاول الخادم مرة واحدة وينتظر نحو عشر ثوانٍ. وأي جواب آخر، أو غياب الجواب، يُسجَّل على الإشعار بعد Not delivered (لم يُسلَّم) مع السبب. ولا يُرسل شيء مرة أخرى.

التحقق من التوقيع ​

مع Signing secret، يحمل كل طلب الترويسة X-Nama-Signature. قيمتها sha256= يتبعها HMAC-SHA256 للجسم، بالنظام الست عشري، ومفتاحه سرّك. وبدون سرّ يُرسل الجسم غير موقَّع.

للتحقق منه، احسب القيمة نفسها على البايتات التي استلمتها كما هي، قبل أن تحلّلها:

python
import hashlib
import hmac

def came_from_the_server(secret: str, raw_body: bytes, header: str) -> bool:
    expected = "sha256=" + hmac.new(secret.encode("utf-8"), raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, header)

لا يُعرض السرّ مرة أخرى بعد حفظه. تقول الصفحة فقط إن سرًّا مضبوط. لتغييره اكتب سرًّا جديدًا. ولإزالته علّم Remove the signing secret (أزل سرّ التوقيع) واحفظ.

ملاحظة

Webhook العملاء المحتملين عنوان آخر له سرّه الخاص، في صفحة Lead delivery. ولا يُرسل العملاء المحتملون أبدًا إلى Webhook الإشعارات. انظر تسليم العملاء المحتملين.

إعداد البريد ​

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

  1. افتح Notification delivery.
  2. تحت Email (البريد الإلكتروني)، املأ Mail server (SMTP) (خادم البريد) و Port.
  3. اختر Security (الأمان):
    • STARTTLS (usually port 587)، وهو الافتراضي؛
    • SSL/TLS (usually port 465)؛
    • None - a relay on this machine only (بلا تشفير - لمرحِّل على هذا الجهاز فقط).
  4. إن طلب خادم البريد تسجيل دخول، فاملأ Username و Password.
  5. اكتب العنوان الذي يُرسل منه البريد في Send from (أرسل من).
  6. واكتب إن شئت عنوانك في Administrator's address (عنوان المسؤول).
  7. اضغط Save delivery settings، ثم Send a test.

يُحاوَل البريد متى كان خادم البريد و Send from مضبوطين كليهما. ولا تُعرض كلمة المرور مرة أخرى. لإزالتها علّم Remove the stored password (أزل كلمة المرور المحفوظة) واحفظ.

من يصله البريد ​

  • كل شخص تصله إشعاراته هو على العنوان الذي يحفظه في صفحة Notifications الخاصة به، تحت Also by email (وبالبريد أيضًا)، في Your address (عنوانك). لا يستطيع غيره أن يضبطه، ومن يتركه فارغًا لا يصله بريد.
  • عنوان المسؤول يصله الإشعار الذي يخص التثبيت لا شخصًا بعينه، والاختبار.

يُرسل الإشعار نصًّا عاديًّا. يبدأ موضوعه بـ [Marketing MCP]، وينتهي برابط الصفحة التي يتحدث عنها.

ملاحظة

اطلب من الأشخاص أن يحفظوا عناوينهم. فإلى أن يفعل أحدهم، تبقى إشعاراته في صفحة Notifications وتذهب إلى Webhook، ولا يُرسل إليه بريد.

إرسال اختبار ​

Send a test يرسل رسالة واحدة عبر كل قناة ويعرض ما أجابت به كل منهما: Delivered (سُلِّم)، أو Failed (فشل) مع السبب، أو Not set up (غير مضبوط).

  • يختبر المحفوظ، لا المكتوب في الحقول. احفظ أولًا.
  • يذهب البريد إلى عنوان المسؤول وإلى عنوانك أنت من صفحة Notifications. وبدون أي منهما يقول الاختبار إنه لا أحد يُرسل إليه.
  • لا يكتب إشعارًا.

ما الذي يُخبَر به، ومتى ​

صفحة Notification delivery تسرد كل نوع ومعه الجملة التي تحته هنا. والاسم في العمود الأول هو ما يستلمه Webhook في kind.

قائمة الانتظار ​

النوعمتى يُرسل
queue_failedجُرِّب منشور من قائمة الانتظار في وقته فرُفض، من المنصة أو من أحد فحوص الخادم نفسه. يبقى في قائمة الانتظار مع السبب. ولا شيء يعيد محاولته.
queue_missedمرّ وقت منشور في قائمة الانتظار والخادم لا يعمل، وعاد الخادم بعد فوات الأوان لنشره دون طلب. ينتظر في قائمة الانتظار أن ينشره صاحبه أو يسحبه.
queue_interruptedتوقف الخادم وهو ينشر منشورًا من قائمة الانتظار، فلا يُعرف هل نُشر. على صاحبه أن ينظر في الحساب.
queue_overdue_at_startبدأ الخادم فوجد في قائمة الانتظار منشورات مرّ وقتها. إشعار واحد لكل شخص يسردها وما صار إليه كل منها.

انظر الجدولة.

الربط ​

النوعمتى يُرسل
connection_expiringربط شخص بـ Meta ينتهي خلال 7 أيام، أو ربطه بـ LinkedIn خلال 30 يومًا. يُرسل مرة واحدة لكل مرة ينتهي فيها ربط. وإعادة الربط تجدّده.

انظر Meta و LinkedIn.

السجل التاريخي وتغذيات العملاء المحتملين ​

النوعمتى يُرسل
watch_stoppedكان الخادم يقرأ حسابًا من تلقاء نفسه ولم يعد يستطيع: مستخدم الشخص معطَّل، أو الربط زال، أو المنصة ترفض. يُرسل مرة واحدة حين تتوقف القراءة، لا في كل محاولة.
lead_push_failingكان الخادم يرسل العملاء المحتملين الجدد إلى Webhook العملاء المحتملين ولم يعد يستطيع: Webhook لا يجيب، أو المنصة ترفض، أو صاحب التغذية لم يعد يجوز له قراءة العملاء المحتملين. يُرسل مرة واحدة لكل انقطاع. يواصل الخادم المحاولة، ولا يُعلَّم أي عميل محتمل على أنه أُرسل.

انظر السجل التاريخي ومدة الحفظ و تسليم العملاء المحتملين.

قواعد التنبيه ​

هذه هي القواعد التي يضعها كل شخص لنفسه. القاعدة تخبر فقط: لا يُوقَف شيء ولا يُغيَّر. يُرسل كل منها مرة واحدة حين يُتجاوز الخط، ولا يُرسل ثانية إلا بعد أن يجد فحص لاحق أنه لم يعد متجاوَزًا.

النوعمتى يُرسل
alert_cpl_aboveتكلفة العميل المحتمل في حساب إعلاني على مدى أيام القاعدة فوق المبلغ الذي حدده الشخص.
alert_spend_no_leadsأنفق حساب إعلاني على مدى أيام القاعدة ولم يأتِ بعميل محتمل واحد.
alert_ad_rejectedرفضت مراجعة المنصة إعلانًا. يُذكر كل إعلان مرة واحدة.
alert_budget_paceإنفاق حساب إعلاني هذا الشهر يتجه إلى أن ينتهي فوق خطة الشخص، بأكثر من هامش القاعدة. والتوقّع حساب الخادم نفسه، لا توقّع المنصة.
alert_follower_dropانخفض متابعو حساب مراقَب بأكثر من النسبة التي حددها الشخص، بحسب الأرقام التي حفظها الخادم.
alert_comment_spikeجمعت المنشورات الأخيرة لحساب تعليقات جديدة في يوم واحد أكثر من العدد الذي حدده الشخص. وهو عدد فقط: الخادم لا يقرأ التعليقات.
alert_rule_stoppedإحدى قواعد شخص لا يمكن فحصها: مستخدمه معطَّل، أو الربط زال، أو المنصة ترفض. يُرسل مرة واحدة، لا في كل محاولة.

انظر الميزانيات والتنبيهات.

التقارير المجدولة ​

التقرير نفسه ليس إشعارًا. وهذان النوعان يقولان إن تقريرًا لم يصل.

النوعمتى يُرسل
report_not_deliveredبُني تقرير مجدول وتعذّر تسليمه بإحدى الطرق التي اختارها الشخص: لا خادم بريد أو لم يحفظ عنوانًا، أو Webhook لا يجيب، أو تعذّرت كتابة الملف. لا شيء يرسله ثانية. وحيث أمكن حفظ ملف، فهو في صفحة Reports (التقارير) الخاصة به.
report_failedتعذّر بناء تقرير مجدول: مستخدم الشخص معطَّل، أو توقف الخادم وهو يبنيه. يُرسل مرة واحدة. ولا شيء يبنيه ثانية من تلقاء نفسه.

انظر التقارير المجدولة.

ما تأخذه التقارير المجدولة من هذه الصفحة ​

يُسلَّم التقرير المجدول بالطرق التي اختارها صاحبه، واثنتان منها تُضبطان هنا:

  • بالبريد، إلى عنوان صاحبه من صفحة Notifications الخاصة به، عبر خادم البريد هذا؛
  • بـ Webhook، إلى هذا Webhook.

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

حين يفشل التسليم ​

  • الإشعار باقٍ في صفحة Notifications لصاحبه. هذا الجزء لا يتوقف على Webhook ولا على البريد.
  • يظهر السبب تحت الإشعار، بعد Not delivered. وما خرج فعلًا يظهر بعد Also sent by (وأُرسل أيضًا عبر).
  • لا يُرسل شيء مرة أخرى. أصلح السبب واستخدم Send a test.

مدة حفظ الإشعار ​

الإشعار غير المقروء يُحفظ إلى أن يقرأه أحد. والمقروء يُحذف بعد 90 يومًا من كتابته. وحذف مستخدم يحذف إشعاراته.

أين تُحفظ هذه الإعدادات ​

ما تحفظه هنا يذهب إلى config.json. ولكل حقل في هذه الصفحة متغير بيئة أيضًا، وهو يغلب الملف. صفحة الإعدادات تسردها.