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

প্রিসেট API

একটি পুশ প্রিসেট হল একটি পুনরায় ব্যবহারযোগ্য পুশ নোটিফিকেশন টেমপ্লেট — কন্ট্রোল প্যানেলের পুশ এডিটরে আপনি যে অবজেক্টটি তৈরি করেন সেটিই। এই API শুধুমাত্র পুশ প্রিসেট পরিচালনা করে; SMS, WhatsApp, Kakao, LINE, এবং Viber প্রিসেটগুলির প্রত্যেকের নিজস্ব ডেডিকেটেড প্রিসেট পরিষেবা রয়েছে, যা এখানে আলোচনা করা হয়নি।

একটি প্রিসেটের code ব্যবহার করে এটি Notify (পেলোড preset) অথবা একটি কাস্টমার জার্নি Send push point এর মাধ্যমে পাঠান।

বেস URL

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

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

প্রমাণীকরণ

Anchor link to

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

Authorization: Api YOUR_API_TOKEN

প্রচলিত নিয়ম

Anchor link to
  • ফিল্ডের নামকরণ: অনুরোধের বডি এবং ক্যোয়ারী/পাথ প্যারামিটার lowerCamelCase গ্রহণ করে (উদাহরণস্বরূপ, sendType, localizedProperties, searchByName) — সার্ভার উভয় কেসিং আনমার্শাল করে। প্রতিক্রিয়া সবসময় প্রোটো ফিল্ডের নাম ব্যবহার করে snake_case-এ মার্শালিং করা হয় (localized_properties, platform_properties, per_page, ইত্যাদি)। নীচের প্রতিক্রিয়ার উদাহরণ এবং প্রিসেট অবজেক্ট রেফারেন্স সেই কেসিং ব্যবহার করে।
  • code: প্রতিটি প্রিসেট প্রতিক্রিয়া তার নিজস্ব কোড বহন করে, যা Create এ তৈরি হয়। এই কোডটি Get, Update, UpdatePartial, Delete, Clone এবং উপরের মেসেজিং/জার্নি API-গুলিতে পাস করুন।
  • প্ল্যাটফর্ম কী: platforms এবং open_actions ম্যাপগুলি সাংখ্যিক ডিভাইস টাইপ কোড (1 iOS-এর জন্য, 3 Android-এর জন্য, ইত্যাদি) দ্বারা কী করা হয়। platform_properties প্ল্যাটফর্মের enum নাম দ্বারা কী করা হয় (IOS, ANDROID, HUAWEI_ANDROID, OSX — শুধুমাত্র এই চারটি প্ল্যাটফর্ম এটি কভার করে)।
  • অপূরণকৃত ফিল্ড: Get, Create, এবং Clone প্রতিক্রিয়া প্রিসেট অবজেক্ট-এর প্রতিটি ফিল্ড অন্তর্ভুক্ত করে, এমনকি খালি বা শূন্য-মানের হলেও। List একটি সংক্ষিপ্ত ফিল্ড সেট প্রদান করে — নীচের তালিকা দেখুন। Update এবং UpdatePartial কোনো প্রিসেট ফিল্ড প্রদান করে না — তাদের বিভাগে সতর্কতা দেখুন।

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

Anchor link to
HTTP স্ট্যাটাসঅর্থ
400 Bad Requestঅবৈধ আর্গুমেন্ট — একটি প্রয়োজনীয় ফিল্ড অনুপস্থিত বা ভুল ফর্ম্যাটে আছে, অথবা একটি পূর্বশর্ত ব্যর্থ হয়েছে (উদাহরণস্বরূপ, name ছাড়া ক্লোনিং)।
401 UnauthorizedAuthorization হেডার অনুপস্থিত বা অবৈধ।
403 Forbiddenঅ্যাপ্লিকেশন বা প্রিসেটটি কলারের অ্যাকাউন্টের অন্তর্গত নয়।
404 Not Foundপ্রিসেট বা অ্যাপ্লিকেশনটি পাওয়া যায়নি।
500 Internal Server Errorঅপ্রত্যাশিত সার্ভার-সাইড ব্যর্থতা।

