انتقل إلى المحتوى

واجهة برمجة تطبيقات قوالب البريد الإلكتر الإلكتروني

تدير واجهة برمجة تطبيقات قوالب البريد الإلكتروني (Email Templates API) قوالب البريد الإلكتروني القابلة لإعادة الاستخدام وراء الإعدادات المسبقة للبريد الإلكتروني للتطبيق — وهي نفس القوالب التي تنشئها في محرر البريد الإلكتروني في لوحة التحكم (Control Panel). يخزن كل قالب مواضيع خاصة بكل لغة، ومعلومات المرسل، ومحتوى المحرر، ويتم تحديده بواسطة رمز إعداد البريد الإلكتروني المسبق المتصل به. استخدم هذا الرمز لإرسال القالب عبر Notify (حمولة البريد الإلكتروني email_template) أو نقطة إرسال بريد إلكتروني في Customer Journey Send email point.

عنوان URL الأساسي

Anchor link to
https://rpc-api.svc-nue.pushwoosh.com

يتم تقديم جميع نقاط النهاية عبر HTTPS. تستخدم الطلبات والاستجابات application/json ما لم يُذكر خلاف ذلك.

المصادقة

Anchor link to

يجب أن يتضمن كل طلب ترويسة Authorization مع رمز واجهة برمجة تطبيقات الخادم (Server API token) الخاص بك:

Authorization: Api YOUR_API_TOKEN

الاصطلاحات

Anchor link to
  • تسمية الحقول: تقبل أجسام الطلبات ومعلمات الاستعلام/المسار lowerCamelCase (على سبيل المثال، previewSettings، searchByLabel، includeHtml) — يقوم الخادم بفك ترميز أي من الحالتين. يتم دائمًا ترميز الاستجابات باستخدام أسماء حقول proto، في snake_case (per_page، email_template، sender_info، preview_settings، وهكذا). تستخدم أمثلة الاستجابة ومرجع الكائن أدناه هذه الحالة.
  • code: تحمل كل استجابة قالب رمز إعداد البريد الإلكتروني المسبق المتصل به، وليس معرف قالب داخلي. مرر هذا الرمز نفسه إلى Get و Update و Delete وإلى واجهات برمجة تطبيقات المراسلة/الرحلة المذكورة أعلاه.
  • الحقول غير المعبأة: تتضمن الاستجابات جميع الحقول، حتى عندما تكون فارغة أو قيمتها صفر.

استجابات الخطأ

Anchor link to
حالة HTTPالمعنى
400 Bad Requestوسيطة غير صالحة — حقل مطلوب مفقود أو مشوه، أو فشل شرط مسبق (على سبيل المثال، حذف قالب لا يزال مستخدمًا في رحلة).
401 Unauthorizedترويسة Authorization مفقودة أو غير صالحة.
403 Forbiddenالتطبيق أو الإعداد المسبق لا ينتمي إلى حساب المتصل.
404 Not Foundلم يتم العثور على القالب أو الإعداد المسبق أو التطبيق.
500 Internal Server Errorفشل غير متوقع من جانب الخادم.

نقاط النهاية

Anchor link to
الطريقةالمسارالوصف
POST/api/email_templatesإنشاء قالب بريد إلكتروني جديد
GET/api/email_templatesإدراج قوالب البريد الإلكتروني لتطبيق ما
GET/api/email_templates/{code}الحصول على قالب بريد إلكتروني واحد
PUT/api/email_templates/{code}تحديث قالب بريد إلكتروني
DELETE/api/email_templates/{code}حذف قالب بريد إلكتروني
POST/api/email_templates:cloneاستنساخ قالب بريد إلكتروني في تطبيق

إنشاء

Anchor link to

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

POST /api/email_templates

جسم الطلب

