QuickGrow AICyberCraft BangladeshQuickGrow AI
লজিস্টিকসের জন্য

প্রতিটি পার্সেল নিজের কথা নিজেই বলে।

পার্সেল কখন পিকআপ হলো, কখন ডেলিভারির পথে আছে, কখন ডেলিভারির চেষ্টা হলো বা ডেলিভারি হয়ে গেল — আপনার সিস্টেম তা আগে থেকেই জানে। প্রতিটি ইভেন্টে একটি এপিআই কল করলেই সেটি প্রাপকের কাছে হোয়াটসঅ্যাপ, এসএমএস বা ইমেইল বার্তা হয়ে যায় — আর ফিরে আসে ডেলিভারি স্ট্যাটাস, যা আপনি কনসাইনমেন্টের সাথে সংরক্ষণ করতে পারেন।

একটি এন্ডপয়েন্ট, তিনটি চ্যানেলপ্রতিটি বার্তার জন্য ডেলিভারি স্ট্যাটাসরিট্রাই হলেও একই বার্তা দুইবার যায় না
প্রোডাক্টের ভেতরে খোলা QuickGrow এপিআই রেফারেন্স: পাশে এন্ডপয়েন্টের তালিকা, সাথে একটি সেন্ড কলের রিকোয়েস্ট ও রেসপন্স।

স্ট্যাটাস তো আছেই। শুধু সেটি আপনার সিস্টেমের বাইরে কখনো যায় না।

একটি কুরিয়ার অপারেশনে ইভেন্টের অভাব নেই: পিকআপে স্ক্যান, হাবে ব্যাগ বরাদ্দ, রাইডারের রুটে বের হওয়া, ব্যর্থ ডেলিভারি চেষ্টা, স্বাক্ষরসহ ডেলিভারি সম্পন্ন। এর প্রতিটিই এমন এক মুহূর্ত, যার খবর প্রাপক জানতে চান। অথচ এর প্রায় কোনোটিই অপারেশন স্ক্রিনের বাইরে কারও কাছে পৌঁছায় না।

The hotline

আপনার কল সেন্টারই ট্র্যাকিং সিস্টেম

মানুষ ফোন করে, কারণ কেউ তাদের কিছু জানায়নি। এজেন্টের যে সময়টা স্ক্রিন থেকে স্ট্যাটাস পড়ে শোনাতে যায়, সেই একই স্ক্রিন নিজেই তা পাঠিয়ে দিতে পারত — খরচের সামান্য এক ভগ্নাংশে।

The rider

মেসেজিংয়ের কাজটা করছেন রাইডার

প্রতিটি ডেলিভারির আগে ব্যক্তিগত নম্বর থেকে কল। কিছুই রেকর্ড হয় না, মার্চেন্ট দেখতে পান না কী কথা হলো, আর গ্রাহকের হাতে ফিরে দেখার মতো কোনো থ্রেডও থাকে না।

ব্যর্থ ডেলিভারি চেষ্টা

দ্বিতীয়বার চেষ্টা মানে দ্বিগুণ খরচ

পার্সেল বের হলো, বাসায় কেউ নেই, পার্সেল ফেরত এলো। রাইডার পৌঁছানোর আগে একটি বার্তা — আর ব্যর্থ চেষ্টার পর সুবিধাজনক সময় জেনে নেওয়ার আরেকটি বার্তা — একই ডেলিভারির জন্য দুইবার খরচ ঠেকানোর সবচেয়ে সস্তা উপায়।

প্রতিটি পার্সেল ইভেন্টে একটি কল।

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

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

    Settings → Developer API থেকে নিজস্ব স্কোপসহ কী ইস্যু হয়: বার্তা পাঠানো, বার্তা পড়া, কন্টাক্ট, টেমপ্লেট, ডেলিভারি পরিসংখ্যান। আপনার ইন্টিগ্রেশন যতটুকু ব্যবহার করে ততটুকুই অনুমতি দিন, আর যখন খুশি নতুন কী ইস্যু করে পুরোনোটি বাতিল করে দিন।

  2. ইভেন্টটি পাঠান

    আপনার সিস্টেম প্রতিটি পার্সেল ইভেন্টে একটি রিকোয়েস্ট পাঠায় — চ্যানেল, ফোন নম্বর বা ইমেইল, এবং বার্তার কনটেন্ট অথবা টেমপ্লেট আইডি ও তার ভ্যালু। রিকোয়েস্টে আপনার কনসাইনমেন্ট নম্বর জুড়ে দিন, রেসপন্সে সেটি ফিরে আসবে।

  3. উত্তরটি পড়ুন

    রেসপন্সে সাথে সাথেই একটি মেসেজ আইডি ও স্ট্যাটাস থাকে। ইমেইল ওই কলেই সম্পন্ন হয়; এসএমএস ও হোয়াটসঅ্যাপ প্রথমে queued অবস্থায় ফেরে, তারপর ধাপে ধাপে এগোয়। ওই আইডি দিয়ে যেকোনো সময় আবার স্ট্যাটাস জানতে পারেন।

  4. পৌঁছালেই জেনে যান

    নিজের একটি এন্ডপয়েন্ট রেজিস্টার করুন — বার্তাটি পাঠানো, ডেলিভারি, বাউন্স বা ব্যর্থ হলে QuickGrow আপনাকে কলব্যাক করবে। ফলে কাউকে বারবার খোঁজ না নিয়েই কনসাইনমেন্ট রেকর্ড আপডেট হয়ে যাবে।

