قوالب الرسائل

يلزم توفير قالب رسالة لفتح محادثات تسويق ومساعدة ومصادقة مع العملاء. ويمكن أن تكون هذه المحادثات رسائل خدمة عملاء أو تذكيرات بالمواعيد وتحديثات الدفع أو الشحن وتنبيهات والمزيد.

المتطلبات

  • يجب الموافقة على قالب الرسالة قبل أن يتم استخدامه لبدء محادثة. تعرف على المزيد.
  • لفتح محادثات التسويق والمساعدة والمصادقة مع عميل، يجب أن يكون العميل قد اشترك لتلقي رسائل من نشاطك التجاري. معرفة المزيد.

فئات القوالب المدعومة

راجع الفئات.

الترجمات

عند إرسال قالب رسالة، يجب تحديد اللغة باستخدام الحقل language. ويكون نشاطك التجاري هو المسؤول عن كل الترجمات التي ترغب في استخدامها.

اللغات المدعومة

اللغات المدعومة

فيما يلي اللغات المدعومة لقوالب الرسائل.

اللغةالرمز

الإفريقانية

af

الألبانية

sq

العربية

ar

الأذربيجانية

az

البنغالية

bn

البلغارية

bg

الكتالونية

ca

الصينية (الصين)

zh_CN

الصينية (هونغ كونغ)

zh_HK

الصينية (تايوان)

zh_TW

الكرواتية

hr

التشيكية

cs

الدانماركية

da

الهولندية

nl

الإنجليزية

en

الإنجليزية (المملكة المتحدة)

en_GB

الإنجليزية (الولايات المتحدة)

ar_AR

الإستونية

et

الفلبينية

fil

الفنلندية

fi

الفرنسية

fr

الألمانية

de

اليونانية

el

الكجراتية

gu

الهوسية

ha

العبرية

he

الهندية

hi

المجرية

hu

الإندونيسية

id

الأيرلندية

ga

الإيطالية

it

اليابانية

ja

الكنادية

kn

الكازاخية

kk

الكورية

ko

اللاوية

lo

اللاتفية

lv

اللتوانية

lt

المقدونية

mk

المالايوية

ms

الماليالامية

ml

المراتية

mr

النرويجية

nb

الفارسية

fa

البولندية

pl

البرتغالية (البرازيل)

pt_BR

البرتغالية (البرتغال)

pt_PT

البنجابية

pa

الرومانية

ro

الروسية

ru

الصربية

sr

السلوفاكية

sk

السلوفينية

sl

الإسبانية

es

الإسبانية (الأرجنتين)

es_AR

الإسبانية (إسبانيا)

es_ES

الإسبانية (المكسيك)

es_MX

السواحلية

sw

السويدية

sv

التاميلية

ta

التيلوغوية

te

التايلاندية

th

التركية

tr

الأوكرانية

uk

الأردية

ur

الأوزبكية

uz

الفيتنامية

vi

زولو

zu

حِزم اللغات

يتم تخزين قوالب الرسائل في حِزم اللغات. حزمة اللغة عبارة عن مجموعة من عناصر قوالب الرسائل الخاصة بلغة أو إعداد محلي محدد. وإذا كان النشاط التجاري يدعم ترجمة واحدة على الأقل خاصة بلغة أو إعداد محلي، فسيتم إنشاء حزمة خاصة بهذه اللغة أو الإعداد المحلي.

مساحة اسم قالب الرسالة عبارة عن مجموعة من حِزم اللغات الخاصة بنشاط تجاري محدد.

خيارات سياسة اللغة

إذا تم إرسال قالب رسالة يتضمن الحقل language: policy الذي يتم تعيينه على deterministic، القيمة الافتراضية، فسيعرض واتساب قالب الرسالة باللغة والإعداد المحلي المطلوبين بالضبط. ثم يرسل الجهاز استعلامًا إلى الخادم بشأن حزمة اللغة الخاصة بهذه اللغة المحددة.

