ملاحظة: لا توجد واجهة عربية لهذه الميزة بعد، فواجهة المنصّة كلها تظهر بالإنجليزية. لذلك تُنقَل النصوص المقتبَسة من الواجهة أدناه بالإنجليزية كما تظهر فعليًا، بدل أن تُترجَم أو تُختلَق بالعربية.
لا تحتاج إلى فتح صندوق الوارد لإرسال قالب واحد إلى شخص واحد. اكتب الطلب في المحادثة مع Octo كما تقوله لزميل، فيعثر Octo على القالب ويملأ متغيّراته. لكنه لا يرسله بعد: يعرض عليك بالضبط ما سيرسله، ولا يخرج إلا حين تضغط Confirm. يمرّ الإرسال بالمسار نفسه الذي يمرّ به صندوق الوارد والـ API، فيُفحص بالطريقة نفسها ويصل إلى المحادثة نفسها.
هذا مخصّص لمستلم واحد في كل مرة. لقائمة كاملة، استخدم حملة. ولماذا يحتاج WhatsApp إلى قالب أصلًا، تجده في متى يجب أن تكون رسالة WhatsApp قالبًا.
مثال على طلب
لدى Tidewater Laundry Co. قالب Utility معتمد، pickup_confirmation، متنه
Hi {{1}}, your pickup is confirmed for {{2}}. Reply here to change it.
سألت Ana الأسبوع الماضي عن غسل لحاف، وقالت إنها ستعود إليك، ولم تكتب منذ ذلك الحين.
تكتب:
Send Ana Ruiz the pickup confirmation for Tuesday, 9–11am.
Octo مُعَدّ ليعالج ذلك بهذا الترتيب:
- يعثر على Ana. يُبحث عن الاسم في جهات اتصالك؛ ويمكن استخدام رقم الهاتف كما
هو. وفي الحالتين يجب أن ينتهي بالصيغة الدولية (
+14255550123) — والإرسال يرفض أي صيغة أخرى. - يتحقّق من آخر تواصل لها. متى كتبت Ana آخر مرة على WhatsApp يخبر Octo هل نافذة الـ 24 ساعة مفتوحة، وهل راسلها أحد اليوم بالفعل.
- يعثر على القالب. يبحث Octo في قوالبك بالاسم واسم العرض، ولا ينظر إلا إلى القوالب المعتمدة.
- يملأ المتغيّرات —
{{1}}=Ana،{{2}}=Tuesday, 9–11am— ويجهّز الإرسال. يقول Octo إنه جهّزه لتؤكّده؛ ولا يقول «أُرسل». - ينتظرك. تظهر بطاقة في المحادثة — انظر أدناه. لا يصل شيء إلى Ana حتى تضغط Confirm.
يصوغ Octo كل خطوة بطريقته. أما الفحوص في بقية هذا الدليل فيجريها الإرسال نفسه، في كل مرة.
سمِّ القالب، وكل قيمة
كلما سمّى طلبك أكثر، قلّ ما يضطر Octo إلى اختياره:
Send +14255550123 the
pickup_confirmationtemplate. Name: Ana. Slot: Tuesday, 9–11am.
إن وصفت الرسالة فقط، يختار Octo القالب المعتمد الأنسب ويقول أيّها اختار. وإن نقص متغيّر من طلبك، فاذكره أو توقّع أن يُسأل عنه — لا يُرسَل قالب أبدًا وفيه خانة فارغة (انظر أدناه).
القوالب ذات الأزرار تعمل أيضًا. قالب Tidewater التسويقي الذي فيه زر copy code يأخذ الرمز قيمةً:
Send Ben the
duvet_promotemplate with the code FRESH20.
التأكيد قبل الإرسال
في محادثة لوحة التحكم، يظهر الإرسال المُجهَّز بطاقةً عنوانها Send this WhatsApp template?:
| السطر | ما يعرضه |
|---|---|
| To | الرقم الذي ستذهب إليه — +14255550123 |
| Template | القالب ولغته — pickup_confirmation (en_US) |
| Values | كل قيمة بجانب الخانة التي تملؤها، بالترتيب: الترويسة، ثم المتن، ثم الأزرار — Body 1 → Ana، Body 2 → Tuesday, 9–11am |
| Expires … | متى ينقضي الطلب: بعد 24 ساعة من تجهيز Octo له |
ثم Confirm أو Cancel.
- Confirm يرسله. تتغيّر البطاقة إلى Sent، وتظهر ملاحظة في المحادثة: Done ✅ — Template “pickup_confirmation” sent to +14255550123 via WhatsApp. إن رفضه WhatsApp أو أحد الفحوص أدناه، تقول البطاقة Not sent مع السبب.
- Cancel لا يرسل شيئًا. تقول البطاقة Cancelled — nothing was sent.
- عدم فعل شيء لا يرسل شيئًا. بعد 24 ساعة تقول البطاقة Expired — nothing was sent.
تفاصيل مهمة:
- اقرأ القيم، لا الرقم فقط. البطاقة آخر نقطة يمكن فيها اكتشاف خانة خاطئة أو خطأ مطبعي. لتغيير شيء، ألغِ واطلب مجددًا.
- الأزرار تنتظر Octo. ما دام Octo يكتب ردّه، تقول البطاقة You can confirm once Octo finishes replying.
- عدة قوالب، عدة بطاقات. اطلب إرسالين في محادثة واحدة فتحصل على بطاقتين؛ تُؤكَّد كل منهما أو تُلغى على حدة.
- العودة لاحقًا آمنة. أعِد تحميل الصفحة فتعرض البطاقة ما حدث فعلًا. الطلب الذي أُرسل أو أُلغي أو انقضى لا يعرض أزرارًا فعّالة مجددًا أبدًا، وضغط Confirm مرتين لا يرسل مرتين.
- من يستطيع التأكيد. لا يستطيع تأكيده أو إلغاءه إلا الشخص الذي طلب من Octo، أو مالك مساحة العمل أو مشرفها.
حين تتحدّث مع Octo عبر البريد الإلكتروني أو WhatsApp أو Slack
يسأل Octo هناك أيضًا. تعرض الرسالة ما هو على وشك فعله ورمزًا قصيرًا. بالبريد الإلكتروني تردّ بالرمز؛ وعلى WhatsApp وSlack هناك أيضًا زرّا Confirm وCancel. السطر الذي توافق عليه يسمّي القالب والرقم والقيم:
Send WhatsApp template "pickup_confirmation" (en_US) to +14255550123 — body 1: "Ana", body 2: "Tuesday, 9–11am"
القيمة في خانة يشبه اسمها رمزًا — otp، pin، رمز مميّز — تظهر •••• في ذلك
السطر. والطلب الذي لا يُجاب عنه ينقضي بعد 24 ساعة، ولا يُرسَل شيء.
ما يرفضه Octo
كل رفض يحدث قبل التواصل مع WhatsApp، ويُبلَّغ Octo بالسبب.
| الحالة | ما يحدث |
|---|---|
| القالب Pending أو Rejected أو Paused أو Disabled | مرفوض: لا يمكن إرسال إلا قالب معتمد. |
| متغيّر ناقص، أو مُعطى بقيمة فارغة | مرفوض، مع تسمية الخانة — مثلًا body is missing variable “customer_name”، أو أن المتن يتوقّع قيمتين وتلقّى واحدة. |
| قيمة أطول من اللازم | مرفوض. رمز النسخ 15 حرفًا على الأكثر. |
| للقالب ترويسة صورة أو فيديو أو مستند | لا يستطيع Octo توفير الملف، فيُرفض الإرسال. أرسله من نظامك الخاص، الذي يقبل حمولة القالب الكاملة من Meta. |
| رقم WhatsApp الخاص بالقالب لم يعد نشطًا | مرفوض. |
| الفوترة غير مُعدّة لمساحة العمل | مرفوض مع Billing setup required. |
| الرقم يرسل بسرعة زائدة، أو بلغ حدّه اليومي | مرفوض مع مدة الانتظار. يُعطى Octo مدة الانتظار ويخبرك متى تحاول مجددًا؛ وليس مُصمَّمًا لإعادة المحاولة من تلقاء نفسه. انظر ما سرعة الإرسال المسموحة لرقم واحد. |
هذه الحالات تترك المحاولة ظاهرةً في المحادثة كرسالة لم تخرج:
- ألغى العميل اشتراكه في رسائل WhatsApp. تُسجَّل محجوبةً. لا يستطيع Octo تجاوز إلغاء الاشتراك.
- رقم WhatsApp ما زال بانتظار التحقق.
- مساحة العمل موقوفة، أو الوجهة غير مفعّلة لها. تُسجَّل فاشلةً.
- رفضت Meta الرسالة. تُسجَّل فاشلةً؛ ويُعطى Octo خطأ Meta ويمكنه إعادة المحاولة بقيم مختلفة.
نص حر بدل قالب
إن كانت النافذة مفتوحة، يستطيع Octo إرسال كلماتك كما هي. اطلب «أرسل إلى Ana على WhatsApp: السائق على بُعد عشر دقائق»، فإن كانت Ana قد كتبت في آخر 24 ساعة على ذلك الرقم، يخرج النص رسالةً عادية.
وإن لم تكن، يُرفض إرسال النص الحر والسبب هو النافذة المغلقة. لن يمرّره Octo خلسة: عليه أن ينتقل إلى قالب معتمد، وإن لم يناسب أي قالب يخبرك بذلك. يمكنه مساعدتك على إنشاء قالب، لكن القالب الجديد ما زال يجب أن تعتمده Meta قبل أن يستلمه أحد. يغطي أدخِل قوالبك إلى Omni Octo ذلك.
أين تظهر الرسالة
- أي رقم يرسلها. القوالب تخص رقم WhatsApp واحدًا، فالقالب هو الذي يحدّد المرسِل. إن كان لديك رقمان، فسمِّ القالب المُزامَن مع الرقم الذي تريده.
- أي محادثة. المحادثة نفسها التي تستخدمها رسائل العميل أصلًا، تمامًا كما في الإرسال من نظامك الخاص. وحين ترد Ana، ينضمّ ردّها إلى تلك المحادثة.
- من يجيب عن الرد. لا يتولّى Octo المحادثة. إن كان وكيل ذكاء اصطناعي يتولّاها، يبقى يتولّاها؛ وإن كنت قد توليتها أنت، تبقى معك. هذا يختلف عن الإرسال من داخل محادثة، حيث تتولّى المحادثة أولًا.
- ما يظهر. تعرض الرسالة في المحادثة المتن مع القيم مملوءة، مسجَّلةً على أنك أرسلتها. تبدأ بحالة «أُرسلت»؛ وتصل حالات التسليم والقراءة والفشل لاحقًا من Meta.
«أُرسلت» في رد Octo تعني أن Meta قبلت الرسالة. لا تعني أن Ana استلمتها — والقالب التسويقي قد لا يُسلَّم أبدًا.
الطلب مرتين يرسل مرتين
كل طلب بطاقة جديدة، وكل بطاقة مؤكَّدة إرسال جديد. لا يوجد فحص «أُرسل بالفعل» بين الطلبات: إن طلبت مجددًا، أو طلبت من Octo أن «يحاول مجددًا» بعد إرسال خرج فعلًا، ثم أكّدت البطاقتين، تستلم Ana القالب مرتين — وكل مرة تُحتسب من حدود الرقم. تحقّق من حالة البطاقة السابقة قبل أن تؤكّد إعادة الإرسال.
ما لا يفعله Octo
- الإرسال إلى قائمة. الطلب الواحد مستلم واحد؛ استخدم حملة.
- إرسال قالب بترويسة وسائطية. لا سبيل لديه لتوفير الملف.
- تجاوز إلغاء الاشتراك، أو إرسال قالب غير معتمد.
- تمرير نص حر خلسة من نافذة مغلقة.
Octo خارج المحادثة
حين يتحدّث برنامج إلى Octo بدل شخص، يبقى الإرسال بانتظار شخص:
| أين يتصل البرنامج | ما يحدث |
|---|---|
/mcp — بتسليم Octo مهمة عبر send_message | يُعلَّق. تحمل النتيجة pending_action مع رمز. لا يُرسَل شيء حتى يرد أحد بـ YES <code> في المحادثة نفسها. |
/mcp/tools — باستدعاء أدوات Octo مباشرة | مرفوض مع confirmation_required. |
/v1، محادثة محفوظة | يُعلَّق بانتظار رد YES <code> بالطريقة نفسها. |
/v1، طلب لا يحفظ شيئًا | غير متاح أصلًا. |
إن احتاج برنامجك إلى إرسال قالب دون أن يوافق شخص على كل واحد، فاستدعِ endpoint إرسال القوالب مباشرة — إرسال قالب من نظامك الخاص.
إلى أين بعد ذلك
- إرسال قالب من داخل محادثة — الإرسال نفسه، مع معاينة، من داخل المحادثة.
- إرسال قالب إلى قائمة — حين يكون أكثر من شخص.
- ما سرعة الإرسال المسموحة لرقم واحد — الحدود التي تشترك فيها إرسالات Octo مع كل الطرق الأخرى.