ওয়েববুক
ওয়েববুক আপনাকে অ্যানালিটিক্স, সিআরএম সিস্টেম এবং মার্কেটিং টুলের মতো বাহ্যিক পরিষেবাগুলিতে জার্নির ডেটা পাঠাতে দেয়। আপনি করতে পারেন:
- যখন একজন গ্রাহক জার্নিতে কোনো পদক্ষেপ নেন, তখন বাহ্যিক সিস্টেমগুলিকে অবহিত করুন
- অ্যানালিটিক্স টুলে গ্রাহকের ডেটা পাঠান
- নির্দিষ্ট জার্নি ইভেন্টে তৃতীয় পক্ষের ইমেল, এসএমএস বা হোয়াটসঅ্যাপ ট্রিগার করুন
ওয়েববুক এলিমেন্ট কীভাবে সেট আপ করবেন
Anchor link toওয়েববুক এলিমেন্ট যোগ করুন
Anchor link toক্যানভাসে Webhook এলিমেন্টটি ড্র্যাগ-এন্ড-ড্রপ করুন। আপনি যেখানে খুশি Webhook স্থাপন করুন, মনে রাখবেন আপনি কোন জার্নির তথ্য তৃতীয় পক্ষের পরিষেবাতে পাঠাতে যাচ্ছেন।

ওয়েববুক ধাপের নাম দিন এবং অনুরোধের URL ও প্রকার উল্লেখ করুন
Anchor link toSTEP NAME ফিল্ডে, ওয়েববুকের জন্য একটি নাম লিখুন। ওয়েববুকগুলিকে তারা যে পরিষেবাগুলিতে ডেটা পাঠায় বা ব্যবহারের ক্ষেত্র অনুযায়ী নাম দেওয়া সুবিধাজনক হতে পারে।
এরপর, URL ফিল্ডে, অনুরোধের URL উল্লেখ করুন যেখানে ডেটা পাঠানো উচিত। URL ফিল্ডের পাশে, REQUEST TYPE ড্রপডাউন থেকে অনুরোধের প্রকার নির্বাচন করুন: GET বা POST।

হেডার কনফিগার করুন
Anchor link toHEADERS বিভাগে, কন্টেন্টের প্রকার সেট করুন।
ডিফল্টরূপে, কন্টেন্টের প্রকার হল application/json। আপনি যে পরিষেবাতে ওয়েববুক পাঠাচ্ছেন তার জন্য যদি অন্য কোনো কন্টেন্টের প্রকারের প্রয়োজন হয়, তাহলে Content-Type হেডার মানে উপযুক্তটি লিখুন।
কন্টেন্টের প্রকারের উদাহরণ হল:
x-www-form-urlencodedtext/plaintext/xml
প্রয়োজনে + ADD HEADER ক্লিক করে অতিরিক্ত হেডার যোগ করুন। আপনি যেকোনো হেডারের পাশের ‘x’ আইকনে ক্লিক করে তা সরাতে পারেন।
আপনার এন্ডপয়েন্টের জন্য প্রয়োজনীয় যেকোনো প্রমাণীকরণ হেডার যোগ করুন, উদাহরণস্বরূপ:
Authorization: Bearer <token>X-Api-Key: <key>Authorization: Basic <base64(user:pass)>
একটি হেডারে শুধুমাত্র একটি স্ট্যাটিক সিক্রেট সমর্থিত। OAuth2 টোকেন-এক্সচেঞ্জ ফ্লো, mTLS, এবং Pushwoosh সাইডে অনুরোধ সাইনিং সমর্থিত নয়। আপনি একটি হেডার সিক্রেটের পরিবর্তে বা তার সাথে এন্ডপয়েন্টটিকে Pushwoosh-এর IP ঠিকানায় সীমাবদ্ধ করতে পারেন। দেখুন Pushwoosh IP addresses।
বিশেষত HTTP বেসিক প্রমাণীকরণের জন্য, নিম্নলিখিতগুলি করুন:
- একটি প্লেইন টেক্সট এডিটর খুলুন এবং আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড কোনো স্পেস ছাড়াই, একটি কোলন দ্বারা পৃথক করে টাইপ করুন। উদাহরণস্বরূপ:
<username>:<password> - এই স্ট্রিংটিকে Base64-এ এনকোড করুন।
- ফলস্বরূপ Base64 স্ট্রিংটি অনুলিপি করুন (উদাহরণস্বরূপ,
<base64-encoded-string>)। - ওয়েববুক সেটিংসে, একটি Authorization হেডার যোগ করুন যার মান হবে:
Basic <base64-encoded-string>। নিশ্চিত করুন যে “Basic” শব্দের পরে একটি স্পেস আছে।

