আরেকটি নিবন্ধন তৈরি না করে ক্যাম্পেইন সংশোধন করুন
বিদ্যমান ক্যাম্পেইনের বিবরণ, বার্তার উদাহরণ, সম্মতি-সংক্রান্ত ব্যাখ্যা অথবা সমর্থিত বিষয়বস্তুর বৈশিষ্ট্য সংশোধন করতে এই রুট ব্যবহার করুন। ক্যাম্পেইনের আইডি এবং বর্তমান ব্র্যান্ড/ব্যবহারের ধরন অপরিবর্তিত রাখুন। বিদ্যমান ক্যাম্পেইনের সংশোধন পুনরায় চেষ্টা করার উপায় নতুন নিবন্ধন তৈরি করা নয়।
অনুমোদিত উৎস আইপি ঠিকানা থেকে HTTPS-এর মাধ্যমে সক্রিয় API অ্যাকাউন্ট দিয়ে পরিচয় যাচাই করুন। শুধু সেই অ্যাকাউন্টের মালিকানাধীন ক্যাম্পেইনই ব্যবহার করা যাবে। পরিবর্তন প্রস্তুত করার আগে এর বর্তমান অবস্থা পড়ুন; এই কর্মপ্রবাহ দিয়ে মেয়াদোত্তীর্ণ ক্যাম্পেইন হালনাগাদ করা যায় না।
curl --silent --show-error --fail-with-body --user "$API_USER:$API_PASSWORD" \
"https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"যেসব ক্ষেত্র সত্যিই পরিবর্তিত হয়েছে সেগুলো বেছে নিন
সমর্থিত পরিবর্তনগুলো দিয়ে campaign-update.json প্রস্তুত করুন। বর্তমান পোর্টাল শুধু ক্যাম্পেইনের পরিবর্তিত ক্ষেত্রগুলো পাঠায়; brandId, usecase, campaignId বা কেবল প্রতিক্রিয়ায় পাওয়া স্থিতির তথ্য পাঠায় না। সরাসরি API হালনাগাদেও ক্ষেত্রগুলোর একটি JSON অবজেক্ট ব্যবহার করা হয়, পোর্টালের changes/version মোড়ক নয়।
| ক্ষেত্রসমূহ | যা দিতে হবে |
|---|---|
| description, messageFlow | সেবার সঠিক বিবরণ এবং মানুষ কীভাবে সম্মতি দেন, বার্তা পান ও সম্মতি প্রত্যাহার করেন তার ব্যাখ্যা। প্রতিটি ক্ষেত্রে 40–4096 অক্ষর দেওয়া যায়। |
| sample1–sample5 | এই ক্যাম্পেইনের বাস্তবসম্মত নমুনা দিন; ফাঁকা নয় এমন প্রতিটি নমুনায় 20–1024 অক্ষর থাকতে হবে। যোগ্যতা যাচাইয়ে নির্ধারিত ব্যবহারের ধরনের জন্য প্রয়োজনীয় নমুনার সংখ্যা বজায় রাখুন; সম্পর্কহীন বার্তা পাঠাবেন না। |
| helpMessage, optinMessage, optoutMessage | প্রাপকদের জন্য প্রযোজ্য উত্তর দিন, সর্বোচ্চ 1024 অক্ষরে। যেখানে আবশ্যক, ন্যূনতম 20 অক্ষরের শর্ত পূরণ করুন এবং প্রকৃত সেবা ব্যাখ্যা করুন। কোনো ক্ষেত্র ফাঁকা করার আগে বর্তমান সম্মতির শর্তগুলো পর্যালোচনা করুন। |
| optinKeywords, optoutKeywords, helpKeywords | স্পেস ছাড়া কমা দিয়ে আলাদা করা কীওয়ার্ড দিন, সর্বোচ্চ 255 অক্ষরে। উত্তর এবং কার্যক্রমে কীওয়ার্ড প্রক্রিয়াকরণের মধ্যে সামঞ্জস্য রাখুন। |
| privacyPolicyLink, termsAndConditionsLink | সেবাটি বাস্তবে কীভাবে পরিচালিত হয় তা বর্ণনা করা প্রাসঙ্গিক সর্বসাধারণের জন্য উন্মুক্ত ওয়েব ঠিকানা দিন, সর্বোচ্চ 2048 অক্ষরে। |
| embeddedLinkSample | বার্তায় যে ধরনের লিংক থাকবে তার একটি প্রতিনিধিত্বমূলক উদাহরণ দিন, সর্বোচ্চ 255 অক্ষরে। |
| numberPool, embeddedLink, embeddedPhone, ageGated, directLending | ক্যাম্পেইনের প্রকৃত বৈশিষ্ট্যগুলো JSON বুলিয়ান মান হিসেবে দিন। কোনো বৈশিষ্ট্য নিষ্ক্রিয় করতে false ব্যবহার করুন, "false" স্ট্রিং নয়। |
| autoRenewal | সর্বজনীন API স্কিমা এই JSON বুলিয়ান মান সমর্থন করে, যদিও পোর্টালের সাধারণ ক্যাম্পেইন-বিষয়বস্তু সম্পাদক এটি দেখায় না। নবায়ন বন্ধ করলে বিদ্যমান ন্যূনতম চুক্তিবদ্ধ দায় বাতিল হয় না বা ইতিমধ্যে পরিশোধযোগ্য অর্থ মুছে যায় না। |
| resellerId | স্কিমায় পুনর্বিক্রেতার সঙ্গে সংযুক্ত করার ব্যবস্থাও রয়েছে। এটি পোর্টালের সাধারণ বিষয়বস্তু সংশোধন ফর্মের আওতার বাইরে। এক গ্রাহকের ক্যাম্পেইন অন্য গ্রাহকের কাছে সরাতে এই ক্ষেত্র ব্যবহার করবেন না, কিংবা ধরে নেবেন না যে API অন্য পুনর্বিক্রেতার জন্য মোবাইল অপারেটরের সেবা কনফিগার করবে। |
হালনাগাদের স্কিমায় brandId, usecase, subscriberOptin, subscriberOptout বা subscriberHelp পরিবর্তনযোগ্য ক্ষেত্র হিসেবে নেই। ক্যাম্পেইন তৈরির সম্পূর্ণ পেলোড হালনাগাদের অনুরোধে কপি করবেন না। দেখুন বর্তমান যোগ্যতা নির্ধারণের তথ্য—বার্তার শর্তগুলো পর্যালোচনা করার সময়।
নির্দিষ্ট সংশোধন জমা দিন
এই উদাহরণে বোঝানোর জন্য অ্যাপয়েন্টমেন্টের কথা মনে করিয়ে দেওয়ার একটি সেবা দেখানো হয়েছে। ব্যবহারের আগে ক্যাম্পেইনের প্রকৃত সেবা ও সম্মতি নেওয়ার প্রক্রিয়া অনুযায়ী এটি মানিয়ে নিন।
{
"description": "Appointment reminders requested by customers of the registered business.",
"sample1": "Example business: Your requested appointment reminder is ready. Reply STOP to opt out."
}curl --silent --show-error --fail-with-body --user "$API_USER:$API_PASSWORD" \
--request PUT \
--header 'Content-Type: application/json' \
--header "Idempotency-Key: $IDEMPOTENCY_KEY" \
--data-binary @campaign-update.json \
"https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"একই উদ্দেশ্যের একই জমার জন্য একই কী এবং হুবহু একই মেথড, পাথ, কোয়েরি ও বডির বাইট রাখুন। বিষয়বস্তু পরিবর্তিত হলে আলাদাভাবে পর্যালোচিত অনুরোধ প্রয়োজন; সময়সীমা পেরিয়ে গেলে না বুঝে কী বদলাবেন না। সম্পন্ন অনুরোধ আবার পাঠালে ক্যাশে থাকা ত্রুটি ফেরত আসতে পারে, এবং প্রক্রিয়াধীন অনুরোধের অনুলিপি Retry-After-সহ 409 ফেরত দিতে পারে।
ক্যাম্পেইনটি আবার পড়ুন
HTTP 200 সরাসরি ক্যাম্পেইনের একটি JSON অবজেক্ট ফেরত দেয়। campaignId যাচাই করুন, তারপর একই ক্যাম্পেইন GET দিয়ে পড়ে কাঙ্ক্ষিত ক্ষেত্রগুলো মিলিয়ে দেখুন। সফলভাবে সংরক্ষণ করলেই মোবাইল অপারেটরের আরেকটি পর্যালোচনার অনুরোধ করা হয় না, নম্বরের বরাদ্দ বদলায় না, বার্তা পাঠানো সক্রিয় হয় না বা কোনো বার্তা পাঠানো হয় না।
পোর্টাল সংরক্ষণের আগে ফর্মের সংস্করণ যাচাই করে এবং পরে ক্যাম্পেইনটি আবার পড়ে। সর্বজনীন PUT এন্ডপয়েন্ট পোর্টালের সেই সংস্করণ বাধ্যতামূলকভাবে যাচাই করে না: একই সময়ে সম্পাদনা হলে সমন্বয় করুন। আইডেমপোটেন্সি কী অন্য সম্পাদকের হালনাগাদ শনাক্ত করে না।
পোর্টালে যদি পর্যালোচনায় প্রত্যাখ্যানের কোনো অমীমাংসিত ফল দেখায়, প্রথমে বিষয়বস্তু সংশোধন করুন, তারপর আলাদা পর্যালোচনার অনুরোধ করার সুবিধা পাওয়া গেলে সেটি ব্যবহার করুন। সেই পদক্ষেপে বর্তমানে চালু সেবার ক্যাম্পেইন ও শেয়ার করার অবস্থা যাচাই করা হয়। শুধু বিষয়বস্তু সংরক্ষণ করলে এই পদক্ষেপ কার্যকর হয় না, এবং ক্যাম্পেইন আইডি থাকলেই অনুমোদন হয়েছে বলে প্রমাণিত হয় না।
বর্তমান সেবায় সাধারণ ক্যাম্পেইন PUT হালনাগাদ থেকে ক্যাম্পেইন নিবন্ধনের জন্য আলাদা অর্থ কাটা হয় না। বিদ্যমান মাসিক ফি, ন্যূনতম চুক্তিবদ্ধ দায়, নম্বরের ভাড়া এবং বার্তা ব্যবহারের খরচ বহাল থাকে। ক্যাম্পেইনের বর্তমানে নির্ধারিত হার জানতে দেখুন ক্যাম্পেইনের ফি।
সীমাবদ্ধতা ও অনিশ্চিত ফলাফল সামলান
HTTP 400 হলে ক্ষেত্রভিত্তিক ত্রুটি পড়ুন এবং দৈর্ঘ্য, সম্মতির লেখা ও ক্যাম্পেইনের অবস্থা যাচাই করুন। 401, 403 বা 404 হলে API পরিচয়পত্র, অনুমোদিত উৎস আইপি ও মালিকানা যাচাই করুন। 429 হলে Retry-After নির্দেশ মেনে চলুন। 500, 502 বা অনুরোধ মাঝপথে ব্যাহত হলে ক্যাম্পেইন আইডি ও যেকোনো requestId সংরক্ষণ করুন, তারপর আবার জমা দেওয়ার আগে বিদ্যমান রেকর্ডের সঙ্গে মিলিয়ে অবস্থা নিশ্চিত করুন।
স্থানীয়ভাবে রাখা অবস্থার অনুলিপি ফেরত আসা বডির ওপর নির্ভর করে। ফাঁকা নয় এমন আংশিক প্রতিক্রিয়ায় নবায়নের মেটাডেটাসহ পুরোনো ক্ষেত্র বাদ পড়তে পারে; ফাঁকা প্রতিক্রিয়ায় অচল পুরোনো মান থেকে যেতে পারে। শুধু সফলতাকে সব ক্ষেত্র অক্ষুণ্ণ থাকার প্রমাণ না ধরে সম্পূর্ণ GET ফলাফল যাচাই করুন। অমীমাংসিত অমিল সহায়তা বিভাগের কাছে জানান। এই রুট মোবাইল অপারেটরের বরাদ্দগুলোকে একক অবিভাজ্য কার্যক্রমে হালনাগাদ করে না বা অপারেটরের সেবা সক্রিয়করণ পুনরুদ্ধারের সাধারণ কোনো ব্যবস্থা দেয় না।