ইমেল টেমপ্লেট এপিআই
ইমেল টেমপ্লেট এপিআই একটি অ্যাপ্লিকেশনের ইমেল প্রিসেটগুলির পিছনে থাকা পুনঃব্যবহারযোগ্য ইমেল টেমপ্লেটগুলি পরিচালনা করে — একই টেমপ্লেট যা আপনি কন্ট্রোল প্যানেলের ইমেল এডিটরে তৈরি করেন। প্রতিটি টেমপ্লেট প্রতি-লোকেল বিষয়, প্রেরকের তথ্য এবং এডিটর কন্টেন্ট সংরক্ষণ করে এবং এটি যে ইমেল প্রিসেটের সাথে সংযুক্ত তার কোড দ্বারা চিহ্নিত করা হয়। Notify (ইমেল পেলোড email_template) বা একটি কাস্টমার জার্নি Send email point এর মাধ্যমে টেমপ্লেট পাঠাতে সেই কোডটি ব্যবহার করুন।
বেস ইউআরএল
Anchor link tohttps://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| প্যারামিটার | প্রকার | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
application | string | হ্যাঁ | যে Pushwoosh অ্যাপ্লিকেশন কোড-এ টেমপ্লেট তৈরি করতে হবে। |
name | string | হ্যাঁ | টেমপ্লেটের নাম, ১-২৫৫ অক্ষর। |
content | object | হ্যাঁ | ইমেল কন্টেন্ট অবজেক্ট। |
label | string | না | ফ্রি-টেক্সট লেবেল, ২৫৫ অক্ষর পর্যন্ত। |
categories | array of strings | না | টেমপ্লেট ট্যাগ করার জন্য ক্যাটাগরির নাম। |
previewSettings | object | না | নির্বিচারে এডিটর প্রিভিউ সেটিংস, যেমন আছে তেমন সংরক্ষণ এবং ফেরত দেওয়া হয়। |
system | boolean | না | টেমপ্লেটটিকে একটি সিস্টেম টেমপ্লেট হিসাবে চিহ্নিত করে — একটি অভ্যন্তরীণ বৈশিষ্ট্য, যেমন একটি সিঙ্ক-ব্লক ফ্র্যাগমেন্ট। সিস্টেম টেমপ্লেটগুলি 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| প্যারামিটার | প্রকার | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
application | string | হ্যাঁ | যে অ্যাপ্লিকেশন কোডের জন্য টেমপ্লেট তালিকাভুক্ত করতে হবে। |
orderBy | string | না | NAME (ডিফল্ট), CREATED, বা UPDATED। |
orderDirection | string | না | ASC (ডিফল্ট) বা DESC। |
page | integer | না | শূন্য-ভিত্তিক পৃষ্ঠা সূচক। |
perPage | integer | না | পৃষ্ঠার আকার। বাদ দিলে বা 0 হলে ডিফল্ট 100। এই এন্ডপয়েন্টটি কোনো স্পষ্ট সর্বোচ্চ সীমা আরোপ করে না। |
searchByName | string | না | টেমপ্লেটের নাম অথবা তার কোডের বিরুদ্ধে সাবস্ট্রিং ম্যাচ (like %value%) — যেকোনো একটি ম্যাচিং যথেষ্ট। |
searchByLabel | string | না | লেবেলে সাবস্ট্রিং ম্যাচ (like %label%), অথবা strictSearchByLabel true হলে সঠিক ম্যাচ। |
strictSearchByLabel | boolean | না | searchByLabel-এর জন্য সাবস্ট্রিংয়ের পরিবর্তে সঠিক-ম্যাচ ব্যবহার করুন। |
searchByCategory | array of strings | না | বিভিন্ন ক্যাটাগরির যেকোনো একটি দ্বারা ফিল্টার করতে প্যারামিটারটি পুনরাবৃত্তি করুন, যেমন ?searchByCategory=lifecycle&searchByCategory=promo। |
প্রতিক্রিয়া
Anchor link to| ক্ষেত্র | প্রকার | বর্ণনা |
|---|---|---|
email_templates | array of objects | ইমেল টেমপ্লেট অবজেক্টের বর্তমান পৃষ্ঠা। প্রতিটি আইটেমে content null থাকে। |
page | integer | ফেরত দেওয়া পৃষ্ঠা সূচক। |
per_page | integer | এই প্রতিক্রিয়ার জন্য ব্যবহৃত পৃষ্ঠার আকার। |
total | integer | সমস্ত পৃষ্ঠা জুড়ে ফিল্টারগুলির সাথে মিলে যাওয়া টেমপ্লেটের মোট সংখ্যা। |
প্রতিক্রিয়ার উদাহরণ
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| প্যারামিটার | প্রকার | বর্ণনা |
|---|---|---|
code | string | টেমপ্লেটের কোড (এর সংযুক্ত ইমেল প্রিসেট কোড)। |
ক্যোয়ারী প্যারামিটার
Anchor link to| প্যারামিটার | প্রকার | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
includeHtml | boolean | না | এডিটর কন্টেন্টের সাথে রেন্ডার করা html ফেরত দেওয়া হবে কিনা। ডিফল্ট true। এটি এড়িয়ে যেতে false সেট করুন — এটি সাধারণত পেলোডের অর্ধেকেরও বেশি, এবং এডিটর কন্টেন্ট ইতিমধ্যেই টেমপ্লেটটি বর্ণনা করে। |
প্রতিক্রিয়া
Anchor link to{ "email_template": { ... } } ফেরত দেয়, সম্পূর্ণ ইমেল টেমপ্লেট অবজেক্ট।
আপডেট
Anchor link toকোড দ্বারা একটি বিদ্যমান ইমেল টেমপ্লেট আপডেট করে, সরবরাহ করা ক্ষেত্রগুলি ওভাররাইট করে।
PUT /api/email_templates/{code}
পাথ প্যারামিটার
Anchor link to| প্যারামিটার | প্রকার | বর্ণনা |
|---|---|---|
code | string | যে টেমপ্লেটের কোড আপডেট করতে হবে। |
অনুরোধের বডি
Anchor link to| প্যারামিটার | প্রকার | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
name | string | না | নতুন নাম, ১-২৫৫ অক্ষর। বর্তমান নাম রাখতে বাদ দিন। |
content | object | না | নতুন ইমেল কন্টেন্ট অবজেক্ট, যা সংরক্ষিত কন্টেন্টকে সম্পূর্ণরূপে প্রতিস্থাপন করে। কন্টেন্ট অপরিবর্তিত রাখতে বাদ দিন। |
label | string | না | নতুন লেবেল। সর্বদা ওভাররাইট করা হয় — এটি পরিষ্কার করতে বাদ দিন বা "" পাঠান। |
categories | array of strings | না | ক্যাটাগরির নামের নতুন সম্পূর্ণ সেট। ক্যাটাগরি অপরিবর্তিত রাখতে বাদ দিন; সেগুলি পরিষ্কার করতে [] পাঠান। |
previewSettings | object | না | নতুন প্রিভিউ সেটিংস। অপরিবর্তিত রাখতে বাদ দিন। |
অনুরোধের উদাহরণ
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| প্যারামিটার | প্রকার | বর্ণনা |
|---|---|---|
code | string | যে টেমপ্লেটের কোড মুছতে হবে। |
প্রতিক্রিয়া
Anchor link toসফল হলে একটি খালি অবজেক্ট: {}।
ক্লোন
Anchor link toএকটি ইমেল টেমপ্লেট — এর কন্টেন্ট এবং প্রিসেট — একটি গন্তব্য অ্যাপ্লিকেশনে ক্লোন করে, ঐচ্ছিকভাবে একটি নতুন নামের অধীনে।
POST /api/email_templates:clone
অনুরোধের বডি
Anchor link to| প্যারামিটার | প্রকার | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
emailPresetCode | string | হ্যাঁ | যে টেমপ্লেটের code (Create, Get, List, বা Update দ্বারা ফেরত দেওয়া) ক্লোন করতে হবে। এখানে emailPresetCode নামকরণ করা হয়েছে কারণ এটি সংযুক্ত ইমেল প্রিসেটের কোড — দেখুন কনভেনশন। |
application | string | হ্যাঁ | গন্তব্য অ্যাপ্লিকেশন কোড। একই অ্যাপ্লিকেশন হতে পারে, অথবা একই অ্যাকাউন্টের মালিকানাধীন একটি ভিন্ন অ্যাপ্লিকেশন। |
name | string | না | ক্লোনের জন্য নাম, ১-২৫৫ অক্ষর। ডিফল্টভাবে উৎস টেমপ্লেটের নাম। |
অনুরোধের উদাহরণ
Anchor link to{ "emailPresetCode": "AAAAA-BBBBB", "application": "YYYYY-YYYYY", "name": "Welcome email (copy)"}প্রতিক্রিয়া
Anchor link to| ক্ষেত্র | প্রকার | বর্ণনা |
|---|---|---|
email_preset_code | string | নতুন টেমপ্লেটের code — একই শনাক্তকারী যা Get/Update/Delete code বলে। |
অবজেক্ট রেফারেন্স
Anchor link toনীচের ফিল্ডের নামগুলি Get, List, Update, এবং Create যা আসলে ফেরত দেয় তার সাথে মিলে যায় — snake_case প্রোটো ফিল্ডের নাম (দেখুন কনভেনশন)। যখন আপনি এই একই কাঠামো একটি অনুরোধের বডিতে (Create, Update) ফেরত পাঠান, তখন উপরের অনুরোধের উদাহরণগুলিতে ব্যবহৃত lowerCamelCase ফর্মটিও কাজ করে; সার্ভার ইনপুটে উভয় কেসিং গ্রহণ করে।
ইমেল টেমপ্লেট অবজেক্ট
Anchor link to| ক্ষেত্র | প্রকার | বর্ণনা |
|---|---|---|
code | string | সংযুক্ত ইমেল প্রিসেটের কোড। এপিআই-এর অন্য সব জায়গায় এই টেমপ্লেটটি চিহ্নিত করে। |
name | string | টেমপ্লেটের নাম। |
label | string | ফ্রি-টেক্সট লেবেল। |
categories | array of strings | ক্যাটাগরির নাম। |
content | object | ইমেল কন্টেন্ট অবজেক্ট। শুধুমাত্র Get দ্বারা পূরণ করা হয়; Create, List, এবং Update প্রতিক্রিয়াগুলিতে null। |
preview_settings | object | নির্বিচারে এডিটর প্রিভিউ সেটিংস। |
created | string (RFC 3339) | তৈরির টাইমস্ট্যাম্প। |
updated | string (RFC 3339) | শেষ আপডেটের টাইমস্ট্যাম্প। |
ইমেল কন্টেন্ট অবজেক্ট
Anchor link to| ক্ষেত্র | প্রকার | বর্ণনা |
|---|---|---|
sender_info | object | প্রেরকের তথ্য অবজেক্ট — from এবং reply_to ঠিকানা। |
subject | object (map) | প্রতি-লোকেল বিষয়, যেমন { "en": "Subject", "default": "Subject" }। |
unlayer / pushwoosh / smartcards | object | এডিটর কন্টেন্ট। এগুলির মধ্যে ঠিক একটি সেট করতে হবে — এটি নির্বাচন করে কোন এডিটর টেমপ্লেটটি তৈরি করেছে (এবং রেন্ডার করবে)। নীচের এডিটর প্রকার দেখুন। |
এডিটর প্রকার
Anchor link to| প্রকার | ক্ষেত্র | প্রয়োজনীয় সাব-ফিল্ড | বর্ণনা |
|---|---|---|---|
unlayer | html, localization_data, editor_config | editor_config, localization_data | ড্র্যাগ-এন্ড-ড্রপ ব্লক এডিটর (Unlayer)। editor_config হল Unlayer ডিজাইন JSON। |
pushwoosh | html, localization_data | localization_data | Pushwoosh-এর নিজস্ব HTML-ভিত্তিক এডিটর। প্রোগ্রাম্যাটিক/এপিআই-লিখিত টেমপ্লেটগুলির জন্য প্রস্তাবিত। |
smartcards | html, localization_data, content | content, localization_data | স্মার্ট কার্ডস ব্লক এডিটর; content হল এর এডিটর-নির্দিষ্ট JSON। |
প্রতিটি প্রকারে, html হল রেন্ডার করা আউটপুট। localization_data হল সেই এডিটরের নিজস্ব প্রতি-লোকেল কন্টেন্ট: লোকেল কোড (en, es, default, …) দ্বারা কী করা একটি অবজেক্ট, যেখানে প্রতিটি মান হল সেই লোকেলে এডিটরের ফিল্ডগুলির কপি। এর অভ্যন্তরীণ আকৃতি এডিটর-নির্দিষ্ট এবং এই এপিআই-এর কাছে অস্বচ্ছ — এপিআই এটি যেমন আছে তেমন সংরক্ষণ এবং ফেরত দেয়। এটি Create/Update-এ প্রতিটি প্রকারের জন্য প্রয়োজনীয় (যদি স্থানীয়করণের কিছু না থাকে তবে {} পাঠান)।
html বা একটি localization_data মানের ভিতরের টেক্সট ডাইনামিক কন্টেন্ট ট্যাগ অন্তর্ভুক্ত করতে পারে, যেমন {name|string|there} — সেগুলি প্রাপকের ডিভাইস ট্যাগগুলির বিরুদ্ধে সমাধান হয় যখন ইমেলটি আসলে পাঠানো হয়। এই এপিআই সেগুলি সমাধান করে না; এটি কেবল আপনার দেওয়া যেকোনো টেক্সট সংরক্ষণ এবং ফেরত দেয়।
প্রেরকের তথ্য অবজেক্ট
Anchor link to| ক্ষেত্র | প্রকার | বর্ণনা |
|---|---|---|
from | object | { "email": string, "name": string } — প্রেরকের ঠিকানা। |
reply_to | object | { "email": string, "name": string } — উত্তর-প্রেরণের ঠিকানা। |
উভয় email সাব-ফিল্ড, যখন খালি না থাকে, তখন অবশ্যই বৈধ ইমেল ঠিকানা হতে হবে।