শিডিউল নয়, ঘটনাই এটি চালু করে
আপনার চেকআউট, আপনার ডিসপ্যাচ জব, আপনার পেমেন্ট হ্যান্ডলার — ঘটনাটি ঘটার মুহূর্তেই একটি কল করে। কোনো তালিকা বানাতে হয় না, কোনো ক্যাম্পেইন সাজাতে হয় না, আর সেন্ড চাপার কথা কারও মনে রাখতে হয় না।
অর্ডার নিশ্চিত হয়েছে। ডেলিভারির পথে। পেমেন্ট পাওয়া গেছে। কার্ড বাতিল হয়েছে। নিউজলেটারের পেছনে কেউ ছোটে না, কিন্তু অর্ডারের পেছনে সবাই ছোটে — তাই ঘটনাটি ঘটার মুহূর্তেই এই মেসেজগুলো যেতে হবে, গ্রাহকের উপযোগী চ্যানেলে, ঠিক একবার, আর এমন রেকর্ডসহ যা পরে আপনি পড়ে দেখতে পারেন।
Sending login codes or two-factor prompts? Those have their own page — ওয়ান-টাইম কোড ও যাচাইকরণ.
ক্যাম্পেইন টুল তৈরি হয় একসঙ্গে অনেক মানুষের কাছে অনেক মেসেজ পাঠানোর জন্য, আর পুরো ব্যাচটি কেমন করল তা জানানোর জন্য। ট্রানজেকশনাল মেসেজ ঠিক উল্টো ধরনের: একজন মানুষ, একটি ঘটনা, আর গুরুত্বপূর্ণ সংখ্যা একটিই — সেই একটি মেসেজ পৌঁছেছে কি না। QuickGrow বিষয়টিকে সেভাবেই দেখে।
আপনার চেকআউট, আপনার ডিসপ্যাচ জব, আপনার পেমেন্ট হ্যান্ডলার — ঘটনাটি ঘটার মুহূর্তেই একটি কল করে। কোনো তালিকা বানাতে হয় না, কোনো ক্যাম্পেইন সাজাতে হয় না, আর সেন্ড চাপার কথা কারও মনে রাখতে হয় না।
প্রতিটি পাঠানোর সঙ্গে সেই একটি মেসেজের আইডি ফেরত আসে। পরে সেটি পড়ে জেনে নিন মেসেজটি কোন অবস্থায় পৌঁছেছে, কখন পৌঁছেছে, আর ব্যর্থ হলে তার কারণ ও কোড কী — ফলে “রসিদটি কি আমার কাছে পৌঁছেছে?” প্রশ্নের উত্তর সাপোর্ট টিম অনুমান না করে রেকর্ড থেকেই দিতে পারে।
রিকোয়েস্টের মাঝপথে সংযোগ বিচ্ছিন্ন হয়ে যায়। একই রিট্রাই কী দিয়ে আবার একই কল পাঠালে QuickGrow ২৪ ঘণ্টা পর্যন্ত নতুন করে না পাঠিয়ে আগের রেসপন্সটিই ফিরিয়ে দেয়। ফলে খারাপ নেটওয়ার্ক কখনও দুটি নিশ্চিতকরণ আর দুটি চার্জে পরিণত হয় না।
চারটি ধাপ, আর তার মধ্যে কেবল প্রথমটিই সেটআপ। এরপর একটি মেসেজ মানে একটি কল, আর সেটি সম্পর্কে যা জানার দরকার তার সবই একটি রিড।
একটি এপিআই কী তৈরি করুন এবং কাজের জন্য যতটুকু দরকার ঠিক ততটুকুই অনুমতি দিন। পাঠানো, মেসেজের স্ট্যাটাস পড়া আর ওয়েবহুক ব্যবস্থাপনা — এই তিনটি আলাদা অনুমতি। ফলে যে সার্ভিস অর্ডার নিশ্চিতকরণ পাঠায়, সেটি কখনও আপনার কন্টাক্ট এক্সপোর্ট করার অধিকার বহন করে না।
চ্যানেল, প্রাপক, আর হয় লেখাটি সরাসরি অথবা টেমপ্লেট আইডির সঙ্গে বসানোর মানগুলো পোস্ট করুন। ইমেইল পাঠানোর সঙ্গে ফাইলও যেতে পারে — সর্বোচ্চ দশটি, সব মিলিয়ে সাত মেগাবাইট — ফলে ইনভয়েসটি আলাদা মেসেজে না গিয়ে নিশ্চিতকরণের সঙ্গেই যায়।
রেসপন্সে থাকে মেসেজ আইডি আর মেসেজটি কোন অবস্থায় আছে। এরপর দরকারমতো সেই আইডি পড়ুন, অথবা ওয়েবহুক সাবস্ক্রাইব করুন — মেসেজটি sent, delivered, failed বা bounced হওয়ার মুহূর্তেই QuickGrow আপনাকে জানিয়ে দেবে।
চ্যানেল, অবস্থা ও তারিখ দিয়ে ফিল্টার করে আপনার ইতিহাস দেখুন, অথবা একটি নির্দিষ্ট সময়ের জন্য চ্যানেলভিত্তিক মোট হিসাব চান। কিছুই আপনার এন্ডপয়েন্ট সচল থাকার উপর নির্ভর করে না: কোনো ওয়েবহুক আপনার কাছে না পৌঁছালেও রেকর্ডটি পড়ার জন্য সেখানেই থাকে।
একটি কী হেডার প্রতিটি রিকোয়েস্ট অথেনটিকেট করে। পাঠানোটি একটিই কল; এরপর যা কিছু, সবই সেই কলের দেওয়া আইডির বিপরীতে একটি রিড।
X-API-Key: mk_… { "channel": "email", "to": "[email protected]", "templateId": "order_confirmed", "variables": { "name": "Rumana", "orderId": "A-4471", "eta": "Tue 27 Aug" }, "attachments": [ { "filename": "receipt.pdf", "content": "JVBERi0xLjQK…" } ], "metadata": { "orderId": "A-4471" } } # same shape for "sms" and "whatsapp"
{ "data": {
"id": "msg_9fA2",
"channel": "email",
"status": "delivered",
"createdAt": "2026-08-24T11:02:04Z",
"sentAt": "2026-08-24T11:02:07Z",
"deliveredAt": "2026-08-24T11:02:11Z",
"failedAt": null,
"failureReason": null,
"failureCode": null,
"metadata": { "orderId": "A-4471" }
} }
# list: GET /api/v1/messages?status=failed
নিশ্চিতকরণের লেখাটি একবার QuickGrow-এ টেমপ্লেট হিসেবে লিখুন, তারপর মান বসিয়ে আইডি দিয়ে পাঠান। কেউ যখন ডেলিভারি মেসেজের ভাষা বদলাতে চান বা রিটার্ন নিয়ে একটি লাইন যোগ করতে চান, তিনি টেমপ্লেটটিই সম্পাদনা করেন — কাউকে রিলিজের জন্য অপেক্ষা করতে হয় না। প্রতিটি এন্ডপয়েন্ট, ফিল্ড ও এরর প্রোডাক্টের ভেতরেই লেখা আছে এবং মেশিন-পাঠযোগ্য স্পেসিফিকেশন হিসেবে প্রকাশিত, যা আপনি নিজের টুলিংয়ে ইমপোর্ট করতে পারেন।
QuickGrow আপনার অজান্তে চ্যানেল বদলাবে না, কিংবা গ্রাফ সুন্দর দেখাতে কোনো সমস্যা চেপে যাবে না। পাঠানো ব্যর্থ হলে তা স্পষ্টভাবেই ব্যর্থ হয়: মেসেজটির সঙ্গে কারণ ও কোড থেকে যায়, আর আপনার এন্ডপয়েন্টে একটি স্বাক্ষরিত ওয়েবহুক পৌঁছায় — এরপর কী হবে তা আপনার সিস্টেম ঠিক করতে পারে।
Sent, delivered, failed আর bounced। কেবল এপিআই দিয়ে পাঠানো মেসেজগুলোই এই ইভেন্টগুলো তৈরি করে, তাই আপনার এন্ডপয়েন্ট কখনও ক্যাম্পেইনের ট্রাফিকে চাপা পড়ে না।
প্রতিটি ডেলিভারি এমন একটি সিক্রেট দিয়ে স্বাক্ষরিত যা কেবল আপনি আর QuickGrow জানেন, আর সেই সিক্রেট যখন খুশি বদলে নিতে পারেন। নতুন কোনো এন্ডপয়েন্টের উপর নির্ভর করার আগে সেখানে একটি টেস্ট ইভেন্ট পাঠিয়ে দেখুন।
যে এন্ডপয়েন্ট সাড়া দেয় না, পরবর্তী আধা ঘণ্টা জুড়ে সেটিতে আরও চারবার চেষ্টা করা হয়, আর প্রতিটি চেষ্টার রেকর্ড আপনার দেখার জন্য রাখা থাকে।
ব্যর্থ মেসেজ সেখানেই থেমে যায়। একই আপডেট অন্য চ্যানেলে পাঠাতে চাইলে সেই কলটি আপনার কোড করবে — অর্থাৎ লেখা, সময় আর আদৌ পাঠানো হবে কি না, সবই আপনি ঠিক করবেন।
{
"id": "evt_7c1e…",
"event": "message.failed",
"createdAt": "2026-08-24T11:03:02Z",
"data": { "message": {
"id": "msg_9fA2",
"channel": "sms",
"status": "failed",
"failedAt": "2026-08-24T11:03:01Z",
"failureReason": "…",
"failureCode": "…",
"metadata": { "orderId": "A-4471" }
} }
}
# message.sent · delivered · failed · bounced
মেসেজের অবস্থা এমন কোনো রিপোর্ট নয় যার জন্য সারারাত অপেক্ষা করতে হয় — এটি মেসেজের নিজেরই একটি ফিল্ড। আইডি দিয়ে একটি মেসেজ পড়ুন, চ্যানেল, অবস্থা ও তারিখ দিয়ে ফিল্টার করে তালিকা দেখুন, অথবা একটি সময়ের জন্য চ্যানেলভিত্তিক মোট হিসাব চান — একটি রেসপন্সেই sent, delivered, opened, clicked, bounced ও failed সংখ্যা পেয়ে যাবেন।
তিনটিই একই এন্ডপয়েন্ট থেকে যায় এবং একইভাবে রিপোর্ট করে, তাই চ্যানেল বাছাই মানে আপনার রিকোয়েস্টের একটি ফিল্ড, আলাদা কোনো ইন্টিগ্রেশন নয়। আসল পার্থক্য হলো, মেসেজ বহন করার আগে প্রতিটি চ্যানেল আপনার কাছ থেকে কী চায়।
| SMS | |||
|---|---|---|---|
| Suits | নিশ্চিতকরণ, রসিদ, ইনভয়েস, স্টেটমেন্ট | ফোনে ছোট, জরুরি আপডেট | গ্রাহকের শুরু করা কথোপকথনের ভেতরে উত্তর |
| ফাইল বহন করতে পারে, যেমন ইনভয়েস | Yes | No | No |
| রাতের যেকোনো সময় পাঠানো যায় | Yes | No | No |
| আগে ওই কন্টাক্টের বিপরীতে সম্মতি রেকর্ড থাকা দরকার | No | Yes | No |
| কন্টাক্টপ্রতি সীমা ও কুলডাউন প্রযোজ্য | No | Yes | Yes |
| কেবল আপনাকে পাঠানো তাঁর শেষ মেসেজের ২৪ ঘণ্টার মধ্যে | No | No | Yes |
| দেখে মনে হয় কার কাছ থেকে এসেছে | আপনার যাচাই করা ডোমেইন, নিজের প্রেরক নাম ও reply-to সহ | অনুমোদন পাওয়ার পর আপনার নিজস্ব প্রেরক নাম — তার আগ পর্যন্ত ডিফল্ট প্রেরক | আপনার যুক্ত করা হোয়াটসঅ্যাপ বিজনেস নম্বর |
| প্রতিটি মেসেজের জন্য পড়ে দেখা যায় এমন স্ট্যাটাস | Yes | Yes | Yes |
| ডেলিভারি ওয়েবহুক | Yes | Yes | Yes |
| নিজের প্রোভাইডার আনুন, অথবা ম্যানেজড প্রোভাইডার ব্যবহার করুন | Yes | Yes | Yes |
রাতের বেলা পাঠানো আটকে রাখা আর কন্টাক্টপ্রতি সীমা রাখা হয়েছে, কারণ রাত ২টায় ফোনে মেসেজ মানে অভিযোগ ডেকে আনা। এ কারণেই অর্ডার নিশ্চিতকরণের জায়গা ইমেইল, আর ডেলিভারি পৌঁছে গেছে ধরনের অ্যালার্টের জায়গা দিনের বেলার এসএমএস — আর কোনো মেসেজ আটকে রাখা হলে QuickGrow তা স্পষ্ট করে জানিয়ে দেয়, পাঠানো হয়েছে বলে ভান করে না।
ক্যাম্পেইন একটি তালিকায় শিডিউল অনুযায়ী যায় এবং ব্যাচ হিসেবে মাপা হয়। ট্রানজেকশনাল সেন্ড হলো একটি ঘটনা নিয়ে একটি কল, যা আপনার সিস্টেম ঘটনার মুহূর্তেই করে এবং যা একটি মেসেজ হিসেবেই মাপা হয়। দুটোই একই মেসেজ ইতিহাসে জমা হয়, তাই পুরো ছবিটা আপনি দেখতে পান — তবে কেবল এপিআই সেন্ডই ওয়েবহুক তৈরি করে, তাই মার্কেটিং ট্রাফিকে আপনার এন্ডপয়েন্ট ভেসে যায় না।
সঙ্গে রিট্রাই কী পাঠালে পাবেন না। ২৪ ঘণ্টার মধ্যে একই কী দিয়ে একই রিকোয়েস্ট আবার পাঠান, QuickGrow নতুন করে না পাঠিয়ে আগের রেসপন্সটিই ফিরিয়ে দেবে — ফলে সংযোগ বিচ্ছিন্ন হলে আপনার কিছুই খরচ হয় না। একই কী অন্য কোনো এন্ডপয়েন্টে ব্যবহার করলে, কিংবা প্রথম রিকোয়েস্ট চলার সময়েই আবার ব্যবহার করলে, অপ্রত্যাশিত কিছুর বদলে আপনি স্পষ্ট একটি কনফ্লিক্ট ফেরত পাবেন।
হ্যাঁ, ইমেইলে যাবে। মেসেজের সঙ্গে ফাইল পাঠান — ডিকোড করার পর সর্বোচ্চ দশটি ফাইল ও সব মিলিয়ে সাত মেগাবাইট। এর বেশি হলে কলটি সঙ্গে সঙ্গেই এমন একটি এররসহ ফেরত আসে যেখানে সীমাটি বলা থাকে; গ্রহণ করে নিয়ে পরে এমন কোথাও ব্যর্থ হয় না যেদিকে আপনি কখনও তাকান না। এসএমএস ও হোয়াটসঅ্যাপ সেন্ড ফাইল বহন করতে পারে না, তাই সেখানে ডকুমেন্টের লিঙ্ক দিন।
একটি অ্যাকাউন্ট তৈরি করুন, সীমিত অনুমতির একটি কী বানান, আর আপনার প্রথম অর্ডার নিশ্চিতকরণ পোস্ট করুন। তিনটি চ্যানেলের জন্য একটি এন্ডপয়েন্ট, আর প্রতিটি মেসেজের এমন রেকর্ড যা আপনি পড়ে দেখতে পারবেন।
এক প্ল্যাটফর্ম থেকেই সব চ্যানেল চালান। নিজের SMTP, এসএমএস গেটওয়ে ও হোয়াটসঅ্যাপ নম্বর ব্যবহার করুন — অথবা আমাদেরটি নিন।
দাম দেখুন →