> ## 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.

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

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

Zapier-এ এখনো **Social media studio-র কোনো নেটিভ অ্যাপ নেই**। তবুও Zapier-এর বিল্ট-ইন **Webhooks by Zapier** অ্যাপ দিয়ে দুটিকে যুক্ত করতে পারেন:

* **Zapier → Social media studio:** Webhooks by Zapier অ্যাকশন REST API কল করে পোস্ট তৈরি বা শিডিউল করে।
* **Social media studio → Zapier:** Webhooks by Zapier ট্রিগার Social media studio-র পাঠানো ইভেন্টগুলো (পোস্ট পাবলিশ, পোস্ট ব্যর্থ, নতুন কমেন্ট ইত্যাদি) ধরে।

> [!NOTE]
>
> Webhooks by Zapier-এর জন্য পেইড Zapier প্ল্যান লাগতে পারে। তৈরি করার আগে আপনার Zapier প্ল্যান দেখে নিন। Social media studio-র দিকে 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` বাদ দিতে পারেন।

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

একটি অ্যাকশন ধাপ যোগ করুন: **Webhooks by Zapier → POST**।

| ফিল্ড | মান |
| - | - |
| URL | `https://api.so-me.studio/v1/posts` |
| Payload Type | `json` |
| Data | প্রতিটি বডি ফিল্ডের জন্য একটি সারি (নিচের টেবিল), আগের ধাপগুলো থেকে ম্যাপ করা |
| Headers | `X-API-Key` → আপনার `sk_live_...` কী |

Zapier আপনার জন্য JSON তৈরি ও এস্কেপ করে, তাই উদ্ধৃতি চিহ্ন বা লাইন ব্রেকসহ টেক্সটও নিরাপদ।

| বডি ফিল্ড | আবশ্যক | মান |
| - | - | - |
| `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`। এখনই পাবলিশ করতে এটি বাদ দিন। Zapier-এর **Formatter → Date / Time → Format** ধাপ কোনো তারিখকে এই ফরম্যাটে রূপান্তর করতে পারে। |
| `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) দেখুন। |

একাধিক প্ল্যাটফর্মে পোস্ট করতে প্রতি প্ল্যাটফর্মের জন্য একটি করে POST ধাপ যোগ করুন।

Zapier-এর বাইরে পরীক্ষার জন্য সমতুল্য রিকোয়েস্ট:

```bash theme={null}
curl -X POST https://api.so-me.studio/v1/posts \
  -H "X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "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"` থাকে। পরে পোস্ট আপডেট বা মুছতে চাইলে `id`-টি পরের ধাপগুলোতে ম্যাপ করুন।

> **নেস্টেড ফিল্ড: TikTok অপশন ও থ্রেড**
>
> TikTok পোস্টে `tiktok.privacyLevel` লাগে, আর থ্রেডে `threadParts` অ্যারে ব্যবহার হয়। POST অ্যাকশন ফ্ল্যাট কী-ভ্যালু ডেটা পাঠায়, তাই এগুলোর জন্য **Webhooks by Zapier → Custom Request** ব্যবহার করুন: Method `POST`, একই URL ও হেডার এবং সাথে `Content-Type: application/json`, আর JSON বডি **Data**-তে টাইপ করুন:
>
> ```json theme={null}
> {
>   "text": "First post of the thread",
>   "socialMedia": "TWITTER",
>   "postType": "TEXT",
>   "threadParts": [{ "text": "Second post" }, { "text": "Third post" }]
> }
> ```
>
> Custom Request বডি যেমন টাইপ করা হয় তেমনই পাঠায় এবং ম্যাপ করা মান এস্কেপ করে না। ম্যাপ করা কোনো ফিল্ডে ডাবল কোট বা লাইন ব্রেক থাকলে অবৈধ JSON তৈরি হয়, যা API `400` দিয়ে প্রত্যাখ্যান করে।

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

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

**1. Zapier-এ ট্রিগার তৈরি করুন**

ট্রিগার হিসেবে **Webhooks by Zapier → Catch Hook** বেছে নিন এবং Zapier যে ওয়েবহুক URL দেয় তা কপি করুন।

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

**সেটিংস → ওয়েবহুক** ([app.so-me.studio/settings?tab=webhooks](https://app.so-me.studio/settings?tab=webhooks)) খুলে Zapier URL দিয়ে একটি এন্ডপয়েন্ট যোগ করুন এবং ইভেন্টগুলো বেছে নিন। অথবা 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://hooks.zapier.com/hooks/catch/123456/abcdef/",
    "categories": ["post"],
    "events": ["post.published", "post.failed"],
    "description": "Zapier"
  }'
```

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

**3. একটি টেস্ট ইভেন্ট পাঠান**

সেটিংস → ওয়েবহুকে সাবস্ক্রিপশনের **Test** ক্লিক করুন, তারপর Zapier-এ **Test trigger** ক্লিক করুন, যাতে সে ফিল্ডগুলো শিখে নেয়।

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

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

Zapier-এ ফিল্ডগুলো `Event`, `Data Post Id`, `Data Platform` ইত্যাদি নামে দেখা যায়। `data` ব্লকে পূর্ণ কনটেন্টের বদলে ID থাকে; পোস্টের ক্ষেত্রে তার টেক্সট, লাইভ লিংক (`shareUrl`) বা `failureReason` পড়তে **Webhooks by Zapier → GET** ধাপ দিয়ে `GET https://api.so-me.studio/v1/posts/{postId}` কল করুন।

Zap-এর জন্য কাজের ইভেন্টগুলোর মধ্যে আছে `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। Catch Hook এটি যাচাই করে না, তাই Zapier URL-টিকে গোপন রাখুন। যাচাই করতে **Catch Raw Hook** (যা আনপার্স করা বডি ও হেডার পাস করে) এবং একটি **Code by Zapier** ধাপ ব্যবহার করুন, যা র বডির HMAC হিসাব করে হেডারের সাথে মেলায়। বিস্তারিত: [সিগনেচার যাচাই](/bn/webhooks/payloads.md#signature-verification)।

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

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

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


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