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

নোটিফাই

POST https://api.pushwoosh.com/messaging/v2/notify

একটি একক বার্তা তৈরি এবং সময়সূচী করে।

অনুরোধের কাঠামো

Anchor link to

অনুরোধের বডি একটি NotifyRequest যার দুটি ধরনের মধ্যে ঠিক একটি থাকে:

  • segment: সেগমেন্ট কোড, একটি seglang এক্সপ্রেশন, বা একটি স্ট্রাকচার্ড ফিল্টার এক্সপ্রেশন দ্বারা একটি অডিয়েন্স সেগমেন্টকে টার্গেট করুন।
  • transactional: hwids, ইউজার আইডি, পুশ টোকেন, বা টেস্ট ডিভাইসের একটি সুস্পষ্ট তালিকায় পাঠান।
আকৃতি
{
"segment": { ... }, // অথবা
"transactional": { ... },
"transaction_id": "unique-uuid"
}
ফিল্ডটাইপবর্ণনা
transaction_idstringঐচ্ছিক। অনুরোধের জন্য আইডেমপোটেন্সি কী — segment এবং transactional উভয়ের সাথে কাজ করে। ৫ মিনিটের মধ্যে একই transaction_id দিয়ে একটি পুনরাবৃত্ত কল একটি ডুপ্লিকেট বার্তা পাঠানোর পরিবর্তে আসল message_code ফেরত দেয়। একটি UUID বা প্রতি লজিক্যাল সেন্ডের জন্য একটি অনন্য মান ব্যবহার করুন।

NotifySegment

Anchor link to

যারা একটি অডিয়েন্স সেগমেন্ট বা ফিল্টার এক্সপ্রেশনের সাথে মেলে তাদের টার্গেট করে।

ফিল্ডটাইপবর্ণনা
scheduleScheduleকখন এবং কিভাবে পাঠাতে হবে। আবশ্যক।
applicationstringঅ্যাপ্লিকেশন কোড
platformsarray of Platformপ্ল্যাটফর্ম যা বার্তাটি টার্গেট করে।
codestringসেগমেন্ট কোডexpression এবং filter_expression এর সাথে পারস্পরিকভাবে স্বতন্ত্র।
expressionstringSeglang এক্সপ্রেশন।
filter_expressionFilterExpressionস্ট্রাকচার্ড ফিল্টার এক্সপ্রেশন (উন্নত)।
payloadPayloadপুশ / এসএমএস / টেলিগ্রাম / কাকাও / লাইন / হোয়াটসঅ্যাপ / ভাইবার পেলোড। email_payload এর সাথে পারস্পরিকভাবে স্বতন্ত্র।
email_payloadEmailPayloadইমেল পেলোড।
campaignstringএই বার্তাটিকে অ্যাট্রিবিউট করার জন্য ক্যাম্পেইন কোড
frequency_cappingFrequencyCappingপ্রতি-ব্যবহারকারী ফ্রিকোয়েন্সি লিমিট।
send_rateSendRateসেন্ডের জন্য থ্রটলিং।
message_typeMessageTypeMESSAGE_TYPE_MARKETING (ডিফল্ট) বা MESSAGE_TYPE_TRANSACTIONAL। কন্ট্রোল-গ্রুপ ফিল্টারিং নিয়ন্ত্রণ করে।
dynamic_content_placeholdersmap<string, string>কন্টেন্টে প্লেসহোল্ডার প্রতিস্থাপন করে।
meta_dataobjectডাউনস্ট্রিম অ্যানালিটিক্সে ফরোয়ার্ড করা ফ্রি-ফর্ম মেটাডেটা।

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

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": { "body": "Hello!" },
"android": { "body": "Hello!" }
}
}
}
},
"schedule": { "at": "2026-05-01T12:00:00Z" },
"message_type": "MESSAGE_TYPE_MARKETING"
}
}'

NotifyTransactional

Anchor link to

প্রাপকদের একটি সুস্পষ্ট তালিকায় পাঠায়।

