> ## Documentation Index
> Fetch the complete documentation index at: https://docs.so-me.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Make দিয়ে সোশ্যাল মিডিয়া পোস্টিং অটোমেট করুন

> HTTP মডিউল দিয়ে Make সিনারিও থেকে Social media studio পোস্ট তৈরি ও শিডিউল করুন এবং সাইনড ওয়েবহুক থেকে সিনারিও চালু করুন।

Make-এ (আগের নাম Integromat) এখনো **Social media studio-র কোনো নেটিভ অ্যাপ নেই**। Make-এর বিল্ট-ইন মডিউল দুই দিকই কভার করে:

* **Make → Social media studio:** **HTTP → Make a request** মডিউল REST API কল করে পোস্ট তৈরি বা শিডিউল করে।
* **Social media studio → Make:** **Webhooks → Custom webhook** ট্রিগার Social media studio-র পাঠানো ইভেন্টগুলো (পোস্ট পাবলিশ, পোস্ট ব্যর্থ, নতুন কমেন্ট ইত্যাদি) গ্রহণ করে।

> [!NOTE]
>
> REST API-র জন্য **Standard**, **Advanced** বা **Lifetime** প্ল্যান লাগে (Lite-এ এটি নেই)। আপনি কতগুলো ওয়েবহুক এন্ডপয়েন্ট তৈরি করতে পারবেন তা আপনার প্ল্যানের উপর নির্ভর করে; [ওয়েবহুক ওভারভিউ](/bn/webhooks/overview.md) দেখুন।

## শুরু করার আগে

**1. একটি API কী তৈরি করুন**

