# Liquid টেমপ্লেট ব্যবহার করা

Liquid টেমপ্লেটগুলি নিয়মিত [ডাইনামিক কন্টেন্ট](/bn/developer/guides/personalization/dynamic-content/) ব্যবহারের পাশাপাশি অত্যাধুনিক যুক্তি প্রয়োগ করে Pushwoosh-এর ব্যক্তিগতকরণের ক্ষমতাকে উল্লেখযোগ্যভাবে প্রসারিত করে।

Pushwoosh-এ মেসেজ ব্যক্তিগতকরণ [ট্যাগ (ব্যবহারকারীর ডেটা)](/bn/developer/guides/audience-and-segmentation/tags/)-এর উপর ভিত্তি করে। Pushwoosh বিভিন্ন ধরনের [ডিফল্ট ট্যাগ](/bn/developer/guides/audience-and-segmentation/tags/#default-tags) এবং [কাস্টম ট্যাগ](/bn/developer/guides/audience-and-segmentation/tags/#custom-tags) অফার করে। এগুলি ব্যবহার করে, আপনি ব্যবহারকারীর প্রথম নাম, শহর, ক্রয়ের ইতিহাস ইত্যাদি নির্দিষ্ট করতে পারেন যাতে আরও ব্যক্তিগতকৃত মেসেজ পাঠানো যায়, উদাহরণস্বরূপ: হাই `{First_name}`, `{item}` অর্ডার করার জন্য ধন্যবাদ।

Liquid টেমপ্লেটগুলি ডাইনামিক কন্টেন্টে আরও যুক্তি যোগ করে। উদাহরণস্বরূপ, যদি কোনও ব্যবহারকারীর সাবস্ক্রিপশন ট্যাগে "free" থাকে, আপনি তাদের একটি মেসেজ পাঠাতে পারেন: "আপনার ১০% ছাড় নিন।"

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

## সিনট্যাক্স

[Shopify দ্বারা Liquid](https://shopify.github.io/liquid/)-এর উপর ভিত্তি করে কন্টেন্ট টেমপ্লেটগুলি ডাইনামিক কন্টেন্ট লোড করার জন্য [**ট্যাগ**](/bn/developer/guides/personalization/liquid-templates/#tags), [**অবজেক্ট**](/bn/developer/guides/personalization/liquid-templates/#objects), এবং [**ফিল্টার**](/bn/developer/guides/personalization/liquid-templates/#filters)-এর সংমিশ্রণ ব্যবহার করে। কন্টেন্ট টেমপ্লেটগুলি আপনাকে একটি টেমপ্লেটের মধ্যে থেকে নির্দিষ্ট ভেরিয়েবল অ্যাক্সেস করতে এবং ডেটা সম্পর্কে কিছু না জেনেই তাদের ডেটা আউটপুট করতে দেয়।

<Aside type="note">
সিনট্যাক্স সম্পর্কে আরও জানতে, অনুগ্রহ করে [Liquid ডকুমেন্টেশন](https://shopify.github.io/liquid/basics/introduction/) দেখুন।
</Aside>

### অবজেক্ট

`অবজেক্ট` সেই কন্টেন্টকে সংজ্ঞায়িত করে যা একজন ব্যবহারকারীকে দেখানো হবে। `অবজেক্ট` দুটি কোঁকড়া বন্ধনীর মধ্যে আবদ্ধ থাকা উচিত: `{{ }}`

উদাহরণস্বরূপ, একটি মেসেজ ব্যক্তিগতকরণ করার সময়, ব্যবহারকারীদের নাম মেসেজের কন্টেন্টে যোগ করার জন্য এর বডিতে `{{Name}}` পাঠান। ব্যবহারকারীর নাম (Name ট্যাগের মান) ব্যবহারকারী যে মেসেজটি দেখবেন তাতে Liquid অবজেক্টটিকে প্রতিস্থাপন করবে।

<Tabs>
  <TabItem label="ইনপুট">

```

Hi {{Name}}! We're glad you're back!

```

  </TabItem>

  <TabItem label="আউটপুট">
    Hi Anna! We're glad you're back!
  </TabItem>
</Tabs>


### ট্যাগ

`ট্যাগ` টেমপ্লেটগুলির জন্য যুক্তি এবং নিয়ন্ত্রণ প্রবাহ তৈরি করে। কোঁকড়া বন্ধনী শতাংশ ডিলিমিটার `{%` এবং `%}` এবং তারা যে টেক্সটকে ঘিরে থাকে তা টেমপ্লেট রেন্ডার করার সময় কোনও দৃশ্যমান আউটপুট তৈরি করে না। এটি আপনাকে কোনও Liquid যুক্তি ব্যবহারকারীকে না দেখিয়ে ভেরিয়েবল বরাদ্দ করতে এবং শর্ত বা লুপ তৈরি করতে দেয়।

উদাহরণস্বরূপ, `if` ট্যাগ ব্যবহার করে, আপনি ব্যবহারকারীর ডিভাইসে কোন ভাষা সেট করা আছে তার উপর ভিত্তি করে মেসেজের ভাষা পরিবর্তন করতে পারেন:

<Tabs>
  <TabItem label="ইনপুট">

```liquid
{% if Language == 'fr' %}
Salut!
{% else %}
Hello!
{% endif %}
````

  </TabItem>

  <TabItem label="আউটপুট (fr)">
    Salut!
  </TabItem>

  <TabItem label="আউটপুট (es)">
    Hello!
  </TabItem>
</Tabs>

### ট্যাগ অপারেটর

<table data-header-hidden><thead><tr><th width="189.5" align="center">অপারেটর</th><th>বর্ণনা</th></tr></thead><tbody><tr><td align="center"><code>==</code></td><td>সমান</td></tr><tr><td align="center"><code>!=</code></td><td>সমান নয়</td></tr><tr><td align="center"><code>></code></td><td>এর থেকে বড়</td></tr><tr><td align="center"><code>&#x3C;</code></td><td>এর থেকে ছোট</td></tr><tr><td align="center"><code>>=</code></td><td>এর থেকে বড় বা সমান</td></tr><tr><td align="center"><code>&#x3C;=</code></td><td>এর থেকে ছোট বা সমান</td></tr><tr><td align="center"><code>or</code></td><td>লজিক্যাল or</td></tr><tr><td align="center"><code>and</code></td><td>লজিক্যাল and</td></tr><tr><td align="center"><code>contains</code></td><td>একটি স্ট্রিং বা স্ট্রিংগুলির অ্যারের মধ্যে একটি সাবস্ট্রিংয়ের উপস্থিতি পরীক্ষা করে</td></tr></tbody></table>

<Aside type="note">
একাধিক `and` বা `or` অপারেটর সহ ট্যাগে, অপারেটরগুলি ডান থেকে বামে ক্রমে চেক করা হয়। আপনি বন্ধনী ব্যবহার করে অপারেশনের ক্রম পরিবর্তন করতে পারবেন না — বন্ধনী Liquid-এ অবৈধ অক্ষর এবং আপনার ট্যাগগুলিকে কাজ করতে বাধা দেবে।
</Aside>

### ফিল্টার

`ফিল্টার` একটি Liquid অবজেক্ট বা ভেরিয়েবলের আউটপুট পরিবর্তন করে। এগুলি ডাবল কোঁকড়া বন্ধনী `{{ }}` এবং ভেরিয়েবল অ্যাসাইনমেন্টের মধ্যে ব্যবহৃত হয় এবং একটি পাইপ অক্ষর `|` দ্বারা পৃথক করা হয়। একটি আউটপুটে একাধিক ফিল্টার ব্যবহার করা যেতে পারে এবং বাম থেকে ডানে প্রয়োগ করা হয়।


<Tabs>
<TabItem label="ইনপুট">

```

{{ Name | capitalize | prepend:"Hello " }}

```

</TabItem>

<TabItem label="আউটপুট">

Hello Anna

</TabItem>
</Tabs>

## API এর মাধ্যমে পাঠানো মেসেজে Liquid টেমপ্লেট ব্যবহার করা

Liquid টেমপ্লেট বাস্তবায়ন করতে আপনার [`createMessage`](/bn/developer/api-reference/messages-api/#createmessage) অনুরোধে Liquid সিনট্যাক্স ব্যবহার করুন। টেমপ্লেটগুলি `createMessage` অনুরোধের "content" প্যারামিটারের জন্য উপলব্ধ, সেইসাথে ডাইনামিক কন্টেন্ট সমর্থনকারী অন্য কোনও প্যারামিটারের জন্য, বিশেষ করে, প্ল্যাটফর্ম-নির্দিষ্ট "title", "subtitle", এবং "image" প্যারামিটারগুলির জন্য।

কন্টেন্ট টেমপ্লেট ব্যবহার করে, আপনি আপনার API অনুরোধে ডেটা নির্দিষ্ট করতে পারেন ("template_bindings" প্যারামিটার পাস করে) অথবা ব্যবহারকারীদের ডিভাইসে সংরক্ষিত ট্যাগ মান থেকে ডেটা পেতে পারেন ("template_bindings" প্যারামিটার ব্যবহার না করে)। এইভাবে, আপনি অত্যন্ত প্রাসঙ্গিক কন্টেন্ট সহ ব্যবহারকারী-ভিত্তিক পুশ প্রচারাভিযান তৈরি করতে সক্ষম।

<Aside type="note">
অনুগ্রহ করে মনে রাখবেন, ডাইনামিক কন্টেন্টের মতো নয়, টেমপ্লেটের ভেরিয়েবলগুলিকে ডাবল কোঁকড়া বন্ধনীতে আবদ্ধ করা উচিত: `{{myVariable}}`।
</Aside>

নামে স্পেস সহ ট্যাগ ব্যবহার করে টেমপ্লেট লজিক সংজ্ঞায়িত করতে, নিম্নলিখিত কৌশলটি ব্যবহার করুন:

**উদাহরণ**

```
{% capture my_tag %}{{My Tag}}{% endcapture %}
{% if my_tag == 'value' %}
Content to send in this case
{% else %}
Content to send otherwise
{% endif %}
```
## Liquid টেমপ্লেটের ব্যবহারের ক্ষেত্র

এখানে আপনি বেশ কয়েকটি ব্যবহারের ক্ষেত্র পাবেন যেখানে Liquid টেমপ্লেটগুলি কাজে আসে।

### বহু-ভাষিক পুশ

Liquid টেমপ্লেটগুলি স্পষ্টভাবে নির্দিষ্ট করা সম্ভব করে যে ব্যবহারকারীরা কোন ভাষায় আপনার পুশ মেসেজগুলি পাবেন। API অনুরোধের সহজ উদাহরণ এবং অনুরোধে ব্যবহৃত টেমপ্লেট বাইন্ডিংয়ের উপর নির্ভর করে প্রাপ্ত মেসেজটি দেখুন।


<Tabs>
<TabItem label="Liquid ইনপুট">

```

{% if Language == 'es' %}
¡Hola!
{% else %}
Hello!
{% endif %}

````

</TabItem>

<TabItem label="API অনুরোধ">

```javascript
{
  "request": {
    "application": "XXXXX-XXXXX", // Pushwoosh app code
    "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel
    "notifications" : [ // push message parameters
      {
       "content": "{% raw %}
{% if language == 'es' %}¡Hola!{% else %}hello!{% endif %}
{% endraw %}",
        "template_bindings": { // optional. When no template_bindings are passed in a request, Tag values from the device are used.
         "language" : "es"
        }
      }
    ]
  }
}
````

</TabItem>

<TabItem label="আউটপুট">

**ভাষা 'es' হলে**:
¡Hola!

**ভাষা 'en' হলে**:
Hello!

</TabItem>
</Tabs>


### সাবস্ক্রিপশন আপগ্রেড প্রম্পট

আপনার গ্রাহকদের তাদের বর্তমান প্ল্যানের উপর ভিত্তি করে তাদের সাবস্ক্রিপশন আপগ্রেড করতে উৎসাহিত করুন।

<Tabs>
  <TabItem label="Liquid ইনপুট">

```

{% if Subscription == 'Basic' %}
    Upgrade to Silver for getting more product features and 24/7 support.
{% elsif Subscription == 'Silver' %}
    Upgrade to Gold for priority support and advanced features.
{% else %}
    Please contact your manager to renew your subscription.
{% endif %}

````

</TabItem>

<TabItem label="API অনুরোধ">

```json
{
  "request": {
    "application": "XXXXX-XXXXX", // Pushwoosh app code
    "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel
    "notifications" : [ // push message parameters
      {
       "content": "{% raw %}
{% if Subscription == 'Basic' %}Upgrade to Silver for getting more product features and 24/7 support.{% elsif Subscription == 'Silver' %}Upgrade to Gold for priority support and advanced features.{% else %}Please contact your manager to renew your subscription. {% endif %}
{% endraw %}",
        "template_bindings": { // optional. When no template_bindings are passed in a request, Tag values from the device are used.
         "language" : "es"
        }
      }
    ]
  }
}
````

  </TabItem>

  <TabItem label="আউটপুট">

**বেসিক সাবস্ক্রিপশন প্ল্যান সহ ব্যবহারকারীদের জন্য:**
Upgrade to Silver for getting more product features and 24/7 support.

**সিলভার সাবস্ক্রিপশন প্ল্যান সহ ব্যবহারকারীদের জন্য:**
Upgrade to Gold for priority support and advanced features.

**অন্যান্য প্ল্যান সহ ব্যবহারকারীদের জন্য:**
Please contact your manager to renew your subscription.

  </TabItem>
</Tabs>


### তালিকা ট্যাগ

কন্টেন্ট টেমপ্লেটগুলি একটি তালিকা ধরনের ট্যাগগুলি পরিচালনা করতে বেশ সহায়ক।

#### ভেরিয়েবলের আকার

একটি সম্ভাব্য ব্যবহারের ক্ষেত্র হল ট্যাগে কতগুলি মান রয়েছে তার উপর নির্ভর করে বিভিন্ন কন্টেন্ট সরবরাহ করা। উদাহরণস্বরূপ, আপনি বিভিন্ন আচরণের গ্রাহকদের বিভিন্ন ছাড় দিতে পারেন। ধরা যাক গ্রাহকের তাদের WishList-এ কিছু আইটেম আছে—তারা কতগুলি পণ্য কিনতে যাচ্ছে তার উপর ভিত্তি করে সবচেয়ে উপযুক্ত ছাড় দিয়ে তাদের কেনাকাটা করতে উৎসাহিত করুন!


<Tabs>
<TabItem label="Liquid ইনপুট">

```

{% if WishList.size >= 3 %}
Get 20% off your next purchase!
{% elsif WishList.size == 2 %}
Get a 10% discount on your next purchase!
{% else %}
Hey, take a look at new outwears!
{% endif %}

````

</TabItem>

<TabItem label="API অনুরোধ">

```javascript
{
  "request": {
    "application": "XXXXX-XXXXX", // Pushwoosh app code
    "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel
    "notifications" : [ // push message parameters
      {
       "content": "{% raw %}
{% if WishList.size >= 3 %}Get 20% off your next purchase!{% elsif WishList.size == 2 %}Get a 10% discount on your next purchase!{% else %}Hey, take a look at new outwears!{% endif %}
{% endraw %}",
        "template_bindings": {
         "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"]
        }
      }
    ]
  }
}
````

</TabItem>

<TabItem label="WishList আকার ≥ 3">

<img src="/personalization-liquid-templates-1.webp" alt="উইশলিস্টের আকার ৩ বা তার বেশি সহ ইমেল প্রিভিউ" width="200"/>

</TabItem>

<TabItem label="WishList আকার = 2">

<img src="/personalization-liquid-templates-2.webp" alt="উইশলিস্টের আকার ২ সহ ইমেল প্রিভিউ" width="200"/>

</TabItem>
</Tabs>

#### ভেরিয়েবলে রয়েছে

আরেকটি ক্ষেত্র যা আপনার কভার করার প্রয়োজন হতে পারে তা হল তালিকা ট্যাগের মানগুলির সাথে মোকাবিলা করা এবং ট্যাগে কোন মানগুলি রয়েছে তার উপর ভিত্তি করে সবচেয়ে প্রাসঙ্গিক কন্টেন্ট সরবরাহ করা।

<Tabs>
<TabItem label="Liquid ইনপুট">

```

{% if WishList contains 'Skinny Low Ankle Jeans' %}
Get 20% off products in your wishlist!
{% else %}
Hey, take a look at the brand new Skinny Low Ankle Jeans!
{% endif %}

````

</TabItem>

<TabItem label="API অনুরোধ">

```javascript
{
  "request": {
    "application": "C90C0-0E786",
    "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel
    "notifications" : [ // push message parameters
      {
       "content": "{% raw %}
{% if WishList contains 'Skinny Low Ankle Jeans' %}Get 20% off your next purchase!{% else %}Hey, take a look at the brand new Skinny Low Ankle Jeans!{% endif %}
{% endraw %}",
        "template_bindings": {
         "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"]
        }
      }
    ]
  }
}
````

</TabItem>

<TabItem label="ভেরিয়েবলে ডেটা রয়েছে">

<img src="/personalization-liquid-templates-3.webp" alt="ডেটা সহ ব্যক্তিগতকৃত টেমপ্লেট" width="200"/>

</TabItem>

<TabItem label="ভেরিয়েবলে ডেটা নেই">

<img src="/personalization-liquid-templates-4.webp" alt="ডেটা অনুপস্থিত থাকলে ফলব্যাক ভিউ" width="200"/>

</TabItem>
</Tabs>


### বহুবচন

কন্টেন্ট টেমপ্লেট ব্যবহার করে, আপনি ব্যবহারকারীদের আচরণ অনুযায়ী মেসেজের কন্টেন্ট সামঞ্জস্য করতে সক্ষম। উদাহরণস্বরূপ, যদি তালিকা ট্যাগে একাধিক মান থাকে তবে আপনি বহুবচন শব্দ ধারণ করার জন্য মেসেজের পাঠ্য পরিবর্তন করতে পারেন।


<Tabs>
<TabItem label="Liquid ইনপুট">

```
    Get 20% off item
{% if WishList.size > 1 %}
    s in your WishList!
{% else %}
    in your Wishlist!
{% endif %}

````

</TabItem>

<TabItem label="API অনুরোধ">

```javascript
{
  "request": {
    "application": "C90C0-0E786",
    "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel
    "notifications" : [ // push message parameters
      {
       "content": "Get 20% off item{% raw %}
{% if WishList.size > 1 %}s in your WishList!{% else %} in your Wishlist!{% endif %}
{% endraw %}",
        "template_bindings": { // optional. When no template_bindings are passed in a request, Tag values from the device are used.
         "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"]
        }
      }
    ]
  }
}
````

</TabItem>

<TabItem label="বহুবচন">

<img src="/personalization-liquid-templates-5.webp" alt="বহুবচন ফর্ম টেমপ্লেটের উদাহরণ" width="200"/>

</TabItem>

<TabItem label="একবচন">

<img src="/personalization-liquid-templates-6.webp" alt="একবচন ফর্ম টেমপ্লেটের উদাহরণ" width="200"/>

</TabItem>
</Tabs>

### টাইমজোন

টাইমজোনের জন্য টেমপ্লেট নির্দিষ্ট টাইমজোন অনুযায়ী তারিখ এবং সময় রূপান্তর করে।

<Tabs>
<TabItem label="Liquid ইনপুট">
```
{{ MyDate | timezone: MyTimezone | date: \"%Y-%m-%d %H:%M\" }}
```
</TabItem>

<TabItem label="API অনুরোধ">
```javascript title="Example"
{
  "request" : {
    "auth" : "3H9bk8w3.....Acge2RbupTB", // API access token from Pushwoosh Control Panel
    "application" : "XXXXX-XXXXX", // Pushwoosh app code
    "notifications" : [ // push message parameters
      {
        "content": "Current Date: {{ MyDate | timezone: MyTimezone | date: \"%Y-%m-%d %H:%M\" }}",
        "template_bindings": { // optional. When no template_bindings are passed in a request, Tag values from the device are used.
         "MyDate" : "2019-07-23 15:00",
         "MyTimezone" : "Asia/Dubai"
        }
      }
    ]
  }
}
```
</TabItem>
<TabItem label="আউটপুট"> <img src="/personalization-liquid-templates-7.webp" alt="পুশ নোটিফিকেশনে ব্যক্তিগতকৃত তারিখের আউটপুট" width="200"/>
</TabItem>
</Tabs>


## সংযুক্ত কন্টেন্ট

সংযুক্ত কন্টেন্ট হল Liquid টেমপ্লেটের একটি বৈশিষ্ট্য যা আপনাকে আপনার ইমেল বা পুশ নোটিফিকেশন মেসেজের মধ্যে সরাসরি একটি বাহ্যিক উৎস, যেমন একটি ওয়েব পরিষেবা থেকে ডেটা গতিশীলভাবে পুনরুদ্ধার এবং ব্যবহার করতে দেয়। এই বৈশিষ্ট্যটি একটি নির্দিষ্ট URL থেকে JSON ডেটা এনে এবং এটি একটি ভেরিয়েবলে সংরক্ষণ করে রিয়েল-টাইম ব্যক্তিগতকরণ সক্ষম করে যা আপনার কন্টেন্টে ব্যবহার করা যেতে পারে।

#### মূল ব্যবহারের ক্ষেত্র

- **পণ্যের সুপারিশ**: প্রতিটি ব্যবহারকারীর জন্য তৈরি ব্যক্তিগতকৃত পণ্যের তালিকা প্রদর্শন করুন।

- **প্রোমো কোড**: একটি ব্যাকএন্ড পরিষেবা দ্বারা তৈরি অনন্য প্রোমো কোড সন্নিবেশ করান।

#### পূর্বশর্ত

* সংযুক্ত কন্টেন্ট ব্যবহার করার জন্য, আপনার অবশ্যই নিজস্ব ব্যাকএন্ড পরিষেবা থাকতে হবে যা **User ID, HWID, বা কাস্টম ট্যাগ**-এর উপর ভিত্তি করে প্রয়োজনীয় ডেটা (যেমন, প্রোমো কোড, পণ্যের সুপারিশ) তৈরি করে এবং সরবরাহ করে। Pushwoosh তারপর একটি মেসেজ পাঠানোর আগে এই ডেটা নিয়ে আসে।

### ধাপে ধাপে বাস্তবায়ন নির্দেশিকা


#### ধাপ ১. ব্যাকএন্ড পরিষেবা সেট আপ করুন

ব্যাকএন্ড পরিষেবাটি উচিত:

* ব্যবহারকারী-নির্দিষ্ট প্যারামিটার (যেমন, `userId`) ধারণকারী একটি অনুরোধ গ্রহণ করুন। সংযুক্ত কন্টেন্ট `UserID`, `HWID`, বা আপনার প্রকল্পে সেট আপ করা যেকোনো কাস্টম ট্যাগ সমর্থন করে।
* প্রয়োজনীয় ডেটা সহ একটি JSON প্রতিক্রিয়া ফেরত দিন। এই কন্টেন্টটি তারপর মেসেজে গতিশীলভাবে সন্নিবেশ করা যেতে পারে

<Aside type="note" title="এটি কীভাবে কাজ করে">

ব্যাকএন্ড পরিষেবাটি একটি ডেটা সরবরাহকারী হিসাবে কাজ করে, ব্যবহারকারী-নির্দিষ্ট তথ্য সহ HTTP অনুরোধের প্রতিক্রিয়া জানায়।

1. Pushwoosh আপনার ব্যাকএন্ডে একটি অনুরোধ পাঠায়, ব্যবহারকারী-নির্দিষ্ট শনাক্তকারীগুলিকে কোয়েরি প্যারামিটার হিসাবে পাস করে।
2. আপনার ব্যাকএন্ড অনুরোধটি প্রক্রিয়া করে এবং অনুরোধ করা ডেটা পুনরুদ্ধার করে।
3. আপনার ব্যাকএন্ড একটি JSON প্রতিক্রিয়া ফেরত দেয়।
4. একটি মেসেজ পাঠানোর আগে, Pushwoosh ব্যাকএন্ড পরিষেবা থেকে JSON প্রতিক্রিয়া নিয়ে আসে এবং মেসেজের কন্টেন্টে ফেরত দেওয়া মানগুলি (যেমন, `code`) গতিশীলভাবে ব্যবহার করে।

**উদাহরণ প্রতিক্রিয়া**

```
{ "code": "SPECIALOFFERFORUSER12345" }
```
</Aside>



#### ধাপ ২. Pushwoosh-এ সংযুক্ত কন্টেন্ট সহ একটি প্রিসেট তৈরি করুন

1. [পুশ](/bn/product/content/push-presets/) বা [ইমেল কন্টেন্ট এডিটর](/bn/product/content/email-content/drag-and-drop-email-editor/)-এ, মেসেজ ফিল্ডে সংযুক্ত কন্টেন্ট সিনট্যাক্স সন্নিবেশ করান।

**উদাহরণ**

```
{% connected_content http://your-backend-url.com?userId={{ ${userid} }} :save result %}
```
**সিনট্যাক্স ব্রেকডাউন**
|  |  |
| ----- | ----- |
| `connected_content` | নির্দিষ্ট ব্যাকএন্ড URL থেকে JSON ডেটা নিয়ে আসে। |
|    `http://your-backend-url.com` | ব্যাকএন্ড এন্ডপয়েন্ট যা JSON ফরম্যাটে প্রয়োজনীয় ডেটা ফেরত দেয়। |
| `userId={{ ${userid} }}` | একটি ডাইনামিক কোয়েরি প্যারামিটার যা ব্যবহারকারী আইডি ব্যাকএন্ডে পাস করে। |
| `:save result` | Liquid টেমপ্লেটে ব্যবহারের জন্য আনা JSON প্রতিক্রিয়াটি result ভেরিয়েবলে সংরক্ষণ করে |

![সংযুক্ত কন্টেন্ট সিনট্যাক্স সন্নিবেশ করান](/connectedcontent.webp)

**প্রমাণীকরণ (ঐচ্ছিক)**

যদি আপনার ব্যাকএন্ড পরিষেবার জন্য প্রমাণীকরণের প্রয়োজন হয়, আপনি নিরাপদ অ্যাক্সেস নিশ্চিত করতে সংযুক্ত কন্টেন্ট অনুরোধে একটি API কী বা টোকেন অন্তর্ভুক্ত করতে পারেন।

```
{% connected_content http://your-backend-url.com?userId={{ ${userid} }}&auth=YOUR_API_KEY :save result %}
```

আপনি ঐচ্ছিক `:headers` প্যারামিটার ব্যবহার করে HTTP হেডার হিসাবে প্রমাণীকরণ (বা অন্য কোনো) ডেটা পাঠাতে পারেন — হেডার নাম এবং মানগুলির একটি JSON অবজেক্ট।

```
{% connected_content http://your-backend-url.com?userId={{ ${userid} }} :headers {"Authorization": "Bearer YOUR_TOKEN", "X-Api-Key": "YOUR_API_KEY"} :save result %}
```
|  |  |
| ----- | ----- |
| `:headers {...}` | অনুরোধের সাথে পাঠানো HTTP হেডারগুলির একটি JSON অবজেক্ট, যেমন `Authorization: Bearer <token>`। |

<Aside type="caution" title="শুধুমাত্র স্ট্যাটিক মান">
`${}` ব্যক্তিগতকরণ ভেরিয়েবলগুলি শুধুমাত্র URL-এর ভিতরে কাজ করে। `:headers`-এর ভিতরের মানগুলি স্ট্যাটিক এবং ইন্টারপোলেট করা হয় না।
</Aside>

**সংযুক্ত কন্টেন্টে ট্যাগ ব্যবহার করা**

কাস্টম ট্যাগ অন্তর্ভুক্ত করতে, সেগুলিকে **সংযুক্ত কন্টেন্ট** অনুরোধে কোয়েরি প্যারামিটার হিসাবে সন্নিবেশ করান (`{{ tag_name }}`)।

```
{% connected_content http://your-backend-url.com?userId={{ ${userid} }}{{ Language }} :save result %}
```

2. এরপর, **পুনরুদ্ধার করা ডেটা** অন্তর্ভুক্ত করে মেসেজের পাঠ্য যোগ করুন, যেমন:

```

Hey, {{userid}}, grab your personal promo code - {{result.code}}
```

![**পুনরুদ্ধার করা ডেটা** সহ মেসেজের পাঠ্য যোগ করুন](/connectedcontent-1.webp)

3. মেসেজের কন্টেন্ট চূড়ান্ত করার পর এবং প্রিসেট সেটিংস কনফিগার করার পর, প্রচারাভিযানে পুনরায় ব্যবহারের জন্য এটি সংরক্ষণ করুন।

<video src="/connectedcontent-2.webm" title="সংযুক্ত কন্টেন্ট সহ একটি মেসেজ পাঠান" autoplay loop muted playsinline />

#### ধাপ ৩. কনফিগার করা প্রিসেট ব্যবহার করে একটি মেসেজ পাঠান

[এককালীন পুশ](/bn/product/messaging-channels/push-notifications/send-push-notifications/one-time-push/#how-to-send-a-push-notification-using-the-one-time-push-form) বা [ইমেল ফর্ম](/bn/product/messaging-channels/emails/send-email/#how-to-send-a-one-time-email) বা [গ্রাহক যাত্রা](/bn/product/customer-journey/pushwoosh-journey-overview/) ব্যবহার করে এই প্রিসেট সহ একটি মেসেজ পাঠান।

<Aside type="caution" title="গুরুত্বপূর্ণ">
যদি পরিষেবাটি HTTP 200 OK ছাড়া অন্য কোনো স্ট্যাটাস ফেরত দেয়, তাহলে ইমেল বা পুশ নোটিফিকেশন পাঠানো হবে না। এটি নিশ্চিত করে যে আপনার যোগাযোগ শুধুমাত্র তখনই পাঠানো হবে যদি প্রয়োজনীয় ডেটা সফলভাবে পুনরুদ্ধার করা হয়।
</Aside>