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