ইভেন্ট স্ট্রিমিং ইন্টিগ্রেশন
ইন্টিগ্রেশনের ওভারভিউ
Anchor link toইন্টিগ্রেশনের প্রকার
Anchor link toউৎস: কনফিগার করা ইভেন্ট ট্রিগারের উপর ভিত্তি করে Pushwoosh থেকে আপনার সিস্টেমে HTTP বা gRPC-এর মাধ্যমে ডেটা পাঠানো হয়।
ইন্টিগ্রেশন কীভাবে কাজ করে?
Anchor link toPushwoosh একটি ক্লায়েন্ট-ডিফাইন্ড এন্ডপয়েন্টে কমিউনিকেশন ইভেন্ট ডেটা (যেমন, পুশ/ইমেল অ্যাক্টিভিটি) পাঠায়। ডেটা নির্ধারিত বিরতিতে বা ন্যূনতম ব্যাচ সাইজে পৌঁছানোর পর ব্যাচ স্ট্রিমে পাঠানো হয়।
ডেটা শুধুমাত্র তখনই পাঠানো হয় যদি এটি নির্বাচিত ইভেন্ট, প্ল্যাটফর্ম এবং ঐচ্ছিক ফিল্টার (ক্যাম্পেইন/মেসেজ কোড, লাইভ অ্যাক্টিভিটি) এর সাথে মিলে যায়। ক্লায়েন্ট এন্ডপয়েন্টকে ডেটা গ্রহণ করার জন্য এবং ঐচ্ছিকভাবে একটি স্ট্যাটাস সহ প্রতিক্রিয়া জানানোর জন্য প্রস্তুত থাকতে হবে।
শব্দকোষ
Anchor link toএন্ডপয়েন্ট URL: সার্ভার-সাইড এন্ডপয়েন্ট যা অনুরোধ গ্রহণ করতে দেয়। ক্লায়েন্ট প্রয়োজন হলে একটি পোর্ট নির্দিষ্ট করতে পারে।
উদাহরণ:
https://clientdomainname.com/webhook_endpointhttps://clientdomainname.com:8081/webhook_endpoint
সিঙ্ক্রোনাইজড সত্তার তালিকা
Anchor link to- কমিউনিকেশন পরিসংখ্যান ইভেন্ট (যেমন, Push Sent, Email Delivered)
- পোস্ট ইভেন্ট: আপনার অ্যাপ
postEventএর মাধ্যমে Pushwoosh-এ যে ইভেন্টগুলো পাঠায়, সেগুলো কমিউনিকেশন পরিসংখ্যান ইভেন্ট থেকে আলাদাভাবে স্ট্রিম করা হয়
ব্যবহারের ক্ষেত্র
Anchor link to- রিয়েল-টাইম এনগেজমেন্ট ট্র্যাকিং
ব্যবহারকারীর ইন্টারঅ্যাকশন যেমন পুশ পাঠানো, ইমেল খোলা, বা মেসেজ ডেলিভারি হওয়ার সাথে সাথে মনিটর করুন, যা ক্যাম্পেইনের পারফরম্যান্সের তাৎক্ষণিক দৃশ্যমানতা সক্ষম করে।
- বাহ্যিক অ্যানালিটিক্স ইন্টিগ্রেশন
কেন্দ্রীয় রিপোর্টিং এবং বিশ্লেষণের জন্য তৃতীয় পক্ষের অ্যানালিটিক্স প্ল্যাটফর্মে ইভেন্ট স্ট্রিম করুন।
- স্বয়ংক্রিয় ব্যবহারকারী ওয়ার্কফ্লো
ব্যবহারকারীর আচরণের উপর ভিত্তি করে বাহ্যিক সিস্টেমে (যেমন CRM বা মার্কেটিং অটোমেশন টুল) অ্যাকশন ট্রিগার করুন, যেমন, যখন কোনো ব্যবহারকারী একটি ইমেল খোলে তখন একটি ফলো-আপ মেসেজ পাঠান।
- ডিভাইস তালিকা সিঙ্ক
ডিভাইসগুলো আর মেসেজ গ্রহণ করতে না পারলে সেগুলো আপনার নিজস্ব ডেটাবেস থেকে সরিয়ে দিন। নিবন্ধন বাতিল হওয়া ডিভাইস আপনার সিস্টেমে সিঙ্ক করুন দেখুন।
ইন্টিগ্রেশন সেট আপ করা
Anchor link toইন্টিগ্রেশন সেট আপ করতে:
- আপনার Pushwoosh অ্যাকাউন্টে, Settings > 3rd party Integrations-এ যান, Event streaming integration খুঁজুন, এবং Configure-এ ক্লিক করুন।