একটি হেডার মানকে গোপন হিসাবে চিহ্নিত করুন
Anchor link toএকটি হেডারের মান মাস্ক করতে তার পাশের চোখ আইকনে ক্লিক করুন। Pushwoosh সেই মানটি সর্বত্র লুকিয়ে রাখে যেখানে এটি পরিষেবা থেকে বেরিয়ে যেতে পারে: UI-তে, API প্রতিক্রিয়াগুলিতে এবং জার্নির সংস্করণ ইতিহাসে।

- স্বয়ংক্রিয় মাস্কিং। যে হেডারগুলির নাম শংসাপত্রের মতো দেখায় সেগুলি স্বয়ংক্রিয়ভাবে মাস্ক করা হয়, এমনকি যদি আপনি কখনও চোখ আইকনে ক্লিক না করেন। এর মধ্যে রয়েছে
Authorization,Proxy-Authorization,Cookie,Set-Cookie, এবংtoken,secret,password,credential,auth, বাapi-key/api_key/apikey(একটি হাইফেন, একটি আন্ডারস্কোর, বা কোনো বিভাজক ছাড়াই) ধারণকারী যেকোনো নাম। - একটি মাস্ক করা মান পরিবর্তন করুন।
••••••••দেখানো ফিল্ডে ক্লিক করুন এবং নতুন মান টাইপ করুন। সংরক্ষিত মান প্রকাশ করার জন্য কোনো বোতাম নেই। মাস্ক দেখানো অবস্থায় চোখ আইকনটি লক থাকে। একটি হেডার থেকে গোপন পতাকা সরাতে, প্রথমে একটি নতুন মান টাইপ করুন, তারপর আইকনে ক্লিক করুন। - একটি মাস্ক করা হেডারের নাম পরিবর্তন করুন। একটি হেডারের নাম পরিবর্তন করা যার মান বর্তমানে মাস্ক হিসাবে দেখানো হচ্ছে, সেই মানটি পরিষ্কার করে দেয়। নতুন নামের অধীনে এটি আবার প্রবেশ করান। একটি হেডারের নাম পরিবর্তন করা যা বর্তমানে আপনার টাইপ করা একটি মান ধারণ করে, সেই মানটি রাখে।
JSON অনুরোধের বডি যোগ করুন
Anchor link toDATA বিভাগে, আপনার JSON অনুরোধের বডি লিখুন। নিশ্চিত করুন যে অনুরোধের বডি সঠিক JSON ফর্ম্যাটে আছে।
উদাহরণ:
{ "hwid": "{{device:hwid}}"}ডাইনামিক ডেটা এবং ম্যাক্রো ব্যবহার করুন
Anchor link toDATA BUILDER প্যানেল আপনাকে সরাসরি আপনার JSON অনুরোধের বডিতে ডাইনামিক তথ্য (যেমন ব্যবহারকারী, ডিভাইস, ট্যাগ বা ইভেন্ট ডেটা) প্রবেশ করতে দেয়। ডাইনামিক ডেটার মাধ্যমে, আপনি জার্নির মধ্য দিয়ে অগ্রসর হওয়া স্বতন্ত্র ব্যবহারকারীর জন্য নির্দিষ্ট মান অন্তর্ভুক্ত করতে পারেন।
এর জন্য:
- একটি বিভাগ নির্বাচন করুন। আপনি তিনটি বিভাগ থেকে ডেটা টানতে পারেন:
-
ডিভাইস: যখন আপনার ব্যবহারকারীর ডিভাইসের সাথে যুক্ত প্রযুক্তিগত তথ্যের প্রয়োজন হয় তখন ডিভাইস ডেটা ব্যবহার করুন।
-
ট্যাগ: যখন আপনি ব্যবহারকারীর প্রোফাইলে সংরক্ষিত তথ্য পাঠাতে চান তখন ট্যাগ ডেটা ব্যবহার করুন।
-
ইভেন্ট: যখন ওয়েববুকের জার্নির ট্রিগারিং ইভেন্ট থেকে মান পাঠানো উচিত তখন ইভেন্ট ডেটা ব্যবহার করুন।
- একটি প্যারামিটার নির্বাচন করুন (উদাহরণস্বরূপ, HWID, প্রিয় বিভাগ, ইত্যাদি)।
- Pushwoosh একটি ম্যাক্রো তৈরি করে যা দেখতে এইরকম:
{{tag:Language}}- ম্যাক্রোটি অনুলিপি করুন এবং DATA বিভাগে আপনার JSON বডিতে পেস্ট করুন।
যখন একটি লাইভ জার্নিতে ওয়েববুক চলে, Pushwoosh স্বয়ংক্রিয়ভাবে সেই ব্যবহারকারীর জন্য প্রকৃত মান দিয়ে ম্যাক্রোটি প্রতিস্থাপন করে।