ফিল্ডটাইপবর্ণনা
scheduleScheduleআবশ্যক।
applicationstringঅ্যাপ্লিকেশন কোড
platformsarray of Platformপ্ল্যাটফর্ম যা বার্তাটি টার্গেট করে।
test_devicesboolযদি true হয়, তবে শুধুমাত্র অ্যাপের টেস্ট ডিভাইসগুলিতে পাঠান।
hwids{ "list": [string, ...] }শুধুমাত্র এই hwids এ পাঠান।
users{ "list": [string, ...] }শুধুমাত্র এই ইউজার আইডি তে পাঠান।
push_tokens{ "list": [string, ...] }শুধুমাত্র এই পুশ টোকেন এ পাঠান।
payloadPayloadপুশ / এসএমএস / টেলিগ্রাম / কাকাও / লাইন / হোয়াটসঅ্যাপ / ভাইবার পেলোড।
email_payloadEmailPayloadইমেল পেলোড।
return_unknown_identifiersboolযখন true, প্রতিক্রিয়ার unknown_identifiers তালিকায় এমন আইডেন্টিফায়ার থাকে যা পাওয়া যায়নি।
use_latest_user_deviceboolশুধুমাত্র যখন আপনি ব্যবহারকারীদের টার্গেট করেন তখন প্রযোজ্য। যখন true, বার্তাটি প্রতিটি ব্যবহারকারীর সবচেয়ে সম্প্রতি সক্রিয় ডিভাইসে বিতরণ করা হয় — সর্বশেষ Last Application Open সহ ডিভাইসটিতে — সেই ইউজার আইডির সাথে যুক্ত সমস্ত ডিভাইসের পরিবর্তে। ডিফল্ট false (প্রতিটি ডিভাইসে পাঠান)।
campaign, frequency_capping, send_rate, message_type, dynamic_content_placeholders, meta_dataউপরে NotifySegment দেখুন।

test_devices, hwids, users, এবং push_tokens পারস্পরিকভাবে স্বতন্ত্র। ঠিক একটি সেট করতে হবে।

উদাহরণ: ইউজার আইডি দ্বারা ট্রানজ্যাকশনাল

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": ["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_codestringঅনন্য মেসেজ কোড। এটি /getMessageDetails এবং বার্তা পরিসংখ্যান এন্ডপয়েন্টের সাথে ব্যবহার করুন।
unknown_identifiersarray of stringঅ্যাকাউন্টে আইডেন্টিফায়ার পাওয়া যায়নি। শুধুমাত্র যখন transactional ধরনের উপর return_unknown_identifiers: true সেট করা হয়েছিল তখন পপুলেট করা হয়।

শেয়ার্ড টাইপ

Anchor link to
{
"at": "2026-05-01T12:00:00Z",
"follow_user_timezone": true,
"past_timezones_behaviour": "PAST_TIMEZONES_BEHAVIOUR_SEND_IMMEDIATELY"
}
ফিল্ডটাইপবর্ণনা
attimestampপরম পাঠানোর সময় (RFC 3339)। যদি অতীতে হয়, বার্তাটি অবিলম্বে পাঠানো হয়। ভবিষ্যতে সর্বোচ্চ ১৪ দিন।
afterdurationat এর বিকল্প। “এখন” থেকে এই অফসেটের পরে পাঠান (যেমন "3600s")।
follow_user_timezoneboolযখন true, প্রতিটি ডিভাইস তার স্থানীয় টাইমজোনে at সময়ে বার্তাটি গ্রহণ করে।
past_timezones_behaviourenumPAST_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): যারা ইতিমধ্যে ক্যাপে পৌঁছেছে তাদের সফট-এভয়েড করুন (তারা এখনও অ্যানালিটিক্সের জন্য গণনা করা হয়)।
{ "value": 500, "bucket": "1s", "avoid": false }

সেন্ড থ্রটল করে। value হল প্রতি bucket এ বার্তা; সাধারণ bucket হল "1s"

Platform enum

Anchor link to

IOS, ANDROID, OSX, WINDOWS, AMAZON, SAFARI, CHROME, FIREFOX, IE, EMAIL, BAIDU_ANDROID, HUAWEI_ANDROID, SMS, WEB, KAKAO, TELEGRAM, LINE, WHATS_APP, VIBER

MessageType enum

Anchor link to
  • MESSAGE_TYPE_UNSPECIFIED: MESSAGE_TYPE_MARKETING এর সমতুল্য।
  • MESSAGE_TYPE_MARKETING: কন্ট্রোল-গ্রুপ ফিল্টারিং এবং ফ্রিকোয়েন্সি ক্যাপিংয়ের অধীন।
  • MESSAGE_TYPE_TRANSACTIONAL: কন্ট্রোল-গ্রুপ ফিল্টারিং এবং ফ্রিকোয়েন্সি ক্যাপিং এড়িয়ে যায়। অর্ডার কনফার্মেশন, OTPs, এবং অনুরূপ ক্রিটিক্যাল ফ্লোর জন্য ব্যবহার করুন।

সম্পর্কিত

Anchor link to