পেলোড রেফারেন্স
যেকোনো নন-ইমেল চ্যানেলের (পুশ, SMS, টেলিগ্রাম, Kakao, LINE, Viber, WhatsApp) মাধ্যমে পাঠানোর সময় Notify দ্বারা ব্যবহৃত 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 পুশ |
mac_os | macOS পুশ |
amazon | Amazon (ADM) পুশ |
safari | Safari ওয়েব পুশ |
chrome | Chrome ওয়েব পুশ |
firefox | Firefox ওয়েব পুশ |
ie | Internet Explorer ওয়েব পুশ |
windows | Windows পুশ (টাইল / টোস্ট / ব্যাজ) |
telegram | Telegram মেসেজ |
kakao | Kakao মেসেজ |
line | LINE মেসেজ |
viber | Viber মেসেজ |
whatsapp | WhatsApp মেসেজ |
sms | SMS মেসেজ |
সাধারণ পুশ ফিল্ড
Anchor link toএই ফিল্ডগুলো ios, android, huawei_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): Message 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)
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(স্ট্রাকচার্ড) বাraw({ "content": "<raw xml>" }) — ঠিক একটি।
Telegram (telegram)
Anchor link tobody(string): মেসেজের টেক্সট।content_variables(string): বট-সাইড টেমপ্লেটের জন্য JSON-স্ট্রিংগিফাইড ভেরিয়েবল।
{ "telegram": { "body": "Hello from Pushwoosh", "content_variables": "{\"name\":\"John\"}" }}Kakao (kakao)
Anchor link tocontent(string): মেসেজের কন্টেন্ট।template(string): অনুমোদিত টেমপ্লেট কোড।content_variables(string): JSON-স্ট্রিংগিফাইড টেমপ্লেট ভেরিয়েবল বাইন্ডিং।
{ "kakao": { "content": "Hello from Pushwoosh", "template": "welcome_v1", "content_variables": "{\"name\":\"John\"}" }}LINE (line)
Anchor link tocontent(string): প্লেইন টেক্সট বডি।template(string): Pushwoosh কন্ট্রোল প্যানেলে কনফিগার করা একটি LINE টেমপ্লেটের কোড (ছবি, ক্যারোসেল, বা ফ্লেক্স মেসেজ পাঠানোর জন্য ব্যবহৃত হয়)। রিচ কন্টেন্টের জন্য, কন্ট্রোল প্যানেলে টেমপ্লেটটি আগে থেকে কনফিগার করুন এবং এখানে তার রেফারেন্স দিন।
content বা template-এর মধ্যে অন্তত একটি সেট করতে হবে।
{ "line": { "content": "Hello from Pushwoosh", "template": "promo_carousel" }}Viber (viber)
Anchor link toএকটি Viber মেসেজ হয় একটি ফ্রি-টেক্সট বডি অথবা একটি পূর্ব-অনুমোদিত ট্রানজ্যাকশনাল টেমপ্লেট (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 প্রাপকদের 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 (whatsapp)
Anchor link toWhatsApp মেসেজ 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 (sms)
Anchor link toপ্রতিটি লোকেল-এর Content-এর ভিতরে SMS-এর নিজস্ব প্ল্যাটফর্ম ব্লক রয়েছে, ios, android, এবং অন্যান্য মেসেজিং চ্যানেলের পাশাপাশি।
body(string): লোকেল-এর জন্য SMS টেক্সট।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." } } } } }}একটি sms ব্লকে subject এবং file_urls যোগ করলে মেসেজটি একটি MMS-এ পরিণত হয়। শুধুমাত্র AbleMobile-এর একটি MMS এন্ডপয়েন্ট আছে — অন্যান্য SMS প্রদানকারীরা উভয় ফিল্ড উপেক্ষা করে এবং শুধুমাত্র প্লেইন-টেক্সট body ডেলিভার করে।
subject(string): MMS সাবজেক্ট।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-ভিত্তিক) যার পরে SMS বডি টেক্সট দেখানো হয়।
subject এবং file_urls Liquid পার্সোনালাইজেশন সমর্থন করে, 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): একটি Rich Media পেজ খুলুন।deep_link: একটি ডিপ লিঙ্ক খুলুন:{ "code": "flow-code", "params": { "key": "value" } }।link(Link): একটি URL খুলুন।
{ "open_action": { "deep_link": { "code": "flow-code", "params": { "promo": "summer" } } }}ডিপলিঙ্ক URL এবং params মানগুলি Liquid পার্সোনালাইজেশন সিনট্যাক্স সমর্থন করে — ডিপ লিঙ্ক খোলার আগে এক্সপ্রেশনগুলি সমাধান করা হয়।
RichMedia
Anchor link to{ "code": "XXXXX-XXXXX" } // Rich Media কোড দ্বারা{ "url": "https://..." } // রিমোট URL দ্বারাLink
Anchor link to{ "url": "https://example.com/promo", "shortener": "BITLY"}shortener হলো NONE (ডিফল্ট) বা BITLY।
Inbox
Anchor link toMessage Inbox-এ মেসেজটি কীভাবে প্রদর্শিত হবে তা কনফিগার করে।
{ "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" } }'