Social media studio-তে **সেটিংস → API** ([app.so-me.studio/settings?tab=api](https://app.so-me.studio/settings?tab=api)) খুলে একটি কী তৈরি করুন। এটি `sk_live_` দিয়ে শুরু হয় এবং একবারই দেখানো হয়। [অথেন্টিকেশন](/bn/authentication.md) দেখুন।

**2. আপনার অ্যাকাউন্ট ID খুঁজে নিন (ঐচ্ছিক)**

একই প্ল্যাটফর্মে একাধিক অ্যাকাউন্ট যুক্ত করলে প্রতিটি পোস্টে বলে দিতে হবে কোনটি ব্যবহার হবে। একবার আপনার অ্যাকাউন্টের তালিকা নিয়ে প্রতিটির `id` টুকে রাখুন:

```bash theme={null}
curl https://api.so-me.studio/v1/accounts \
  -H "X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx"
```

কোনো প্ল্যাটফর্মে ঠিক একটি অ্যাকাউন্ট থাকলে `accountId` বাদ দিতে পারেন।

## সিনারিও থেকে পোস্ট তৈরি বা শিডিউল করুন

**1. JSON মডিউল দিয়ে বডি তৈরি করুন**

**JSON → Create JSON** যোগ করুন। নিচের ফিল্ডগুলো দিয়ে একটি ডেটা স্ট্রাকচার তৈরি করুন এবং আগের মডিউল থেকে মান ম্যাপ করুন। Make আপনার জন্য উদ্ধৃতি চিহ্ন ও লাইন ব্রেক এস্কেপ করে, হাতে লেখা JSON বডি যা করে না।

**2. HTTP মডিউল দিয়ে পাঠান**

**HTTP → Make a request** যোগ করুন:

| সেটিং | মান |
| - | - |
| URL | `https://api.so-me.studio/v1/posts` |
| Method | `POST` |
| Headers | `X-API-Key` → আপনার `sk_live_...` কী |
| Body type | Raw |
| Content type | JSON (`application/json`) |
| Request content | Create JSON-এর **JSON string** আউটপুট |
| Parse response | Yes |

| বডি ফিল্ড | আবশ্যক | মান |
| - | - | - |
| `text` | হ্যাঁ | পোস্টের টেক্সট। |
| `socialMedia` | হ্যাঁ | প্রতি রিকোয়েস্টে একটি প্ল্যাটফর্ম: `TWITTER`, `LINKEDIN`, `LINKEDIN_PAGE`, `FACEBOOK`, `INSTAGRAM`, `THREADS`, `TIKTOK`, `YOUTUBE`, `PINTEREST`, `BLUESKY`, `MASTODON`, `REDDIT`, `GOOGLE_MY_BUSINESS`, `WORDPRESS`, `DEV_TO`, `DRIBBBLE`, `DISCORD` বা `SLACK`। `WHATSAPP` ও `TELEGRAM`-এ পোস্ট করা যায় না। |
| `postType` | হ্যাঁ | `TEXT`, `IMAGE`, `MULTIPLE_IMAGES`, `VIDEO`, `CAROUSEL`, `REEL` বা `STORY`। |
| `scheduledAt` | না | ISO 8601 সময়, যেমন `2026-11-02T09:00:00Z`। এখনই পাবলিশ করতে এটি বাদ দিন। Make-এ `{{formatDate(myDate; "YYYY-MM-DDTHH:mm:ssZ")}}` এই ফরম্যাট তৈরি করে। |
| `accountId` | প্রয়োজনে | `GET /v1/accounts` থেকে পাওয়া অ্যাকাউন্টের `id`। ওই প্ল্যাটফর্মে একাধিক অ্যাকাউন্ট যুক্ত থাকলে লাগে; নইলে API `400` দিয়ে বেছে নেওয়ার তালিকা জানায়। |
| `firstComment` | না | পোস্ট পাবলিশ হওয়ার ঠিক পরে তার নিচে দেওয়া একটি কমেন্ট (Facebook, Instagram, X, LinkedIn, LinkedIn Page, Threads, YouTube)। |
| `fileIds` | না | মিডিয়া লাইব্রেরি ফাইল ID-র একটি অ্যারে। আগে Social media studio-তে মিডিয়া আপলোড করুন, অথবা presigned আপলোডের জন্য [কুইকস্টার্ট](/bn/quickstart.md#upload-media) দেখুন। |
| `threadParts` | না | প্রথম পোস্টের পরে আসা `{ "text": "..." }` অবজেক্টের একটি অ্যারে (X, Threads, Bluesky, Mastodon)। |
| `tiktok` | TikTok-এর জন্য | কমপক্ষে `{ "privacyLevel": "PUBLIC_TO_EVERYONE" }`; প্রাইভেসি লেভেল ছাড়া TikTok পোস্ট প্রত্যাখ্যান করে। |

HTTP মডিউল যে বডি পাঠায় তা এরকম দেখায়:

```json theme={null}
{
  "text": "New on the blog: how we plan a month of posts in an afternoon",
  "socialMedia": "LINKEDIN",
  "postType": "TEXT",
  "scheduledAt": "2026-11-02T09:00:00Z"
}
```

সফল কল পোস্টসহ `201` ফেরত দেয়, যাতে পোস্টের `id` এবং `postStatus: "SCHEDULED"` থাকে। একাধিক প্ল্যাটফর্মে পোস্ট করতে প্রতি প্ল্যাটফর্মের জন্য একটি HTTP মডিউল ব্যবহার করুন, অথবা প্ল্যাটফর্মের তালিকার উপর একটি **Iterator** ব্যবহার করুন।

> **এরর**
>
> | স্ট্যাটাস | অর্থ |
> | - | - |
> | `400` | কোনো ফিল্ড অবৈধ, অথবা ওই প্ল্যাটফর্মে একাধিক অ্যাকাউন্ট যুক্ত থাকা অবস্থায় `accountId` নেই। বার্তায় সমস্যাটির নাম থাকে। |
> | `401` | API কী নেই, ভুল বা বাতিল করা হয়েছে। |
> | `403` | আপনার প্ল্যানে REST API নেই, অথবা প্ল্যানের সীমা ছাড়িয়েছে। |
> | `429` | রেট লিমিট ছাড়িয়েছে। সীমাটি ওয়ার্কস্পেস অনুযায়ী এবং আপনার প্ল্যানের উপর নির্ভর করে। |
>
> পোস্ট ব্যর্থ হওয়ার পরও সিনারিও চালু রাখতে চাইলে HTTP মডিউলে একটি error handler route যোগ করুন।

## Social media studio ইভেন্ট থেকে সিনারিও চালু করুন

**1. Make-এ ওয়েবহুক তৈরি করুন**

সিনারিও শুরু করুন **Webhooks → Custom webhook** দিয়ে, **Add** ক্লিক করুন এবং Make যে ঠিকানা দেয় তা কপি করুন।

**2. সেই ঠিকানা Social media studio-তে সাবস্ক্রাইব করুন**

**সেটিংস → ওয়েবহুক** ([app.so-me.studio/settings?tab=webhooks](https://app.so-me.studio/settings?tab=webhooks)) খুলে Make-এর ঠিকানা দিয়ে একটি এন্ডপয়েন্ট যোগ করুন এবং ইভেন্টগুলো বেছে নিন। অথবা API দিয়ে তৈরি করুন:

```bash theme={null}
curl -X POST https://api.so-me.studio/v1/webhooks/subscriptions \
  -H "X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://hook.eu2.make.com/your-webhook-id",
    "categories": ["post"],
    "events": ["post.published", "post.failed"],
    "description": "Make"
  }'
```

রেসপন্সে সাবস্ক্রিপশনের সাইনিং `secret` থাকে।

**3. Make-কে স্ট্রাকচার শিখতে দিন**

Custom webhook মডিউল শুনতে থাকা অবস্থায় (**Run once**) সেটিংস → ওয়েবহুকে সাবস্ক্রিপশনের **Test** ক্লিক করুন। Make নমুনা ডেলিভারির ফিল্ডগুলো রেকর্ড করে।

প্রতিটি ডেলিভারি এই এনভেলপসহ একটি JSON `POST`:

```json theme={null}
{
  "event": "post.published",
  "category": "post",
  "timestamp": "2026-11-02T09:00:04.000Z",
  "data": { "postId": "6f1c2a9e-...", "platform": "LINKEDIN" }
}
```

একটি ওয়েবহুক একাধিক ইভেন্ট টাইপ পেলে `event`-এর উপর একটি **filter** ব্যবহার করুন। `data` ব্লকে পূর্ণ কনটেন্টের বদলে ID থাকে; পোস্টের ক্ষেত্রে তার টেক্সট, লাইভ লিংক (`shareUrl`) বা `failureReason` পড়তে `GET https://api.so-me.studio/v1/posts/{{data.postId}}` ও `X-API-Key` হেডারসহ একটি HTTP মডিউল যোগ করুন।

কাজের ইভেন্টগুলোর মধ্যে আছে `post.published`, `post.failed`, `post.scheduled`, `inbox.message_received`, `inbox.comment_received`, `social.account_disconnected` ও `quota.limit_reached`। পূর্ণ তালিকার জন্য [ওয়েবহুক ওভারভিউ](/bn/webhooks/overview.md) এবং উদাহরণ পেলোডের জন্য [পেলোড ফরম্যাট](/bn/webhooks/payloads.md) দেখুন।

> [!WARNING]
>
> প্রতিটি ডেলিভারিতে একটি `X-Webhook-Signature` হেডার থাকে: সাবস্ক্রিপশন সিক্রেট দিয়ে র বডির hex HMAC-SHA256। Custom webhook মডিউল এটি যাচাই করে না, তাই Make-এর ঠিকানাটিকে গোপন রাখুন। যাচাই করতে ওয়েবহুকের **Get request headers** ও **JSON pass-through** অপশন চালু করুন, যাতে সিনারিও হেডার ও আনপার্স করা বডি পায়, তারপর সেই বডির HMAC-SHA256 হেডারের সাথে মেলান। Make-এর `sha256()` ফাংশন HMAC কী গ্রহণ করে; আর্গুমেন্টের ক্রমের জন্য Make-এর ফাংশন রেফারেন্স দেখুন। বিস্তারিত: [সিগনেচার যাচাই](/bn/webhooks/payloads.md#signature-verification)।

Social media studio উত্তরের জন্য 10 সেকেন্ড অপেক্ষা করে এবং ব্যর্থ ডেলিভারি সর্বোচ্চ 4 বার আবার চেষ্টা করে। টানা 10 বার ব্যর্থ হওয়া সাবস্ক্রিপশন নিষ্ক্রিয় হয়ে যায়; সেটিংস → ওয়েবহুকে আবার চালু করুন।

## অন্যান্য টুল

* [n8n](/bn/integrations/n8n.md)-এ একটি কমিউনিটি নোড এবং তৈরি-করা ওয়ার্কফ্লো টেমপ্লেট আছে।
* [Zapier](/bn/integrations/zapier.md) Webhooks by Zapier দিয়ে একইভাবে কাজ করে।


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.