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

পেলোড রেফারেন্স

যেকোনো নন-ইমেল চ্যানেল (পুশ, SMS, টেলিগ্রাম, Kakao, LINE, Viber, WhatsApp) এর মাধ্যমে পাঠানোর সময় Notify দ্বারা ব্যবহৃত Payload মেসেজের জন্য রেফারেন্স।

পেলোড

Anchor link to
  • preset (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 এর প্রতি-প্ল্যাটফর্ম ওভাররাইড। কী একটি সংখ্যাসূচক Platform enum মান।
  • 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

একটি ডিভাইসে সরবরাহ করা বিষয়বস্তু এই ক্রমে বাছাই করা হয়:

  1. ডিভাইসের ভাষার সাথে সঠিক মিল।
  2. কী "default"
  3. কী "en"
  4. ম্যাপে উপস্থিত অন্য কোনো লোকেল।

অন্তত "default" বা "en" এর মধ্যে একটি প্রদান করুন যাতে প্রতিটি ডিভাইসের একটি ডিটারমিনিস্টিক ফলব্যাক থাকে। যদি আপনি প্রতি-লোকেল ভেরিয়েন্টের আশা না করেন, তবে শুধুমাত্র "default" পাঠান।

প্রতিটি লোকেল এন্ট্রি একটি Content অবজেক্ট যা ঐচ্ছিক প্রতি-প্ল্যাটফর্ম ব্লক সহ। শুধুমাত্র আপনি যে প্ল্যাটফর্মগুলিকে টার্গেট করছেন সেগুলি পূরণ করুন।

প্ল্যাটফর্ম ব্লকচ্যানেল
iosiOS পুশ
androidAndroid (FCM) পুশ
huawei_androidHuawei Android পুশ
baidu_androidBaidu Android পুশ
mac_osmacOS পুশ
amazonAmazon (ADM) পুশ
safariSafari ওয়েব পুশ
chromeChrome ওয়েব পুশ
firefoxFirefox ওয়েব পুশ
ieInternet Explorer ওয়েব পুশ
windowsWindows পুশ (টাইল / টোস্ট / ব্যাজ)
telegramটেলিগ্রাম মেসেজ
kakaoKakao মেসেজ
lineLINE মেসেজ
viberViber মেসেজ
whatsappWhatsApp মেসেজ
smsSMS মেসেজ

সাধারণ পুশ ফিল্ড

Anchor link to

এই ফিল্ডগুলি ios, android, huawei_android, baidu_android, mac_os, amazon, safari, chrome, এবং firefox ব্লক দ্বারা শেয়ার করা হয় (সাপোর্ট ভিন্ন হতে পারে। অব্যবহৃত ফিল্ডগুলি সংশ্লিষ্ট প্ল্যাটফর্ম দ্বারা উপেক্ষা করা হয়)।

  • title (string): নোটিফিকেশনের শিরোনাম।
  • body (string): নোটিফিকেশনের বডি।
  • time_to_live (duration, e.g. "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"
}
}
  • subtitle (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 to
  • icon (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

সাধারণ পুশ ফিল্ড এবং subtitleaction (ব্যবহারকারী নোটিফিকেশনে ক্লিক করলে খোলা URL) ব্যবহার করে।

{
"mac_os": {
"title": "Hello",
"body": "Tap to view",
"subtitle": "New update",
"action": "https://example.com/promo"
}
}

Amazon (amazon)

Anchor link to

সাধারণ পুশ ফিল্ড এবং custom_iconpriority (NotificationPriority) ব্যবহার করে।

{
"amazon": {
"title": "Hello",
"body": "Tap to view",
"custom_icon": "https://cdn.example.com/icon.png",
"priority": "PRIORITY_HIGH"
}
}

Safari (safari)

Anchor link to
  • action (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 to
  • icon, 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 to

Windows একটি ভিন্ন আকার ব্যবহার করে:

{
"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 to
  • body (string): মেসেজের টেক্সট।
  • content_variables (string): বট-সাইড টেমপ্লেটের জন্য JSON-স্ট্রিংগিফাইড ভেরিয়েবল।
{
"telegram": {
"body": "Hello from Pushwoosh",
"content_variables": "{\"name\":\"John\"}"
}
}

Kakao (kakao)

Anchor link to
  • content (string): মেসেজের বিষয়বস্তু।
  • template (string): অনুমোদিত টেমপ্লেট কোড।
  • content_variables (string): JSON-স্ট্রিংগিফাইড টেমপ্লেট ভেরিয়েবল বাইন্ডিং।
{
"kakao": {
"content": "Hello from Pushwoosh",
"template": "welcome_v1",
"content_variables": "{\"name\":\"John\"}"
}
}

LINE (line)

Anchor link to
  • content (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 to

WhatsApp মেসেজ 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-এর প্রতিটি লোকেল-এর 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" } }
}
}
{ "code": "XXXXX-XXXXX" } // by Rich Media code
{ "url": "https://..." } // by remote URL
{
"url": "https://example.com/promo",
"shortener": "BITLY"
}

shortener হল NONE (ডিফল্ট) বা BITLY

মেসেজ ইনবক্সে মেসেজটি কীভাবে প্রদর্শিত হবে তা কনফিগার করে।

{
"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_UNSPECIFIED
  • PRIORITY_MIN
  • PRIORITY_LOW
  • PRIORITY_DEFAULT
  • PRIORITY_HIGH
  • PRIORITY_MAX

উদাহরণ: একটি সেগমেন্টে পুশ পাঠান

Anchor link to
Terminal window
curl -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 to
Terminal window
curl -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"
}
}'