অতিরিক্ত প্লেসহোল্ডার ম্যানুয়ালি টাইপ করুন
Anchor link toএকটি প্লেসহোল্ডার হল একটি ম্যাক্রো যা আপনি DATA BUILDER বিভাগ থেকে তৈরি করার পরিবর্তে হাতে টাইপ করেন। DATA BUILDER প্যানেল শুধুমাত্র ডিভাইস, ট্যাগ এবং ইভেন্ট ডেটা কভার করে। এর পরিবর্তে এই প্লেসহোল্ডারগুলি সরাসরি URL, HEADERS, বা DATA বিভাগে টাইপ করুন। এগুলি প্যানেলে প্রদর্শিত হয় না:
| প্লেসহোল্ডার | মান |
|---|---|
{{application_code}} | ভ্রমণকারী যে অ্যাপের অন্তর্গত, তার অ্যাপ্লিকেশন কোড। |
{{traveler:id}} | এই জার্নি রানের জন্য Pushwoosh এই ভ্রমণকারীকে যে আইডি বরাদ্দ করে। |
{{journey:uuid}} | এই জার্নির UUID। |
{{journey:name}} | এই জার্নির নাম। |
{{point:uuid}} | এই Webhook ধাপের UUID। |
{{point:name}} | এই Webhook ধাপের STEP NAME। |
{{event:name}} | এই ভ্রমণকারীর জার্নিতে প্রবেশের ট্রিগারকারী ইভেন্টের নাম। |
{{device:platform}} | ডিভাইসের প্ল্যাটফর্ম, উদাহরণস্বরূপ Android বা iOS। |
{{device:push_subscribed}} | ভ্রমণকারী পুশ নোটিফিকেশনে সাবস্ক্রাইব করা আছে কিনা — true বা false। |
{{now}} | বর্তমান তারিখ এবং সময়, ISO 8601, UTC। |
{{now:unix_ms}} | বর্তমান সময় ইউনিক্স মিলিসেকেন্ড হিসাবে। |
{{tags:all}} | ভ্রমণকারীর ডিভাইসের জন্য প্রতিটি ট্যাগের মান, একটি JSON অবজেক্ট হিসাবে। এটি উদ্ধৃতিচিহ্ন ছাড়া ব্যবহার করুন, উদাহরণস্বরূপ "user_properties": {{tags:all}}। এটি উদ্ধৃত করলে অবজেক্টটি একটি এস্কেপড স্ট্রিংয়ে পরিণত হয়। |
JSON বডিতে একটি প্লেসহোল্ডারের ধরন বজায় রাখুন
Anchor link toউদ্ধৃতিচিহ্নের ভিতরের একটি প্লেসহোল্ডার সর্বদা একটি JSON স্ট্রিং হয়ে যায়, মানটির ধরন যাই হোক না কেন। একই প্লেসহোল্ডার নিজে থেকে, তার চারপাশে কোনো উদ্ধৃতিচিহ্ন ছাড়াই, মানের নিজস্ব ধরন বজায় রাখে: একটি সংখ্যা একটি সংখ্যা থাকে, true/false একটি বুলিয়ান থাকে, এবং একটি তালিকা একটি JSON অ্যারে হয়ে যায়। একটি উদ্ধৃতিচিহ্নহীন প্লেসহোল্ডার অবশ্যই ফিল্ডের সম্পূর্ণ মান হতে হবে — "age": {{tag:Age}} কাজ করে, কিন্তু "note": prefix{{tag:Age}}suffix কাজ করে না, কারণ উদ্ধৃতিচিহ্নের বাইরের সবকিছু ঠিক যেমন টাইপ করা হয়েছে লেখা হয় এবং অতিরিক্ত অক্ষরগুলি JSON ভেঙে দেয়।
{ "age": {{tag:Age}}, "age_as_text": "{{tag:Age}}"}এখানে age ট্যাগের সংখ্যাসূচক মান (34) পাঠায়, যখন age_as_text স্ট্রিং "34" পাঠায়। গ্রহণকারী প্রান্তের ফিল্ড যা আশা করে তা ব্যবহার করুন। যদি ট্যাগের কোনো মান না থাকে, একটি উদ্ধৃতিচিহ্নহীন প্লেসহোল্ডার এখনও একটি খালি স্ট্রিংয়ে সমাধান করে, একটি সংখ্যা বা false নয়। Add the JSON request body এর অধীনে নোটটি দেখুন।
ওয়েববুক প্রতিক্রিয়ার ডেটা ভেরিয়েবলে ম্যাপ করুন
Anchor link toডেটা পাঠানোর পাশাপাশি, Webhook ধাপটি আপনার পরিষেবা থেকে পাঠানো উত্তরের মানগুলি রাখতে পারে। আপনি প্রতিটি মানকে একটি নাম (Attribute) দেন। পরবর্তী ধাপগুলি সেই নামটি ব্যবহার করতে পারে যেভাবে তারা অন্যান্য ওয়েববুক প্রতিক্রিয়ার মান ব্যবহার করে। উদাহরণস্বরূপ, Update user profile দিয়ে একটি ট্যাগ সেট করুন, অথবা পরিষেবা থেকে ফেরত আসা একটি তারিখ থেকে একটি Time Delay সময়সূচী করুন। একটি সম্পূর্ণ জার্নি উদাহরণের জন্য, দেখুন Using webhook response data in your journey।
উদাহরণ: CRM একটি ব্যবহারকারী আইডি ফেরত দেয়। আপনি এটি Attribute crm_user_id হিসাবে সংরক্ষণ করেন। তারপর Update user profile এটি একটি ট্যাগে লেখে।
আপনি কিছু ম্যাপ করার আগে, পরিষেবা থেকে একটি নমুনা প্রতিক্রিয়া পান। আপনার ডেভেলপারকে জিজ্ঞাসা করুন, অথবা একটি পরীক্ষার পরে Calls log-এ একটি সফল কল খুলুন এবং প্রতিক্রিয়ার বডি দেখুন। Path তৈরি করার জন্য আপনার সেই উত্তর থেকে ফিল্ডের নামগুলি প্রয়োজন।
RESPONSE MAPPING বিভাগে, + ADD MAPPING ক্লিক করুন এবং আপনি যে প্রতিটি মান ক্যাপচার করতে চান তার জন্য দুটি ফিল্ড পূরণ করুন:
- Path: প্রতিক্রিয়া JSON বডির ভিতরে মানের অবস্থান, স্তরগুলির মধ্যে বিন্দু সহ
- Attribute: আপনি জার্নিতে পরে যে নামটি ব্যবহার করবেন