একটি চলমান বা পজ করা জার্নির Send push point দ্বারা ব্যবহৃত একটি প্রিসেটে Delete করলে 400 Bad Request (ওয়্যারে একটি FailedPrecondition) ফেরত আসে — 409 নয়। প্রথমে জার্নি থেকে প্রিসেটটি সরিয়ে ফেলুন।

এন্ডপয়েন্ট

Anchor link to
পদ্ধতিপাথবিবরণ
POST/api/presetsএকটি নতুন পুশ প্রিসেট তৈরি করুন
GET/api/presetsএকটি অ্যাপ্লিকেশনের পুশ প্রিসেট তালিকাভুক্ত করুন
GET/api/presets/{code}একটি একক পুশ প্রিসেট পান
PUT/api/presets/{code}একটি পুশ প্রিসেট আপডেট করুন (সম্পূর্ণ ওভাররাইট)
PUT/api/presets/{code}:partialএকটি পুশ প্রিসেট আপডেট করুন (আংশিক)
POST/api/presets/{code}:cloneএকটি পুশ প্রিসেট ক্লোন করুন
DELETE/api/presets/{code}একটি পুশ প্রিসেট মুছে ফেলুন

তৈরি করুন

Anchor link to

একটি অ্যাপ্লিকেশনে একটি নতুন পুশ প্রিসেট তৈরি করে এবং তার জেনারেটেড কোড সহ এটি ফেরত দেয়।

POST /api/presets

অনুরোধের বডি

Anchor link to
প্যারামিটারটাইপপ্রয়োজনীয়বিবরণ
applicationstringহ্যাঁযে অ্যাপ্লিকেশন কোড-এ প্রিসেট তৈরি করতে হবে।
namestringহ্যাঁপ্রিসেটের নাম।
sendTypestringনাপ্রিসেটের চ্যানেল (উদাহরণস্বরূপ push)।
isV2booleanনাপ্রিসেটের অরিজিন ফ্ল্যাগ পিন করে। ডিফল্ট true (v2) করতে বাদ দিন; শুধুমাত্র একটি লিগ্যাসি v1 প্রিসেট পুনরুৎপাদন করার সময় false সেট করুন।

অন্যান্য সমস্ত ফিল্ড — স্থানীয়করণ করা কন্টেন্ট, প্ল্যাটফর্ম, ডিপ লিঙ্ক, ইনবক্স, বিভাগ ইত্যাদি — Update এর সাথে শেয়ার করা হয় এবং নীচের প্রিসেট অবজেক্ট রেফারেন্সে একবার নথিভুক্ত করা হয়েছে।

অনুরোধের উদাহরণ
Anchor link to
{
"application": "XXXXX-XXXXX",
"name": "20% discount",
"platforms": { "1": true, "3": true },
"localizedContent": {
"default": "Get your 20% discount right now",
"es": "Consigue tu 20% de descuento ahora mismo"
},
"localizedTitle": { "default": "Hi there" },
"openAction": { "link": { "url": "https://example.com" } },
"categories": ["promo"]
}

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

Anchor link to

{ "preset": { ... } } ফেরত দেয়, যা তৈরি করা প্রিসেট অবজেক্ট

তালিকা

Anchor link to

একটি অ্যাপ্লিকেশনের পুশ প্রিসেট তালিকাভুক্ত করে — একটি সংক্ষিপ্ত ফিল্ড সেট, সম্পূর্ণ অবজেক্ট নয় — পেজিং, অর্ডারিং, এবং নাম বা বিভাগ দ্বারা ফিল্টারিং সহ।

GET /api/presets

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

