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

প্রিসেট এপিআই

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

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

বেস ইউআরএল

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, BAIDU_ANDROID, HUAWEI_ANDROID, OSX — এটি শুধুমাত্র এই পাঁচটি প্ল্যাটফর্ম কভার করে) দ্বারা কী করা হয়।
  • জনশূন্য ফিল্ড: Get, Create, এবং Clone প্রতিক্রিয়াগুলি প্রিসেট অবজেক্ট-এর প্রতিটি ফিল্ড অন্তর্ভুক্ত করে, এমনকি যখন সেগুলি খালি বা শূন্য-মানের হয়। List একটি সংক্ষিপ্ত ফিল্ড সেট প্রদান করে — নীচে তালিকা দেখুন। Update এবং UpdatePartial কোনো প্রিসেট ফিল্ড প্রদান করে না — তাদের বিভাগে সতর্কতা দেখুন।

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

Anchor link to
HTTP স্ট্যাটাসঅর্থ
400 Bad Requestঅবৈধ আর্গুমেন্ট — একটি প্রয়োজনীয় ফিল্ড অনুপস্থিত বা ভুলভাবে ফর্ম্যাট করা হয়েছে, অথবা একটি পূর্বশর্ত ব্যর্থ হয়েছে (উদাহরণস্বরূপ, নাম ছাড়া ক্লোন করা)।
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, BAIDU_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 / baidu_android_silent / huawei_android_silentbooleanপ্রতি-প্ল্যাটফর্ম সাইলেন্ট (শুধুমাত্র ডেটা) পুশ ফ্ল্যাগ।

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

Anchor link to

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

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

সম্পর্কিত

Anchor link to