উদাহরণস্বরূপ, যদি আপনার CRM প্রতিক্রিয়া জানায়:
{ "data": { "user": { "id": "789xyz" } }}- Path সেট করুন
data.user.id। - Attribute সেট করুন
crm_user_id।
একজন ব্যবহারকারী এই ধাপটি পার করার পরে, পরবর্তী এলিমেন্টগুলি Attribute crm_user_id বেছে নিতে পারে যেভাবে তারা অন্যান্য ওয়েববুক প্রতিক্রিয়ার মান বেছে নেয়।
Condition split এগুলি সরাসরি ব্যবহার করতে পারে না। ম্যাপ করা ওয়েববুক মানগুলির কোনো প্রকার নেই। প্রথমে মানটি একটি ট্যাগ হিসাবে সংরক্ষণ করুন, তারপর সেই ট্যাগের উপর ভিত্তি করে শাখা তৈরি করুন। দেখুন Compare a webhook value in Condition split।
একটি একক ফিল্ডের জন্য, Path এবং মানগুলি এইভাবে কাজ করে:
একটি অ্যারের প্রতিটি এলিমেন্ট ম্যাপ করুন
Anchor link toকখনও কখনও একটি ওয়েববুক প্রতিক্রিয়াতে কেবল একটি মান থাকে না। এতে একটি তালিকা থাকে, যেমন একটি অর্ডারের প্রতিটি পণ্য, একটি কার্টের প্রতিটি আইটেম, বা একটি অনুসন্ধান থেকে প্রতিটি ফলাফল। প্রতিক্রিয়া ম্যাপিং সাধারণত প্রতি ফিল্ডে একটি মান ক্যাপচার করে, তাই এটি ছাড়া আপনি সেই তালিকা থেকে কেবল একটি ম্যাপ করা মান পেতেন, এবং বাকিগুলি হারিয়ে যেত।
তালিকাটি যেখানে আছে সেখানে Path ফিল্ডে * রাখুন। Pushwoosh তখন তালিকার প্রতিটি আইটেম থেকে একটি মান গ্রহণ করে, কেবল একটি অবস্থান থেকে নয়। উদাহরণস্বরূপ, যদি তালিকাটির নাম items হয় এবং প্রতিটি আইটেমের item_name থাকে, তবে Path সেট করুন items.*.item_name।
RESPONSE MAPPING-এ, + ADD MAPPING ক্লিক করুন এবং দুটি ফিল্ড যথারীতি পূরণ করুন, * দিয়ে তালিকা চিহ্নিত করে:
- Path: প্রতিক্রিয়ার ভিতরে মানের অবস্থান,
*যেখানে তালিকাটি আছে। উদাহরণ:items.*.item_name। - Attribute: আপনি পরে যে নামটি ব্যবহার করবেন। আপনি এখানে যা লিখবেন তা নির্ধারণ করে আপনি কীভাবে ফলাফলগুলি ফেরত পাবেন:
- নামের মধ্যে
{n}অন্তর্ভুক্ত করুন, উদাহরণস্বরূপitem_{n}, প্রতিটি আইটেমকে তার নিজস্ব মান হিসাবে পেতে, 1 থেকে সংখ্যায়িত:item_1,item_2,item_3, ইত্যাদি।{n}নামের যেকোনো জায়গায় বসতে পারে, উদাহরণস্বরূপitem_{n}_sku। {n}বাদ দিন, উদাহরণস্বরূপitem_names, প্রতিটি আইটেমকে একটি মানে একত্রিত করতে, কমা দ্বারা পৃথক করা:Sofa, Lamp, Rug।
- নামের মধ্যে

