We are making changes to the WhatsApp Business Platform pricing model.
Effective July 1, 2025 for all businesses on our platform:
See Pricing Updates on the WhatsApp Business Platform for additional details.
تتكون القوالب من أربعة مكونات أساسية تحددها عند إنشاء قالب: العنوان والنص الرئيسي والتذييل والأزرار. يجب أن تستند المكونات التي تختارها لكل قالب من القوالب إلى احتياجات نشاطك التجاري. المكون الوحيد المطلوب هو النص الرئيسي.
تدعم بعض المكونات متغيرات يمكنك إضافة قيمها عند استخدام API السحابة أو API داخل المواقع لإرسال القالب في رسالة قالب. إذا كانت القوالب تستخدم متغيرات، فيجب تضمين عينة من قيم المتغيرات عند إنشاء القوالب.
العناوين هي مكونات اختيارية تظهر في أعلى رسائل القوالب. تدعم العناوين النصوص والوسائط (الصور ومقاطع الفيديو والمستندات) والمواقع.
تقتصر جميع القوالب على مكون عنوان واحد
يمكنك اختيار إضافة نص العنوان إلى قالب الرسالة لديك. يقبل نص الرسالة في مكون العنوان المعلمات الخاصة بالتكوين البرمجي.
يمكن تكوين معلمات النص بأحد التنسيقين:
“Hello John, your account balance is {{1}}” | [ “$1,000” ]
{ "param_name": "account_balance", "example": "$1,000" }
أضف كائن مكون العنوان هذا إلى مصفوفة كائن ”components”[]
عند استدعاء نقطة النهاية POST
. استبدل خصائص العنصر النائب أدناه باستخدام جدول الخصائص.
تعرف على المزيد حول إرسال القوالب النصية هنا
{ "type": "HEADER", "format": "TEXT", "text": "", "example": { "header_text": [ // You must provide one of the inputs below when the string contains parameters ] } }
العنصر النائب | الوصف | مثال على القيمة |
---|---|---|
سلسلة نصية عادية. يمكن أن تدعم معلمة واحدة. إذا كانت هذه السلسلة تحتوي على معلمات، فيجب تضمين خاصية 60 حرفًا كحد أقصى. |
| |
مطلوب عند استخدام المعلمات الموضعية في نص العنوان. مصفوفة من يجب أن يتطابق عدد السلاسل مع عدد المتغيرات المدرجة في السلسلة. |
| |
مطلوب عند استخدام المتغيرات المسماة في نص العنوان لديك. مصفوفة من كائنات JSON تحتوي على سلاسل
| [{ "param_name": "sale_start_date", "example": "December 1st" }] |
{ "type": "HEADER", "format": "TEXT", "text": "Our new sale starts {{1}}!", "example": { "header_text": [ "December 1st" ] } }
{ "type": "HEADER", "format": "TEXT", "text": "Our new sale starts {{sale_start_date}}!", "example": { "header_text_named_params": [ { "param_name": "sale_start_date", "example": "December 1st" } ] } }
يمكن أن تكون عناوين الوسائط عبارة عن صورة أو فيديو أو مستندًا مثل PDF. يجب تحميل جميع الوسائط باستخدام API التحميل القابل للاستئناف. البنية المُستخدمة لتعريف عنوان وسائط هي نفسها المستخدمة مع جميع أنواع الوسائط.
{ "type": "HEADER", "format": "", "example": { "header_handle": [ " " ] } }
العنصر النائب | الوصف | مثال على القيمة |
---|---|---|
يشير إلى نوع أصل الوسائط. تعيين إلى |
| |
تم تحميل اسم مستخدم أصل الوسائط. استخدم API التحميل القابل للاستئناف لإنشاء اسم مستخدم للأصل. |
|
{ "type": "HEADER", "format": "IMAGE", "example": { "header_handle": [ "4::aW..." ] } }
تظهر عناوين المواقع كخرائط عامة في الجزء العلوي من القالب، وهي مفيدة لتتبع الطلب، وتحديثات التسليم، والتوصيل/الاستلام، وتحديد موقع المتاجر الفعلية، وغير ذلك. عند الضغط عليها، سيتم فتح تطبيق الخريطة الافتراضي لمستخدم التطبيق وتحميل الموقع المحدد. يتم تحديد المواقع عند إرسال القالب باستخدام API السحابة أو API داخل المواقع.
يمكن استخدام عناوين المواقع فقط في القوالب المصنفة كـ UTILITY
أو MARKETING
. المواقع الفورية غير مدعومة.
{ "type": "HEADER", "format": "LOCATION" }
لا يمكن تخصيص قيم الخاصية.
{ "type": "HEADER", "format": "LOCATION" }
يمثل مكون النص، النص الأساسي لقالب الرسالة وهو عبارة عن مكون قالب نصي فقط. مطلوب لكل القوالب.
يقبل نص الرسالة في مكون النص الأساسي المعلمات الخاصة بالتكوين البرمجي.
يمكن تكوين معلمات النص بأحد التنسيقين:
“Hello {{1}}, your account balance is {{2}}” | [ “John”, “$1,000” ]
{ "param_name": "order_id", "example": "335628"}
تقتصر جميع القوالب على مكون نص أساسي واحد.
أضف كائن مكون النص الأساسي هذا إلى مصفوفة كائن ”components”[]
عند استدعاء نقطة النهاية POST
. استبدل خصائص العنصر النائب أدناه باستخدام جدول الخصائص.
تعرف على المزيد حول إرسال القوالب النصية هنا
{ "type": "body", "text": "", "example": { "body_text": [ [ // You must provide one of the inputs below when the string contains parameters ] ] } }
العنصر النائب | الوصف | مثال على القيمة |
---|---|---|
سلسلة نصية عادية. يمكن أن تدعم معلمات متعددة. إذا كانت هذه السلسلة تحتوي على معلمات، فيجب تضمين خاصية 1024 حرفًا كحد أقصى. |
| |
مطلوب عند استخدام المعلمات الموضعية في النص الأساسي. مصفوفة من السلاسل حيث تهدف كل سلسلة إلى توضيح النص الذي من المحتمل أن يتم إدخاله كمعلمة أثناء وقت إرسال الرسالة، على سبيل المثال رصيد الحساب المصرفي أو اسم العميل. يجب أن يتطابق عدد السلاسل مع عدد المتغيرات المدرجة في السلسلة. |
| |
مطلوب عند استخدام المتغيرات المسماة في النص الأساسي. مصفوفة من كائنات JSON تحتوي على سلاسل
| [{ "param_name": "order_id", "example": "335628" }, { "param_name": "customer_name", "example": "Shiva" }] |
{ "type": "BODY", "text": "Shop now through {{1}} and use code {{2}} to get {{3}} off of all merchandise.", "example": { "header_text": [ "the end of August","25OFF","25%" ] } }
{ "type": "BODY", "text": "Your {{order_id}}, is ready {{customer_name}}.", "example": { "header_text_named_params": [ { "param_name": "order_id", "example": "335628" }, { "param_name": "customer_name", "example": "Shiva" } ] } }
التذييلات هي مكونات اختيارية نصية فقط تظهر بعد مكون النص الرئيسي مباشرةً. تقتصر القوالب على مكون تذييل واحد.
{ "type": "FOOTER", "text": "" }
العنصر النائب | الوصف | مثال على القيمة |
---|---|---|
يظهر النص في تذييل القالب عند الإرسال. 60 حرفًا كحد أقصى. |
|
{ "type": "FOOTER", "text": "Use the buttons below to manage your marketing subscriptions" }
الأزرار هي مكونات تفاعلية اختيارية تنفذ إجراءات محددة عند الضغط عليها. يمكن أن تحتوي القوالب على مزيج يصل إلى 10 مكونات أزرار إجمالاً، على الرغم من وجود تقييدات للأزرار الفردية من النوع نفسن بالإضافة إلى تقييدات المجموعة. يتم توضيح هذه التقييدات أدناه.
يتم تعريف الأزرار ضمن كائن مكون أزرار واحد، وتتواجد ضمن مصفوفة buttons
واحدة. على سبيل المثال، يستخدم هذا القالب زر رقم هاتف وزر عنوان URL:
{ "type": "BUTTONS", "buttons": [ { "type": "PHONE_NUMBER", "text": "Call", "phone_number": "15550051310" }, { "type": "URL", "text": "Shop Now", "url": "https://www.luckyshrub.com/shop/" } ] }
إذا كان القالب يحتوي على أكثر من ثلاثة أزرار، فسيظهر زران في الرسالة التي تم تسليمها وسيتم استبدال الأزرار المتبقية بزر عرض جميع الخيارات. سيؤدي الضغط على زر عرض جميع الخيارات إلى كشف الأزرار المتبقية.
تقوم أزرار نسخ الرمز بنسخ سلسلة نصية (يتم تحديدها عند إرسال القالب في رسالة قالب) إلى حافظة الجهاز عند الضغط عليها بواسطة مستخدم التطبيق. يجب ألا يزيد عدد أزرار نسخ الرمز في القالب عن زر واحد.
{ "type": "COPY_CODE", "example": "" }
العنصر النائب | الوصف | مثال على القيمة |
---|---|---|
السلسلة المطلوب نسخها إلى حافظة الجهاز عند الضغط عليها بواسطة مستخدم التطبيق. 15 حرفًا كحد أقصى. |
|
{ "type": "COPY_CODE", "example": "250FF" }
أزرار الدفق مخصصة لإرسال رسائل الدفق كقوالب.
يمكن إنشاء التدفقات بسرعة في المساحة التجريبية وإرفاقها كقيمة بلغة JSON أو يمكن تحديد معرف دفق موجود.
{ "type": "FLOW", "text": "", "flow_id": " ", "flow_name": " ", "flow_json": " ", "flow_action": " ", "navigate_screen": " ", "icon": " " }
العنصر النائب | الوصف | مثال على القيمة |
---|---|---|
نص تسمية الزر. 25 حرفًا كحد أقصى. |
| |
المعرف الفريد للدفق والذي يوفره واتساب. يجب نشر الدفق. يتعذر الاستخدام إذا تم توفير السمات |
| |
اسم الدفق. مدعوم في API السحابة فقط. يتم تخزين معرف الدفق في قالب الرسالة وليس الاسم، لذلك لن يؤثر تغيير اسم الدفق في قوالب الرسائل الحالية. يجب نشر الدفق. يتعذر الاستخدام إذا تم توفير السمات |
| |
قيمة Flow بلغة JSON مشفرة على هيئة سلسلة والتي تحدد تخطيط الدفق المطلوب إرفاقه بالقالب. يمكن إنشاء قيمة Flow بلغة JSON بسرعة في المساحة التجريبية للدفق. للحصول على مرجع كامل، انظر وثائق Flow بلغة JSON يتعذر الاستخدام إذا تم توفير السمات |
| |
اختياري. القيمة الافتراضية: |
| |
اختياري فقط إذا كان اختياري. القيمة الافتراضية: |
| |
اختياري. سيتم عرض أيقونة افتراضية بجوار الزر إذا لم تكن متوفرة. القيم المسموح بها: |
|
{ "type": "FLOW", "text": "Sign up", "icon": "PROMOTION", "flow_json" : { "version": "6.0", "screens": [ { "id": "WELCOME_SCREEN", "layout": { "type": "SingleColumnLayout", "children": [ { "type": "TextHeading", "text": "Hello World" }, { "type": "TextBody", "text": "Let's start building things!" }, { "type": "Footer", "label": "Complete", "on-click-action": { "name": "complete", "payload": {} } } ] }, "title": "Welcome", "terminal": true, "success": true, "data": {} } ] } }
أزرار الرسائل متعددة المنتجات (MPM) هي أزرار خاصة غير قابلة للتخصيص، وعند الضغط عليها، تعرض ما يصل إلى 30 منتجًا من كتالوج التجارة الإلكترونية لديك، حيث تكون المنتجات منظمة فيما يصل إلى 10 أقسام، ضمن رسالة واحدة. راجع قوالب رسائل المنتجات المتعددة.
أزرار كلمة المرور لمرة واحدة (OTP) هي نوع خاص من مكون زر URL المستخدم مع قوالب المصادقة. راجع قوالب المصادقة.
تتصل أرقام أزرار الهاتف برقم هاتف النشاط التجاري المحدد عندما يضغط عليها مستخدم التطبيق. يجب ألا يزيد عدد أزرار رقم الهاتف عن زر واحد.
{ "type": "PHONE_NUMBER", "text": "", "phone_number": " " }
العنصر النائب | الوصف | مثال على القيمة |
---|---|---|
سلسلة أبجدية رقمية. رقم هاتف النشاط التجاري الذي سيتم الاتصال به عندما يضغط المستخدم على الزر. لاحظ أن بعض البلدان لديها أرقام هواتف خاصة تتضمن أصفارًا في البداية بعد كود الاتصال بالبلد (على سبيل المثال، +55-0-955-585-95436). إذا قمت بتعيين أحد هذه الأرقام إلى الزر، فستتم إزالة الصفر الموجود في البداية من الرقم. إذا كان الرقم لن يعمل بدون وجود الصفر في البداية، فقم بتعيين رقم بديل للزر، أو أضف الرقم كنص أساسي في الرسالة. 20 حرفًا كحد أقصى. |
| |
نص تسمية الزر. 25 حرفًا كحد أقصى. |
|
{ "type": "PHONE_NUMBER", "text": "Call", "phone_number": "15550051310" }
أزرار الرد السريع هي أزرار مخصصة نصية فقط، ترسل إليك على الفور رسالة بالسلسلة النصية المحددة عندما يضغط مستخدم التطبيق عليها. حالة الاستخدام الشائعة هي زر يسمح لعميلك بإلغاء الاشتراك بسهولة من أي رسائل تسويقية.
تقتصر القوالب على 10 أزرار للرد السريع. في حالة استخدام أزرار الرد السريع مع أزرار أخرى، يجب تنظيم الأزرار ضمن مجموعتين: أزرار الرد السريع وأزرار الرد غير السريع. إذا تم تجميعها بشكل خاطئ، فسترجع API خطأً يشير إلى وجود مجموعة غير صالحة.
أمثلة على المجموعات الصالحة:
أمثلة على المجموعات غير الصالحة:
عند استخدام API السحابة أو API داخل المواقع لإرسال قالب يحتوي على أزرار رد سريع متعددة، يمكنك استخدام خاصية الفهرس لتعيين الترتيب الذي تظهر به الأزرار في رسالة القالب.
{ "type": "QUICK_REPLY", "text": "" }
العنصر النائب | الوصف | مثال على القيمة |
---|---|---|
نص تسمية الزر. 25 حرفًا كحد أقصى. |
|
{ "type": "QUICK_REPLY", "text": "Unsubscribe from Promos" }
أزرار رسائل المنتج الواحد (SPM) هي عبارة عن أزرار خاصة غير قابلة للتخصيص يمكن تعيينها لمنتج محدد في كتالوج المنتجات لديك. عندما يتم الضغط عليها، تقوم بتحميل تفاصيل المنتج، الذي يتم سحبه من الكتالوج لديك. يمكن للمستخدمين بعد ذلك إضافة المنتج إلى عربة التسوق وتقديم طلب. راجع قوالب رسائل المنتج الواحد وقوالب العنصر الدوّار لبطاقة المنتج.
تقوم أزرار عنوان URL بتحميل عنوان URL المحدد في متصفح الويب الافتراضي للجهاز عندما يضغط عليها مستخدم التطبيق. تقتصر القوالب على زرين لعنوان URL.
{ "type": "URL", "text": "", "url": " ", # Required if contains a variable "example": [ " " ] }
العنصر النائب | الوصف | مثال على القيمة |
---|---|---|
عنوان URL لموقع الويب. يدعم متغيرًا واحدًا. في حالة استخدام متغير، أضف عينة من خاصية متغيرة إلى نهاية سلسلة عنوان URL. يتم تحميل عنوان URL في متصفح الويب الافتراضي للهاتف المحمول عندما يضغط العميل على الزر. 2000 حرف كحد أقصى. |
| |
نص تسمية الزر. بحد أقصى 25 حرفًا. |
| |
عنوان URL لموقع الويب الذي يقوم بتحميل متصفح الويب الافتراضي للهاتف المحمول عندما يضغط مستخدم التطبيق على الزر. يدعم متغيرًا واحدًا ملحقًا بنهاية سلسلة عنوان URL. 2000 حرف كحد أقصى. |
|
{ "type": "URL", "text": "Shop Now", "url": "https://www.luckyshrub.com/shop?promo={{1}}", "example": [ "summer2023" ] }
مكونات العرض لفترة محدودة هي مكونات خاصة تستخدم لإنشاء قوالب العرض المتوفرة لفترة محدودة.
مثال على طلب إنشاء قالب تسويقي بالمكونات التالية:
curl -L 'https://graph.facebook.com/v23.0
/102290129340398/message_templates' \
-H 'Authorization: Bearer EAAJB...' \
-H 'Content-Type: application/json' \
-d '
{
"name": "seasonal_promotion",
"language": "en_US",
"category": "MARKETING",
"components": [
{
"type": "HEADER",
"format": "TEXT",
"text": "Our {{1}} is on!",
"example": {
"header_text": [
"Summer Sale"
]
}
},
{
"type": "BODY",
"text": "Shop now through {{1}} and use code {{2}} to get {{3}} off of all merchandise.",
"example": {
"body_text": [
[
"the end of August","25OFF","25%"
]
]
}
},
{
"type": "FOOTER",
"text": "Use the buttons below to manage your marketing subscriptions"
},
{
"type":"BUTTONS",
"buttons": [
{
"type": "QUICK_REPLY",
"text": "Unsubscribe from Promos"
},
{
"type":"QUICK_REPLY",
"text": "Unsubscribe from All"
}
]
}
]
}'
مثال على طلب إنشاء قالب مساعدة بالمكونات التالية:
curl -L 'https://graph.facebook.com/v16.0/102290129340398/message_templates' \ -H 'Authorization: Bearer EAAJB...' \ -H 'Content-Type: application/json' \ -d ' { "name": "order_confirmation", "language": "en_US", "category": "UTILITY", "components": [ { "type": "HEADER", "format": "DOCUMENT", "example": { "header_handle": [ "4::YX..." ] } }, { "type": "BODY", "text": "Thank you for your order, {{1}}! Your order number is {{2}}. Tap the PDF linked above to view your receipt. If you have any questions, please use the buttons below to contact support. Thank you for being a customer!", "example": { "body_text": [ [ "Pablo","860198-230332" ] ] } }, { "type": "BUTTONS", "buttons": [ { "type": "PHONE_NUMBER", "text": "Call", "phone_number": "15550051310" }, { "type": "URL", "text": "Contact Support", "url": "https://www.luckyshrub.com/support" } ] } ] }'
مثال على طلب إنشاء قالب مساعدة بالمكونات التالية:
curl 'https://graph.facebook.com/v23.0
/102290129340398/message_templates' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
"name": "order_delivery_update",
"language": "en_US",
"category": "UTILITY",
"components": [
{
"type": "HEADER",
"format": "LOCATION"
},
{
"type": "BODY",
"text": "Good news {{1}}! Your order #{{2}} is on its way to the location above. Thank you for your order!",
"example": {
"body_text": [
[
"Mark",
"566701"
]
]
}
},
{
"type": "FOOTER",
"text": "To stop receiving delivery updates, tap the button below."
},
{
"type":"BUTTONS",
"buttons": [
{
"type": "QUICK_REPLY",
"text": "Stop Delivery Updates"
}
]
}
]
}'
اشترك في حقل حدث webhook بشأن message_template_components_update
لاستلام إشعار بالتغييرات التي تطرأ على مكونات القالب، مثل تغيير العنوان أو النص أو إضافة زر.
"message_template_id":, "message_template_name": , "message_template_language": , "message_template_title": , "message_template_element": , "message_template_footer": , "message_template_buttons": [ { "message_template_button_type": , "message_template_button_text": , "message_template_button_url": , "message_template_button_phone_number": } ]
"message_template_id": 1234567890, "message_template_name": “promo_summer_sale_11_en”, "message_template_language": “en_US”, "message_template_title": “header”, "message_template_element": “body”, "message_template_footer": “footer”, "message_template_buttons": [ { "message_template_button_type": URL, "message_template_button_text": “click me”, "message_template_button_url": “https://www.example.com”, "message_template_button_phone_number": “+1(123)4565678” } ]
الحقل | الوصف |
---|---|
id | معرف القالب. |
String (سلسلة) | اسم القالب. |
String (سلسلة) | لغة القالب |
String (سلسلة) | عنوان القالب الجديد بعد التغيير. يظل فارغًا إذا لم يًدخل المستخدم عنوانًا. |
String (سلسلة) | نص القالب الجديد بعد التغيير. يظل فارغًا إذا لم يُدخل المستخدم نصًا جديدًا. |
String (سلسلة) | تذييل القالب الجديد بعد التغيير. يظل فارغًا إذا لم يُدخل المستخدم نص تذييل جديدًا. |
Array [Button] (مصفوفة [زر]) | القائمة الجديدة بالأزرار الموجودة على القالب بعد التغيير. لا يتم دعم سوى الأزرار من نوع عنوان URL ونوع رقم الهاتف فقط لحدث webhook هذا. |