অবহিত করুন
POST https://api.pushwoosh.com/messaging/v2/notify
একটি একক বার্তা তৈরি এবং সময়সূচী করে।
অনুরোধের কাঠামো
Anchor link toঅনুরোধের বডিটি একটি NotifyRequest যা দুটি ধরণের মধ্যে ঠিক একটি:
segment: সেগমেন্ট কোড, একটি seglang এক্সপ্রেশন, বা একটি স্ট্রাকচার্ড ফিল্টার এক্সপ্রেশন দ্বারা একটি দর্শক সেগমেন্টকে লক্ষ্য করুন।transactional: hwids, user IDs, push tokens, বা পরীক্ষা ডিভাইসের একটি সুস্পষ্ট তালিকায় পাঠান।
{ "segment": { ... }, // অথবা "transactional": { ... }, "transaction_id": "unique-uuid"}| ক্ষেত্র | টাইপ | বিবরণ |
|---|---|---|
transaction_id | string | ঐচ্ছিক। অনুরোধের জন্য আইডমপোটেন্সি কী — segment এবং transactional উভয়ের সাথে কাজ করে। ৫ মিনিটের মধ্যে একই transaction_id দিয়ে একটি পুনরাবৃত্তি কল একটি ডুপ্লিকেট বার্তা পাঠানোর পরিবর্তে আসল message_code ফেরত দেয়। একটি UUID বা প্রতি যৌক্তিক পাঠানোর জন্য একটি অনন্য মান ব্যবহার করুন। |
NotifySegment
Anchor link toযারা একটি দর্শক সেগমেন্ট বা ফিল্টার এক্সপ্রেশনের সাথে মেলে তাদের লক্ষ্য করে।
| ক্ষেত্র | টাইপ | বিবরণ |
|---|---|---|
schedule | Schedule | কখন এবং কিভাবে পাঠাতে হবে। আবশ্যক। |
application | string | Application code। |
platforms | array of Platform | বার্তাটি যে প্ল্যাটফর্মগুলিকে লক্ষ্য করে। |
code | string | Segment code। expression এবং filter_expression-এর সাথে পারস্পরিকভাবে স্বতন্ত্র। |
expression | string | Seglang এক্সপ্রেশন। |
filter_expression | FilterExpression | স্ট্রাকচার্ড ফিল্টার এক্সপ্রেশন (উন্নত)। |
payload | Payload | পুশ / SMS / টেলিগ্রাম / Kakao / LINE / WhatsApp / Viber পেলোড। email_payload-এর সাথে পারস্পরিকভাবে স্বতন্ত্র। |
email_payload | EmailPayload | ইমেল পেলোড। |
campaign | string | এই বার্তাটিকে অ্যাট্রিবিউট করার জন্য Campaign code। |
frequency_capping | FrequencyCapping | প্রতি-ব্যবহারকারী ফ্রিকোয়েন্সি সীমা। |
send_rate | SendRate | পাঠানোর জন্য থ্রটলিং। |
message_type | MessageType | MESSAGE_TYPE_MARKETING (ডিফল্ট) বা MESSAGE_TYPE_TRANSACTIONAL। কন্ট্রোল-গ্রুপ ফিল্টারিং নিয়ন্ত্রণ করে। |
dynamic_content_placeholders | map<string, string> | কন্টেন্টে প্লেসহোল্ডার প্রতিস্থাপন করে। |
meta_data | object | ডাউনস্ট্রিম অ্যানালিটিক্সে ফরোয়ার্ড করা ফ্রি-ফর্ম মেটাডেটা। |
use_latest_user_device | bool | যখন true, তখন সেগমেন্ট দ্বারা ম্যাচ করা প্রতিটি ডিভাইসের পরিবর্তে প্রতিটি ব্যবহারকারীর সবচেয়ে সম্প্রতি সক্রিয় ডিভাইসে (সর্বশেষ Last Application Open সহ) বার্তাটি সরবরাহ করে। platforms-এ স্কোপ করা: শুধুমাত্র সেই প্ল্যাটফর্মের ডিভাইসগুলি বিবেচনা করা হয়, এবং যদি কোনোটিতে Last Application Open ডেটা না থাকে, তবে পাঠানো বাদ দেওয়ার পরিবর্তে প্রথম ম্যাচিং ডিভাইসটি ব্যবহার করা হয়। ডিফল্ট false (প্রতিটি ডিভাইসে পাঠান)। |
উদাহরণ: একটি সেগমেন্টে পাঠান
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": { "body": "Hello!" }, "android": { "body": "Hello!" } } } } }, "schedule": { "at": "2026-05-01T12:00:00Z" }, "message_type": "MESSAGE_TYPE_MARKETING" } }'NotifyTransactional
Anchor link toপ্রাপকদের একটি সুস্পষ্ট তালিকায় পাঠায়।
| ক্ষেত্র | টাইপ | বিবরণ |
|---|---|---|
schedule | Schedule | আবশ্যক। |
application | string | Application code। |
platforms | array of Platform | বার্তাটি যে প্ল্যাটফর্মগুলিকে লক্ষ্য করে। |
test_devices | bool | যদি true হয়, তবে শুধুমাত্র অ্যাপের পরীক্ষা ডিভাইসগুলিতে পাঠান। |
hwids | { "list": [string, ...] } | শুধুমাত্র এই hwids-এ পাঠান। |
users | { "list": [string, ...] } | শুধুমাত্র এই user IDs-এ পাঠান। |
push_tokens | { "list": [string, ...] } | শুধুমাত্র এই push tokens-এ পাঠান। |
payload | Payload | পুশ / SMS / টেলিগ্রাম / Kakao / LINE / WhatsApp / Viber পেলোড। |
email_payload | EmailPayload | ইমেল পেলোড। |
return_unknown_identifiers | bool | যখন true, তখন প্রতিক্রিয়ার unknown_identifiers তালিকায় এমন আইডেন্টিফায়ার থাকে যা পাওয়া যায়নি। |
use_latest_user_device | bool | শুধুমাত্র যখন আপনি users-কে লক্ষ্য করেন তখন প্রযোজ্য। উপরের NotifySegment-এর মতো একই আচরণ — প্রতি ডিভাইসের পরিবর্তে প্রতি ব্যবহারকারী একটি বার্তা সরবরাহ করে, platforms-এ স্কোপ করা। ডিফল্ট false। |
campaign, frequency_capping, send_rate, message_type, dynamic_content_placeholders, meta_data | উপরে NotifySegment দেখুন। |
test_devices, hwids, users, এবং push_tokens পারস্পরিকভাবে স্বতন্ত্র। ঠিক একটি সেট করতে হবে।
উদাহরণ: ইউজার আইডি দ্বারা ট্রানজ্যাকশনাল
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": ["user-123", "user-456"] }, "payload": { "content": { "localized_content": { "en": { "ios": { "body": "Your order has shipped." } } } } }, "schedule": { "at": "2026-05-01T12:00:00Z" }, "message_type": "MESSAGE_TYPE_TRANSACTIONAL", "return_unknown_identifiers": true, "use_latest_user_device": true } }'প্রতিক্রিয়া
Anchor link to{ "result": { "message_code": "XXXXX-XXXXX-XXXXX", "unknown_identifiers": [] }}| ক্ষেত্র | টাইপ | বিবরণ |
|---|---|---|
message_code | string | অনন্য message code। এটি /getMessageDetails এবং বার্তা পরিসংখ্যান এন্ডপয়েন্টের সাথে ব্যবহার করুন। |
unknown_identifiers | array of string | অ্যাকাউন্টে পাওয়া যায়নি এমন আইডেন্টিফায়ার। শুধুমাত্র যখন transactional ধরণের উপর return_unknown_identifiers: true সেট করা হয়েছিল তখন পপুলেট করা হয়। |
শেয়ার্ড টাইপ
Anchor link toSchedule
Anchor link to{ "at": "2026-05-01T12:00:00Z", "follow_user_timezone": true, "past_timezones_behaviour": "PAST_TIMEZONES_BEHAVIOUR_SEND_IMMEDIATELY"}| ক্ষেত্র | টাইপ | বিবরণ |
|---|---|---|
at | timestamp | পরম পাঠানোর সময় (RFC 3339)। যদি অতীতে হয়, বার্তাটি অবিলম্বে পাঠানো হয়। ভবিষ্যতে সর্বোচ্চ ১৪ দিন। |
after | duration | at-এর বিকল্প। “এখন” থেকে এই অফসেটের পরে পাঠান (যেমন "3600s")। |
follow_user_timezone | bool | যখন true, প্রতিটি ডিভাইস তার স্থানীয় টাইমজোনে at-এ বার্তাটি গ্রহণ করে। |
past_timezones_behaviour | enum | PAST_TIMEZONES_BEHAVIOUR_SEND_IMMEDIATELY (ডিফল্ট), PAST_TIMEZONES_BEHAVIOUR_DO_NOT_SEND, বা PAST_TIMEZONES_BEHAVIOUR_NEXT_DAY। শুধুমাত্র যখন follow_user_timezone true হয় তখন অর্থপূর্ণ। |
FrequencyCapping
Anchor link toমার্কেটিং পাঠানোর জন্য প্রতি-ব্যবহারকারী ফ্রিকোয়েন্সি সীমা। ক্যাপিং নিষ্ক্রিয় করতে, frequency_capping সম্পূর্ণভাবে বাদ দিন, অথবা days: 0 এবং count: 0 একসাথে পাঠান।
{ "days": 7, "count": 3, "exclude": false, "avoid": true }days(int, 1–30, বা0ক্যাপিং নিষ্ক্রিয় করতে): লুক-ব্যাক উইন্ডো।count-এর সাথে একসাথে পাঠাতে হবে — যদি একটি0হয়, তবে অন্যটিও0হতে হবে; একটিকে0হিসাবে পাঠানোর সময় অন্যটি অ-শূন্য হলে400ফেরত দেয়।count(int, 1 বা তার বেশি, বা0ক্যাপিং নিষ্ক্রিয় করতে):days-এর মধ্যে অনুমোদিত সর্বোচ্চ বার্তা। উপরেরdays-এর মতো একই জোড়া নিয়ম।exclude(bool): যারা ইতিমধ্যে ক্যাপে পৌঁছেছে তাদের হার্ড-এক্সক্লুড করুন।avoid(bool): যারা ইতিমধ্যে ক্যাপে পৌঁছেছে তাদের সফট-এভয়েড করুন (তারা এখনও অ্যানালিটিক্সের জন্য গণনা করা হয়)।
SendRate
Anchor link to{ "value": 500, "bucket": "1s", "avoid": false }পাঠানোকে থ্রটল করে। value হল প্রতি bucket-এ বার্তা; সাধারণ bucket হল "1s"।
Platform enum
Anchor link toIOS, ANDROID, OSX, WINDOWS, AMAZON, SAFARI, CHROME, FIREFOX, IE, EMAIL, HUAWEI_ANDROID, SMS, WEB, KAKAO, TELEGRAM, LINE, WHATS_APP, VIBER।
MessageType enum
Anchor link toMESSAGE_TYPE_UNSPECIFIED:MESSAGE_TYPE_MARKETING-এর সমতুল্য।MESSAGE_TYPE_MARKETING: কন্ট্রোল-গ্রুপ ফিল্টারিং এবং ফ্রিকোয়েন্সি ক্যাপিংয়ের অধীন।MESSAGE_TYPE_TRANSACTIONAL: কন্ট্রোল-গ্রুপ ফিল্টারিং এবং ফ্রিকোয়েন্সি ক্যাপিং এড়িয়ে যায়। অর্ডার কনফার্মেশন, OTP, এবং অনুরূপ গুরুত্বপূর্ণ প্রবাহের জন্য ব্যবহার করুন।