- যে উইন্ডোটি খুলবে, সেখানে প্রয়োজনীয় ক্ষেত্রগুলি পূরণ করুন।

এন্ডপয়েন্ট URL লিখুন
Anchor link toEndpoint URL ফিল্ডে, ইভেন্টগুলি যেখানে পাঠানো হবে তার সম্পূর্ণ URL লিখুন, প্রযোজ্য হলে প্রোটোকল এবং পোর্ট সহ।
উদাহরণ
https://clientdomainname.com/webhook_endpointhttps://clientdomainname.com:8081/webhook\_endpoint
ইভেন্ট নির্বাচন করুন
Anchor link toEvents ড্রপডাউন থেকে, অন্তত একটি ইভেন্ট নির্বাচন করুন। যদি কোনোটি নির্বাচন করা না হয়, তাহলে ভ্যালিডেশন ব্যর্থ হবে। ইভেন্টের তালিকা ব্যাকএন্ড দ্বারা পরিচালিত হয় এবং সময়ের সাথে সাথে পরিবর্তিত হতে পারে।
অথোরাইজেশন ক্রেডেনশিয়াল প্রদান করুন
Anchor link toযদি আপনার সার্ভারের প্রয়োজন হয়, তাহলে Authorization ফিল্ডে Authorization হেডারের জন্য সম্পূর্ণ মান লিখুন।
উদাহরণ:
-
Bearer your_token_here -
Basic base64encoded_credentials
ট্রান্সপোর্ট টাইপ বেছে নিন
Anchor link toTransport type ড্রপডাউন থেকে, ইভেন্ট ট্রান্সমিশনের জন্য ডেলিভারি প্রোটোকল বেছে নিন: HTTP বা gRPC। প্রতিটির নির্দিষ্ট আচরণ এবং কনফিগারেশন রয়েছে।
HTTP
Anchor link toHTTP ট্রান্সপোর্ট টাইপের সাথে, Pushwoosh ইভেন্টগুলি একটি ব্যাচে সংগ্রহ করে এবং নিম্নলিখিত শর্তগুলির যেকোনো একটি পূরণ হলে সেটি পাঠায়:
-
১০,০০০টি ইভেন্ট সংগ্রহ করা হয়েছে, অথবা
-
ব্যাচ শুরু হওয়ার পর ৫ মিনিট কেটে গেছে।
একটি ব্যাচ সর্বোচ্চ ১০০টি ইভেন্ট বা ৭৬৮ KiB-এর HTTP অনুরোধে ডেলিভার করা হয়, যে সীমা আগে পূরণ হয়।
ডেটা পাঠানোর পর, একটি সফল প্রতিক্রিয়া পাওয়ার সাথে সাথে সংযোগটি বন্ধ হয়ে যায়।
যদি সার্ভার 5xx, 408 বা 429 স্ট্যাটাস কোড দিয়ে প্রতিক্রিয়া জানায়, Pushwoosh সংজ্ঞায়িত রিট্রাই পলিসি অনুযায়ী অনুরোধটি পুনরায় চেষ্টা করে।
রিট্রাই মেকানিজম
| চেষ্টা | বিলম্ব |
|---|---|
| ১ম | ১ সেকেন্ড |
| ২য় | ১ম চেষ্টার ৩ সেকেন্ড পর |
| ৩য় | ২য় চেষ্টার ৮ সেকেন্ড পর |
যদি সমস্ত রিট্রাই ব্যর্থ হয়, Pushwoosh ডেলিভার না হওয়া ইভেন্টগুলি রেখে দেয় এবং এক মিনিট পরে আবার সেগুলি পাঠানোর চেষ্টা করে। আপনার এন্ডপয়েন্ট যে ইভেন্টগুলি আগেই গ্রহণ করেছে, সেগুলি আবার পাঠানো হয় না।
যদি আপনার এন্ডপয়েন্ট 400, 413 বা 422 দিয়ে প্রতিক্রিয়া জানায়, Pushwoosh অনুরোধটিকে ছোট ছোট অনুরোধে ভাগ করে, যতক্ষণ না প্রত্যাখ্যাত ইভেন্টটি আলাদাভাবে পাঠানো হয়, তারপর সেই ইভেন্টটি বাদ দেয়। অন্য যেকোনো 4xx প্রতিক্রিয়া ব্যাচের ডেলিভারি থামিয়ে দেয়: Pushwoosh সর্বোচ্চ ২ ঘণ্টা ধরে সেটি পুনরায় চেষ্টা করে, তারপর বাদ দেয়।
যদি আপনার এন্ডপয়েন্ট কোনো ইভেন্ট গ্রহণ না করে ২৪ ঘণ্টা ধরে ব্যর্থ হতে থাকে, তাহলে Pushwoosh ইন্টিগ্রেশনটি পজ করে দেয়। পজ করা ইন্টিগ্রেশন দেখুন।
টাইমআউট
একটি অনুরোধের জন্য ডিফল্ট টাইমআউট হল ৬০ সেকেন্ড। এটি সাপোর্টের মাধ্যমে অনুরোধে কাস্টমাইজ করা যেতে পারে।
gRPC
Anchor link togRPC ট্রান্সপোর্ট টাইপ ডেটা ট্রান্সমিশনের জন্য বাইডিরেকশনাল স্ট্রিমিং ব্যবহার করে। gRPC ডকুমেন্টেশনে আরও জানুন।
নিম্নলিখিত শর্তগুলির মধ্যে যেকোনো একটি পূরণ হলে একটি স্ট্রিম খোলা হয়:
- ডেলিভারির জন্য কমপক্ষে ১,০০০টি ইভেন্ট প্রস্তুত
- শেষ স্ট্রিম খোলার পর এক ঘন্টা কেটে গেছে
ইভেন্টগুলি পাঠানোর পরে স্ট্রিমটি বন্ধ হয়ে যায়। এটি নিশ্চিত করে যে অল্প সময়ের মধ্যে প্রতিটি পৃথক ইভেন্টের জন্য একটি নতুন স্ট্রিম খোলা হয় না।
রিট্রাই মেকানিজম
প্রতিটি ইভেন্টে একটি অনন্য uuid অন্তর্ভুক্ত থাকে। যদি একটি ইভেন্ট ব্যর্থ হয়:
- প্রতিক্রিয়ায় একটি
statusঅন্তর্ভুক্ত থাকতে হবে যা"Success"এর সমান নয় - অনুরোধ থেকে আসল
uuidঅন্তর্ভুক্ত করতে হবে
Pushwoosh এই প্রতিক্রিয়ার উপর ভিত্তি করে ডেলিভারি পুনরায় চেষ্টা করবে।
সংযোগ সেটিংস
TLS, keep-alive, বা retry policies এর মতো উন্নত বিকল্পগুলি সাপোর্টের মাধ্যমে ম্যানুয়ালি কনফিগার করা হয় এবং এর জন্য ডেভেলপমেন্টের জড়িত থাকার প্রয়োজন হতে পারে।
পোস্ট ইভেন্ট সক্রিয় করুন
Anchor link toএই টগলটি ডিফল্টরূপে বন্ধ থাকে, তাই শুধুমাত্র কমিউনিকেশন পরিসংখ্যান ইভেন্ট স্ট্রিম হয়। আপনার অ্যাপ postEvent এর মাধ্যমে Pushwoosh-এ যে ইভেন্ট পাঠায় সেগুলোও স্ট্রিম করতে, Allow post events টগলটি চালু করুন।
যে Post events ফিল্ডটি প্রদর্শিত হবে, সেখান থেকে আপনার অ্যাকাউন্টের কোন ইভেন্টগুলি স্ট্রিম করতে হবে তা নির্বাচন করুন। টগলটি চালু থাকা অবস্থায় অন্তত একটি ইভেন্ট প্রয়োজন। যদি আপনার অ্যাকাউন্ট এখনও কোনো ইভেন্ট না পাঠিয়ে থাকে, তাহলে এই তালিকাটি খালি থাকবে যতক্ষণ না আপনি অন্তত একবার postEvent কল করেন।
ইন-অ্যাপ ইম্প্রেশন এবং ক্লিকগুলিও PW_InAppShow এবং PW_InAppClicked হিসাবে এই পোস্ট ইভেন্ট স্ট্রিমের মাধ্যমে পাঠানো হয়। অন্য যেকোনো পোস্ট ইভেন্টের মতোই, প্রতিটি ইভেন্ট অ্যাকাউন্টের জন্য অন্তত একবার ফায়ার হওয়ার পরেই Post events তালিকায় প্রদর্শিত হয়।
প্ল্যাটফর্ম নির্বাচন করুন
Anchor link toPlatforms বিভাগে, ইভেন্ট স্ট্রিমিং সক্রিয় করতে অন্তত একটি প্ল্যাটফর্ম নির্বাচন করুন।

