# API-ভিত্তিক এন্ট্রি

<Aside type="caution" icon="setting" title="ডেভেলপারের সহায়তা প্রয়োজন">
 একটি API-ভিত্তিক এন্ট্রি জার্নি সেট আপ করার জন্য আপনার ডেভেলপমেন্ট টিমের সাহায্যের প্রয়োজন হবে। অনুগ্রহ করে এই গাইডটি তাদের সাথে শেয়ার করুন।
</Aside>

## এটি কিভাবে কাজ করে

API-ভিত্তিক এন্ট্রি আপনাকে একটি নির্দিষ্ট ব্যবসায়িক ইভেন্ট ঘটার মুহূর্তে একটি কাস্টমার জার্নি চালু করার সুযোগ দেয়। একটি ক্যাম্পেইন শুরু করার জন্য, আপনাকে একটি বিশেষ API রিকোয়েস্ট পাঠাতে হবে।

এখানে API-ভিত্তিক এন্ট্রির কয়েকটি ব্যবহারের উদাহরণ দেওয়া হলো:

* প্রোডাক্ট স্টকে ফিরে এলে গ্রাহকদের জানানো
* ব্যবহারকারীদের জানানো যে একটি জনপ্রিয় প্রোডাক্টের দাম কমেছে
* একটি নতুন পডকাস্ট পর্ব প্রকাশিত হলে সাবস্ক্রাইবারদের জানানো

সাধারণ ইভেন্টের মতো নয়, এই সমস্ত ব্যবসায়িক ইভেন্ট অ্যাপের বাইরেও ঘটতে পারে। উদাহরণস্বরূপ, একটি প্রোডাক্টের প্রাপ্যতা শুধুমাত্র একটি এক্সটার্নাল ডেটাবেসে চেক করা যেতে পারে। এখানেই একটি API-ভিত্তিক এন্ট্রি কাজে আসে: আপনি অ্যাপের বাইরে (যেমন, আপনার এক্সটার্নাল ডেটাবেসে) নির্দিষ্ট পরিবর্তন ঘটলে একটি জার্নি চালু করার জন্য রিকোয়েস্ট পাঠানোর ব্যবস্থা করতে পারেন।

<img src="/shared-33.webp" alt="জার্নি ক্যানভাসে API-ভিত্তিক এন্ট্রি এলিমেন্ট"/>

এটি নিম্নলিখিতভাবে কাজ করে:

1. একটি API-ভিত্তিক এন্ট্রি সহ একটি জার্নি তৈরি করুন। এন্ট্রি সেটিংসে, আপনি জার্নি চালু করার জন্য রিকোয়েস্টের টেমপ্লেট পাবেন।
2. [সেগমেন্টেশন ল্যাঙ্গুয়েজ](/bn/developer/api-reference/segmentation-filters-api/segmentation-language) ব্যবহার করে রিকোয়েস্টে সেগমেন্টেশন শর্ত যোগ করুন। আপনি মেসেজের বিষয়বস্তু প্রসঙ্গের উপর নির্ভর করে পরিবর্তন করার জন্য রিকোয়েস্টে কন্টেন্ট প্লেসহোল্ডারও যোগ করতে পারেন।
3. প্রয়োজনে রিকোয়েস্টটি স্বয়ংক্রিয় করুন। উদাহরণস্বরূপ, দাম পরিবর্তনের তথ্য ডেটাবেস থেকে ওয়েবহুকে অবিলম্বে পাঠানো যেতে পারে। এটি ঘটলে, ওয়েবহুকটি জার্নি চালু করার জন্য স্বয়ংক্রিয়ভাবে রিকোয়েস্ট পাঠাবে। আপনার যদি অটোমেশনের প্রয়োজন না হয় তবে আপনি ম্যানুয়ালিও রিকোয়েস্ট পাঠাতে পারেন।

