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

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

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

عنوان 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) — يقوم الخادم بفك ترميز أي من الحالتين. يتم دائمًا ترميز الاستجابات باستخدام أسماء حقول البروتو، في 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 بالفعل — أسماء حقول البروتو 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 هو تصميم Unlayer JSON.
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