POST /api/v1/messages
X-API-Key: mk_...

{
  "channel": "whatsapp",
  "to": "+8801700000000",
  "templateId": "out-for-delivery",
  "variables": {
    "name": "Rahim",
    "parcel": "CN-884213",
    "window": "2pm - 5pm"
  },
  "tags": ["out_for_delivery"],
  "metadata": { "consignmentId": "CN-884213" }
}
201 Created
{
  "data": {
    "id": "9f2a...",
    "channel": "whatsapp",
    "status": "queued",
    "to": "+8801700000000",
    "tags": ["out_for_delivery"],
    "metadata": { "consignmentId": "CN-884213" },
    "createdAt": "2026-08-23T09:00:00.000Z",
    "sentAt": null,
    "deliveredAt": null,
    "failedAt": null,
    "failureReason": null
  }
}

আপনি যা কিছু দেবেন metadata তা অবিকৃত অবস্থায় ফিরে আসে — রেসপন্সে, পরে স্ট্যাটাস পড়ার সময়, এবং প্রতিটি কলব্যাকে। ওখানে কনসাইনমেন্ট নম্বরটি রাখুন, তাহলে মেসেজ আইডির সাথে পার্সেল মেলানোর জন্য আলাদা কোনো টেবিল রাখতেই হবে না।

আলাদা ইভেন্টের জন্য আলাদা চ্যানেল।

তিনটিই একই এন্ডপয়েন্ট আর একই কী-তে চলে, তাই ইভেন্টপ্রতি বাছাই করতে একটি মাত্র ফিল্ড লাগে। হোয়াটসঅ্যাপ আসে আপনার বিজনেস প্রোফাইল থেকে অফিসিয়াল Meta Cloud API-র মাধ্যমে; Masking ভলিউম কিনলে এসএমএস যায় ব্র্যান্ডেড সেন্ডার নামে; কাগজপত্র বহন করে ইমেইল।

Utility is the WhatsApp category order and delivery updates fall under. Meta bills you directly per message, at Meta's own rate, with no markup from QuickGrow.
WhatsAppSMSEmail
যেসব ইভেন্টের জন্য উপযুক্তডেলিভারির পথে, রাইডার নিযুক্ত, ডেলিভারি সম্পন্ন, ব্যর্থ চেষ্টাপিকআপ নিশ্চিত, ডেলিভারির সময়সীমা, এবং যেসব খবর সাধারণ হ্যান্ডসেটেও পৌঁছাতেই হবেমার্চেন্ট ম্যানিফেস্ট, ইনভয়েস, ডেলিভারির প্রমাণ, সাপ্তাহিক সারসংক্ষেপ
মোবাইল ইন্টারনেট ছাড়াই পৌঁছায়NoYesNo
প্রাপক উত্তর দিতে পারেন, আর সেই উত্তরের জবাবও কেউ দিতে পারেনYesYesYes
প্রেরক হিসেবে আপনার ব্র্যান্ডের নাম দেখায়আপনার হোয়াটসঅ্যাপ বিজনেস প্রোফাইলMasking SMS-এ একটি ব্র্যান্ডেড সেন্ডার নামআপনার নিজের ভেরিফায়েড ডোমেইন
আগে Meta-অনুমোদিত টেমপ্লেট লাগেYesNoNo
ফাইল পাঠানো যায়NoNoসর্বোচ্চ ১০টি অ্যাটাচমেন্ট, সব মিলিয়ে ৭ MB
Sold asBilled by Meta directly, per category: Utility, Authentication and MarketingMasking ও Non-Masking, প্রতিটি নিজস্ব ভলিউম স্লাইডারেবাল্ক ও ট্রানজেকশনাল — আপনার নিজের মেইল সার্ভার অথবা আমাদেরটি