عند تسليم هذه الرسالة إلى الجهاز، يقوم الجهاز بما يلي:

  • التحقق من الرمز/السياسة - عند توفير "policy": "deterministic" و"code": "en"، فهل تم تخزين حزمة اللغة en مؤقتًا على الجهاز؟
    • إذا كانت الإجابة هي نعم، فانتقل إلى التحقق من العنصر.
    • إذا كانت الإجابة هي لا، فهل يمكن العثور على حزمة اللغة en على الخادم؟
      • إذا كانت الإجابة هي نعم، يمكنك تحديث التخزين المؤقت المحلي والانتقال إلى التحقق من العنصر.
      • إذا كانت الإجابة هي لا، فسجّل حالة الفشل وسيقوم الخادم بإرجاع الخطأ structure_unavailable عبر حدث Webhook ولن تظهر أية رسائل على الجهاز.

  • التحقق من العنصر - هل العنصر "element": "hello_world" موجود؟
    • إذا كانت الإجابة هي نعم، فقم بفك حزمة المعلمات واعرض الرسالة على الجهاز.
    • إذا كانت الإجابة هي لا:
      • إذا كانت حزمة اللغة واردة من التخزين المؤقت المحلي، يمكنك تنزيل حزمة اللغة en الأحدث من الخادم وتكرار التحقق من العنصر.
      • إذا تم تنزيل حزمة اللغة مؤخرًا من الخادم، فسجّل حالة الفشل وسيقوم الخادم بإرجاع خطأ structure_unavailable عبر حدث Webhook ولن تظهر أية رسائل على الجهاز.

يتم تجاهل إعدادات اللغة/اللغة المحلية على الجهاز بالكامل.

تتمثل المشكلة التي قد تنتج عند استخدام سياسة deterministic فيما إذا كان ما تطلبه غير موجود. وتأكد مما يلي:

  • مساحة الاسم صحيحة
  • اسم العنصر صحيح
  • ترجمة اللغة/الإعداد المحلي متوفرة لهذا العنصر
  • عدد المعلمات المرسلة يتطابق مع ما تم تحديده في قالب الرسالة

التطويع المحلي

توفر قوالب الرسائل دعمًا مبتكرًا للترجمة عن طريق ترجمة الرسالة وفقًا لإعدادات اللغة المحلية في الجهاز.

المعلمات القابلة للترجمة

تتضمن القوالب معلمات يتم دمجها ديناميكيًا في الرسالة. وبالنسبة للمثال المُستخدم في هذا المستند، يبدو قالب الرسالة كما يلي:

"You made a purchase for {{1}} using a credit card ending in {{2}}."

بالنسبة لـ "namespace": "cdb2df51_9816_c754_c5a4_64cdabdcad3e" بالقيمة "element_name": "purchase_with_credit_card"، تحل القيمة الأولى التي تدرجها محل المتغير {{1}} الموجود في رسالة القالب، بينما تحل القيمة الثانية التي تدرجها محل المتغير {{2}}.

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

تكون بعض هذه المعلمات (مثل date_time أو currency) قابلة للترجمة بحيث تظهر بشكل صحيح بناءً على تفضيلات العميل بشأن اللغة واللغة المحلية. وإذا لم ينجح الجهاز في ترجمة أية معلمة، فستتم إعادة التعيين افتراضيًا على fallback_value.

إذا احتجت إلى تحديد العملة والتاريخ بالإضافة إلى fallback_value، فاستخدم الكائنين currency وdate_time. ويتيح ذلك للعميل تطويع البيانات محليًا بأفضل طريقة ممكنة والرجوع افتراضيًا إلى fallback_value فقط في حالة تعذر تطويع البيانات محليًا.

تظهر خيارات localizable_params في الجدول أدناه:

المعلمات

الاسمالوصف

fallback_value

النوع: String (سلسلة)

مطلوب.

تمثل النص الافتراضي في حالة فشل التطويع المحلي. ويجب أن تتضمن كل معلمات التطويع المحلي قيمة احتياطية. عند تحديد النص، يلزم فقط توفير القيمة الاحتياطية.

currency

النوع: الكائن currency

اختياري.

في حالة استخدام الكائن currency، فإنه يتضمن المعلمتين المطلوبتين وهما currency_code وamount_1000.

date_time

النوع: الكائن date_time

اختياري.

