পেলোড রেফারেন্স
যেকোনো নন-ইমেল চ্যানেল (পুশ, SMS, টেলিগ্রাম, কাকাও, লাইন, ভাইবার, হোয়াটসঅ্যাপ) এর মাধ্যমে পাঠানোর সময় 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 | Telegram মেসেজ |
kakao | Kakao মেসেজ |
line | LINE মেসেজ |
viber | Viber মেসেজ |
whatsapp | WhatsApp মেসেজ |
sms | 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(স্ট্রাকচার্ড) বা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 এর মেসেজিং নিয়মের অধীন। মূল বিভাজনটি হল ফ্রি-ফর্ম টেক্সট (শুধুমাত্র ব্যবহারকারীর কাছ থেকে একটি ইনবাউন্ড মেসেজ দ্বারা খোলা 24-ঘন্টার গ্রাহক পরিষেবা উইন্ডোর মধ্যে ডেলিভার করা হয়) এবং অনুমোদিত টেমপ্লেট (আউটবাউন্ড ইনিসিয়েশন এবং 24-ঘন্টার উইন্ডোর বাইরের যেকোনো মেসেজের জন্য প্রয়োজন)।
content(string): ফ্রি-ফর্ম মেসেজ টেক্সট। Meta দ্বারা শুধুমাত্র 24-ঘন্টার উইন্ডোর মধ্যে ডেলিভার করা হয়।content_id(string): একটি পূর্ব-অনুমোদিত Meta টেমপ্লেটের নাম (যেমন"hello_world")। আউটবাউন্ড ইনিসিয়েশন বা 24-ঘন্টার উইন্ডোর বাইরের যেকোনো মেসেজের জন্য প্রয়োজন।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 toSMS-এর প্রতিটি লোকেল-এর Content-এর ভিতরে নিজস্ব প্ল্যাটফর্ম ব্লক রয়েছে, 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." } } } } }}ওপেনঅ্যাকশন (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" } }'