Anchor link to
প্যারামিটারটাইপপ্রয়োজনীয়বিবরণ
applicationstringহ্যাঁযে অ্যাপ্লিকেশন কোডের জন্য প্রিসেট তালিকাভুক্ত করতে হবে।
orderBystringনাNAME (ডিফল্ট), CREATED, বা UPDATED
orderDirectionstringনাASC (ডিফল্ট) বা DESC
pageintegerনাশূন্য-ভিত্তিক পেজ ইনডেক্স।
perPageintegerনাপেজের আকার। বাদ দিলে বা 0 হলে ডিফল্ট 100
searchByNamestringনাপ্রিসেটের নাম বা কোডে কেস-ইনসেনসিটিভ সাবস্ট্রিং ম্যাচ (ILIKE %value%)।
searchByCategoryarray of stringsনাবিভিন্ন বিভাগের যেকোনো একটি দ্বারা ফিল্টার করতে প্যারামিটারটি পুনরাবৃত্তি করুন, যেমন ?searchByCategory=promo&searchByCategory=lifecycle
showHiddenbooleanনাhidden হিসাবে চিহ্নিত প্রিসেট অন্তর্ভুক্ত করুন।

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

Anchor link to

প্রতিটি আইটেম শুধুমাত্র বহন করে: name, code, platforms, localized_content (প্রতি লোকেল প্লেইন টেক্সট — localized_properties নয়), localized_title, localized_subtitle, banner, icon, categories, journey_uuid, custom_data, is_v2, created, updatedপ্রিসেট অবজেক্ট-এর অন্য প্রতিটি ফিল্ড — localized_properties, platform_properties, deeplink, richmedia, url, ইত্যাদি — বাদ দেওয়া হয়, এমনকি যদি প্রিসেটে সেট করা থাকে।

ফিল্ডটাইপবিবরণ
presetsarray of objectsপ্রিসেটের বর্তমান পেজ, উপরে বর্ণিত সংক্ষিপ্ত আকারে।
pageintegerফেরত দেওয়া পেজ ইনডেক্স।
per_pageintegerএই প্রতিক্রিয়ার জন্য ব্যবহৃত পেজের আকার।
totalintegerফিল্টারগুলির সাথে মিলে যাওয়া প্রিসেটের মোট সংখ্যা, সমস্ত পেজ জুড়ে।
প্রতিক্রিয়ার উদাহরণ
Anchor link to
{
"presets": [
{ "name": "20% discount", "code": "AAAAA-BBBBB", "platforms": { "1": true, "3": true }, "categories": ["promo"] }
],
"page": 0,
"per_page": 100,
"total": 1
}

একটি একক পুশ প্রিসেট তার কোড দ্বারা ফেরত দেয়, যেখানে প্রিসেট অবজেক্ট-এর প্রতিটি ফিল্ড পূরণ করা থাকে।

GET /api/presets/{code}

পাথ প্যারামিটার

Anchor link to
প্যারামিটারটাইপবিবরণ
codestringপ্রিসেটের কোড।

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

Anchor link to

{ "preset": { ... } } ফেরত দেয়, যা সম্পূর্ণ প্রিসেট অবজেক্ট

আপডেট করুন

Anchor link to

একটি বিদ্যমান পুশ প্রিসেটকে কোড দ্বারা সরবরাহ করা ফিল্ডগুলির সাথে ওভাররাইট করে।

PUT /api/presets/{code}

পাথ প্যারামিটার

Anchor link to
প্যারামিটারটাইপবিবরণ
codestringযে প্রিসেটের কোড ওভাররাইট করতে হবে।

অনুরোধের বডি

Anchor link to

তৈরি করুন এর মতো একই ফিল্ড ( application ছাড়া), এবং প্রিসেট অবজেক্ট এর বাকি ফিল্ডগুলি। sendType গ্রহণ করা হয় কিন্তু উপেক্ষা করা হয় — একটি প্রিসেটের চ্যানেল তৈরির পরে পরিবর্তন করা যায় না।

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

Anchor link to

সফল হলে একটি খালি অবজেক্ট: {}

আংশিক আপডেট করুন

Anchor link to

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

PUT /api/presets/{code}:partial

পাথ প্যারামিটার