আপনি সেগমেন্টেশন শর্ত বা মেসেজের বিষয়বস্তু পরিবর্তন করার জন্য সীমাহীন সংখ্যকবার রিকোয়েস্ট পাঠাতে পারেন।

আরও বিস্তারিত জানতে, নীচের নির্দেশাবলী অনুসরণ করুন।

## API-ভিত্তিক এন্ট্রি সহ একটি জার্নি সেট আপ করুন

1. একটি API-ভিত্তিক এন্ট্রি সহ একটি জার্নি তৈরি করুন:

<video src="/journey-elements-api-based-entry-1.webm" title="একটি নতুন জার্নি তৈরি করুন এবং API-ভিত্তিক এন্ট্রি নির্বাচন করুন" autoplay loop muted playsinline />

2. API-ভিত্তিক এন্ট্রি ধাপে ডাবল-ক্লিক করুন। এন্ট্রি কনফিগারেশন উইন্ডো খুলবে।

3. আপনি কন্টেন্ট প্লেসহোল্ডার ব্যবহার করে প্রতিবার জার্নি চালু করার সময় পুশ এবং ইমেল কন্টেন্ট পরিবর্তন করতে পারেন। প্রতিটি প্লেসহোল্ডারের মান রিকোয়েস্টে পরিবর্তন করা যেতে পারে। আপনার যদি এই বিকল্পের প্রয়োজন না হয়, তবে আপনি এই ধাপটি এড়িয়ে যেতে পারেন।

> উদাহরণস্বরূপ, আপনি একটি নতুন পডকাস্ট পর্ব প্রকাশিত হলে সাবস্ক্রাইবারদের জানানোর জন্য একটি জার্নি তৈরি করছেন। একটি কন্টেন্ট প্লেসহোল্ডার ব্যবহার করে, আপনি প্রতিবার জার্নি চালু করার সময় পডকাস্টের শিরোনাম পরিবর্তন করতে পারেন।

প্রথমে, API-ভিত্তিক এন্ট্রি সেটআপ উইন্ডোতে প্লেসহোল্ডারের নাম যোগ করুন। আপনি আপনার সুবিধামতো যেকোনো নাম ব্যবহার করতে পারেন।

<img src="/journey-elements-api-based-entry-2.webp" alt="API-ভিত্তিক এন্ট্রি সেটআপ উইন্ডোতে কন্টেন্ট প্লেসহোল্ডারের নাম যোগ করুন"/>

এখন, একটি [পুশ প্রিসেট](/bn/product/content/push-presets) বা [ইমেল কন্টেন্ট](/bn/product/content/email-content/) তৈরি করুন এবং যে টেক্সটটি আপনি পরিবর্তন করতে চান তার পরিবর্তে প্লেসহোল্ডারটি প্রবেশ করান। আপনার প্রয়োজন অনুযায়ী প্লেসহোল্ডারটি নিম্নলিখিত ফরম্যাটের একটিতে হতে হবে:

* `{placeholder_name|format_modifier|}` – যদি ক্যাম্পেইন চালু করার সময় প্লেসহোল্ডারের মান নির্দিষ্ট করা না হয়, ব্যবহারকারীরা তার জায়গায় খালি স্থান দেখতে পাবে।
* `{placeholder_name|format_modifier}` – যদি প্লেসহোল্ডারের মান নির্দিষ্ট করা না হয় এবং এটি ইতিমধ্যে কোনো ব্যবহারকারীকে অ্যাসাইন করা না থাকে (যদি আপনি একটি ট্যাগকে প্লেসহোল্ডার হিসেবে ব্যবহার করেন), তাহলে মেসেজটি পাঠানো হবে না।

<details>

<summary>ফরম্যাট মডিফায়ার</summary>

