নোটিফাই
POST https://api.pushwoosh.com/messaging/v2/notify
একটি একক বার্তা তৈরি এবং সময়সূচী করে।
রিকোয়েস্ট স্ট্রাকচার
Anchor link toরিকোয়েস্ট বডি একটি NotifyRequest যা দুটি ধরণের মধ্যে ঠিক একটি:
segment: সেগমেন্ট কোড দ্বারা একটি অডিয়েন্স সেগমেন্টকে টার্গেট করুন, অথবা — প্রথমে একটি সেগমেন্ট তৈরি না করে — একটি seglang এক্সপ্রেশন বা একটি স্ট্রাকচার্ড ফিল্টার এক্সপ্রেশন ব্যবহার করুন।transactional: hwids, ইউজার আইডি, পুশ টোকেন, বা টেস্ট ডিভাইসের একটি সুস্পষ্ট তালিকায় পাঠান।
{ "segment": { ... }, // OR "transactional": { ... }, "transaction_id": "unique-uuid"}| ফিল্ড | টাইপ | বর্ণনা |
|---|---|---|
transaction_id | string | ঐচ্ছিক। রিকোয়েস্টের জন্য আইডমপোটেন্সি কী — segment এবং transactional উভয়ের সাথে কাজ করে। ৫ মিনিটের মধ্যে একই transaction_id দিয়ে পুনরায় কল করলে ডুপ্লিকেট বার্তা পাঠানোর পরিবর্তে আসল message_code ফেরত আসে। একটি UUID বা প্রতি লজিক্যাল সেন্ডের জন্য একটি অনন্য মান ব্যবহার করুন। |
NotifySegment
Anchor link toযেসব ব্যবহারকারী একটি অডিয়েন্স সেগমেন্ট বা ফিল্টার এক্সপ্রেশনের সাথে মেলে তাদের টার্গেট করে। code, expression, বা filter_expression-এর মধ্যে ঠিক একটি সেট করুন। expression এবং filter_expression-এর জন্য, আগে থেকে কোনো সেগমেন্ট তৈরি করার প্রয়োজন নেই — এক্সপ্রেশনটি শুধুমাত্র এই সেন্ডের জন্য ইনলাইন মূল্যায়ন করা হয়।
| ফিল্ড | টাইপ | বর্ণনা |
|---|---|---|
schedule | Schedule | কখন এবং কিভাবে পাঠাতে হবে। আবশ্যক। |
application | string | অ্যাপ্লিকেশন কোড। |
platforms | array of Platform | যেসব প্ল্যাটফর্মে বার্তাটি টার্গেট করা হয়েছে। |
code | string | আগে থেকে সেভ করা একটি সেগমেন্টের সেগমেন্ট কোড। expression এবং filter_expression-এর সাথে পারস্পরিকভাবে এক্সক্লুসিভ। |
expression | string | Seglang এক্সপ্রেশন, শুধুমাত্র এই সেন্ডের জন্য মূল্যায়ন করা হয় — কোনো সেভ করা সেগমেন্টের প্রয়োজন নেই। code এবং filter_expression-এর সাথে পারস্পরিকভাবে এক্সক্লুসিভ। |
filter_expression | FilterExpression | expression-এর মতো একই লজিক, একটি seglang স্ট্রিং-এর পরিবর্তে একটি স্ট্রাকচার্ড অবজেক্ট হিসাবে। code এবং expression-এর সাথে পারস্পরিকভাবে এক্সক্লুসিভ। FilterExpression স্কিমা সর্বজনীনভাবে নথিভুক্ত নয় — যদি আপনার স্ট্রাকচার্ড ফর্মের প্রয়োজন হয় তবে Pushwoosh সাপোর্ট থেকে এটি অনুরোধ করুন। |
payload | Payload | পুশ / SMS / টেলিগ্রাম / Kakao / LINE / WhatsApp / Viber / Facebook Messenger পেলোড। email_payload-এর সাথে পারস্পরিকভাবে এক্সক্লুসিভ। |
email_payload | EmailPayload | ইমেল পেলোড। |
campaign | string | এই বার্তাটিকে অ্যাট্রিবিউট করার জন্য ক্যাম্পেইন কোড। |
campaign_name | string | এই বার্তাটির অভ্যন্তরীণ নাম, যা Message History-এ সারির শিরোনাম হিসেবে এবং এর এক্সপোর্টে দেখানো হয়। উপরের campaign-এর সাথে এর কোনো সম্পর্ক নেই। এটি বার্তা গ্রুপ করে না বা ডেলিভারি প্রভাবিত করে না। সর্বোচ্চ ২৫৫ অক্ষর, ছাঁটা হয়। এটি বাদ দিন বা খালি রাখুন, যাতে সারির শিরোনাম পেলোডের নিজস্ব কনটেন্ট থেকে আসে। |
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 | অ্যাপ্লিকেশন কোড। |
platforms | array of Platform | যেসব প্ল্যাটফর্মে বার্তাটি টার্গেট করা হয়েছে। |
test_devices | bool | যদি true হয়, শুধুমাত্র অ্যাপের টেস্ট ডিভাইসগুলিতে পাঠান। |
hwids | { "list": [string, ...] } | শুধুমাত্র এই hwids-এ পাঠান। |
users | { "list": [string, ...] } | শুধুমাত্র এই ইউজার আইডি-তে পাঠান। |
push_tokens | { "list": [string, ...] } | শুধুমাত্র এই পুশ টোকেন-এ পাঠান। |
payload | Payload | পুশ / SMS / টেলিগ্রাম / Kakao / LINE / WhatsApp / Viber / Facebook Messenger পেলোড। |
email_payload | EmailPayload | ইমেল পেলোড। |
return_unknown_identifiers | bool | যখন true, তখন রেসপন্সের unknown_identifiers তালিকায় এমন আইডেন্টিফায়ারগুলো থাকে যা পাওয়া যায়নি। |
use_latest_user_device | bool | শুধুমাত্র যখন আপনি users-কে টার্গেট করেন তখন প্রযোজ্য। উপরের NotifySegment-এর মতো একই আচরণ — প্রতি ডিভাইসের পরিবর্তে প্রতি ব্যবহারকারী একটি বার্তা পৌঁছে দেয়, platforms-এ স্কোপ করা। ডিফল্ট false। |
campaign, campaign_name, 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 | অনন্য মেসেজ কোড। এটি /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"।
প্ল্যাটফর্ম enum
Anchor link toIOS, ANDROID, OSX, WINDOWS, AMAZON, SAFARI, CHROME, FIREFOX, IE, EMAIL, HUAWEI_ANDROID, SMS, WEB, KAKAO, TELEGRAM, LINE, WHATS_APP, VIBER, FB_MESSENGER।
MessageType enum
Anchor link toMESSAGE_TYPE_UNSPECIFIED:MESSAGE_TYPE_MARKETING-এর সমতুল্য।MESSAGE_TYPE_MARKETING: কন্ট্রোল-গ্রুপ ফিল্টারিং এবং ফ্রিকোয়েন্সি ক্যাপিং-এর অধীন।MESSAGE_TYPE_TRANSACTIONAL: কন্ট্রোল-গ্রুপ ফিল্টারিং এবং ফ্রিকোয়েন্সি ক্যাপিং এড়িয়ে যায়। অর্ডার কনফার্মেশন, OTP, এবং অনুরূপ ক্রিটিক্যাল ফ্লো-এর জন্য ব্যবহার করুন।