Anchor link to
প্যারামিটারটাইপবিবরণ
codestringযে প্রিসেটের কোড প্যাচ করতে হবে।

অনুরোধের বডি

Anchor link to

আপডেট এর মতো একই ফিল্ড, application ছাড়া। Update এর বিপরীতে, এখানে প্রতিটি ফিল্ড — localizedProperties, platformProperties, categories, এবং আপডেটের সতর্কতায় তালিকাভুক্ত বাকি কন্টেন্ট-প্রপার্টি গ্রুপ সহ — বাদ দিলে অপরিবর্তিত থাকে, এবং শুধুমাত্র তখনই স্পর্শ করা হয় যখন আপনি এটি পাঠান (একটি ম্যাপ/অ্যারে ফিল্ড যা আপনি পাঠান তা এখনও সেই ফিল্ডের জন্য বিদ্যমান মানকে সম্পূর্ণরূপে প্রতিস্থাপন করে, এটি কেবল আপনার অন্তর্ভুক্ত না করা কোনো কিছুকে প্রভাবিত করে না)। sendType একইভাবে গ্রহণ করা হয় কিন্তু উপেক্ষা করা হয়।

অনুরোধের উদাহরণ
Anchor link to
{
"sendRate": 500,
"cappingCount": 3,
"cappingDays": 7
}

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

Anchor link to

এটিও একটি খালি অবজেক্ট — উপরের সতর্কতা দেখুন।

ক্লোন করুন

Anchor link to

একটি বিদ্যমান পুশ প্রিসেটকে একটি নতুন নামে একই অ্যাপ্লিকেশনে ডুপ্লিকেট করে।

POST /api/presets/{code}:clone

অনুরোধের বডি

Anchor link to
প্যারামিটারটাইপপ্রয়োজনীয়বিবরণ
codestringহ্যাঁডুপ্লিকেট করার জন্য সোর্স প্রিসেটের কোড।
namestringহ্যাঁনতুন প্রিসেটের জন্য নাম।
অনুরোধের উদাহরণ
Anchor link to
{ "code": "AAAAA-BBBBB", "name": "20% discount (copy)" }

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

Anchor link to

{ "preset": { ... } } ফেরত দেয়, যা নতুন প্রিসেট অবজেক্ট

মুছে ফেলুন

Anchor link to

একটি পুশ প্রিসেটকে কোড দ্বারা স্থায়ীভাবে মুছে ফেলে।

DELETE /api/presets/{code}

পাথ প্যারামিটার

Anchor link to
প্যারামিটারটাইপবিবরণ
codestringযে প্রিসেটের কোড মুছে ফেলতে হবে।

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

Anchor link to

সফল হলে একটি খালি অবজেক্ট: {}

অবজেক্ট রেফারেন্স

Anchor link to

নীচের ফিল্ডের নামগুলি Get, Create, Update, এবং Clone যা আসলে ফেরত দেয় তার সাথে মিলে যায় — snake_case প্রোটো ফিল্ডের নাম (প্রচলিত নিয়ম দেখুন)। উপরের অনুরোধের উদাহরণগুলিতে ব্যবহৃত lowerCamelCase ফর্মটি ইনপুটে একইভাবে কাজ করে।

প্রিসেট অবজেক্ট

Anchor link to

পরিচয়

Anchor link to
ফিল্ডটাইপবিবরণ
codestringCreate এ তৈরি হয়। API-এর অন্য সব জায়গায় এই প্রিসেটটিকে চিহ্নিত করে।
namestringপ্রিসেটের নাম।
send_typestringপ্রিসেটের চ্যানেল (উদাহরণস্বরূপ push)।
is_v2booleanv2 কন্টেন্ট মডেলে তৈরি বা মাইগ্রেট করা প্রিসেটের জন্য true
systembooleanপ্রিসেটটিকে একটি সিস্টেম/অভ্যন্তরীণ প্রিসেট হিসাবে চিহ্নিত করে।
hiddenbooleanList ফলাফল থেকে প্রিসেটটি লুকিয়ে রাখে (showHidden: true পাঠিয়ে এটি অন্তর্ভুক্ত করুন)।
createdstring (RFC 3339)তৈরির টাইমস্ট্যাম্প।
updatedstring (RFC 3339)শেষ আপডেটের টাইমস্ট্যাম্প।