* **CapitalizeFirst** – একটি প্লেসহোল্ডার মানের প্রথম অক্ষর বড় হাতের করে
* **CapitalizeAllFirst** – একটি প্লেসহোল্ডার মানের সমস্ত শব্দের প্রথম অক্ষর বড় হাতের করে
* **UPPERCASE** – সমস্ত অক্ষর বড় হাতের করে
* **lowercase** – সমস্ত অক্ষর ছোট হাতের করে
* **regular** – রিকোয়েস্টে নির্দিষ্ট করা প্লেসহোল্ডার মান ঠিক যেমন আছে তেমন প্রবেশ করায়

</details>

<img src="/journey-elements-api-based-entry-3.webp" alt="ডাইনামিক কন্টেন্টের জন্য একটি পুশ প্রিসেটে একটি প্লেসহোল্ডার প্রবেশ করান"/>

<Aside type="tip">
আপনি একটি প্লেসহোল্ডারের নামের পরিবর্তে একটি [বিদ্যমান ট্যাগের](/bn/product/audience-data-and-segmentation/user-data-tags/) নামও ব্যবহার করতে পারেন। এই ক্ষেত্রে, আপনাকে নীচে বর্ণিত হিসাবে রিকোয়েস্টে নির্দিষ্ট করা মান দ্বারা এই ট্যাগের মান ওভাররাইট করার জন্য কনফিগার করতে হবে।
</Aside>

আপনার জার্নিতে পুশ বা ইমেল এলিমেন্ট কনফিগার করার সময়, তৈরি করা প্রিসেটটি নির্বাচন করুন এবং **Personalize message with event attributes** বিকল্পটি চালু করুন।

জার্নি চালু করার সময় রিকোয়েস্টে আপনি যে প্লেসহোল্ডারগুলি পরিবর্তন করতে চান তা নির্বাচন করুন। সোর্স হিসেবে **API-based entry** এবং ডাইনামিক অ্যাট্রিবিউট হিসেবে প্লেসহোল্ডারের নাম নির্বাচন করুন:

<video src="/journey-elements-api-based-entry-4.webm" title="API-ভিত্তিক এন্ট্রি থেকে ইভেন্ট অ্যাট্রিবিউট দিয়ে মেসেজ ব্যক্তিগতকরণ করুন" autoplay loop muted playsinline />

পরিবর্তনগুলি সংরক্ষণ করতে **Apply** ক্লিক করুন।

4. এন্ট্রি কনফিগারেশন উইন্ডোতে, এটি পরিবর্তন করার জন্য রিকোয়েস্ট টেমপ্লেটটি কপি করুন:

<img src="/journey-elements-api-based-entry-5.webp" alt="API-ভিত্তিক এন্ট্রি কনফিগারেশন উইন্ডো থেকে রিকোয়েস্ট টেমপ্লেট কপি করুন"/>
<Aside> 
API এর মাধ্যমে একটি জার্নি চালু করতে, আপনাকে অবশ্যই Authorization হেডারে একটি বৈধ অথোরাইজেশন টোকেন অন্তর্ভুক্ত করতে হবে।

**প্রয়োজনীয় হেডার ফরম্যাট**

  ```http
  Authorization: Api <your_api_token>
  ```
  **উদাহরণ**

  ```http
  Authorization: Api c8dc6435-xxxxxxxxxxxxxxx
  ```
  
 </Aside>


