বিষয়বস্তুতে যান

ইমেল টেমপ্লেট এপিআই

ইমেল টেমপ্লেট এপিআই একটি অ্যাপ্লিকেশনের ইমেল প্রিসেটগুলির পিছনে থাকা পুনঃব্যবহারযোগ্য ইমেল টেমপ্লেটগুলি পরিচালনা করে — একই টেমপ্লেট যা আপনি কন্ট্রোল প্যানেলের ইমেল এডিটরে তৈরি করেন। প্রতিটি টেমপ্লেট প্রতি-লোকেল বিষয়, প্রেরকের তথ্য এবং এডিটর কন্টেন্ট সংরক্ষণ করে এবং এটি যে ইমেল প্রিসেটের সাথে সংযুক্ত তার কোড দ্বারা চিহ্নিত করা হয়। Notify (ইমেল পেলোড email_template) বা একটি কাস্টমার জার্নি Send email point এর মাধ্যমে টেমপ্লেট পাঠাতে সেই কোডটি ব্যবহার করুন।

বেস ইউআরএল

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

সমস্ত এন্ডপয়েন্ট HTTPS-এর মাধ্যমে পরিবেশন করা হয়। অনুরোধ এবং প্রতিক্রিয়াগুলি application/json ব্যবহার করে, যদি না অন্যথায় উল্লেখ করা হয়।

প্রমাণীকরণ

Anchor link to

প্রতিটি অনুরোধে আপনার সার্ভার এপিআই টোকেন সহ একটি Authorization হেডার অন্তর্ভুক্ত করতে হবে:

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হ্যাঁটেমপ্লেটের নাম, ১-২৫৫ অক্ষর।
contentobjectহ্যাঁইমেল কন্টেন্ট অবজেক্ট
labelstringনাফ্রি-টেক্সট লেবেল, ২৫৫ অক্ষর পর্যন্ত।
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 ছাড়া (এই এন্ডপয়েন্টটি এটি প্রতিধ্বনিত করে না)। যদি আপনাকে কন্টেন্টটি আবার পড়তে হয় তবে ফেরত দেওয়া code দিয়ে Get কল করুন।

তালিকা

Anchor link to

একটি অ্যাপ্লিকেশনের ইমেল টেমপ্লেটগুলির তালিকা করে — শুধুমাত্র মেটাডেটা, কোনো কন্টেন্ট নেই — পেজিং, অর্ডারিং এবং নাম, লেবেল বা ক্যাটাগরি দ্বারা ফিল্টারিং সহ।

GET /api/email_templates

ক্যোয়ারী প্যারামিটার

Anchor link to
প্যারামিটারপ্রকারপ্রয়োজনীয়বর্ণনা
applicationstringহ্যাঁযে অ্যাপ্লিকেশন কোডের জন্য টেমপ্লেট তালিকাভুক্ত করতে হবে।
orderBystringনাNAME (ডিফল্ট), CREATED, বা UPDATED
orderDirectionstringনাASC (ডিফল্ট) বা DESC
pageintegerনাশূন্য-ভিত্তিক পৃষ্ঠা সূচক।
perPageintegerনাপৃষ্ঠার আকার। বাদ দিলে বা 0 হলে ডিফল্ট 100। এই এন্ডপয়েন্টটি কোনো স্পষ্ট সর্বোচ্চ সীমা আরোপ করে না।
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
}

একটি একক ইমেল টেমপ্লেট তার কোড দ্বারা ফেরত দেয়, যার মধ্যে প্রেরকের তথ্য, প্রতি-লোকেল বিষয় এবং সম্পূর্ণ এডিটর কন্টেন্ট অন্তর্ভুক্ত থাকে।

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নানতুন নাম, ১-২৫৫ অক্ষর। বর্তমান নাম রাখতে বাদ দিন।
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 কল করুন।

মুছুন

Anchor link to

একটি ইমেল টেমপ্লেট এবং তার সংযুক্ত প্রিসেট কোড দ্বারা মুছে ফেলে, সংরক্ষিত কন্টেন্ট সরিয়ে দেয়।

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নাক্লোনের জন্য নাম, ১-২৫৫ অক্ষর। ডিফল্টভাবে উৎস টেমপ্লেটের নাম।
অনুরোধের উদাহরণ
Anchor link to
{
"emailPresetCode": "AAAAA-BBBBB",
"application": "YYYYY-YYYYY",
"name": "Welcome email (copy)"
}

প্রতিক্রিয়া

Anchor link to
ক্ষেত্রপ্রকারবর্ণনা
email_preset_codestringনতুন টেমপ্লেটের code — একই শনাক্তকারী যা 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 দ্বারা পূরণ করা হয়; Create, List, এবং Update প্রতিক্রিয়াগুলিতে null
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_dataPushwoosh-এর নিজস্ব HTML-ভিত্তিক এডিটর। প্রোগ্রাম্যাটিক/এপিআই-লিখিত টেমপ্লেটগুলির জন্য প্রস্তাবিত।
smartcardshtml, localization_data, contentcontent, localization_dataস্মার্ট কার্ডস ব্লক এডিটর; 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