পৌঁছেছে কি না, তা আপনি জানতে পারেন।

বার্তা পাঠানো আর বার্তা পৌঁছানো এক নয় — আর এই পার্থক্য কুরিয়ার ব্যবসার চেয়ে ভালো আর কেউ বোঝে না। প্রতিটি বার্তার নিজস্ব স্ট্যাটাস থাকে, সাথে থাকে সংশ্লিষ্ট সময়ের হিসাব।

একই সময়ের মধ্যে ইমেইল, হোয়াটসঅ্যাপ ও এসএমএস-এর ডেলিভারি ফলাফল পাশাপাশি তুলনা করা একটি রিপোর্ট।
প্রতিটি বার্তার জন্য, এবং সব মিলিয়ে

কিউতে, পাঠানো হয়েছে, পৌঁছেছে — অথবা ব্যর্থ, কারণসহ

আইডি দিয়ে একটি বার্তার খোঁজ করলে পাবেন তার বর্তমান স্ট্যাটাস, কখন পাঠানো হয়েছে, কখন পৌঁছেছে, আর কিছু ভুল হয়ে থাকলে প্রোভাইডারের দেওয়া কারণ ও কোড। আর তালিকা চাইলে সেটি চ্যানেল, স্ট্যাটাস বা তারিখ ধরে ফিল্টার করতে পারবেন।

  • বাস্তবে যেসব স্ট্যাটাস দেখবেন: queued, sending, sent, delivered, opened, clicked, bounced, failed
  • ব্যর্থ বার্তার সাথে থাকে কারণ ও কোড, শুধু একটি লাল দাগ নয়
  • একটি কল দিলেই নির্দিষ্ট তারিখ পরিসরে চ্যানেলভিত্তিক ডেলিভারি পরিসংখ্যান পাওয়া যায়, ফলে একই সময়সীমায় হোয়াটসঅ্যাপ ও এসএমএস তুলনা করতে পারবেন
POST https://ops.yourcourier.com/hooks/quickgrow
{
  "id": "evt_5c1d...",
  "event": "message.delivered",
  "createdAt": "2026-08-23T09:00:31.412Z",
  "data": {
    "message": {
      "id": "9f2a...",
      "channel": "whatsapp",
      "status": "delivered",
      "to": "+8801700000000",
      "metadata": { "consignmentId": "CN-884213" },
      "deliveredAt": "2026-08-23T09:00:31.106Z"
    }
  }
}

চারটি কলব্যাক, এর বেশি কিছু নয়

পোর্টালে একটি এন্ডপয়েন্ট রেজিস্টার করে যেসব ইভেন্ট চান তাতে সাবস্ক্রাইব করুন: বার্তা পাঠানো হয়েছে, পৌঁছেছে, বাউন্স করেছে, ব্যর্থ হয়েছে। শুধু এপিআই দিয়ে পাঠানো বার্তাগুলোই এই কলব্যাক তৈরি করে, তাই কোনো মার্কেটিং ক্যাম্পেইন কখনো আপনার অপারেশন সিস্টেম ভাসিয়ে দেবে না।

  • Every callback is signed with a secret only you and QuickGrow hold, so your endpoint can prove where it came from
  • A callback your server misses is retried five times over roughly half an hour
  • Every attempt is logged in the portal with the response your endpoint gave, and you can fire a test one whenever you like
  • If you would rather not take callbacks at all, ask for the message id again and read the same status

রিট্রাই হলেও একই বার্তা দুইবার যায় না।

সর্টিং হাবের ইন্টিগ্রেশন কোনো না কোনো সময় একই ইভেন্ট দুইবার পাঠাবেই — টাইমআউট, রিপ্লে হওয়া কিউ, কিংবা রিট্রাই হওয়া জব। রিকোয়েস্টে নিজের একটি কী দিন; ২৪ ঘণ্টার মধ্যে একই কী আবার এলে দ্বিতীয় বার্তা না পাঠিয়ে প্রথম রেসপন্সটিই ফিরিয়ে দেওয়া হয়। প্রাপক খবর পান একবারই।

Duplicates

একই কল আবার এলে আগেরটিই ফিরে আসে

কনসাইনমেন্ট নম্বর ও ইভেন্টের নাম মিলিয়ে কী বানান। আবার পাঠালে মূল মেসেজ আইডিটিই ফিরে পাবেন, রিপ্লে হিসেবে চিহ্নিত থাকবে, আর নতুন করে কিছুই যাবে না।

