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

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

ইমেল টেমপ্লেট এপিআই একটি অ্যাপ্লিকেশনের ইমেল প্রিসেটের পিছনে থাকা পুনঃব্যবহারযোগ্য ইমেল টেমপ্লেটগুলি পরিচালনা করে — এই টেমপ্লেটগুলি আপনি কন্ট্রোল প্যানেলের ইমেল এডিটরে তৈরি করেন। প্রতিটি টেমপ্লেট প্রতি-লোকেল সাবজেক্ট, প্রেরকের তথ্য এবং এডিটর কনটেন্ট সংরক্ষণ করে এবং এটি যে ইমেল প্রিসেটের সাথে সংযুক্ত তার কোড দ্বারা চিহ্নিত করা হয়। 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 UnauthorizedAuthorization হেডার অনুপস্থিত বা অবৈধ।
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