Anchor link to
المعلمةالنوعمطلوبالوصف
applicationstringنعمرمز تطبيق Pushwoosh لإنشاء القالب فيه.
namestringنعماسم القالب، 1–255 حرفًا.
contentobjectنعمكائن محتوى البريد الإلكتروني.
labelstringلاتسمية نصية حرة، تصل إلى 255 حرفًا.
categoriesarray of stringsلاأسماء الفئات لوضع علامات على القالب بها.
previewSettingsobjectلاإعدادات معاينة المحرر العشوائية، يتم تخزينها وإعادتها كما هي.
systembooleanلايحدد القالب كقالب نظام — ميزة داخلية، على سبيل المثال، جزء كتلة متزامنة. يتم إخفاء قوالب النظام من List (انظر الملاحظة أدناه)، ولكنها تظل قابلة للوصول عن طريق الرمز. القيمة الافتراضية هي false.
مثال على الطلب
Anchor link to
{
"application": "XXXXX-XXXXX",
"name": "Welcome email",
"label": "onboarding",
"categories": ["lifecycle"],
"content": {
"senderInfo": {
"from": { "email": "hello@acme.com", "name": "Acme" },
"replyTo": { "email": "support@acme.com", "name": "Acme Support" }
},
"subject": { "en": "Welcome to Acme!", "default": "Welcome to Acme!" },
"pushwoosh": {
"html": "<html><body>Welcome, {name|string|there}!</body></html>",
"localizationData": { "default": { "name": "there" } }
}
}
}

الاستجابة

Anchor link to

يعيد { "email_template": { ... } }كائن قالب البريد الإلكتروني الذي تم إنشاؤه، ولكن بدون content (لا تعيد نقطة النهاية هذه المحتوى). استدعِ Get بالرمز code المُعاد إذا كنت بحاجة إلى قراءة المحتوى مرة أخرى.

إدراج

Anchor link to

يدرج قوالب البريد الإلكتروني للتطبيق — البيانات الوصفية فقط، بدون محتوى — مع ترقيم الصفحات والترتيب والتصفية حسب الاسم أو التسمية أو الفئة.

GET /api/email_templates

معلمات الاستعلام

Anchor link to
المعلمةالنوعمطلوبالوصف
applicationstringنعمرمز التطبيق لإدراج القوالب له.
orderBystringلاNAME (افتراضي)، CREATED، أو UPDATED.
orderDirectionstringلاASC (افتراضي) أو DESC.
pageintegerلافهرس الصفحة المستند إلى الصفر.
perPageintegerلاحجم الصفحة. القيمة الافتراضية هي 100 عند الحذف أو 0. لا تفرض نقطة النهاية هذه حدًا أقصى صريحًا.
searchByNamestringلاتطابق سلسلة فرعية (like %value%) مع اسم القالب أو رمزه — أي تطابق يكفي.
searchByLabelstringلاتطابق سلسلة فرعية على التسمية (like %label%)، أو تطابق تام عندما تكون strictSearchByLabel هي true.
strictSearchByLabelbooleanلااستخدم التطابق التام بدلاً من السلسلة الفرعية لـ searchByLabel.
searchByCategoryarray of stringsلاكرر المعلمة للتصفية حسب أي من الفئات المتعددة، على سبيل المثال ?searchByCategory=lifecycle&searchByCategory=promo.

الاستجابة

Anchor link to
الحقلالنوعالوصف
email_templatesarray of objectsالصفحة الحالية من كائنات قالب البريد الإلكتروني. content هو null في كل عنصر.
pageintegerفهرس الصفحة المُعاد.
per_pageintegerحجم الصفحة المستخدم لهذه الاستجابة.
totalintegerالعدد الإجمالي للقوالب التي تطابق عوامل التصفية، عبر جميع الصفحات.
مثال على الاستجابة
Anchor link to
{
"email_templates": [
{ "code": "AAAAA-BBBBB", "name": "Welcome email", "label": "onboarding", "categories": ["lifecycle"] }
],
"page": 0,
"per_page": 100,
"total": 1
}

الحصول على

Anchor link to