5. [সেগমেন্টেশন ল্যাঙ্গুয়েজ](/bn/developer/api-reference/segmentation-filters-api/segmentation-language) ব্যবহার করে `"filter"` প্যারামিটারে অডিয়েন্স ফিল্টার যোগ করুন বা আপনার সেগমেন্ট থেকে [সেগমেন্টেশন ল্যাঙ্গুয়েজ কপি করুন](/bn/product/audience-data-and-segmentation/segmentation/#copy-segment-logic)। আগে থেকেই প্রয়োজনীয় [ট্যাগগুলি](/bn/product/audience-data-and-segmentation/user-data-tags/tags) সেট আপ করুন।

উদাহরণস্বরূপ, যে ব্যবহারকারীরা তাদের _Wishlist_-এ _Socks_ আইটেমটি যোগ করেছেন তাদের টার্গেট করতে, `"filter"` মানটি নিম্নলিখিতর মতো দেখতে হবে:

`"filter": "A(\"12345-12345\") * "T(\"Wishlist\", EQ, \"Socks\")"`

এই উদাহরণে, আপনার অ্যাপে একটি _Wishlist_ ট্যাগ কনফিগার করা থাকতে হবে।

<Aside type="note">
আপনার অ্যাপ্লিকেশন কোডটি স্বয়ংক্রিয়ভাবে `"filter"` প্যারামিটারে `A(\"12345-12345\")` ফরম্যাটে যোগ করা হয়। এটি সরাবেন না বা পরিবর্তন করবেন না।

এছাড়াও, দয়া করে মনে রাখবেন যে JSON কোয়েরিতে কোটেশন ("") এবং ব্যাকস্ল্যাশ (\\) একটি ব্যাকস্ল্যাশ (\\) দিয়ে এস্কেপ করা উচিত।
</Aside>

<Aside type="tip">
আপনি ফিল্টার ব্যবহার করার পরিবর্তে `"hwids"` প্যারামিটারে HWID-এর একটি অ্যারে বা `"users"` প্যারামিটারে ইউজার আইডি পাস করে নির্দিষ্ট ডিভাইস বা ব্যবহারকারীদের সরাসরি টার্গেট করতে পারেন:

```json
"users": ["user_id_1", "user_id_2", ...],
"hwids": ["hwid_1", "hwid_2", ...]
```
</Aside>

6. আপনি যদি প্লেসহোল্ডার সেট আপ করে থাকেন, তাহলে তাদের মান হিসেবে কাঙ্ক্ষিত কন্টেন্ট নির্দিষ্ট করুন:

<img src="/journey-elements-api-based-entry-6.webp" alt="জার্নি চালু করার জন্য API রিকোয়েস্টে প্লেসহোল্ডারের মান নির্দিষ্ট করুন"/>


7. আপনি যদি আপনার ক্যাম্পেইন ঘন ঘন পুনরায় চালু করার পরিকল্পনা করেন এবং একই ব্যবহারকারীরা যাতে একাধিকবার জার্নিতে প্রবেশ না করে তা নিশ্চিত করতে চান, তাহলে [ক্যাম্পেইন এন্ট্রি লিমিট](/bn/product/customer-journey/journey-settings#campaign-entry-limit) সেট করুন।

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

8. আপনি যদি চান যে একটি নির্দিষ্ট ব্যবসায়িক ইভেন্ট ঘটলে একটি জার্নি চালু হোক, তাহলে ওয়েবহুক ব্যবহার করে রিকোয়েস্টটি স্বয়ংক্রিয় করুন। ইভেন্টটি ঘটলে, ওয়েবহুকটি জার্নি শুরু করার জন্য স্বয়ংক্রিয়ভাবে রিকোয়েস্ট পাঠাবে।

আপনার যদি অটোমেশনের প্রয়োজন না হয় তবে আপনি ম্যানুয়ালিও রিকোয়েস্ট পাঠাতে পারেন।

<Aside type="note">
* আপনি যদি একটি নতুন রিকোয়েস্ট পাঠানোর সময় সেগমেন্টেশন শর্ত পরিবর্তন করেন, তবে এটি ইতিমধ্যে জার্নিতে প্রবেশ করা ব্যবহারকারীদের প্রভাবিত করবে না।
* আপনি যদি একটি নতুন রিকোয়েস্ট পাঠানোর সময় মেসেজের বিষয়বস্তু পরিবর্তন করেন, তবে সমস্ত ব্যবহারকারী মেসেজের নতুন সংস্করণটি পাবে (যারা ইতিমধ্যে জার্নিতে প্রবেশ করেছে কিন্তু এখনও এই মেসেজটি পায়নি তারাও সহ)।
</Aside>