টার্গেটিং এবং কন্টেন্ট

Anchor link to
ফিল্ডটাইপবিবরণ
platformsmap<string, boolean>কোন প্ল্যাটফর্মগুলি প্রিসেট টার্গেট করে, ডিভাইস টাইপ কোড দ্বারা কী করা (যেমন iOS-এর জন্য "1")।
localized_propertiesmap<string, object>লোকেল → সমৃদ্ধ প্রতি-প্ল্যাটফর্ম কন্টেন্ট। Notify পেলোডে LocalizedContent এর মতো একই আকার — প্রতি প্ল্যাটফর্ম ব্লকের জন্য একটি এন্ট্রি (ios, android, ইত্যাদি)। এটি প্ল্যাটফর্ম-নির্দিষ্ট পুশ কন্টেন্ট সেট করার প্রাথমিক উপায়।
localized_title / localized_subtitle / localized_contentmap<string, string>লোকেল → প্লেইন টেক্সট। localized_properties এর একটি সহজ বিকল্প শিরোনাম, উপশিরোনাম এবং বডির জন্য যখন আপনার প্রতি-প্ল্যাটফর্ম ওভাররাইডের প্রয়োজন নেই।
platform_propertiesmap<string, object>লিগ্যাসি প্রতি-প্ল্যাটফর্ম ওভাররাইড, প্ল্যাটফর্ম enum নাম দ্বারা কী করা (IOS, ANDROID, HUAWEI_ANDROID, OSX)। নীচের প্ল্যাটফর্মপ্রপার্টিজ অবজেক্ট দেখুন।
open_actionOpenActionব্যবহারকারী নোটিফিকেশন খুললে ট্রিগার হওয়া অ্যাকশন, প্রতিটি প্ল্যাটফর্মে প্রয়োগ করা হয়। open_actions এর সাথে পারস্পরিকভাবে এক্সক্লুসিভ — প্রতিক্রিয়া ঠিক একটি সেট করে।
open_actionsmap<string, OpenAction>open_action এর প্রতি-প্ল্যাটফর্ম ওভাররাইড, ডিভাইস টাইপ কোড দ্বারা কী করা।
deeplinkstringডিপ লিঙ্ক কোড।
deeplink_paramsmap<string, string>ডিপ লিঙ্কে পাস করা প্যারামিটার।
richmediastringনোটিফিকেশন দ্বারা খোলা রিচ মিডিয়া কোড।
urlstringনোটিফিকেশন দ্বারা খোলা URL, যদি ডিপ লিঙ্ক বা রিচ মিডিয়া ব্যবহার না করা হয়।

ইনবক্স

Anchor link to
ফিল্ডটাইপবিবরণ
inbox_imagestringমেসেজ ইনবক্স এন্ট্রিতে দেখানো ছবির URL।
inbox_iconstringমেসেজ ইনবক্স এন্ট্রিতে দেখানো আইকনের URL।
inbox_daysintegerমেসেজ ইনবক্সে এন্ট্রিটি কত দিন থাকবে।
inbox_datestring (RFC 3339)মেসেজ ইনবক্স এন্ট্রির জন্য সুস্পষ্ট মেয়াদ শেষ হওয়ার তারিখ, inbox_days এর বিকল্প হিসাবে।

সংগঠন এবং মেটাডেটা