يعيد قالب بريد إلكتروني واحدًا برمزه، بما في ذلك معلومات المرسل، والمواضيع الخاصة بكل لغة، ومحتوى المحرر الكامل.

GET /api/email_templates/{code}

معلمات المسار

Anchor link to
المعلمةالنوعالوصف
codestringرمز القالب (رمز إعداد البريد الإلكتروني المسبق المتصل به).

معلمات الاستعلام

Anchor link to
المعلمةالنوعمطلوبالوصف
includeHtmlbooleanلاما إذا كان سيتم إرجاع html المعروضة إلى جانب محتوى المحرر. القيمة الافتراضية هي true. اضبطها على false لتخطيه — فهو عادة ما يكون أكثر من نصف الحمولة، ومحتوى المحرر يصف القالب بالفعل.

الاستجابة

Anchor link to

يعيد { "email_template": { ... } }، كائن قالب البريد الإلكتروني الكامل.

تحديث

Anchor link to

يحدّث قالب بريد إلكتروني موجودًا برمزه، مع الكتابة فوق الحقول المقدمة.

PUT /api/email_templates/{code}

معلمات المسار

Anchor link to
المعلمةالنوعالوصف
codestringرمز القالب المراد تحديثه.

جسم الطلب

Anchor link to
المعلمةالنوعمطلوبالوصف
namestringلااسم جديد، 1–255 حرفًا. احذفه للحفاظ على الاسم الحالي.
contentobjectلاكائن محتوى بريد إلكتروني جديد، يحل محل المحتوى المخزن بالكامل. احذفه لترك المحتوى دون تغيير.
labelstringلاتسمية جديدة. يتم الكتابة فوقها دائمًا — احذفها أو أرسل "" لمسحها.
categoriesarray of stringsلامجموعة كاملة جديدة من أسماء الفئات. احذفها لترك الفئات دون تغيير؛ أرسل [] لمسحها.
previewSettingsobjectلاإعدادات معاينة جديدة. احذفها لتركها دون تغيير.
مثال على الطلب
Anchor link to
{
"name": "Welcome email v2",
"label": "onboarding",
"content": {
"senderInfo": { "from": { "email": "hello@acme.com", "name": "Acme" } },
"subject": { "default": "Welcome to Acme — updated!" },
"pushwoosh": {
"html": "<html>...</html>",
"localizationData": {}
}
}
}

الاستجابة

Anchor link to

يعيد { "email_template": { ... } }كائن قالب البريد الإلكتروني المحدث، أيضًا بدون content. استدعِ Get إذا كنت بحاجة إلى قراءة المحتوى مرة أخرى.

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

DELETE /api/email_templates/{code}

معلمات المسار

Anchor link to
المعلمةالنوعالوصف
codestringرمز القالب المراد حذفه.

الاستجابة

Anchor link to

كائن فارغ عند النجاح: {}.

استنساخ

Anchor link to

يستنسخ قالب بريد إلكتروني — محتواه والإعداد المسبق الخاص به — في تطبيق وجهة، اختياريًا تحت اسم جديد.

POST /api/email_templates:clone

جسم الطلب

Anchor link to
المعلمةالنوعمطلوبالوصف
emailPresetCodestringنعمcode القالب (كما هو مُعاد بواسطة Create، Get، List، أو Update) المراد استنساخه. تمت تسميته emailPresetCode هنا لأنه رمز إعداد البريد الإلكتروني المسبق المتصل — انظر الاصطلاحات.
applicationstringنعمرمز تطبيق الوجهة. يمكن أن يكون نفس التطبيق، أو تطبيقًا مختلفًا يملكه نفس الحساب.
namestringلااسم للنسخة المستنسخة، 1–255 حرفًا. القيمة الافتراضية هي اسم القالب المصدر.
مثال على الطلب
Anchor link to
{
"emailPresetCode": "AAAAA-BBBBB",
"application": "YYYYY-YYYYY",
"name": "Welcome email (copy)"
}

الاستجابة

