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

# ওয়েবহুক

> CLI থেকে ওয়েবহুক সাবস্ক্রিপশন তৈরি, পরিচালনা ও পরীক্ষা করুন

ওয়েবহুক Social media studio থেকে আপনার সার্ভারে রিয়েল-টাইম ইভেন্ট পুশ করে। টার্মিনাল না ছেড়েই সাবস্ক্রিপশন পরিচালনা, টেস্ট ডেলিভারি পাঠানো, ডেলিভারি লগ দেখা এবং ব্যর্থ প্রচেষ্টা রিট্রাই করতে এই কমান্ডগুলো ব্যবহার করুন।

> [!NOTE]
>
> ওয়েবহুকের প্ল্যান-সীমা (সর্বোচ্চ সাবস্ক্রিপশন, লগ সংরক্ষণকাল) সার্ভার-সাইডে প্রয়োগ হয়। সীমার পূর্ণ ম্যাট্রিক্স ও পেলোড টেমপ্লেটিংয়ের রেফারেন্সের জন্য [ওয়েবহুক ওভারভিউ](/bn/webhooks/overview.md) দেখুন।

> [!NOTE]
>
> নিচের প্রতিটি কমান্ড গ্লোবাল ফ্ল্যাগ মানে: আউটপুট ফরম্যাটের জন্য `--json` (ডিফল্ট) বা `--table`, অতিরিক্ত লগিংয়ের জন্য `--verbose`, এবং ক্রেডেনশিয়াল ওভাররাইড করতে `--api-key <key>` / `--api-url <url>` (`SOME_API_KEY` ও `SOME_API_URL` এনভায়রনমেন্ট ভ্যারিয়েবল দিয়েও কনফিগার করা যায়)।

## webhooks:create

একটি নতুন ওয়েবহুক সাবস্ক্রিপশন তৈরি করুন।

```bash theme={null}
so-me webhooks:create --url <url> --categories <csv> [options]
```

| অপশন | বিবরণ |
| - | - |
| `--url <url>` | ডেলিভারি গ্রহণের HTTPS এন্ডপয়েন্ট **(আবশ্যক)** |
| `--categories <csv>` | কমা দিয়ে আলাদা করা ক্যাটাগরি: `post`, `draft`, `approval`, `social`, `media`, `composer`, `analytics`, `inbox`, `biolink`, `ai`, `team`, `organization`, `account`, `auth`, `api_key`, `webhook`, `integration`, `subscription`, `support`, `template`, `referral`, `mcp`, `quota` **(আবশ্যক)** |
| `--events <csv>` | সূক্ষ্ম নিয়ন্ত্রণের জন্য কমা দিয়ে আলাদা করা ইভেন্টের নাম (ক্যাটাগরির উপসেট) |
| `--description <text>` | মানুষের পড়ার উপযোগী লেবেল |
| `--payload-template <json>` | `{{event}}`, `{{category}}`, `{{timestamp}}`, `{{data}}` ভ্যারিয়েবলসহ কাস্টম JSON বডি টেমপ্লেট |

```bash উদাহরণ theme={null}
# Minimal — subscribe to all post events
so-me webhooks:create \
  --url https://example.com/hooks/some \
  --categories post

# Subscribe to multiple categories
so-me webhooks:create \
  --url https://example.com/hooks/some \
  --categories post,inbox,approval \
  --description "Production endpoint"

# Subscribe to specific events only (narrower than categories)
so-me webhooks:create \
  --url https://example.com/hooks/some \
  --categories post \
  --events post.published,post.failed

# Discord-friendly payload template
so-me webhooks:create \
  --url https://discord.com/api/webhooks/xxx/yyy \
  --categories post,approval \
  --payload-template '{"content":"🚀 {{event}} at {{timestamp}}"}'

# Slack-friendly payload template from a file
so-me webhooks:create \
  --url https://hooks.slack.com/services/xxx \
  --categories inbox \
  --payload-template "$(cat ./slack-template.json)"
```

> [!TIP]
>
> রেসপন্সে একবারের জন্য একটি `secret` মান থাকে। এটি সংরক্ষণ করুন — আসা ডেলিভারির `X-Webhook-Signature` হেডার যাচাই করতে এটি ব্যবহৃত হয় এবং শুধু তৈরির সময়ই ফেরত আসে।

## webhooks:list

বর্তমান ওয়ার্কস্পেসের সব ওয়েবহুক সাবস্ক্রিপশনের তালিকা দেখুন।

