Dify অ্যাপ দিয়ে WhatsApp মেসেজের উত্তর দিন
নম্বরের ওয়েবহুক একটি ছোট রিসিভারের দিকে পাঠান, যেমন n8n ওয়ার্কফ্লো বা আপনার নিজের কোডের একটি রুট। রিসিভার প্রতিটি মেসেজ Dify-এর Send Chat Message API-তে পাঠায় এবং উত্তরটি Cloud API দিয়ে ফেরত পাঠায়। Dify-এর ভেতরে EasyCoexistence MCP সার্ভারকে টুল হিসেবে যোগ করা যায়, ফলে এজেন্ট নিজেই নম্বরের ওপর কাজ করতে পারে।
Dify-এর Webhook Trigger JSON নয় এমন প্রতিক্রিয়ার বডিকে JSON-এ মুড়ে দেয়, তাই এটি Meta-র হুবহু চ্যালেঞ্জ ফেরত দিতে পারে না।
Dify-এর Service API কল একটি চ্যাট অ্যাপে ব্যবহারকারীর একটি মেসেজ পাঠায় এবং তার উত্তর ফেরত আনে।
Dify-এর MCP টুল ডায়নামিক ক্লায়েন্ট রেজিস্ট্রেশনের মাধ্যমে OAuth ক্রেডেনশিয়াল পায়, যা ডিফল্টভাবে চালু থাকে।
Meta কি WhatsApp মেসেজ সরাসরি Dify-তে পাঠাতে পারে?
না, অন্তত হ্যান্ডশেক সম্পূর্ণ হয় এমনভাবে নয়। কিছু পাঠানোর আগে Meta গন্তব্যে একটি GET কল করে এবং hub.challenge-এর মানটি হুবহু প্রতিক্রিয়ার বডি হিসেবে ফেরত চায়। Dify-এর Webhook Trigger প্রতিটি ট্রিগারে একটি HTTP মেথড গ্রহণ করে, আর তার ডকুমেন্টেশন বলে JSON নয় এমন প্রতিক্রিয়ার বডি স্বয়ংক্রিয়ভাবে JSON-এ রূপান্তরিত হয়, তাই OK ফেরত আসে একটি মেসেজ অবজেক্ট হয়ে। ফলে চ্যালেঞ্জ কখনো হুবহু ফেরত দেওয়া যায় না এবং Meta কখনো ডেলিভারি শুরু করে না।
তাই সামনে ছোট একটি কিছু বসাতে হয়। n8n-এর Webhook নোড, Python বা Node-এর একটি রুট অথবা একটি সার্ভারলেস ফাংশন GET-এর উত্তর দেয়, POST গ্রহণ করে এবং টেক্সট Dify-কে হস্তান্তর করে। ওয়েবহুক URL-এর দীর্ঘ এলোমেলো সিক্রেটও এই রিসিভারেই যাচাই করা হয়, কারণ X-Hub-Signature-256 হেডার Tech Provider-এর অ্যাপ সিক্রেট দিয়ে সই করা হয় এবং গ্রাহক তা যাচাই করতে পারেন না।
রিসিভার কীভাবে Dify অ্যাপের সঙ্গে কথা বলে?
Dify-এর Service API-তে একটি কলের মাধ্যমে: POST /chat-messages, অ্যাপের API কী দিয়ে প্রমাণীকরণ করা। বডিতে থাকে query, অর্থাৎ গ্রাহকের টেক্সট, এবং user, যা আপনার নিজের ঠিক করা একটি শনাক্তকারী। প্রেরকের WhatsApp নম্বরকে user হিসেবে ব্যবহার করুন এবং Dify যে conversation_id ফেরত দেয় তা রেখে দিন, যাতে একই ব্যক্তির পরের মেসেজ একই কথোপকথনে চলতে থাকে।
response_mode গুরুত্বপূর্ণ। Blocking মোডে উত্তর সম্পূর্ণ হলে তবেই প্রতিক্রিয়া আসে, আর Dify-এর ডকুমেন্টেশন সতর্ক করে যে Dify Cloud-এ দীর্ঘ জেনারেশন এজ প্রক্সিতে কেটে যেতে পারে। Agent অ্যাপ শুধু streaming সমর্থন করে, তাই সেখানে blocking রিকোয়েস্ট 400 দিয়ে ব্যর্থ হয়। যে রিসিভার স্ট্রিম পড়ে এবং শেষে একটিমাত্র WhatsApp মেসেজ পাঠায়, সেটিই সবচেয়ে নির্ভরযোগ্য কাঠামো।
উত্তরটি এরপর Cloud API-র টেক্সট মেসেজ হিসেবে একই নম্বরে যায়, যা গ্রাহকের মেসেজে খোলা 24 ঘণ্টার উইন্ডোর মধ্যে বিনামূল্যে।
Dify-এর ভেতরে MCP সার্ভার কী যোগ করে?
প্রতিটি কল আলাদাভাবে জুড়ে না দিয়েই Dify এজেন্টকে নম্বরের ওপর কাজ করার ক্ষমতা। Dify HTTP-র মাধ্যমে MCP সার্ভারের সঙ্গে যুক্ত হয় এবং ডিফল্টভাবে OAuth ডায়নামিক ক্লায়েন্ট রেজিস্ট্রেশনের মাধ্যমে সার্ভারে নিজেকে নিবন্ধিত করে, যা EasyCoexistence MCP সার্ভার সমর্থন করে। Tools-এর অধীনে এটি যোগ করুন, একবার লগ ইন করুন, আর এজেন্ট পেয়ে যাবে টুলগুলো: নম্বরের তালিকা, নম্বরের হেলথ দেখা, মেসেজ পাঠানো, অনুমোদিত টেমপ্লেট পাঠানো, টেমপ্লেটের স্ট্যাটাস পড়া।
আগ বাড়িয়ে করা কাজের জন্য এটাই সঠিক জায়গা: পরের দিন ফলো-আপ করা Dify ওয়ার্কফ্লোকে send_template ব্যবহার করতে হবে, কারণ উইন্ডোর বাইরে ফ্রি টেক্সট পাঠালে ত্রুটির কোড 131047 ফেরত আসে, আর টুলের বিবরণ মডেলকে তা জানিয়ে দেয়।
MCP যা পারে না তা হলো গ্রাহক লিখলে Dify-কে জাগিয়ে তোলা। প্রোটোকলটি রিকোয়েস্ট ও প্রতিক্রিয়ার, তাই আসা মেসেজ এখনো ওয়েবহুক এবং সামনের রিসিভারের মধ্য দিয়েই পৌঁছায়।
সাধারণ ভুলগুলো
- ওয়েবহুকের গন্তব্য হিসেবে Dify Webhook Trigger URL ব্যবহার করা। চ্যালেঞ্জ JSON-এ মোড়া হয়ে ফেরত আসে এবং Meta কখনো এন্ডপয়েন্ট যাচাই করে না।
- Dify Agent অ্যাপে blocking রিকোয়েস্ট পাঠানো। Agent অ্যাপ শুধু streaming সমর্থন করে, আর কলটি 400 দিয়ে ব্যর্থ হয়।
- প্রতিটি মেসেজে নতুন user মান ব্যবহার করা। Dify কথোপকথনকে user-এর আওতায় রাখে, তাই প্রতিটি মেসেজ কোনো স্মৃতি ছাড়া নতুন কথোপকথন শুরু করে।
easycoexistence.com-এ নম্বরটি সংযুক্ত করুন, ওয়েবহুকের গন্তব্য আপনার রিসিভারে দিন এবং এজেন্টের কাজের জন্য Dify-তে MCP সার্ভার যোগ করুন। প্রতি নম্বরে মাসে US$ 9 থেকে শুরু, নম্বর বাড়ার সঙ্গে US$ 1 পর্যন্ত নামে, প্রথম 3 দিন ফ্রি।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
Dify-তে কি WhatsApp চ্যানেল আছে?
এর ডকুমেন্টেশনে নেই। Dify অ্যাপ তার Service API দিয়ে পাওয়া যায়, তাই WhatsApp যুক্ত হয় এমন একটি রিসিভারের মাধ্যমে, যা সেই API কল করে।
n8n কি রিসিভার হতে পারে?
হ্যাঁ। একটি Webhook নোড মেসেজ গ্রহণ করে, একটি HTTP Request নোড Dify-কে কল করে, আর দ্বিতীয় HTTP Request নোড Cloud API দিয়ে উত্তর পাঠায়।
টিম কি ফোন থেকে এখনো উত্তর দিতে পারবে?
হ্যাঁ। Coexistence নম্বরটিতে WhatsApp Business অ্যাপ চালু রাখে, আর ফোন থেকে পাঠানো উত্তর echo ইভেন্ট হিসেবে রিসিভারে পৌঁছায়।
EasyCoexistence কি কথোপকথন দেখতে পায়?
না। Meta সরাসরি আপনার রিসিভারে ডেলিভারি দেয় এবং মেসেজের বিষয়বস্তু আমাদের দিকে কখনো সংরক্ষণ করা হয় না। MCP সার্ভার শুধু অ্যাকাউন্ট ও নম্বরের অবস্থা পড়ে।
আরও পড়ুন
শুরু করতে প্রস্তুত?
মাস নয়, কয়েক মিনিটেই WhatsApp Coexistence সেট আপ করুন। ফোনে অ্যাপটি কাজ করতে থাকে।
ফ্রি ট্রায়াল শুরু করুনযাচাই করা হয়েছে