في حالة استخدام الكائن date_time، يلزم توفير تعريف إضافي للتاريخ والوقت. وراجع المثال أدناه للحصول على خيارين.

الكائن currency

يحاول عميل واجهة API الخاصة بتطبيق Whatsapp للأعمال تنسيق العملة استنادًا إلى الترجمة المحددة.

الاسمالوصف

currency_code

النوع: String (سلسلة)

مطلوب.

يمثل رمز العملة كما هو محدد في ISO 4217.

amount_1000

النوع: Integer (عدد صحيح)

مطلوب.

يمثل المبلغ مضروبًا في 1000.

مثال

{
    "type": "currency",
    "currency" : {
        "fallback_value": "$230.99",
        "code": "USD",
        "amount_1000": 230990
    }
}  

الكائن date_time

يحاول عميل واجهة API الخاصة بتطبيق Whatsapp للأعمال تنسيق التاريخ/الوقت استنادًا إلى الترجمة المحددة. وتتضمن تنسيقات التاريخ والوقت المدعومة ما يلي:

  • التوقيت الأساسي — يتكون الوقت من عدة مكونات (مثل أحد أيام الأسبوع أو الشهر أو الساعة، وما إلى ذلك) وسيظل الوقت المحدد هو نفسه بغض النظر عن المنطقة الزمنية التي يوجد فيها العميل.
  • توقيت Unix — يعتمد على الوقت الذي يظهر بالمنطقة الزمنية التي يوجد فيها العميل.

DateTime

الاسمالوصف

component

النوع: DateTimeComponent

مطلوب في حالة عدم وجود unix_epoch.

التاريخ/الوقت حسب التوقيت الأساسي.

unix_epoch

النوع: DateTimeUnixEpoch

مطلوب في حالة عدم وجود component.

التاريخ/الوقت حسب توقيت Unix epoch.

مطلوب أحد الحقول التالية على الأقل: component أو unix_epoch. وفي حالة الاستخدام، يمكن أن يوجد حقل واحد منهم فقط.

DateTimeComponent

الاسمالوصف

day_of_week

النوع: String (سلسلة)

اختياري.

إذا كانت مختلفة عن القيمة المشتقة من التاريخ (إذا تم تحديده)، فاستخدم القيمة المشتقة. و يتم قبول السلاسل والأرقام.
الخيارات:"MONDAY"، 1، "TUESDAY"، 2، "WEDNESDAY"، 3، "THURSDAY"، 4، "FRIDAY"، 5، "SATURDAY"، 6، "SUNDAY"، 7

year

النوع: Integer (عدد صحيح)

اختياري.

يمثل العام.

month

النوع: Integer (عدد صحيح)

اختياري.

يمثل الشهر.

day_of_month

النوع: Integer (عدد صحيح)

اختياري.

يمثل أحد أيام الشهر.

hour

النوع: Integer (عدد صحيح)

اختياري.

يمثل الساعة.

minute

النوع: Integer (عدد صحيح)

اختياري.

يمثل الدقيقة.

calendar

النوع: String (سلسلة)

اختياري.

يمثل نوع التقويم.
الخيارات:GREGORIAN، SOLAR_HIJRI

مثال

{
    "type": "date_time",
    "date_time" : {
        "fallback_value": "October 25, 2020",
        "day_of_week": "Saturday",
        "day_of_month": 25,
        "year": 2020,
        "month": 10,
        "hour": 12,
        "minute": 0
    }
}

DateTimeUnixEpoch

سيتم إيقاف استخدام DateTimeUnixEpoch. وسيصبح DateTimeComponent هو الخيار الافتراضي من الآن فصاعدًا. لذا يرجى إجراء تغييرات على الرمز البرمجي لديك تجنبًا للمشكلات.

الاسمالوصف

timestamp

النوع: Integer (عدد صحيح)

مطلوب.

يمثل طابعًا زمنيًا بتوقيت Epoch بالثواني. وسيتم إيقاف استخدام هذا الحقل.

الخطوات التالية

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

https://developers.facebook.com/docs/whatsapp/message-templates/creation#step-1--create-template-using-the-whatsapp-manager