# আপনার জার্নিতে ওয়েববুক রেসপন্স ডেটা ব্যবহার করা

## ওভারভিউ

যখন আপনি [একটি ওয়েববুক রেসপন্স থেকে মান ম্যাপ করেন](/bn/product/customer-journey/journey-elements/channels/webhook/#map-webhook-response-data-to-variables), Pushwoosh সেগুলিকে ভেরিয়েবল হিসাবে সংরক্ষণ করে যা আপনি জার্নির পরবর্তী পর্যায়ে ব্যবহার করতে পারেন, যেখানে আপনি অন্যথায় একটি [ইভেন্ট অ্যাট্রিবিউট](/bn/product/audience-data-and-segmentation/events/#2-set-attributes) ব্যবহার করতেন।

<Aside type="note">
একটি **Webhook** এলিমেন্ট যোগ করতে এবং **Response mapping** কনফিগার করতে, [Webhook](/bn/product/customer-journey/journey-elements/channels/webhook/#map-webhook-response-data-to-variables) দেখুন।
</Aside>

## Update user profile ব্যবহার করে একটি ওয়েববুক ভ্যালু ট্যাগ হিসাবে সংরক্ষণ করুন

একটি [**Webhook**](/bn/product/customer-journey/journey-elements/channels/webhook/#map-webhook-response-data-to-variables) একটি বাহ্যিক সিস্টেম থেকে ডেটা ফেরত দিতে পারে, যেমন একটি CRM ইউজার আইডি বা সাবস্ক্রিপশন স্ট্যাটাস, যা Pushwoosh এখনো ব্যবহারকারীর প্রোফাইলে সংরক্ষণ করে না। [**Update user profile**](/bn/product/customer-journey/journey-elements/flow-controls/update-user-profile/#use-a-value-from-a-webhook-response) ম্যাপ করা মানগুলিকে [ট্যাগ](/bn/product/audience-data-and-segmentation/user-data-tags/tags/) হিসাবে সংরক্ষণ করে যাতে আপনি সেগুলিকে [সেগমেন্ট](/bn/product/audience-data-and-segmentation/segmentation/), [ডাইনামিক কনটেন্ট](/bn/product/personalization/dynamic-content/), এবং পরবর্তী জার্নির ধাপে ব্যবহার করতে পারেন।

### উদাহরণ: একটি CRM ইউজার আইডি ট্যাগ হিসাবে সংরক্ষণ করুন

আপনার অ্যাপে একজন নতুন ব্যবহারকারী সাইন আপ করলে, জার্নি আপনার CRM-এ একটি ম্যাচিং রেকর্ড তৈরি করে। ফেরত আসা CRM ইউজার আইডি একটি ট্যাগ হিসাবে সংরক্ষণ করলে আপনি পরে একই CRM রেকর্ডটি রেফারেন্স বা আপডেট করতে পারবেন, উদাহরণস্বরূপ অন্য একটি জার্নি বা একটি ফলো-আপ ওয়েববুক কল থেকে, ব্যবহারকারী প্রতিবার জার্নিতে পুনরায় প্রবেশ করার সময় একটি ডুপ্লিকেট রেকর্ড তৈরি করার পরিবর্তে।

**জার্নি ফ্লো:** Trigger-based Entry → Webhook → Update user profile → Exit

১. `SignUp` ইভেন্টে **Trigger-based Entry** সহ একটি জার্নি তৈরি করুন।
২. এন্ট্রি স্টেপের পরে একটি **Webhook** এলিমেন্ট যোগ করুন। এটির একটি নাম দিন (উদাহরণস্বরূপ, `Create user in CRM`) এবং আপনার CRM create-user এন্ডপয়েন্টে রিকোয়েস্ট URL সেট করুন।
৩. **Response mapping**-এ, **Path** সেট করুন রেসপন্সের আইডি ফিল্ডে (উদাহরণস্বরূপ, `data.user.id`) এবং **Attribute** সেট করুন `crm_user_id`-এ।

<img src="/journey-elements-webhook-response-data-1.webp" alt="Path data.user.id এবং Attribute crm_user_id সহ ওয়েববুক রেসপন্স ম্যাপিং" />

৪. **Webhook** স্টেপের পরে একটি **Update user profile** এলিমেন্ট যোগ করুন।

৫. **Dynamic Tag Value**-তে, **+ Dynamic Value**-তে ক্লিক করুন। **Tag**-এ, যে ট্যাগটি CRM আইডি সংরক্ষণ করে সেটি নির্বাচন করুন (প্রয়োজনে আগে থেকে তৈরি করুন)। **Event**-এ, আপনার দেওয়া নাম অনুসারে ওয়েববুক স্টেপটি নির্বাচন করুন (`Create user in CRM`)। **Dynamic Value**-তে, `crm_user_id` নির্বাচন করুন।
<img src="/journey-elements-webhook-response-data-2.webp" alt="CRM ID-এর জন্য ট্যাগ, ইভেন্ট ওয়েববুক স্টেপ, এবং ডাইনামিক ভ্যালু crm_user_id সহ ডাইনামিক ট্যাগ ভ্যালু" />
৬. শাখার শেষে **Exit** যোগ করুন।
<img src="/journey-elements-webhook-response-data-3.webp" alt="Update user profile স্টেপের পরে Exit দিয়ে শেষ হওয়া জার্নি শাখা" />

<Aside type="caution">
যদি কোনো ব্যবহারকারীর জন্য ওয়েববুক ভ্যালু অনুপস্থিত থাকে (রেসপন্সটি JSON ছিল না, **Path** সমাধান করা যায়নি, বা কলটি ব্যর্থ হয়েছে), Pushwoosh সেই ট্যাগ আপডেটটি এড়িয়ে যায়। ট্যাগটি তার আগের মান ধরে রাখে বা আনসেট থাকে, এবং জার্নি এই ধাপে কোনো ত্রুটি ছাড়াই চলতে থাকে। আপনার ম্যাপিং নিশ্চিত করতে লঞ্চের আগে [**Test webhook**](/bn/product/customer-journey/journey-elements/channels/webhook/#test-the-webhook) চালান। [আরও জানুন](/bn/product/customer-journey/journey-elements/flow-controls/update-user-profile/#use-a-value-from-a-webhook-response)।
</Aside> 

## Time Delay ব্যবহার করে একটি ওয়েববুক ভ্যালু থেকে একটি ডিলে নির্ধারণ করুন

ভিজিটের তারিখ, রিনিউয়ালের শেষ তারিখ, এবং ডেলিভারির সময়সীমা প্রায়শই একটি বাহ্যিক বুকিং বা বিলিং সিস্টেমে থাকে। একটি [**Webhook**](/bn/product/customer-journey/journey-elements/channels/webhook/#map-webhook-response-data-to-variables) API রেসপন্স থেকে তারিখটি ম্যাপ করার পরে, [**Time Delay**](/bn/product/customer-journey/journey-elements/flow-controls/time-delay/#use-a-date-from-a-webhook-response) সেই মুহূর্ত পর্যন্ত জার্নিকে বিরতি দিতে পারে, উদাহরণস্বরূপ একটি অ্যাপয়েন্টমেন্টের ২ দিন আগে, যাতে পরবর্তী বার্তাটি সময়মতো পাঠানো হয়।

### উদাহরণ: রেসপন্সের একটি তারিখ থেকে একটি রিমাইন্ডার নির্ধারণ করুন

একজন ব্যবহারকারী আপনার অ্যাপে একটি অ্যাপয়েন্টমেন্ট বুক করে। জার্নি আপনার বুকিং সিস্টেম থেকে ভিজিটের তারিখ নিয়ে আসে এবং ভিজিটের ২ দিন আগে একটি পুশ রিমাইন্ডার পাঠায়।


১. `AppointmentBooked` ইভেন্টে **Trigger-based Entry** সহ একটি জার্নি তৈরি করুন।
২. এন্ট্রি স্টেপের পরে একটি **Webhook** এলিমেন্ট যোগ করুন। এটির একটি নাম দিন (উদাহরণস্বরূপ, `Get appointment details`) এবং আপনার বুকিং সিস্টেম API-তে রিকোয়েস্ট URL সেট করুন।
৩. **Response mapping**-এ, **Path** সেট করুন রেসপন্সের তারিখ ফিল্ডে (উদাহরণস্বরূপ, `appointment.date`) এবং **Attribute** সেট করুন `visit_date`-এ।
<img src="/journey-elements-webhook-response-data-4.webp" alt="appointment.date থেকে visit_date-এর জন্য রেসপন্স ম্যাপিং সহ ওয়েববুক স্টেপ" />
৪. **Webhook** স্টেপের পরে একটি **Time Delay** এলিমেন্ট যোগ করুন। **Based on user/event data** নির্বাচন করুন, **Get date from** সেট করুন **Event**-এ, **Event** সেট করুন আপনার দেওয়া নাম অনুসারে ওয়েববুক স্টেপে (`Get appointment details`), **Event value** সেট করুন `visit_date`-এ, এবং ডিলে সেট করুন **Before** `2` **Days**-এ।
<img src="/journey-elements-webhook-response-data-5.webp" alt="ওয়েববুক visit_date থেকে Before 2 Days অফসেট সহ কনফিগার করা Time Delay" />
৫. যদি ব্যবহারকারীরা ভিজিটের ২ দিনের কম সময়ের মধ্যে বুক করতে পারে, তাহলে **Time Delay** এলিমেন্টে **Split to branches if the date's in the past or date is empty** সক্রিয় করুন। এটি দুটি শাখা তৈরি করে, **In the past** এবং **In the future**। দেখুন [তারিখটি অতীতে বা খালি থাকলে শাখা বিভক্ত করুন](/bn/product/customer-journey/journey-elements/flow-controls/time-delay/#split-branches-when-the-date-is-in-the-past-or-empty)।
৬. আপনার রিমাইন্ডার বার্তা সহ একটি **Push** স্টেপ যোগ করুন। যদি স্প্লিট সক্রিয় করা থাকে, তাহলে এই **Push** উভয় শাখায় যোগ করুন: **In the past** (অবিলম্বে পাঠান) এবং **In the future** (**Time Delay**-এর পরে)।
৭. প্রতিটি শাখার শেষে **Exit** যোগ করুন।
<img src="/journey-elements-webhook-response-data-6.webp" alt="Time Delay In the past এবং In the future শাখায় বিভক্ত, প্রতিটিতে Push এবং Exit স্টেপ রয়েছে" />

<Aside type="caution">
যদি ম্যাপ করা মানটি অনুপস্থিত থাকে বা একটি বৈধ তারিখ না হয়, ব্যবহারকারী এই ধাপে একটি ত্রুটি সহ জার্নি থেকে বেরিয়ে যায়।

যদি ভিজিট ২ দিনের কম সময়ের মধ্যে হয়, তাহলে **Before** `2` **Days** টার্গেটটি ব্যবহারকারী **Time Delay**-তে পৌঁছানোর সময় ইতিমধ্যেই অতীতে থাকে, এবং ব্যবহারকারী কোনো ত্রুটি এবং কোনো রিমাইন্ডার ছাড়াই জার্নি ছেড়ে চলে যায় যদি না আপনি **Split to branches if the date's in the past or date is empty** সক্রিয় করেন।

[**Update user profile**](/bn/product/customer-journey/journey-elements/flow-controls/update-user-profile/#use-a-value-from-a-webhook-response)-এর মতো নয়, যা ট্যাগটি অপরিবর্তিত রেখে চলতে থাকে, **Time Delay** ব্যবহারকারীকে থামিয়ে দেয় যখন তারিখটি অনুপস্থিত, অবৈধ, বা অতীতে থাকে (শাখা বিভাজন ছাড়া)।
নিশ্চিত করুন যে আপনার ওয়েববুক নির্ভরযোগ্যভাবে একটি [সমর্থিত ফরম্যাটে](/bn/product/customer-journey/journey-elements/flow-controls/time-delay/#delay-based-on-user-or-event-data) একটি তারিখ ফেরত দেয়। লঞ্চের আগে [**Test webhook**](/bn/product/customer-journey/journey-elements/channels/webhook/#test-the-webhook) চালান। [আরও জানুন](/bn/product/customer-journey/journey-elements/flow-controls/time-delay/#use-a-date-from-a-webhook-response)।
</Aside>

## মনে রাখার বিষয়

* **Path সিনট্যাক্স:** একটি ডট-সেপারেটেড পাথ ব্যবহার করুন (উদাহরণস্বরূপ, `data.user.id`)। ওয়াইল্ডকার্ড এবং ফিল্টার সমর্থিত নয়। বিস্তারিত জানতে [Webhook রেসপন্স ম্যাপিং](/bn/product/customer-journey/journey-elements/channels/webhook/#map-webhook-response-data-to-variables) দেখুন।
* **রেসপন্সের আকার:** 64 KB-এর চেয়ে বড় রেসপন্স ম্যাপিংয়ের জন্য প্রক্রিয়া করা হয় না।
* **টেস্টিং:** আপনি একটি লাইভ জার্নিতে ম্যাপ করা মানগুলি ব্যবহার করার আগে **Webhook** এলিমেন্টে [**Test webhook**](/bn/product/customer-journey/journey-elements/channels/webhook/#test-the-webhook) চালান।