সমর্থিত প্ল্যাটফর্মগুলির মধ্যে রয়েছে:
- iOS, Android, macOS, Windows, Amazon, Safari
- Chrome, Firefox, Internet Explorer, Huawei
- Email, SMS, Line, Xiaomi, WhatsApp
উন্নত ফিল্টার কনফিগার করুন
Anchor link toAdvanced filters বিভাগে, ফিল্টার ব্যবহার করে ইভেন্ট ডেলিভারির মানদণ্ড পরিমার্জন করুন:
-
লাইভ অ্যাক্টিভিটি ইভেন্ট: লাইভ অ্যাক্টিভিটি ইভেন্ট গ্রহণ করতে সক্রিয় করুন। এই ইভেন্টগুলিতে শুধুমাত্র মেটাডেটা থাকে যার মধ্যে
live_activity_idঅন্তর্ভুক্ত। -
ক্যাম্পেইন ফিল্টার: ক্যাম্পেইন কোড দ্বারা ফিল্টার করুন। শুধুমাত্র এই ক্যাম্পেইনগুলির সাথে যুক্ত ইভেন্টগুলি ডেলিভার করা হবে।
-
মেসেজ ফিল্টার: মেসেজ কোড দ্বারা ফিল্টার করুন। শুধুমাত্র এই মেসেজগুলির সাথে যুক্ত ইভেন্টগুলি ডেলিভার করা হবে।