Anchor link to
الحقلالنوعالوصف
email_preset_codestringcode القالب الجديد — نفس المعرف الذي تستدعيه Get/Update/Delete بـ code.

مرجع الكائن

Anchor link to

تتطابق أسماء الحقول أدناه مع ما تعيده Get و List و Update و Create بالفعل — أسماء حقول proto snake_case (انظر الاصطلاحات). عندما ترسل هذه الهياكل نفسها مرة أخرى في جسم الطلب (Create، Update)، يعمل النموذج lowerCamelCase المستخدم في أمثلة الطلب أعلاه أيضًا؛ يقبل الخادم أيًا من الحالتين عند الإدخال.

كائن قالب البريد الإلكتروني

Anchor link to
الحقلالنوعالوصف
codestringرمز إعداد البريد الإلكتروني المسبق المتصل. يحدد هذا القالب في كل مكان آخر في واجهة برمجة التطبيقات.
namestringاسم القالب.
labelstringتسمية نصية حرة.
categoriesarray of stringsأسماء الفئات.
contentobjectكائن محتوى البريد الإلكتروني. يتم تعبئته فقط بواسطة Get؛ null في استجابات Create و List و Update.
preview_settingsobjectإعدادات معاينة المحرر العشوائية.
createdstring (RFC 3339)الطابع الزمني للإنشاء.
updatedstring (RFC 3339)الطابع الزمني لآخر تحديث.

كائن محتوى البريد الإلكتروني

Anchor link to
الحقلالنوعالوصف
sender_infoobjectكائن معلومات المرسل — عناوين from و reply_to.
subjectobject (map)موضوع لكل لغة، على سبيل المثال { "en": "Subject", "default": "Subject" }.
unlayer / pushwoosh / smartcardsobjectمحتوى المحرر. يجب تعيين واحد بالضبط من هذه — يحدد أي محرر أنتج (وسيعرض) القالب. انظر أنواع المحرر أدناه.

أنواع المحرر

Anchor link to
النوعالحقلالحقول الفرعية المطلوبةالوصف
unlayerhtml, localization_data, editor_configeditor_config, localization_dataمحرر كتل السحب والإفلات (Unlayer). editor_config هو JSON تصميم Unlayer.
pushwooshhtml, localization_datalocalization_dataمحرر Pushwoosh الخاص القائم على HTML. يوصى به للقوالب التي يتم إنشاؤها برمجيًا/عبر واجهة برمجة التطبيقات.
smartcardshtml, localization_data, contentcontent, localization_dataمحرر كتل Smart Cards؛ content هو JSON الخاص بالمحرر.

في كل نوع، html هو الإخراج المعروض. localization_data هو محتوى المحرر الخاص بكل لغة: كائن مفتاحه هو رمز اللغة (en، es، default، …)، حيث تكون كل قيمة هي نسخة تلك اللغة من حقول المحرر. شكله الداخلي خاص بالمحرر وغير شفاف لهذه الواجهة البرمجية — تقوم الواجهة بتخزينه وإعادته كما هو. وهو مطلوب عند Create/Update لكل نوع (أرسل {} إذا لم يكن هناك شيء للترجمة).

يمكن أن يتضمن النص داخل html أو قيمة localization_data علامات المحتوى الديناميكي، على سبيل المثال {name|string|there} — يتم حل هذه العلامات مقابل علامات جهاز المستلم عند إرسال البريد الإلكتروني بالفعل. لا تقوم واجهة برمجة التطبيقات هذه بحلها؛ إنها تخزن وتعيد أي نص تضعه هناك.

كائن معلومات المرسل

Anchor link to
الحقلالنوعالوصف
fromobject{ "email": string, "name": string } — عنوان المرسل.
reply_toobject{ "email": string, "name": string } — عنوان الرد.

يجب أن يكون كلا الحقلين الفرعيين email، عندما لا يكونان فارغين، عنواني بريد إلكتروني صالحين.

مواضيع ذات صلة

Anchor link to