Flowise চ্যাটফ্লো দিয়ে WhatsApp মেসেজের উত্তর দিন
নম্বরের ওয়েবহুক গন্তব্য একটি ছোট রিসিভারে সেট করুন, যেমন n8n ওয়ার্কফ্লো বা আপনার নিজের কোডের একটি রুট। এটি প্রতিটি মেসেজ প্রেরকের নম্বরকে সেশন আইডি ধরে Flowise-এর Prediction API-তে পাঠায়, তারপর নম্বরের টোকেন ও `phone_number_id` দিয়ে Cloud API-এর মাধ্যমে উত্তর ফেরত পাঠায়।
Flowise-এর যে এন্ডপয়েন্ট একটি ফ্লোতে মেসেজ পাঠায় এবং তার প্রতিক্রিয়া ফেরত দেয়।
Flowise-এর Custom MCP, Streamable HTTP-এর মাধ্যমে, একটি URL এবং হেডার নেয়, যেমন বিয়ারার টোকেন।
এই উইন্ডো বন্ধ হওয়ার পর গ্রাহককে শুধু আগে থেকে অনুমোদিত টেমপ্লেট মেসেজ পাঠানো যায়।
Flowise-এর সামনে কিছু একটা কেন লাগে?
কারণ Meta-র ওয়েবহুক আর Flowise-এর API আলাদা ধরনে কথা বলে। Meta একটি গন্তব্য যাচাই করে GET দিয়ে, যার উত্তরে কাঁচা বডি হিসেবে hub.challenge ফেরত দিতে হয়, তারপর প্রতিটি মেসেজ পাঠায় নেস্টেড JSON POST হিসেবে। Flowise-এর Prediction API চায় /api/v1/prediction/ এবং তার পরে ফ্লো আইডিসহ একটি POST, সঙ্গে একটি question ফিল্ড। কেউই অন্যটির মতো নিজেকে বদলাবে না, তাই একটি রিসিভার অনুবাদ করে দেয়।
রিসিভার হতে পারে n8n Webhook নোড, Python বা Node-এর একটি রুট, অথবা যেকোনো সার্ভারলেস ফাংশন। এটি যাচাইয়ের GET-এর উত্তর দেয়, ওয়েবহুক URL-এ বসানো একটি লম্বা র্যান্ডম সিক্রেট পরীক্ষা করে, Meta-কে সঙ্গে সঙ্গে 200 ফেরত দেয়, এবং তারপর কাজ শুরু করে। URL-এর সিক্রেটই এখানে কার্যকর প্রমাণীকরণ: Meta ডেলিভারি সই করে Tech Provider-এর অ্যাপ সিক্রেট দিয়ে, যা কখনো শেয়ার করা হয় না, তাই X-Hub-Signature-256 হেডার আপনার দিকে যাচাই করা যায় না।
রিসিভার Prediction API কীভাবে কল করবে?
গ্রাহকের টেক্সট question হিসেবে এবং গ্রাহকের WhatsApp নম্বর সেশন হিসেবে দিয়ে। Flowise প্রতিটি রিকোয়েস্টে overrideConfig নেয়, আর তার ভেতরের sessionId-ই মেমরি নোডকে সবাইকে এক থ্রেডে না মিশিয়ে প্রতিজন মানুষের জন্য আলাদা কথোপকথন রাখতে দেয়। ওয়েবহুকের পেলোডে থাকা প্রেরকের নম্বর এর জন্য একটি স্থিতিশীল ও স্বাভাবিক কী।
চ্যাটফ্লো যদি API কী দিয়ে সুরক্ষিত থাকে, রিসিভার সেটি বিয়ারার টোকেন হিসেবে পাঠায়। রিসিভার স্ট্রিম জোড়া লাগানোর জন্য তৈরি না হলে streaming false রাখুন, কারণ WhatsApp একটি সম্পূর্ণ মেসেজ পৌঁছে দেয়, একবারে একটি টোকেন নয়।
উত্তর যায় একই নম্বর থেকে Cloud API-র টেক্সট মেসেজ হিসেবে। গ্রাহকের মেসেজ যে 24 ঘণ্টার উইন্ডো খুলেছে, তার ভেতরে এটি বিনামূল্যে এবং অনুমোদিত। ফ্লো পরে যা পাঠাতে চায়, যেমন একটি রিমাইন্ডার, সেটি অবশ্যই অনুমোদিত টেমপ্লেট হতে হবে।
POST https://your-flowise-host/api/v1/prediction/<flow-id>
Authorization: Bearer <flowise-api-key>
Content-Type: application/json
{
"question": "do you have anything friday?",
"streaming": false,
"overrideConfig": { "sessionId": "14155550188" }
}Flowise এজেন্ট কি EasyCoexistence MCP সার্ভার ব্যবহার করতে পারে?
আজ নয়। Flowise-এর Custom MCP একটি URL এবং কিছু হেডার দিয়ে Streamable HTTP সার্ভারের সঙ্গে যুক্ত হয়, সাধারণত Flowise ভেরিয়েবলে রাখা একটি স্থির বিয়ারার টোকেন দিয়ে। EasyCoexistence MCP সার্ভার প্রমাণীকরণ করে OAuth দিয়ে, ব্রাউজারে সাইন-ইন এবং নিজের ইস্যু করা টোকেন সহ, তাই হেডারে বসানোর মতো কোনো স্থির কী নেই।
কার্যকর ভাগ হলো ফ্লো সিদ্ধান্ত নেবে আর রিসিভার পাঠাবে। ফ্লো ফেরত দেয় কী বলতে হবে সেই টেক্সট, অথবা গ্রাহক এক দিনের বেশি চুপ থাকলে একটি টেমপ্লেটের নাম, আর রিসিভার নম্বরের টোকেন দিয়ে Cloud API কল করে। এতে টোকেন কখনো Flowise-এর ভেতরে থাকে না, আর 24 ঘণ্টার নিয়ম কোডে প্রয়োগ হয়, যেখানে কন্টাক্ট সর্বশেষ কখন লিখেছে তা দেখা হয়, ভুলে যেতে পারে এমন মডেলের ওপর ছেড়ে দেওয়া হয় না।
আসা মেসেজ তবুও শুধু ওয়েবহুকের মাধ্যমেই আসে, পাঠানো যেভাবেই হোক।
সাধারণ ভুলগুলো
- sessionId বাদ দেওয়া। তখন সব গ্রাহক একটি মেমরি ভাগ করে, আর একজনের তথ্য অন্যজনের উত্তরে এসে যেতে পারে।
- Meta-কে উত্তর দেওয়ার আগে Flowise-এর জন্য অপেক্ষা করা। ধীর 200 আবার চেষ্টা করা হয়, ফলে একই মেসেজ দুবার প্রক্রিয়া হয়।
- একদিন পর ফ্লোকে ফ্রি টেক্সট পাঠাতে দেওয়া। উইন্ডোর বাইরে Meta ত্রুটির কোড 131047 দিয়ে তা প্রত্যাখ্যান করে।
easycoexistence.com-এ নম্বরটি সংযুক্ত করুন, ওয়েবহুক গন্তব্য আপনার রিসিভারে দিন, আর ড্যাশবোর্ড থেকে টোকেন ও `phone_number_id` নিন। প্রতি নম্বরে মাসে US$ 9 থেকে শুরু, নম্বর যত বাড়বে US$ 1 পর্যন্ত নামে, প্রথম 3 দিন ফ্রি।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
Flowise-এর কি WhatsApp নোড আছে?
এর ডকুমেন্টেশনে নেই। এটি Prediction API-র মাধ্যমে ধরা হয়, আর সেজন্যই Meta ও ফ্লোর মাঝখানে একটি রিসিভার থাকে।
n8n কি রিসিভার হতে পারে?
হ্যাঁ। Webhook নোড গ্রহণ করে, একটি HTTP Request নোড Flowise-কে কল করে, আর আরেকটি HTTP Request নোড Cloud API-র মাধ্যমে উত্তর পাঠায়।
ফোন থেকে কেউ উত্তর দিলে বট কীভাবে থামাব?
`echo` ইভেন্ট খেয়াল রাখুন। WhatsApp Business অ্যাপ থেকে পাঠানো উত্তর রিসিভারে আসে, আর রিসিভার সেই কন্টাক্টের জন্য ফ্লো বিরতিতে রাখতে পারে।
কথোপকথন কি EasyCoexistence সংরক্ষণ করে?
না। Meta সরাসরি আপনার রিসিভারে ডেলিভার করে। Flowise-এর মেমরি নোড যা রাখতে কনফিগার করা, Flowise তা-ই রাখে।
আরও পড়ুন
শুরু করতে প্রস্তুত?
মাস নয়, কয়েক মিনিটেই WhatsApp Coexistence সেট আপ করুন। ফোনে অ্যাপটি কাজ করতে থাকে।
ফ্রি ট্রায়াল শুরু করুনযাচাই করা হয়েছে