```bash theme={null}
so-me webhooks:list
```

```bash উদাহরণ theme={null}
# Default JSON output
so-me webhooks:list

# Formatted table
so-me webhooks:list --table

# Pipe to jq — only active endpoints
so-me webhooks:list | jq '.[] | select(.isActive == true) | {id, url, categories}'

# Count subscriptions
so-me webhooks:list | jq 'length'
```

## webhooks:get

ID দিয়ে একটি সাবস্ক্রিপশন আনুন, এর বর্তমান অবস্থা ও ব্যর্থতার কাউন্টারসহ।

```bash theme={null}
so-me webhooks:get <id>
```

```bash উদাহরণ theme={null}
# Full details as JSON
so-me webhooks:get 550e8400-e29b-41d4-a716-446655440000

# Check just the URL and status
so-me webhooks:get 550e8400-... | jq '{url, isActive, consecutiveFailures}'
```

## webhooks:update

একটি বিদ্যমান সাবস্ক্রিপশনের যেকোনো ফিল্ড আপডেট করুন। শুধু আপনার দেওয়া ফিল্ডগুলো বদলায়।

```bash theme={null}
so-me webhooks:update <id> [options]
```

| অপশন | বিবরণ |
| - | - |
| `--url <url>` | এন্ডপয়েন্ট URL বদলান |
| `--categories <csv>` | সাবস্ক্রাইব করা ক্যাটাগরি প্রতিস্থাপন করুন |
| `--events <csv>` | সাবস্ক্রাইব করা ইভেন্ট প্রতিস্থাপন করুন |
| `--description <text>` | লেবেল আপডেট করুন |
| `--payload-template <json>` | পেলোড টেমপ্লেট প্রতিস্থাপন করুন |
| `--active` | সাবস্ক্রিপশন সক্রিয় করুন (`isActive: true` সেট করে) |
| `--inactive` | সাবস্ক্রিপশন নিষ্ক্রিয় করুন (`isActive: false` সেট করে, ডেলিভারি বন্ধ করে) |
| `--regenerate-secret` | সাইনিং সিক্রেট রোটেট করুন (পুরনোটি অবৈধ হয়ে যায়) |

> [!NOTE]
>
> অন্তত একটি ফিল্ড দিতে হবে, নয়তো কমান্ড ত্রুটিসহ বেরিয়ে যায়। `--active` ও `--inactive` পরস্পর বিচ্ছিন্ন — দুটো একসাথে দিলেও ত্রুটি হয়।

```bash উদাহরণ theme={null}
# Change endpoint URL
so-me webhooks:update 550e8400-... \
  --url https://new.example.com/hooks/some

# Swap category subscriptions
so-me webhooks:update 550e8400-... \
  --categories post,inbox,media

# Narrow down to specific events
so-me webhooks:update 550e8400-... \
  --events post.published,post.failed,inbox.message_received

# Temporarily disable an endpoint
so-me webhooks:update 550e8400-... --inactive

# Re-enable it later
so-me webhooks:update 550e8400-... --active

# Rotate the signing secret (old signatures become invalid)
so-me webhooks:update 550e8400-... --regenerate-secret

# Update label and payload template together
so-me webhooks:update 550e8400-... \
  --description "Staging endpoint" \
  --payload-template '{"event":"{{event}}","data":{{data}}}'

# Combine multiple updates in one call
so-me webhooks:update 550e8400-... \
  --url https://new.example.com/hooks/some \
  --categories post,approval \
  --active
```

> [!WARNING]
>
> `--regenerate-secret` আগের সিক্রেট সাথে সাথে অবৈধ করে দেয়। নতুন সিক্রেট আপডেট রেসপন্সে ফেরত আসে — প্রোডাকশনে রোটেট করার আগে আপনার যাচাইকরণ কোড সেটি ব্যবহার করতে আপডেট করুন।

## webhooks:delete

একটি সাবস্ক্রিপশন স্থায়ীভাবে সরান। আর কোনো ডেলিভারির চেষ্টা করা হয় না।

```bash theme={null}
so-me webhooks:delete <id>
```

```bash উদাহরণ theme={null}
# Remove a subscription
so-me webhooks:delete 550e8400-e29b-41d4-a716-446655440000

# Remove every inactive subscription in one pipeline
so-me webhooks:list \
  | jq -r '.[] | select(.isActive == false) | .id' \
  | xargs -I {} so-me webhooks:delete {}
```

