ব্যবহার · মার্কেটিং ক্যাম্পেইন
এসএমএস মার্কেটিং — পাঠানোর আগেই খরচ জানুন
হাজারো গ্রাহকের কাছে বাল্ক এসএমএস ক্যাম্পেইন চালান: CSV আপলোড করুন বা এপিআই কল করুন, সঠিক খরচ আগে দেখে নিন, তারপর পাঠান। অপ্ট-আউট করা নম্বর বাদ যায়, আর প্রতিটি ক্যাম্পেইনের রিপোর্ট থাকে।
সমস্যাটা কোথায়
প্রমোশনাল এসএমএস ক্যাম্পেইন সহজ মনে হয়, যতক্ষণ না চালাচ্ছেন। গ্রাহক তালিকায় পাঁচ রকম ফরম্যাটে নম্বর, কিছু আবার ভুল। বাংলা অফারটা এক পার্টের বদলে তিন পার্ট হয়ে যায়, বিল আসে পরিকল্পনার তিনগুণ। যিনি বন্ধ করতে বলেছিলেন, তিনিও মেসেজ পান।
তারপর আসে সেই প্রশ্ন: কাজ হলো কি? ক্যাম্পেইনভিত্তিক ডেলিভারির হিসাব না থাকলে বোঝা যায় না অফারটা দুর্বল ছিল, নাকি মেসেজই পৌঁছায়নি।
BitSMS যেভাবে সমাধান করে
CSV আপলোড বা বাল্ক এপিআই
পাঠানোর আগে খরচের প্রিভিউ
অপ্ট-আউট তালিকা স্বয়ংক্রিয়ভাবে প্রযোজ্য
কাজে লাগানোর মতো রিপোর্ট
ক্যাম্পেইন কখনো ওটিপি আটকায় না
আপনার কোডে
অথবা নিজের সিস্টেম থেকে পাঠান
একই এপিআই দিয়ে একক মেসেজ ও ক্যাম্পেইন দুটোই পাঠানো যায়। তালিকার জন্য বাল্ক এন্ডপয়েন্ট ব্যবহার করুন, প্রতি রিকোয়েস্টে ১০,০০০ পর্যন্ত নম্বর; প্রতিটি নম্বর আলাদা মেসেজ হয়, যার নিজস্ব ডেলিভারি রিপোর্ট থাকে।
- একই রেসপন্সে বৈধ নম্বরগুলো গৃহীত হয়, আর অবৈধগুলো আপনাকে ফেরত জানানো হয়।
- নির্ধারিত মেয়াদের (ডিফল্ট ১ ঘণ্টা) মধ্যে কোনো রুট মেসেজ না নিলে সেটি বাতিল হয় এবং খরচ ব্যালেন্সে ফেরত আসে।
- প্রমোশনাল এসএমএসে বিটিআরসির নিয়ম মানতে হবে: শুধু সেই গ্রাহকদের পাঠান যাঁরা আপনার কাছ থেকে মেসেজ পেতে রাজি, আর কেউ বন্ধ করতে বললে অবশ্যই মানুন।
curl https://sms-api.bitcommerz.com/v1/messages \
-H "Authorization: Bearer $BITSMS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-5521-shipped" \
-d '{"to": "01712345678", "text": "Your order #5521 has shipped."}'// Node.js 18+ (built-in fetch)
const res = await fetch("https://sms-api.bitcommerz.com/v1/messages", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.BITSMS_API_KEY}`,
"Content-Type": "application/json",
// Same key on a retry = no duplicate SMS, no double charge.
"Idempotency-Key": "order-5521-shipped",
},
body: JSON.stringify({ to: "01712345678", text: "Your order #5521 has shipped." }),
});
const msg = await res.json();
console.log(res.status, msg.id, msg.status); // 202 "0192…" "queued"<?php
$ch = curl_init("https://sms-api.bitcommerz.com/v1/messages");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer " . getenv("BITSMS_API_KEY"),
"Content-Type: application/json",
"Idempotency-Key: order-5521-shipped",
],
CURLOPT_POSTFIELDS => json_encode([
"to" => "01712345678",
"text" => "আপনার অর্ডার #5521 পাঠানো হয়েছে।",
]),
]);
$body = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE); // 202
echo $body["id"], " ", $body["parts"], " part(s)\n";import os, requests
res = requests.post(
"https://sms-api.bitcommerz.com/v1/messages",
headers={
"Authorization": f"Bearer {os.environ['BITSMS_API_KEY']}",
"Idempotency-Key": "order-5521-shipped",
},
json={"to": "01712345678", "text": "Your order #5521 has shipped."},
timeout=10,
)
msg = res.json()
print(res.status_code, msg["id"], msg["status"]) # 202 ... queuedbody, _ := json.Marshal(map[string]string{
"to": "01712345678",
"text": "Your order #5521 has shipped.",
})
req, _ := http.NewRequest("POST", "https://sms-api.bitcommerz.com/v1/messages", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer "+os.Getenv("BITSMS_API_KEY"))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Idempotency-Key", "order-5521-shipped")
res, err := http.DefaultClient.Do(req)
if err != nil {
log.Fatal(err) // safe to retry with the same Idempotency-Key
}
defer res.Body.Close()
var msg struct{ ID, Status string }
json.NewDecoder(res.Body).Decode(&msg)
fmt.Println(res.StatusCode, msg.ID, msg.Status) // 202 ... queuedসাধারণ প্রশ্ন
একটি বাল্ক এসএমএস ক্যাম্পেইনে কতগুলো নম্বরে পাঠানো যায়?
এক এপিআই রিকোয়েস্টে ১০,০০০ পর্যন্ত নম্বর, আর যতবার দরকার রিকোয়েস্ট করতে পারেন। ড্যাশবোর্ডে CSV আপলোড করলে পাঠানোর আগেই প্রিভিউতে দেখবেন কতগুলো নম্বর বৈধ।
পাঠানোর আগে কি ক্যাম্পেইনের খরচ জানা যাবে?
হ্যাঁ। প্রিভিউ আপনার মেসেজের পার্ট গোনে, বৈধ প্রাপকের সংখ্যা দিয়ে গুণ করে মোট খরচ ও পাঠানোর পর ব্যালেন্স দেখায়। বাংলা লেখায় ইংরেজির চেয়ে বেশি পার্ট লাগে, প্রিভিউ সেটাও হিসাবে ধরে।
যাঁরা প্রমোশনাল এসএমএস চান না, তাঁদের কী হবে?
তাঁদের নম্বর অপ্ট-আউট তালিকায় যোগ করুন। ওই নম্বরে বাল্ক মেসেজ পাঠানোর আগেই আটকে যায়, চার্জও হয় না। গ্রাহকের সম্মতি নেওয়া ও প্রমোশনাল এসএমএসে বিটিআরসির নিয়ম মানা আপনার দায়িত্ব।
ব্র্যান্ড নামে কি ক্যাম্পেইন পাঠানো যায়?
হ্যাঁ, মাস্কিং সেন্ডার আইডি দিয়ে। এর জন্য ব্যবসার কাগজপত্রসহ একবার অনুমোদন নিতে হয়। তা না থাকলে ক্যাম্পেইন যায় নম্বর থেকে, নন-মাস্কিং রেটে।