Path তালিকার অবস্থান 0 থেকে শুরু হয় (items.0.item_name হল প্রথম আইটেম)। {n} দিয়ে তৈরি Attribute নাম 1 থেকে শুরু হয় (item_1 হল সেই প্রথম আইটেম)। এগুলি দুটি ভিন্ন সংখ্যায়ন।
যদি আপনার তালিকা থেকে কেবল একটি আইটেম প্রয়োজন হয়, তবে * এর পরিবর্তে Path-এ একটি সংখ্যা ব্যবহার করুন, উদাহরণস্বরূপ items.0.item_name।
উদাহরণ
Anchor link toযদি আপনার CRM প্রতিক্রিয়া জানায়:
{ "items": [ { "item_name": "Sofa" }, { "item_name": "Lamp" }, { "item_name": "Rug" } ]}- তিনটি পৃথক মান পেতে Path সেট করুন
items.*.item_nameএবং Attribute সেট করুনitem_{n}:item_1হল Sofa,item_2হল Lamp,item_3হল Rug। - একটি মান পেতে পরিবর্তে Attribute সেট করুন
item_names:item_namesহলSofa, Lamp, Rug।
আপনি ম্যাপ করা মানগুলি পরে জার্নিতে অন্য যেকোনো ওয়েববুক প্রতিক্রিয়া অ্যাট্রিবিউটের মতো ব্যবহার করতে পারেন:
- Update user profile: একটি ট্যাগে একটি মান সংরক্ষণ করুন
- Time Delay: প্রতিক্রিয়া থেকে একটি তারিখ পর্যন্ত অপেক্ষা করুন
- Dynamic Content: বার্তার বিষয়বস্তু ব্যক্তিগতকৃত করুন
Condition split এগুলি সরাসরি ব্যবহার করতে পারে না। ম্যাপ করা ওয়েববুক মানগুলির কোনো প্রকার নেই। প্রথমে মানটি একটি ট্যাগ হিসাবে সংরক্ষণ করুন, তারপর সেই ট্যাগের উপর ভিত্তি করে শাখা তৈরি করুন। দেখুন Compare a webhook value in Condition split।
টাইমআউট, রিট্রাই এবং ব্যর্থ অনুরোধ
Anchor link toPushwoosh একটি প্রতিক্রিয়ার জন্য 10 সেকেন্ড পর্যন্ত অপেক্ষা করে। অনুরোধ পাঠানো এবং প্রতিক্রিয়া প্রক্রিয়াকরণ সহ পুরো Webhook ধাপটি 30 সেকেন্ডে সীমাবদ্ধ।
রিট্রাই
Anchor link toএকটি 500, 502, 503, বা 504 প্রতিক্রিয়া, বা একটি নেটওয়ার্ক ত্রুটি যেমন একটি সংযোগ ব্যর্থতার উপর, Pushwoosh হাল ছেড়ে দেওয়ার আগে অনুরোধটি একবার পুনরায় চেষ্টা করে। একটি অনুরোধ যা সময়সীমা অতিক্রম করে তা পুনরায় চেষ্টা করা হয় না — নিচে What happens when a request fails দেখুন। অন্য কোনো নন-2xx প্রতিক্রিয়াও পুনরায় চেষ্টা করা হয় না।
রেট লিমিট
Anchor link toPushwoosh প্রতি সেকেন্ডে একটি অ্যাকাউন্ট কতগুলি ওয়েববুক অনুরোধ পাঠাতে পারে তা সীমাবদ্ধ করে। সীমাটি বাস্তব ট্র্যাফিক শিখরের চেয়ে যথেষ্ট বড় আকারের, তাই সাধারণ জার্নি প্রভাবিত হয় না। একটি বিস্ফোরণ যা এটি অতিক্রম করে তা ব্যর্থ হওয়ার আগে ঘরের জন্য সংক্ষিপ্তভাবে অপেক্ষা করে।
এন্ডপয়েন্ট কুলডাউন
Anchor link toযদি একটি এন্ডপয়েন্ট পরপর কয়েকবার ব্যর্থ হয়, Pushwoosh প্রতিটি ভ্রমণকারীর উপর একটি ভাঙা এন্ডপয়েন্ট পুনরায় চেষ্টা করার পরিবর্তে কিছু সময়ের জন্য এটিতে অনুরোধ পাঠানো বন্ধ করে দেয়, 30 সেকেন্ড থেকে শুরু করে এবং আরও ব্যর্থতার উপর 5 মিনিট পর্যন্ত দ্বিগুণ হয়। একটি একক সফল অনুরোধ এটি পরিষ্কার করে এবং স্বাভাবিক ডেলিভারি পুনরায় শুরু করে।
একটি অনুরোধ ব্যর্থ হলে কী হয়
Anchor link toWebhook এলিমেন্টের ব্যর্থ অনুরোধের জন্য কোনো পৃথক শাখা নেই। নিম্নলিখিত যেকোনো একটি এই ধাপে ভ্রমণকারীকে জার্নি থেকে বাদ দেয়:
| কারণ | কী এটি ট্রিগার করে |
|---|---|
| ব্লক করা এন্ডপয়েন্ট ঠিকানা | URLটি ব্যক্তিগত, অভ্যন্তরীণ, লুপব্যাক বা লিঙ্ক-লোকাল, যার মধ্যে ক্লাউড মেটাডেটা এন্ডপয়েন্টও রয়েছে |
| রেট লিমিট | অ্যাকাউন্টের প্রতি-সেকেন্ড ওয়েববুক অনুরোধের সীমা অতিক্রম করা হয়েছে এবং সংক্ষিপ্ত অপেক্ষার সময় কোনো জায়গা খোলা হয়নি |
| এন্ডপয়েন্ট কুলডাউন | এন্ডপয়েন্টটি পরপর কয়েকবার ব্যর্থ হয়েছে এবং Pushwoosh সাময়িকভাবে এটি এড়িয়ে যাচ্ছে |
| টাইমআউট | 10 সেকেন্ডের মধ্যে কোনো প্রতিক্রিয়া নেই, বা ধাপটি তার 30-সেকেন্ডের সীমা অতিক্রম করেছে |
| নেটওয়ার্ক ত্রুটি | অনুরোধটি এন্ডপয়েন্টে পৌঁছাতে পারেনি |
| নন-2xx প্রতিক্রিয়া | এন্ডপয়েন্টটি একটি ত্রুটি স্থিতি ফেরত দিয়েছে যা পুনরায় চেষ্টা করা হয় না, বা একবার পুনরায় চেষ্টা করা হয়েছিল এবং আবার ব্যর্থ হয়েছে |
দেখুন Request error।
যদি আপনি এখানে ভ্রমণকারীদের হারাতে না পারেন, তবে আপনার এন্ডপয়েন্টকে সর্বদা একটি 2xx প্রতিক্রিয়া ফেরত দিতে বলুন এবং প্রতিক্রিয়ার বডিতে যেকোনো ব্যর্থতার অবস্থা রাখুন, উদাহরণস্বরূপ একটি মান হিসাবে যা আপনার Response mapping তুলতে পারে।
এটি প্রতিটি Webhook ধাপের জন্য প্রযোজ্য, যার মধ্যে আগে তৈরি করাগুলিও রয়েছে। একটি এন্ডপয়েন্ট ঠিকানা যা এখন উপরের ব্লক-ঠিকানা নিয়মের সাথে মেলে তা একইভাবে ব্যর্থ হতে শুরু করবে।
একটি ব্যর্থ অনুরোধের বিপরীতে, একটি প্রতিক্রিয়া যা আসে কিন্তু পরিষ্কারভাবে ম্যাপ হয় না, যেমন অবৈধ JSON, একটি অমীমাংসিত Path, বা 64 KB এর বেশি বডি, ভ্রমণকারীকে বাদ দেয় না। উপরের Response mapping এর অধীনে নোটটি দেখুন।
ওয়েববুক পরীক্ষা করুন
Anchor link toআপনার ওয়েববুক কনফিগারেশন সঠিক এবং অনুরোধটি সফলভাবে পাঠানো হয়েছে তা যাচাই করতে Test webhook ক্লিক করুন।
যদি একটি হেডার এখনও সংরক্ষিত মাস্ক দেখায়, Pushwoosh পরীক্ষার অনুরোধের জন্য আসল, সংরক্ষিত মানটি পূরণ করে। মানটি আপনার ব্রাউজারে কখনও প্রদর্শিত হয় না।
এই প্রতিস্থাপনটি কেবল এই সঠিক ধাপে ইতিমধ্যে সংরক্ষিত একটি হেডারের জন্য কাজ করে। একটি ধাপ যা আপনি এখনও সংরক্ষণ করেননি, বা একটি যা আপনি সবেমাত্র অনুলিপি করেছেন, তার মাস্কের পিছনে কোনো সংরক্ষিত মান নেই, তাই Pushwoosh সেই হেডার ছাড়াই পরীক্ষার অনুরোধ পাঠায়।
একটি সফল পরীক্ষার (বা একটি লাইভ কল) পরে, Calls log খুলুন, সারিটি প্রসারিত করুন এবং প্রতিটি Path এর সাথে প্রতিক্রিয়ার বডি তুলনা করুন। ফিল্ডটি অবশ্যই Path এর মতোই বিদ্যমান থাকতে হবে। যদি অনুরোধটি সফল হয় কিন্তু পরবর্তী ধাপে কোনো মান না থাকে, তবে Path সাধারণত প্রতিক্রিয়ার সাথে মেলে না। Webhook ধাপটি এর জন্য কোনো ত্রুটি দেখাবে না।
আপনার কনফিগারেশন সংরক্ষণ করুন
Anchor link toআপনার ওয়েববুক কনফিগারেশন সংরক্ষণ করতে Save ক্লিক করুন।
কল লগ
Anchor link toএই ধাপের জন্য Pushwoosh আসলে কী পাঠিয়েছে তা দেখতে পয়েন্টের ড্রয়ারে Calls log ট্যাবটি খুলুন: সময়, ব্যবহারকারী, ফলাফল এবং সময়কাল, 30 দিন পর্যন্ত।
ফলাফল দ্বারা ফিল্টার করুন (Success, HTTP error, No response) অথবা সঠিক User ID বা HWID দ্বারা অনুসন্ধান করুন। একটি সারি ক্লিক করে এটি প্রসারিত করুন এবং অনুরোধ (পদ্ধতি, URL, এবং বডি) এবং, ফলাফলের উপর নির্ভর করে, হয় প্রতিক্রিয়া (স্থিতি এবং বডি) বা ত্রুটি পাঠ্য দেখুন। Duration পুরো ধাপটি কভার করে, যার মধ্যে একটি স্বয়ংক্রিয় রিট্রাই-এ ব্যয় করা সময়ও রয়েছে।