পেলোড রেফারেন্স
যেকোনো নন-ইমেল চ্যানেল (পুশ, এসএমএস, টেলিগ্রাম, কাকাও, লাইন, ভাইবার, হোয়াটসঅ্যাপ) এর মাধ্যমে পাঠানোর সময় Notify দ্বারা ব্যবহৃত Payload বার্তার জন্য রেফারেন্স।
পেলোড (Payload)
Anchor link topreset(string): এই বার্তায় প্রয়োগ করার জন্য পুশ প্রিসেট কোড (ফরম্যাটXXXXX-XXXXX)।sms_preset(string): একটি সংরক্ষিত SMS প্রিসেট এর কোড (ফরম্যাটXXXXX-XXXXX)। এর প্রতি-লোকেল টেক্সট প্রতিটি লোকেলেরsms.bodyতে সমাধান করা হয়। একটি নির্দিষ্ট লোকেলে ইনলাইনsms.bodyসেই লোকেলে প্রিসেটকে ওভাররাইড করে। প্রিসেটটি বার্তার মতো একই অ্যাপ্লিকেশনের হতে হবে।content(LocalizedContent): বার্তার কনটেন্ট।silentএর সাথে পারস্পরিকভাবে স্বতন্ত্র।silent(bool): একটি সাইলেন্ট (শুধুমাত্র ডেটা) পুশ পাঠান।contentএর সাথে পারস্পরিকভাবে স্বতন্ত্র।custom_data(object): ক্লায়েন্ট SDK-তেuপ্যারামিটার হিসাবে ফরোয়ার্ড করা ফ্রি-ফর্ম JSON।open_action(OpenAction): ব্যবহারকারী নোটিফিকেশন খুললে ট্রিগার করা অ্যাকশন।open_actions(map<Platform,OpenAction>):open_actionএর প্রতি-প্ল্যাটফর্ম ওভাররাইড। কী হল একটি সংখ্যাসূচকPlatformenum মান।voip_push(bool): iOS VoIP নোটিফিকেশন।
{ "payload": { "preset": "XXXXX-XXXXX", "content": { "localized_content": { "default": { "ios": { "title": "Hello", "body": "Tap to view" } } } }, "custom_data": { "order_id": "42" }, "open_action": { "link": { "url": "https://example.com/promo" } } }}লোকালাইজড কনটেন্ট (LocalizedContent)
Anchor link toলোকেল কোড → প্রতি-প্ল্যাটফর্ম কনটেন্ট ম্যাপ করে। কীগুলি হল ISO 639-1 দুই-অক্ষরের কোড (উদাহরণস্বরূপ, "en", "es") এবং একটি ক্যাচ-অল অনুবাদের জন্য বিশেষ কী "default"। ISO 639-1 এর ব্যতিক্রম হল ঐতিহ্যবাহী এবং সরলীকৃত চীনা ভাষার জন্য "zh-Hant" এবং "zh-Hans"।
{ "localized_content": { "default": { "ios": { "title": "Hello", "body": "Tap to view" }, "android": { "title": "Hello", "body": "Tap to view" } }, "es": { "ios": { "title": "Hola", "body": "Toca para ver" }, "android": { "title": "Hola", "body": "Toca para ver" } } }}একটি ডিভাইসের জন্য লোকেল নির্বাচন
Anchor link toএকটি ডিভাইসে সরবরাহ করা কনটেন্ট এই ক্রমে বাছাই করা হয়:
- ডিভাইসের ভাষার সাথে সঠিক মিল।
- কী
"default"। - কী
"en"। - ম্যাপে উপস্থিত অন্য যেকোনো লোকেল।
অন্তত "default" বা "en" এর মধ্যে একটি প্রদান করুন যাতে প্রতিটি ডিভাইসের একটি ডিটারমিনিস্টিক ফলব্যাক থাকে। যদি আপনি প্রতি-লোকেল ভ্যারিয়েন্ট আশা না করেন, তবে শুধুমাত্র "default" পাঠান।
প্রতিটি লোকেল এন্ট্রি একটি Content অবজেক্ট যা ঐচ্ছিক প্রতি-প্ল্যাটফর্ম ব্লক সহ। শুধুমাত্র আপনি যে প্ল্যাটফর্মগুলিকে টার্গেট করছেন সেগুলি পূরণ করুন।
| প্ল্যাটফর্ম ব্লক | চ্যানেল |
|---|---|
ios | iOS পুশ |
android | Android (FCM) পুশ |
huawei_android | Huawei Android পুশ |
baidu_android | Baidu Android পুশ |
mac_os | macOS পুশ |
amazon | Amazon (ADM) পুশ |
safari | Safari ওয়েব পুশ |
chrome | Chrome ওয়েব পুশ |
firefox | Firefox ওয়েব পুশ |
ie | Internet Explorer ওয়েব পুশ |
windows | Windows পুশ (টাইল / টোস্ট / ব্যাজ) |
telegram | টেলিগ্রাম বার্তা |
kakao | কাকাও বার্তা |
line | লাইন বার্তা |
viber | ভাইবার বার্তা |
whatsapp | হোয়াটসঅ্যাপ বার্তা |
sms | এসএমএস বার্তা |
সাধারণ পুশ ফিল্ড
Anchor link toএই ফিল্ডগুলি ios, android, huawei_android, baidu_android, mac_os, amazon, safari, chrome, এবং firefox ব্লক দ্বারা শেয়ার করা হয় (সাপোর্ট ভিন্ন হতে পারে। অব্যবহৃত ফিল্ডগুলি সংশ্লিষ্ট প্ল্যাটফর্ম দ্বারা উপেক্ষা করা হয়)।
title(string): নোটিফিকেশনের শিরোনাম।body(string): নোটিফিকেশনের বডি।time_to_live(duration, যেমন"3600s"): পুশ সার্ভার একটি অফলাইন ডিভাইসের জন্য নোটিফিকেশনটি কতক্ষণ ধরে রাখবে।sound(string): সাউন্ড ফাইলের নাম।sound_enabled(bool): সাউন্ড সক্রিয় বা দমন করুন।badges(string): ব্যাজ সংখ্যা (iOS) বা অ্যানালগ।root_params(object): র প্ল্যাটফর্ম-নির্দিষ্ট পেলোড ওভাররাইড।inbox(Inbox): মেসেজ ইনবক্স এন্ট্রি।
{ "android": { "title": "Hello", "body": "Tap to view", "time_to_live": "3600s", "sound": "default", "sound_enabled": true, "badges": "+1" }}iOS (ios)
Anchor link tosubtitle(string): iOS নোটিফিকেশনের সাবটাইটেল।is_critical(bool): ক্রিটিক্যাল অ্যালার্ট (এনটাইটেলমেন্ট প্রয়োজন)।attachment(string): একটি মিডিয়া অ্যাটাচমেন্টের URL।thread_id(string): গ্রুপ করা নোটিফিকেশনের জন্য থ্রেড আইডেন্টিফায়ার।trim_content(bool): ফিট করার জন্য কনটেন্ট ট্রিম করুন।category_id(string): ইন্টারেক্টিভ অ্যাকশনের জন্যUNNotificationCategoryআইডেন্টিফায়ার।interruption_level(string):passive,active,time-sensitive, বাcritical।collapse_id(string): APNs কলাপ্স আইডেন্টিফায়ার। একইcollapse_idসহ নোটিফিকেশনগুলি ডিভাইসে একে অপরকে প্রতিস্থাপন করে।
{ "ios": { "title": "Hello", "body": "Tap to view", "subtitle": "New update", "attachment": "https://cdn.example.com/image.png", "interruption_level": "active", "thread_id": "promo" }}Android (android, huawei_android, baidu_android)
Anchor link toicon(string): নোটিফিকেশনের ছোট আইকন।banner(string): বড় ছবির URL।delivery_priority(NORMAL|HIGH): FCM ডেলিভারি প্রায়োরিটি।vibration(bool): রিসিভ করার সময় ভাইব্রেশন।led_color(string, hex): নোটিফিকেশন LED রঙ।icon_background_color(string, hex): আইকন ব্যাকগ্রাউন্ড রঙ।show_on_lockscreen(bool): লক স্ক্রিনে দেখান।custom_icon(string): একটি কাস্টম আইকনের URL।priority(NotificationPriority): ইন-ট্রে প্রায়োরিটি।group_id(string): নোটিফিকেশন গ্রুপ কী।collapse_key(string): FCM কলাপ্স কী। একইcollapse_keyসহ নোটিফিকেশনগুলি ডিভাইস অফলাইন থাকা অবস্থায় একে অপরকে প্রতিস্থাপন করে।
{ "android": { "title": "Hello", "body": "Tap to view", "icon": "ic_notification", "banner": "https://cdn.example.com/banner.png", "led_color": "#FF0000", "priority": "PRIORITY_HIGH", "delivery_priority": "HIGH" }}macOS (mac_os)
Anchor link toসাধারণ পুশ ফিল্ড এবং subtitle ও action (ব্যবহারকারী নোটিফিকেশনে ক্লিক করলে খোলা URL) ব্যবহার করে।
{ "mac_os": { "title": "Hello", "body": "Tap to view", "subtitle": "New update", "action": "https://example.com/promo" }}Amazon (amazon)
Anchor link toসাধারণ পুশ ফিল্ড এবং custom_icon ও priority (NotificationPriority) ব্যবহার করে।
{ "amazon": { "title": "Hello", "body": "Tap to view", "custom_icon": "https://cdn.example.com/icon.png", "priority": "PRIORITY_HIGH" }}Safari (safari)
Anchor link toaction(string): ব্যবহারকারী নোটিফিকেশনে ক্লিক করলে খোলা URL।url_arguments(array of string): Safari URL আর্গুমেন্ট যা ওয়েব পুশ URL টেমপ্লেটে প্রতিস্থাপিত হয়।
{ "safari": { "title": "Hello", "body": "Tap to view", "action": "https://example.com/promo", "url_arguments": ["promo", "2026"] }}Chrome (chrome)
Anchor link toicon,image(string): ছোট আইকন এবং বড় ছবির URL।duration(duration): অটো-ক্লোজ টাইমার।button_text1/button_url1,button_text2/button_url2: দুটি পর্যন্ত অ্যাকশন বাটন।
{ "chrome": { "title": "Hello", "body": "Tap to view", "icon": "https://cdn.example.com/icon.png", "image": "https://cdn.example.com/banner.png", "duration": "20s", "button_text1": "Open", "button_url1": "https://example.com/promo" }}Firefox (firefox)
Anchor link toশুধুমাত্র title, body, icon, root_params, এবং inbox ব্যবহার করে।
{ "firefox": { "title": "Hello", "body": "Tap to view", "icon": "https://cdn.example.com/icon.png" }}Windows (windows)
Anchor link toWindows একটি ভিন্ন আকার ব্যবহার করে:
{ "windows": { "type": "TOAST", "template": { "title": "Hello", "body": "Tap to view" }, "tag": "promo", "cache": true, "time_to_live": "3600s" }}typeহলTILE,TOAST, বাBADGE।template(structured) বাraw({ "content": "<raw xml>" }) — ঠিক একটি।
টেলিগ্রাম (telegram)
Anchor link tobody(string): বার্তার টেক্সট।content_variables(string): বট-সাইড টেমপ্লেটের জন্য JSON-স্ট্রিংগিফাইড ভেরিয়েবল।
{ "telegram": { "body": "Hello from Pushwoosh", "content_variables": "{\"name\":\"John\"}" }}কাকাও (kakao)
Anchor link tocontent(string): বার্তার কনটেন্ট।template(string): অনুমোদিত টেমপ্লেট কোড।content_variables(string): JSON-স্ট্রিংগিফাইড টেমপ্লেট ভেরিয়েবল বাইন্ডিং।
{ "kakao": { "content": "Hello from Pushwoosh", "template": "welcome_v1", "content_variables": "{\"name\":\"John\"}" }}লাইন (line)
Anchor link tocontent(string): প্লেইন টেক্সট বডি।template(string): Pushwoosh কন্ট্রোল প্যানেলে কনফিগার করা একটি LINE টেমপ্লেটের কোড (ছবি, ক্যারোসেল বা ফ্লেক্স বার্তা পাঠাতে ব্যবহৃত)। রিচ কনটেন্টের জন্য, কন্ট্রোল প্যানেলে টেমপ্লেটটি আগে থেকে কনফিগার করুন এবং এখানে তার রেফারেন্স দিন।
content বা template এর মধ্যে অন্তত একটি সেট করতে হবে।
{ "line": { "content": "Hello from Pushwoosh", "template": "promo_carousel" }}ভাইবার (viber)
Anchor link toএকটি ভাইবার বার্তা হয় একটি ফ্রি-টেক্সট বডি অথবা একটি পূর্ব-অনুমোদিত ট্রানজেকশনাল টেমপ্লেট (Omni Messaging / MStat) যা আইডি এবং ভাষা দ্বারা রেফারেন্স করা হয়।
body(string): প্লেইন টেক্সট বার্তা।template_idসেট না থাকলে এটি প্রয়োজন।template_id(string): একটি পূর্ব-অনুমোদিত ট্রানজেকশনাল টেমপ্লেটের আইডি। সেট করা হলে, এটিbodyএর উপর অগ্রাধিকার পায়।template_lang(string): টেমপ্লেট লোকেল।template_idসেট করা হলে এটি প্রয়োজন।template_params(map<string, string>): কী/মান বাইন্ডিং যা টেমপ্লেটে প্রতিস্থাপিত হয়, যেমন{ "name": "John", "code": "123456" }।all_devices(bool):false(ডিফল্ট) ব্যবহারকারীর শুধুমাত্র প্রাথমিক ডিভাইসে ডেলিভার করে;trueব্যবহারকারীর সমস্ত ডিভাইসে ডেলিভার করে।
body বা template_id এর মধ্যে অন্তত একটি সেট করতে হবে। যখন template_id সেট করা হয়, তখন template_lang প্রয়োজন।
ভাইবার প্রাপকদের viber:<phone> (E.164) ফরম্যাটে hwids হিসাবে ঠিকানা দিন, উদাহরণস্বরূপ viber:+1234567890।
প্লেইন টেক্সট:
{ "viber": { "body": "Hello from Pushwoosh" }}ট্রানজেকশনাল টেমপ্লেট:
{ "viber": { "template_id": "e3dec4a0-c063-4b0f-96d5-cf9d629a7abe", "template_lang": "en", "template_params": { "name": "John", "code": "123456", "expires_in": "5 minutes" }, "all_devices": false }}হোয়াটসঅ্যাপ (whatsapp)
Anchor link toহোয়াটসঅ্যাপ বার্তাগুলি Meta-এর মাধ্যমে যায় এবং Meta-এর মেসেজিং নিয়মের অধীন। মূল বিভাজনটি হল ফ্রি-ফর্ম টেক্সট (শুধুমাত্র ব্যবহারকারীর কাছ থেকে ইনবাউন্ড বার্তার মাধ্যমে খোলা ২৪-ঘণ্টার গ্রাহক পরিষেবা উইন্ডোর মধ্যে ডেলিভার করা হয়) এবং অনুমোদিত টেমপ্লেট (আউটবাউন্ড ইনিসিয়েশন এবং ২৪-ঘণ্টার উইন্ডোর বাইরের যেকোনো বার্তার জন্য প্রয়োজন)।
content(string): ফ্রি-ফর্ম বার্তার টেক্সট। Meta দ্বারা শুধুমাত্র ২৪-ঘণ্টার উইন্ডোর মধ্যে ডেলিভার করা হয়।content_id(string): একটি পূর্ব-অনুমোদিত Meta টেমপ্লেটের নাম (যেমন"hello_world")। আউটবাউন্ড ইনিসিয়েশন বা ২৪-ঘণ্টার উইন্ডোর বাইরের যেকোনো বার্তার জন্য প্রয়োজন।language(string): টেমপ্লেট লোকেল যা Meta-তে অনুমোদিত লোকেলের সাথে হুবহু মিলতে হবে (যেমন"en_US","en_GB")। শুধুমাত্রcontent_idএর সাথে অর্থপূর্ণ। এটি বাইরেরLocalizedContentকী থেকে স্বাধীন। বাইরের কী একটি ডিভাইসের জন্য কনটেন্ট নির্বাচন করে, এবংlanguageসেই কনটেন্টের জন্য Meta-টেমপ্লেট লোকেল নির্বাচন করে।content_variables(string): বডি প্লেসহোল্ডার ম্যাপ করা JSON অবজেক্ট, যেমন"{\"1\":\"John\"}"।button_url_variables(string): বাটন-URL প্লেসহোল্ডার ম্যাপ করা JSON অবজেক্ট যা বাটন ইনডেক্স দ্বারা কী করা হয়, যেমন"{\"0\":\"https://...\"}"।header_variables(string): হেডার প্লেসহোল্ডার ম্যাপ করা JSON অবজেক্ট যা টাইপ দ্বারা কী করা হয়, যেমন"{\"image\":\"https://...\"}"।
content বা content_id এর মধ্যে অন্তত একটি সেট করতে হবে।
{ "whatsapp": { "content_id": "hello_world", "language": "en_US", "content_variables": "{\"1\":\"John\"}" }}এসএমএস (sms)
Anchor link toএসএমএস-এর প্রতিটি লোকেলে Content এর ভিতরে নিজস্ব প্ল্যাটফর্ম ব্লক রয়েছে, ios, android এবং অন্যান্য মেসেজিং চ্যানেলের পাশাপাশি।
body(string): লোকেলটির জন্য এসএমএস টেক্সট।smsব্লক উপস্থিত থাকলে এটি প্রয়োজন।
টেক্সট সরবরাহ করার দুটি উপায় আছে:
- ইনলাইন —
localized_content-এ প্রতি লোকেলেsms.bodyসেট করুন। - একটি প্রিসেট থেকে — পেলোড-স্তরের
sms_presetএকটি সংরক্ষিত SMS প্রিসেট এর কোডে (ফরম্যাটXXXXX-XXXXX) সেট করুন। এর প্রতি-লোকেল কনটেন্ট প্রতিটি লোকেলেsms.bodyতে সমাধান করা হয় যা প্রিসেটটি সংজ্ঞায়িত করে। একটি লোকেলে ইনলাইনsms.bodyসেই লোকেলে প্রিসেটকে ওভাররাইড করে, তাই আপনি একটি প্রিসেট পুনরায় ব্যবহার করতে পারেন এবং এখনও পৃথক ভাষা পরিবর্তন করতে পারেন।
{ "payload": { "sms_preset": "XXXXX-XXXXX", "content": { "localized_content": { "default": { "sms": { "body": "Your order has shipped." } }, "es": { "sms": { "body": "Tu pedido ha sido enviado." } } } } }}এমএমএস (MMS)
Anchor link toএকটি sms ব্লকে subject এবং file_urls যোগ করলে বার্তাটি একটি এমএমএস-এ পরিণত হয়। শুধুমাত্র AbleMobile এর একটি এমএমএস এন্ডপয়েন্ট আছে — অন্যান্য এসএমএস প্রদানকারীরা উভয় ফিল্ড উপেক্ষা করে এবং শুধুমাত্র প্লেইন-টেক্সট body ডেলিভার করে।
subject(string): এমএমএস সাবজেক্ট।file_urls-এ অন্তত একটি এন্ট্রি প্রয়োজন — অ্যাটাচমেন্ট ছাড়া একটি সাবজেক্ট প্রত্যাখ্যান করা হয়। ৪০টি ASCII অক্ষর পর্যন্ত, অথবা যদি সাবজেক্টে নন-ASCII অক্ষর থাকে তবে ১৩টি অক্ষর।file_urls(array of string): ৩টি পর্যন্ত অ্যাটাচমেন্ট URL। প্রতিটি একটি পরমhttpsURL হতে হবে যা.jpgবা.gifদিয়ে শেষ হয় —.jpegএবং.pngভ্যালিডেশন দ্বারা প্রত্যাখ্যান করা হয়, এমনকি একটি আসল JPEG বা PNG ফাইলের জন্যও, কারণ প্রদানকারী সেগুলি ডিকোড করতে পারে না। প্রতিটি ফাইল ২০০ KB বা তার কম হতে হবে; কোনো অ্যাটাচমেন্ট ভারী হলে AbleMobile পুরো সেন্ডটি প্রত্যাখ্যান করে।message_at(int):file_urls-এ ইনডেক্স (0-ভিত্তিক) যার পরে এসএমএস বডি টেক্সট দেখানো হয়।
subject এবং file_urls লিকুইড পার্সোনালাইজেশন সমর্থন করে, body-এর মতোই।
{ "sms": { "body": "Your order has shipped.", "subject": "Order update", "file_urls": [ "https://cdn.example.com/shipping-label.jpg", "https://cdn.example.com/tracking-map.gif" ], "message_at": 1 }}ওপেনঅ্যাকশন (OpenAction)
Anchor link toব্যবহারকারী বার্তাটি খুললে যে অ্যাকশনটি করা হবে তা সংজ্ঞায়িত করে।
ঠিক একটি:
rich_media(RichMedia): একটি রিচ মিডিয়া পেজ খুলুন।deep_link: একটি ডিপ লিঙ্ক খুলুন:{ "code": "flow-code", "params": { "key": "value" } }।link(Link): একটি URL খুলুন।
{ "open_action": { "deep_link": { "code": "flow-code", "params": { "promo": "summer" } } }}ডিপলিঙ্ক URL এবং params মানগুলি লিকুইড পার্সোনালাইজেশন সিনট্যাক্স সমর্থন করে — ডিপ লিঙ্ক খোলার আগে এক্সপ্রেশনগুলি সমাধান করা হয়।
রিচমিডিয়া (RichMedia)
Anchor link to{ "code": "XXXXX-XXXXX" } // রিচ মিডিয়া কোড দ্বারা{ "url": "https://..." } // রিমোট URL দ্বারালিঙ্ক (Link)
Anchor link to{ "url": "https://example.com/promo", "shortener": "BITLY"}shortener হল NONE (ডিফল্ট) বা BITLY।
ইনবক্স (Inbox)
Anchor link toমেসেজ ইনবক্সে বার্তাটি কীভাবে প্রদর্শিত হবে তা কনফিগার করে।
{ "image_url": "https://cdn.example.com/inbox.png", "expiration_date": "2026-05-15T00:00:00Z"}image_url(string): ইনবক্স এন্ট্রিতে দেখানো ছবি।expiration_date(timestamp): যখন এন্ট্রিটি ইনবক্স থেকে সরানো হবে।
NotificationPriority enum
Anchor link toটার্গেট ডিভাইসে নোটিফিকেশন প্রায়োরিটি নিয়ন্ত্রণ করে, PRIORITY_MIN (সর্বনিম্ন) থেকে PRIORITY_MAX (সর্বোচ্চ) পর্যন্ত।
PRIORITY_UNSPECIFIEDPRIORITY_MINPRIORITY_LOWPRIORITY_DEFAULTPRIORITY_HIGHPRIORITY_MAX
উদাহরণ: একটি সেগমেন্টে পুশ পাঠান
Anchor link tocurl -X POST https://api.pushwoosh.com/messaging/v2/notify \ -H "Authorization: Token YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "segment": { "application": "XXXXX-XXXXX", "platforms": ["IOS", "ANDROID"], "code": "active_users", "payload": { "content": { "localized_content": { "en": { "ios": { "title": "Hello", "body": "Hello, world!" }, "android": { "title": "Hello", "body": "Hello, world!" } }, "es": { "ios": { "title": "¡Hola!", "body": "¡Hola, mundo!" }, "android": { "title": "¡Hola!", "body": "¡Hola, mundo!" } } } }, "open_action": { "link": { "url": "https://example.com/promo" } } }, "schedule": { "at": "2026-05-01T12:00:00Z" }, "message_type": "MESSAGE_TYPE_MARKETING" } }'উদাহরণ: ইউজার আইডি দ্বারা ট্রানজেকশনাল পুশ
Anchor link tocurl -X POST https://api.pushwoosh.com/messaging/v2/notify \ -H "Authorization: Token YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "transactional": { "application": "XXXXX-XXXXX", "platforms": ["IOS", "ANDROID"], "users": { "list": ["customer-42"] }, "payload": { "content": { "localized_content": { "default": { "ios": { "title": "Your order", "body": "Order #42 has shipped." }, "android": { "title": "Your order", "body": "Order #42 has shipped." } } } }, "custom_data": { "order_id": "42" } }, "schedule": { "at": "2026-05-01T12:00:00Z" }, "message_type": "MESSAGE_TYPE_TRANSACTIONAL" } }'