সমস্ত প্রয়োজনীয় ক্ষেত্রগুলি পূরণ করার পরে, আপনার ইন্টিগ্রেশন সংরক্ষণ এবং সক্রিয় করতে Apply বোতামে ক্লিক করুন।
অনুরোধের বিবরণ এবং উদাহরণ
Anchor link to| এন্ডপয়েন্ট | https://exampleclientendpoint.com/webhook_endpoint |
| HTTP অনুরোধ | POST |
| অথেন্টিকেশন | নেই |
| অনুরোধের প্রকার | উৎস |
| অনুরোধের অর্থ | ওয়েবহুক এন্ডপয়েন্টে অনুরোধ পাঠান |
| হেডার | Content-Type: application/json |
অনুরোধের বডির উদাহরণ
{ "event_name": "Email Opened", "message_code": "E682-E6D92B9A-53E24868", "campaign_id": 961048, "platform": "Email", "payload": "Welcome to Headway! 👋", "application_code": "XXXXX-XXXXX", "hwid": "user@example.com", "user_id": "USER_ID", "timestamp": 1723799271, "journey_title": "", "journey_point_title": "5_Welcome_ID_new", "attributes": null}অ্যাট্রিবিউট
Anchor link toকমিউনিকেশন পরিসংখ্যান ইভেন্টগুলির মধ্যে, attributes শুধুমাত্র পুশ ইভেন্টের জন্য পপুলেট হয়, যেখানে পুশ পাঠানো হয়েছিল সেই প্ল্যাটফর্মের জন্য চ্যানেল-নির্দিষ্ট কন্টেন্ট (Android, iOS, ইত্যাদি) থাকে। ইমেল এবং SMS ইভেন্টগুলিতে শুধুমাত্র টপ-লেভেল ফিল্ডগুলি থাকে (event_name, platform, payload, ইত্যাদি)। সেই ইভেন্টগুলির জন্য attributes null থাকে। একটি পপুলেটেড attributes অবজেক্টের মধ্যে, ইভেন্টের নিজস্ব প্ল্যাটফর্মের বাইরের ফিল্ডগুলি খালি মান হিসাবে পাঠানোর পরিবর্তে বাদ দেওয়া হয়। সম্পূর্ণ ফিল্ড তালিকার জন্য webhook.proto দেখুন।
একটি পোস্ট ইভেন্ট তার অ্যাট্রিবিউট কী/ভ্যালু পেয়ারগুলি attributes.event_attributes-এ বহন করে। message_code এবং payload খালি থাকে, কারণ একটি পোস্ট ইভেন্ট কোনো মেসেজ বা ক্যাম্পেইনের সাথে যুক্ত নয়।
প্রতিক্রিয়া
প্রতিক্রিয়ার বডি উপেক্ষা করা হয়। HTTP ট্রান্সপোর্টের ক্ষেত্রে, প্রতিক্রিয়া কোড নির্ধারণ করে যে ইভেন্টগুলো ডেলিভার হয়েছে বলে গণ্য হবে কিনা। 2xx কোডের অর্থ হলো আপনার এন্ডপয়েন্ট সেগুলো গ্রহণ করেছে।
নিবন্ধন বাতিল হওয়া ডিভাইস আপনার সিস্টেমে সিঙ্ক করুন
Anchor link toআপনি যদি ডিভাইস তালিকার নিজস্ব কপি রাখেন, যেমন কোনো CRM বা গ্রাহক ডেটা প্ল্যাটফর্মে, তাহলে Pushwoosh যে ডিভাইসগুলোতে আর পৌঁছাতে পারে না সেগুলো খুঁজে পেতে PW_DeviceUnregistered পোস্ট ইভেন্ট স্ট্রিম করুন। কোনো ডিভাইস তার পুশ সাবস্ক্রিপশন হারালে Pushwoosh এই ইভেন্ট পাঠায়। কারণগুলো জানতে PW_DeviceUnregistered দেখুন।
এমন একটি ইন্টিগ্রেশন থেকে শুরু করুন যা ইতিমধ্যে সেট আপ করা আছে, যেখানে Endpoint URL দেওয়া আছে এবং অন্তত একটি প্ল্যাটফর্ম নির্বাচন করা আছে। তারপর:
- ইন্টিগ্রেশন সেটিংসে Allow post events চালু করুন। পোস্ট ইভেন্ট সক্রিয় করুন দেখুন।
- Post events ফিল্ডে
PW_DeviceUnregisteredনির্বাচন করুন। - যেসব ডিভাইস পুশ টোকেন পায় সেগুলো সম্পর্কেও জানতে
PW_DeviceRegisteredনির্বাচন করুন। - Apply-এ ক্লিক করুন। পরিবর্তনটি ১৫ মিনিটের মধ্যে কার্যকর হয়।
যেকোনো পোস্ট ইভেন্টের মতো, PW_DeviceUnregistered অ্যাকাউন্টের জন্য অন্তত একবার ট্রিগার হওয়ার পরেই কেবল Post events তালিকায় দেখা যায়। পোস্ট ইভেন্ট সক্রিয় করুন দেখুন।
ইভেন্টগুলো প্রসেস করার সময় এই সীমাবদ্ধতাগুলো মনে রাখুন:
- ডিভাইস মেলান
hwidবাuser_idদিয়ে, পুশ টোকেন দিয়ে নয়। ইভেন্টে ডিভাইসেরhwid,user_idএবং প্ল্যাটফর্ম থাকে, কিন্তু পুশ টোকেন বা নিবন্ধন বাতিলের কারণ থাকে না। মেয়াদোত্তীর্ণ টোকেন এবং SDK-এর মাধ্যমে নিবন্ধন বাতিল একই রকম দেখায়। - একই ডিভাইস নতুন টোকেন পেলে কোনো ইভেন্ট পাঠানো হয় না। পুশ টোকেন ছাড়া কোনো ডিভাইস টোকেন পেলেই কেবল
PW_DeviceRegisteredট্রিগার হয়। যে তালিকা পুশ টোকেন অনুযায়ী ডিভাইস সংরক্ষণ করে, তাতে এমন টোকেন থেকে যায় যেগুলো আর কাজ করে না, কারণ কোনো ডিভাইস নতুন টোকেন পেলে কোনো ইভেন্টই ট্রিগার হয় না। - ইমেইল আনসাবস্ক্রাইব করলে ডিভাইস মুছে যায় না। ইমেইলের ক্ষেত্রে ঠিকানাটি ডিভাইসে থেকে যায় এবং Pushwoosh শুধু সেটিকে আনসাবস্ক্রাইবড হিসেবে চিহ্নিত করে। ব্যবহারকারী কোনো ইমেইলের লিংকের মাধ্যমে আনসাবস্ক্রাইব করলে
attributes.event_attributes-এ সেই ইমেইলেরmessage_codeএবংcampaign_id-ও থাকে।
কিছু ইভেন্ট হয়তো কখনোই আপনার এন্ডপয়েন্টে পৌঁছাবে না: আপনার এন্ডপয়েন্ট 400, 413 বা 422 দিয়ে যে ইভেন্ট প্রত্যাখ্যান করে সেটি বাদ দেওয়া হয়, এবং যে ব্যাচ আপনার এন্ডপয়েন্ট ২ ঘণ্টা ধরে অন্য কোনো 4xx কোড দিয়ে প্রত্যাখ্যান করতে থাকে সেটিও বাদ দেওয়া হয় (HTTP দেখুন)। এই ডিভাইসগুলো খুঁজে পেতে নিয়মিত আপনি যে ডিভাইসগুলোকে টার্গেট করেন সেগুলোর সেগমেন্ট CSV-তে এক্সপোর্ট করুন এবং আপনার ডিভাইস তালিকার সঙ্গে তুলনা করুন। সেগমেন্ট এক্সপোর্ট করতে আপনার রোলে Personal data অনুমতি থাকতে হবে। যদি আপনার এন্ডপয়েন্ট ২৪ ঘণ্টা ধরে ব্যর্থ হতে থাকে, তাহলে ইন্টিগ্রেশনটি পজ হয়ে যায় এবং ইভেন্ট আসা বন্ধ হয়ে যায়। পজ করা ইন্টিগ্রেশন দেখুন।
পজ করা ইন্টিগ্রেশন
Anchor link toযদি আপনার HTTP এন্ডপয়েন্টে ডেলিভারি ২৪ ঘণ্টা ধরে ব্যর্থ হতে থাকে এবং এই সময়ের মধ্যে এন্ডপয়েন্ট কোনো ইভেন্ট গ্রহণ না করে, তাহলে Pushwoosh ইন্টিগ্রেশনটি পজ করে দেয়:
- Pushwoosh এন্ডপয়েন্টে ইভেন্ট পাঠানো বন্ধ করে দেয়।
- পাঠানোর অপেক্ষায় থাকা ইভেন্টগুলো বাতিল করা হয়। পজ থাকার সময়ের ইভেন্টগুলো পরে পাঠানো হয় না।
- অ্যাকাউন্টের মালিক পজ সম্পর্কে একটি ইমেইল পান। ইন্টিগ্রেশন সেটিংসে পজ দেখানো হয় না, তাই এই ইমেইলই একমাত্র বিজ্ঞপ্তি।
আপনার এন্ডপয়েন্ট 2xx প্রতিক্রিয়া কোড ফেরত দিলে একটি ইভেন্ট গৃহীত বলে গণ্য হয়। আংশিক ব্যর্থতায় ইন্টিগ্রেশন পজ হয় না: যেকোনো গৃহীত ইভেন্ট ২৪ ঘণ্টার গণনা আবার শুরু করে। gRPC ট্রান্সপোর্টের ইন্টিগ্রেশন পজ হয় না।
স্ট্রিমিং আবার চালু করতে:
- নিশ্চিত করুন যে আপনার এন্ডপয়েন্ট পৌঁছানো যায় এবং
2xxপ্রতিক্রিয়া কোড ফেরত দেয়। - Settings > 3rd party Integrations-এ যান, Event streaming integration খুঁজুন, এবং Configure-এ ক্লিক করুন।
- Apply-এ ক্লিক করুন। কোনো সেটিং পরিবর্তন করার প্রয়োজন নেই। ১৫ মিনিটের মধ্যে স্ট্রিমিং আবার শুরু হয়।
আপনি কীভাবে জানবেন যে ইন্টিগ্রেশন কাজ করছে?
Anchor link toআপনি আপনার কনফিগার করা এন্ডপয়েন্টে Pushwoosh থেকে অনুরোধ পেতে শুরু করবেন।