## webhooks:test

আপনার এন্ডপয়েন্ট পৌঁছানো যাচ্ছে কি না এবং সিগনেচার যাচাই কাজ করছে কি না তা পরীক্ষা করতে একটি কৃত্রিম `webhook.test` ডেলিভারি কিউতে রাখুন।

```bash theme={null}
so-me webhooks:test <id>
```

```bash উদাহরণ theme={null}
# Fire a test against a known subscription
so-me webhooks:test 550e8400-e29b-41d4-a716-446655440000

# Test every active subscription at once
so-me webhooks:list \
  | jq -r '.[] | select(.isActive == true) | .id' \
  | xargs -I {} so-me webhooks:test {}
```

> [!TIP]
>
> টেস্ট পেলোড সবসময় সাবস্ক্রিপশনের কনফিগার করা ক্যাটাগরি নির্বিশেষে ইভেন্টের নাম `webhook.test` ও ক্যাটাগরি `test` ব্যবহার করে। এতে আপনার এন্ডপয়েন্ট কৃত্রিম ট্রাফিক দ্রুত আলাদা করে সামলাতে পারে।

## webhooks:deliveries

পেজিনেশনসহ সাম্প্রতিক ডেলিভারি প্রচেষ্টার (সফল ও ব্যর্থ দুটোই) তালিকা দেখুন।

```bash theme={null}
so-me webhooks:deliveries [options]
```

| অপশন | বিবরণ |
| - | - |
| `--page <number>` | পেজ নম্বর (ডিফল্ট: 1) |
| `--limit <number>` | প্রতি পেজে আইটেম (ডিফল্ট: 20) |

```bash উদাহরণ theme={null}
# Recent 20 deliveries
so-me webhooks:deliveries

# Next page
so-me webhooks:deliveries --page 2

# Larger page as a table
so-me webhooks:deliveries --limit 100 --table

# Only the failed ones
so-me webhooks:deliveries --limit 100 \
  | jq '.data[] | select(.status != "success")'

# Count failures in the most recent page
so-me webhooks:deliveries --limit 100 \
  | jq '[.data[] | select(.status != "success")] | length'
```

## webhooks:retry

আগে ব্যর্থ হওয়া একটি ডেলিভারি আবার কিউতে রাখুন। মূল সাবস্ক্রিপশন, ইভেন্ট ও পেলোড ব্যবহার করে।

```bash theme={null}
so-me webhooks:retry <delivery-id>
```

```bash উদাহরণ theme={null}
# Retry a single delivery by its log ID
so-me webhooks:retry 7c2d4e8f-1a2b-3c4d-5e6f-7890abcdef12

# Retry every failed delivery from the last page
so-me webhooks:deliveries --limit 100 \
  | jq -r '.data[] | select(.status == "failed") | .id' \
  | xargs -I {} so-me webhooks:retry {}
```

> [!WARNING]
>
> যে ডেলিভারির সাবস্ক্রিপশন মুছে ফেলা হয়েছে তা রিট্রাই করলে ত্রুটি ফেরত আসবে। নিশ্চিত না হলে আগে `webhooks:get` দেখুন।

## webhooks:events

API যত ইভেন্টের নাম সমর্থন করে তার সবগুলো ক্যাটাগরি অনুযায়ী সাজিয়ে তালিকাভুক্ত করুন। `--events` ফিল্টার তৈরি বা সাবস্ক্রিপশন কনফিগারেশন যাচাই করতে কাজের। রেসপন্স হলো `{ category, label, events }` অবজেক্টের একটি অ্যারে।

```bash theme={null}
so-me webhooks:events
```

```bash উদাহরণ theme={null}
# Full catalog as JSON
so-me webhooks:events

# As a table
so-me webhooks:events --table

# Only the inbox events
so-me webhooks:events | jq '.[] | select(.category == "inbox") | .events'

# Flat list of all event names
so-me webhooks:events | jq -r '.[].events[]'

# Count events per category
so-me webhooks:events | jq 'map({category, count: (.events | length)})'
```

> **[পেলোড ও সিগনেচার যাচাই](/bn/webhooks/payloads.md)**
>
> প্রতিটি ইভেন্ট ক্যাটাগরির উদাহরণ পেলোড দেখুন এবং `X-Webhook-Signature` হেডার কীভাবে যাচাই করবেন তা জানুন।


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