Anchor link to
ফিল্ডটাইপবিবরণ
categoriesarray of stringsযে বিভাগের নামগুলির সাথে প্রিসেটটি ট্যাগ করা হয়েছে।
campaign_codestringএই প্রিসেটটি যে ক্যাম্পেইন কোড-এর সাথে সম্পর্কিত।
filter_codestringএই প্রিসেটটি ডিফল্টরূপে যে সেগমেন্ট / ফিল্টার কোড টার্গেট করে।
geo_zonesstringজিওজোন টার্গেটিং, যদি প্রিসেটটি জিও-ট্রিগারড হয়।
journey_uuidstringএই প্রিসেটের মালিক কাস্টমার জার্নির UUID, যদি এটি একটি জার্নির Send push point থেকে তৈরি করা হয়।
custom_dataobjectক্লায়েন্ট SDK-তে u প্যারামিটার হিসাবে ফরোয়ার্ড করা ফ্রি-ফর্ম JSON।
bannerstringবড় ছবি / সংযুক্তি ছবির URL।
iconstringকাস্টম নোটিফিকেশন আইকনের URL।

ডেলিভারি সীমা

Anchor link to
ফিল্ডটাইপবিবরণ
send_rateintegerএই প্রিসেট ব্যবহার করে পাঠানোর জন্য থ্রটলিং, মেসেজ/সেকেন্ডে — Notify-এর SendRate এর প্রিসেট-স্তরের সমতুল্য।
capping_count / capping_daysintegerএই প্রিসেটের জন্য প্রতি-ব্যবহারকারী ফ্রিকোয়েন্সি সীমা — Notify-এর FrequencyCapping count / days এর প্রিসেট-স্তরের সমতুল্য।

ওয়েবহুক

Anchor link to
ফিল্ডটাইপবিবরণ
notification_sent_urlstringএই প্রিসেট ব্যবহার করে একটি নোটিফিকেশন পাঠানো হলে অনুরোধ করা কলব্যাক URL।
notification_delivered_urlstringএই প্রিসেট ব্যবহার করে একটি নোটিফিকেশন ডেলিভার করা হলে অনুরোধ করা কলব্যাক URL।
notification_click_urlstringএই প্রিসেট ব্যবহার করে একটি নোটিফিকেশনে ক্লিক করা হলে অনুরোধ করা কলব্যাক URL।

লিগ্যাসি ফিল্ড

Anchor link to

এগুলি v1 প্রিসেট মডেল থেকে নিয়ে আসা হয়েছে। এগুলি নতুন ইন্টিগ্রেশনের পরিবর্তে কন্ট্রোল প্যানেলের সামঞ্জস্যের জন্য পূরণ করা হয়।

ফিল্ডটাইপবিবরণ
remote_pagestringলিগ্যাসি রিমোট পেজ রেফারেন্স।
wns_contentstringলিগ্যাসি উইন্ডোজ টোস্ট টেমপ্লেট JSON, যা v1 createPreset/getPreset পদ্ধতি দ্বারা গৃহীত হয়।
original_urlstringurl-এর প্রি-শর্টেনিং মান, যখন url একটি সংক্ষিপ্ত লিঙ্ক দ্বারা প্রতিস্থাপিত হয়েছিল।
ios_silent / android_silent / huawei_android_silentbooleanপ্রতি-প্ল্যাটফর্ম সাইলেন্ট (শুধুমাত্র ডেটা) পুশ ফ্ল্যাগ।

প্ল্যাটফর্মপ্রপার্টিজ অবজেক্ট

Anchor link to

প্রতিটি platform_properties এন্ট্রিতে উপলব্ধ ফিল্ড (IOS, ANDROID, HUAWEI_ANDROID, OSX):

ফিল্ডটাইপবিবরণ
badgestringব্যাজ কাউন্ট ওভাররাইড।
soundstringসাউন্ড ফাইলের নাম।
sound_offbooleanনোটিফিকেশন সাউন্ড মিউট করুন।
prioritystringইন-ট্রে অগ্রাধিকার (শুধুমাত্র Android/Huawei)।
delivery_prioritystringNORMAL বা HIGH ডেলিভারি অগ্রাধিকার (শুধুমাত্র Android/Huawei)।
ios_interruption_levelstringpassive, active, time-sensitive, বা critical (শুধুমাত্র iOS)।

সম্পর্কিত

Anchor link to