Errors

যেসব ব্যর্থতা ধরে আলাদা সিদ্ধান্ত নেওয়া যায়

প্রতিটি ত্রুটি একটি নির্দিষ্ট কোডসহ ফেরে — ভুল ফোন নম্বর, টেমপ্লেট নেই, পর্যাপ্ত ব্যালেন্স নেই, রেট বরাদ্দ শেষ — ফলে আপনার রিট্রাই লজিক লেখাটা নয়, কোডটাই পড়ে।

Rate

প্রতি মিনিটের বরাদ্দ

প্রতিটি কী-এর নিজস্ব প্রতি-মিনিট রিকোয়েস্ট সীমা থাকে, আর প্রতিটি রেসপন্সে জানানো হয় সীমা কত, কতটা বাকি আছে, আর উইন্ডো কখন রিসেট হবে। ব্যস্ত সময়ের হঠাৎ চাপে নীরবে ব্যর্থ হওয়ার বদলে আপনি আগেই জেনে যান কখন গতি কমাতে হবে।

Access

Scoped keys

যে কী শুধু বার্তা পাঠায়, সেটি আপনার কন্টাক্ট পড়তে পারে না। প্রতিটি সিস্টেমের জন্য আলাদা কী ইস্যু করুন — হাব স্ক্যানার, রাইডার অ্যাপ, মার্চেন্ট পোর্টাল — আর বাকিগুলোতে হাত না দিয়েই একটিকে বন্ধ করে দিন।

উত্তরটি পৌঁছায় একজন মানুষের কাছে, বন্ধ কোনো নম্বরে নয়।

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

শেয়ার্ড ইনবক্সে খোলা একটি পার্সেল সংক্রান্ত হোয়াটসঅ্যাপ থ্রেড, পাশে কন্টাক্ট রেকর্ড, ট্যাগ ও দায়িত্বপ্রাপ্ত ব্যক্তি।
শেয়ার্ড ইনবক্স

তিনটি চ্যানেলের জন্য একটিই ইনবক্স

হোয়াটসঅ্যাপ, এসএমএস ও ইমেইল থ্রেড একই জায়গায় আসে, কন্টাক্ট রেকর্ড ও তার ট্যাগের পাশেই। ডিউটিতে থাকা যে কেউ থ্রেডটি হাতে নিয়ে অ্যাসাইন করতে, উত্তর দিতে ও নিষ্পত্তি করতে পারেন — পুরো ব্যাপারটা আর যার হাতে ফোন তার ওপর নির্ভর করে না।

  • সময় বদলানোর অনুরোধ নামসহ একটি থ্রেড হয়ে ওঠে, কেউ লিখে না রাখা একটি কল নয়
  • কেউ হোয়াটসঅ্যাপে বার্তা পাঠালে অনুমোদিত টেমপ্লেট ছাড়াই নিজের ভাষায় উত্তর দেওয়ার জন্য আপনি ২৪ ঘণ্টা সময় পান
  • রুটিন প্রশ্নের উত্তর প্রথমে একটি চ্যাটবট দিতে পারে, আর না পারলে সেটি মানুষের হাতে তুলে দেয়

এই ফাঁকে বাকি এন্ডপয়েন্টগুলোও দেখে নিন।

Sending

  • ইমেইল, এসএমএস ও হোয়াটসঅ্যাপের জন্য একটিই সেন্ড এন্ডপয়েন্ট
  • বার্তা সরাসরি লিখুন, অথবা টেমপ্লেট সংরক্ষণ করে তাতে ভ্যালু পাঠান
  • প্রতিটি পার্সেল অনুযায়ী প্লেসহোল্ডার পূরণ হয় — নাম, কনসাইনমেন্ট নম্বর, ডেলিভারির সময়সীমা

Reading

  • আইডি দিয়ে একটি বার্তার খোঁজ করলে তার স্ট্যাটাস ও সময়ের হিসাব পাবেন
  • চ্যানেল, স্ট্যাটাস বা তারিখ পরিসর ধরে ফিল্টার করা বার্তার তালিকা, এক পৃষ্ঠা করে
  • আপনার চাওয়া যেকোনো সময়সীমায় চ্যানেলভিত্তিক ডেলিভারি পরিসংখ্যান

প্রোডাকশনে চালানোর সময়

  • পোর্টালেই কী তৈরি, স্কোপ নির্ধারণ, বাতিল ও মুছে ফেলা যায়; পাঠাতে হয় হেডার হিসেবে
  • সব ত্রুটি একই কাঠামোয়, সাথে নির্দিষ্ট কোড ও রেফারেন্সের লিঙ্ক
  • কলব্যাকের সাথে সাইনিং সিক্রেট, ডেলিভারি লগ ও টেস্ট সেন্ড সুবিধা

শুরু করতে কত খরচ।

Two parts: a platform fee, and the messages you send. Buying managed volume on SMS and email waives part of the platform fee, and buying enough waives it entirely. WhatsApp carries no fee of ours at all — Meta bills you directly for it, at Meta's own rate. Already have an SMS account or a mail server of your own? Bring it and pay the platform fee only. A longer billing term discounts both, on separate ladders.

বিলিং সেটিংসে প্রিপেইড ওয়ালেট কার্ড, যেখানে টাকায় ব্যালেন্স ও টপ-আপের নিয়ন্ত্রণ দেখা যাচ্ছে।
প্রিপেইড ওয়ালেট

টাকায় টপ-আপ করুন, বাড়তিটা সামলান

Before you know your real SMS and email volume, set the sliders low and let the wallet catch the rest: sends beyond what you bought are billed at the base rate from the balance. Move the sliders up once the parcel count settles. WhatsApp has no slider and no wallet — Meta bills you directly for it, at Meta's own rate, with no markup from QuickGrow. Volume and prices for SMS and email are in BDT throughout.

  • একটি চ্যানেল দিয়ে শুরু করুন, ইন্টিগ্রেশন প্রস্তুত হলে বাকিগুলো যোগ করুন
  • An SMS or email send with no balance behind it fails with a clear code rather than disappearing
  • আরেকটি অপারেটরকে QuickGrow রেফার করুন, দুই পক্ষই ক্রেডিট পাবেন

ইন্টিগ্রেশনে হাত দেওয়ার আগে।

আমাদের কতটা তৈরি করতে হবে?

প্রতিটি পার্সেল ইভেন্টে একটি HTTPS রিকোয়েস্ট, হেডারে আপনার কী। তিনটি চ্যানেলের জন্যই একটি সেন্ড এন্ডপয়েন্ট, তাই এসএমএস আর হোয়াটসঅ্যাপ আপডেটের পার্থক্য মাত্র একটি ফিল্ডের। ডেলিভারির ফলাফল আপনার কাছে পুশ করাতে চাইলে নিজের একটি এন্ডপয়েন্ট যোগ করে পোর্টালে সাবস্ক্রাইব করুন — নইলে যখন দরকার, মেসেজ আইডি দিয়ে স্ট্যাটাস জেনে নিতে পারেন।

আমাদের সিস্টেম একই ইভেন্ট দুইবার পাঠালে কী হবে?

রিকোয়েস্টে নিজের একটি কী দিন — কনসাইনমেন্ট নম্বর ও ইভেন্টের নাম ভালো কাজ করে। ২৪ ঘণ্টার মধ্যে সেই কী আবার এলে মূল রেসপন্সটিই ফিরে আসে এবং সেটি রিপ্লে হিসেবে চিহ্নিত হয়, তাই দ্বিতীয় কোনো বার্তা যায় না। একই কী অন্য কোনো এন্ডপয়েন্টে ব্যবহার করলে অপ্রত্যাশিত বার্তা যাওয়ার বদলে স্পষ্ট একটি কনফ্লিক্ট ত্রুটি পাবেন।

বার্তাটি সত্যিই প্রাপকের কাছে পৌঁছেছে কি না, আমরা কীভাবে বুঝব?

প্রতিটি বার্তার নিজস্ব স্ট্যাটাস থাকে: queued, sending, sent, delivered, opened, clicked, bounced বা failed — সাথে যে ধাপ পর্যন্ত পৌঁছেছে তার প্রতিটির সময়। ব্যর্থ হলে কারণ ও প্রোভাইডার কোডও থাকে। এটি আপনি মেসেজ আইডি দিয়ে পড়তে পারেন, চ্যানেল ও স্ট্যাটাস ধরে বার্তার তালিকা দেখতে পারেন, অথবা বার্তা পাঠানো, ডেলিভারি, বাউন্স বা ব্যর্থ হলে QuickGrow-কে আপনার এন্ডপয়েন্টে কল করতে বলতে পারেন।

কথাটা পার্সেলকেই বলতে দিন।

একটি কী তৈরি করুন, আপনার স্টেজিং হাব থেকে একটি বার্তা পাঠান, আর প্রোডাকশন ইন্টিগ্রেশনে হাত দেওয়ার আগেই ডেলিভারি স্ট্যাটাস ফিরে আসতে দেখুন।