الرئيسية Claude AI مركز التعلم القطاعات تواصل معنا
واتساب اتصل بنا

بناء بوت واتساب لمطعم بكلود AI — دليل عملي كامل

بناء بوت واتساب ذكي لمطعم بكلود AI وNode.js

لماذا يحتاج كل مطعم بوت واتساب ذكي اليوم؟

في عام 2026، أصبح واتساب هو القناة الأولى للتواصل في العالم العربي بفارق كبير. أكثر من 95% من المستهلكين في مصر والخليج يستخدمون واتساب يومياً — وكثير منهم يفضل الطلب عبره على أي تطبيق توصيل آخر. المشكلة؟ معظم المطاعم لا تزال تعتمد على موظف يرد على الرسائل يدوياً، مما يعني: تأخر في الرد خارج ساعات العمل، أخطاء في تسجيل الطلبات، وعدم القدرة على التوسع.

بوت واتساب مدعوم بكلود AI يحل هذه المشكلة بالكامل. كلود لا يقرأ الرسالة فحسب — بل يفهم نية العميل، يتعامل مع الطلبات المعقدة ("نفس الأوردر اللي اتبعتهولي الأسبوع اللي فات بس من غير بصل وأضيف عليه بيبسي"), يتحقق من توفر الأصناف في الوقت الفعلي من قاعدة البيانات، ويرسل رابط الدفع ويؤكد الطلب — كل ذلك في محادثة طبيعية تشعر أنك تتحدث مع موظف حقيقي.

⚡ الأرقام لا تكذب
  • المطاعم التي تطبق بوت واتساب تشهد زيادة 40% في طلبات خارج أوقات الذروة
  • متوسط وقت الرد ينخفض من 8 دقائق إلى أقل من 5 ثوانٍ
  • معدل إتمام الطلب يرتفع 30% عند وجود اقتراحات ذكية مخصصة
  • تكلفة التشغيل الشهرية للبوت أقل من راتب موظف واحد بكثير

في هذا الدليل ستبني نظاماً كاملاً من الصفر: من ربط WhatsApp Business API بكلود، حتى التكامل مع قاعدة بيانات الطلبات، ومعالجة الدفع، وإشعارات التوصيل — بكود Node.js حقيقي جاهز للنشر.

تصميم تجربة المستخدم: رحلة الطلب الكاملة

قبل كتابة سطر كود واحد، يجب أن تفهم رحلة العميل كاملاً. البوت الناجح يُصمَّم حول تجربة المستخدم لا حول التقنية. إليك المسارات الرئيسية التي يجب أن يدعمها بوت المطعم:

1

الترحيب وعرض القائمة

عند أول رسالة أو كلمة "مرحبا"، يرسل البوت رسالة ترحيب ودية مع خيارات رئيسية: عرض القائمة، تتبع طلب سابق، التحدث مع موظف. القائمة تُعرض كأقسام تفاعلية.

2

اختيار الأصناف وبناء الطلب

العميل يكتب اسم الصنف أو يختار من القائمة. كلود يتحقق من التوفر الآني، يسأل عن التخصيصات (إضافات، إزالة مكونات، الحجم)، ويبني الطلب تدريجياً مع تأكيد كل عنصر.

3

تأكيد الطلب وبيانات التوصيل

ملخص واضح بالأصناف والأسعار والإجمالي. كلود يسأل عن عنوان التوصيل (أو استخدام عنوان سابق)، ووقت التوصيل المطلوب.

4

الدفع وتأكيد الطلب

إرسال رابط دفع آمن (Stripe / PayMob / Fawry). بعد الدفع، يصل تأكيد فوري برقم الطلب ووقت التوصيل المتوقع.

5

تتبع الطلب والتسليم

إشعارات تلقائية عند كل مرحلة: قُبِل الطلب، يُجهَّز، خرج للتوصيل، وصل. العميل يستطيع الاستفسار في أي وقت.

6

ما بعد التسليم

طلب تقييم بأسلوب محادثة طبيعي، عرض كوبون للطلب القادم، وتسجيل التفضيلات لتحسين الاقتراحات المستقبلية.

إعداد WhatsApp Business API مع كلود

WhatsApp Business API من Meta هو البوابة الرسمية للتواصل البرمجي مع واتساب. يمكنك الوصول إليه مباشرة عبر Meta for Developers أو عن طريق موفري خدمات معتمدين (BSPs) مثل Twilio أو 360dialog أو Vonage — الأخيرة أسهل للبدء السريع.

الخطوات الأساسية للإعداد

1

إنشاء Meta Business Account وتطبيق

اذهب إلى developers.facebook.com، أنشئ تطبيقاً من نوع Business، أضف منتج WhatsApp، واحصل على رقم هاتف اختبار مجاني.

2

الحصول على Access Token وPhone Number ID

من لوحة التحكم، احفظ: WHATSAPP_TOKEN (الـ access token)، PHONE_NUMBER_ID (معرف الرقم)، وWEBHOOK_VERIFY_TOKEN (كلمة سر تضعها أنت).

3

إعداد Webhook للاستقبال

واتساب يرسل الرسائل الواردة لـ URL الخاص بك عبر POST request. يجب أن يكون HTTPS. في التطوير استخدم ngrok لتحويل localhost للإنترنت مؤقتاً.

4

Claude API Key

من console.anthropic.com، أنشئ API Key واحفظه. ستستخدم claude-3-5-sonnet كنموذج رئيسي لتوازنه بين الذكاء والسرعة والتكلفة.

بناء الكود خطوة بخطوة — Node.js + Claude API

سنبني البوت بـ Node.js + Express. الهيكل العام: Express يستقبل Webhooks من واتساب، يستدعي كلود لمعالجة الرسالة، ثم يرد عبر WhatsApp API. السياق يُخزَّن في قاعدة بيانات.

هيكل المشروع

plaintext — Project Structure
restaurant-bot/
├── src/
│   ├── index.js          # Entry point
│   ├── webhook.js        # WhatsApp webhook handler
│   ├── claude.js         # Claude AI integration
│   ├── whatsapp.js       # WhatsApp message sender
│   ├── database.js       # DB operations
│   ├── orders.js         # Order management
│   └── menu.js           # Menu data & availability
├── .env
├── package.json
└── README.md

التثبيت والإعداد الأولي

bash
mkdir restaurant-bot && cd restaurant-bot
npm init -y
npm install express @anthropic-ai/sdk axios dotenv mysql2 uuid
.env
PORT=3000
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxx
WHATSAPP_TOKEN=EAAxxxxxxxxxxxxx
PHONE_NUMBER_ID=123456789012345
WEBHOOK_VERIFY_TOKEN=my_secret_verify_token_2026
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=restaurant_bot
PAYMENT_LINK_BASE=https://pay.example.com/order

الملف الرئيسي — index.js

JavaScript — index.js
require('dotenv').config();
const express = require('express');
const { handleWebhook, verifyWebhook } = require('./webhook');

const app = express();
app.use(express.json());

// Webhook verification (GET) - required by Meta
app.get('/webhook', verifyWebhook);

// Incoming messages (POST)
app.post('/webhook', handleWebhook);

app.listen(process.env.PORT, () => {
  console.log(`Bot running on port ${process.env.PORT}`);
});

معالج الـ Webhook — webhook.js

JavaScript — webhook.js
const { processMessage } = require('./claude');
const { sendMessage } = require('./whatsapp');
const { getConversation, saveConversation } = require('./database');

const verifyWebhook = (req, res) => {
  const mode  = req.query['hub.mode'];
  const token = req.query['hub.verify_token'];
  const challenge = req.query['hub.challenge'];

  if (mode === 'subscribe' && token === process.env.WEBHOOK_VERIFY_TOKEN) {
    res.status(200).send(challenge);
  } else {
    res.sendStatus(403);
  }
};

const handleWebhook = async (req, res) => {
  // Always respond 200 immediately to avoid Meta retries
  res.sendStatus(200);

  try {
    const entry = req.body?.entry?.[0];
    const changes = entry?.changes?.[0];
    const value = changes?.value;

    if (!value?.messages) return; // Status updates, not messages

    const message = value.messages[0];
    const from = message.from; // Customer phone number
    const text = message?.text?.body || '';

    // Load conversation history from DB
    const history = await getConversation(from);

    // Process with Claude
    const { reply, updatedHistory } = await processMessage(from, text, history);

    // Save updated conversation
    await saveConversation(from, updatedHistory);

    // Send reply via WhatsApp
    await sendMessage(from, reply);

  } catch (err) {
    console.error('Webhook error:', err.message);
  }
};

module.exports = { verifyWebhook, handleWebhook };

تكامل كلود AI — claude.js

JavaScript — claude.js
const Anthropic = require('@anthropic-ai/sdk');
const { getMenuItems, checkAvailability } = require('./menu');
const { createOrder, getOrderStatus } = require('./orders');
const { getCustomerHistory } = require('./database');

const client = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });

const SYSTEM_PROMPT = `أنت "لؤي"، مساعد مطعم "بيت الشاورما" الذكي على واتساب.
شخصيتك: ودود، سريع، محترف، تتحدث بالعامية المصرية المهذبة.

## قواعد أساسية:
- رسائلك قصيرة وواضحة — لا أكثر من 3-4 أسطر في كل رد
- استخدم الإيموجي باعتدال (🍕🎉✅)
- إذا سأل العميل عن صنف غير موجود، اعتذر بلطف واقترح بديلاً
- دائماً تأكد من الطلب قبل طلب الدفع
- لا تذكر أبداً أنك AI أو بوت — أنت "لؤي" فقط

## إجراءات الطلب:
1. عرض القائمة → 2. اختيار الأصناف → 3. تأكيد الطلب → 4. بيانات التوصيل → 5. الدفع → 6. التأكيد

## الأوامر الخاصة:
- "موظف" أو "بشري" → حوّل للمدير
- "قائمة" → أرسل قائمة الأصناف
- "طلبي" + رقم → أعطِ حالة الطلب
- "إلغاء" → ابدأ إجراء الإلغاء`;

const processMessage = async (phone, text, history) => {
  // Add new message to history
  const messages = [
    ...history,
    { role: 'user', content: text }
  ];

  // Get customer purchase history for personalization
  const customerHistory = await getCustomerHistory(phone);
  const systemWithContext = customerHistory.length > 0
    ? `${SYSTEM_PROMPT}\n\n## تاريخ العميل:\n${JSON.stringify(customerHistory.slice(-5))}`
    : SYSTEM_PROMPT;

  const response = await client.messages.create({
    model: 'claude-3-5-sonnet-20241022',
    max_tokens: 500,
    system: systemWithContext,
    messages: messages.slice(-20), // Keep last 20 turns
  });

  const reply = response.content[0].text;

  // Handle special actions detected in response
  await handleActions(phone, text, reply);

  return {
    reply,
    updatedHistory: [...messages, { role: 'assistant', content: reply }]
  };
};

const handleActions = async (phone, userMsg, botReply) => {
  // Detect order confirmation and create order
  if (botReply.includes('رقم طلبك') || botReply.includes('تم تأكيد طلبك')) {
    await createOrder({ phone, message: userMsg });
  }
};

module.exports = { processMessage };

إرسال الرسائل — whatsapp.js

JavaScript — whatsapp.js
const axios = require('axios');

const WA_URL = `https://graph.facebook.com/v20.0/${process.env.PHONE_NUMBER_ID}/messages`;

const sendMessage = async (to, text) => {
  await axios.post(WA_URL, {
    messaging_product: 'whatsapp',
    to,
    type: 'text',
    text: { body: text }
  }, {
    headers: {
      'Authorization': `Bearer ${process.env.WHATSAPP_TOKEN}`,
      'Content-Type': 'application/json'
    }
  });
};

const sendPaymentLink = async (to, orderId, total) => {
  const payLink = `${process.env.PAYMENT_LINK_BASE}/${orderId}`;
  const msg = `✅ طلبك جاهز للدفع!\n\nالإجمالي: ${total} جنيه\n\n💳 ادفع هنا:\n${payLink}\n\nالرابط صالح لمدة 15 دقيقة`;
  await sendMessage(to, msg);
};

module.exports = { sendMessage, sendPaymentLink };

التكامل مع نظام الطلبات وقاعدة البيانات

كلود يتصل بقاعدة البيانات مباشرة لإنشاء الطلبات، التحقق من المخزون، وقراءة تاريخ العميل. هذا ليس محدودية — هذه هي القدرة الحقيقية لكلود. يمكنه استعلام أي قاعدة بيانات عبر الكود أو عبر MCP Servers للوصول المباشر.

هيكل قاعدة البيانات

SQL — Schema
-- جدول المحادثات
CREATE TABLE conversations (
  phone VARCHAR(20) PRIMARY KEY,
  history JSON NOT NULL,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- جدول الطلبات
CREATE TABLE orders (
  id VARCHAR(36) PRIMARY KEY,
  phone VARCHAR(20) NOT NULL,
  items JSON NOT NULL,
  total DECIMAL(10,2) NOT NULL,
  status ENUM('pending','confirmed','preparing','delivering','delivered','cancelled') DEFAULT 'pending',
  address TEXT,
  payment_status ENUM('unpaid','paid') DEFAULT 'unpaid',
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- جدول القائمة
CREATE TABLE menu_items (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100) NOT NULL,
  category VARCHAR(50),
  price DECIMAL(8,2) NOT NULL,
  available BOOLEAN DEFAULT TRUE,
  description TEXT
);
JavaScript — database.js
const mysql = require('mysql2/promise');

const pool = mysql.createPool({
  host: process.env.DB_HOST,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_NAME,
  waitForConnections: true,
  connectionLimit: 10
});

const getConversation = async (phone) => {
  const [rows] = await pool.execute(
    'SELECT history FROM conversations WHERE phone = ?', [phone]
  );
  return rows[0] ? JSON.parse(rows[0].history) : [];
};

const saveConversation = async (phone, history) => {
  await pool.execute(
    'INSERT INTO conversations (phone, history) VALUES (?, ?) ON DUPLICATE KEY UPDATE history = ?',
    [phone, JSON.stringify(history), JSON.stringify(history)]
  );
};

const getCustomerHistory = async (phone) => {
  const [rows] = await pool.execute(
    'SELECT items, total, created_at FROM orders WHERE phone = ? AND status = "delivered" ORDER BY created_at DESC LIMIT 10',
    [phone]
  );
  return rows;
};

module.exports = { getConversation, saveConversation, getCustomerHistory, pool };

التعامل مع الطلبات المعقدة: تعديل، إلغاء، شكوى

أكثر ما يميز بوتاً ذكياً عن بوت عادي هو قدرته على التعامل مع السيناريوهات غير المتوقعة. كلود يفهم السياق ويتذكر كل ما قيل في المحادثة، مما يجعله قادراً على:

حالات يتعامل معها كلود تلقائياً
  • التعديل: "ممكن تضيف بطاطس مع الطلب" — كلود يحدث الطلب المفتوح ويعيد حساب الإجمالي
  • الإلغاء الجزئي: "شيل الشاورما دجاج وخلي باقي الطلب" — يعدّل الطلب لا يلغيه
  • الإلغاء الكامل: يتحقق من حالة الطلب أولاً — إذا كان "يُجهَّز" يُبلّغ العميل بالقيود
  • الشكوى: يعتذر، يسجل المشكلة، يعرض تعويضاً (خصم أو استبدال) ويحوّل لمدير إذا لزم
  • الطلبات الغريبة: "نفس اللي اتبعتهولي زي ما هو" — يبحث في تاريخ العميل ويعيد الطلب

السر في System Prompt المحكم مع وصول كلود لبيانات الطلب الفعلية. عندما يسأل العميل "ما حالة طلبي؟"، يستدعي الكود قاعدة البيانات ويُضيف الحالة في System Prompt أو كـ context إضافي قبل إرسال الرد — فيجيب كلود بمعلومة حقيقية لا تخمين.

إضافة الميزات الذكية: اقتراحات مخصصة وعروض خاصة

هذا هو الفارق الحقيقي بين بوت عادي وبوت يبني ولاء العملاء. كلود يستطيع تحليل تاريخ الطلبات وتقديم اقتراحات تشعر العميل أن البوت "يعرفه" فعلاً.

نظام الاقتراحات الذكية

JavaScript — recommendation engine
// في claude.js — بناء context الاقتراحات
const buildRecommendationContext = async (phone) => {
  const history = await getCustomerHistory(phone);
  if (history.length === 0) return '';

  // Count most ordered items
  const itemCounts = {};
  history.forEach(order => {
    const items = JSON.parse(order.items);
    items.forEach(item => {
      itemCounts[item.name] = (itemCounts[item.name] || 0) + item.qty;
    });
  });

  const topItems = Object.entries(itemCounts)
    .sort((a, b) => b[1] - a[1])
    .slice(0, 3)
    .map(([name]) => name);

  return `
## تفضيلات هذا العميل (استخدم للاقتراحات):
- أكثر الأصناف طلباً: ${topItems.join(', ')}
- عدد الطلبات السابقة: ${history.length}
- متوسط الفاتورة: ${Math.round(history.reduce((a,b) => a + parseFloat(b.total), 0) / history.length)} جنيه
- اقترح هذه الأصناف عند المناسبة بشكل طبيعي في المحادثة
`;
};

نظام العروض الخاصة

بإمكانك برمجة كلود ليعرض عروضاً بناءً على شروط ذكية: العميل لم يطلب منذ أسبوعين، أو يوم ميلاده، أو وصل لعدد طلبات معين. مثال من الـ System Prompt:

JavaScript — dynamic offers context
const buildOffersContext = async (phone) => {
  const [rows] = await pool.execute(
    'SELECT created_at FROM orders WHERE phone = ? ORDER BY created_at DESC LIMIT 1',
    [phone]
  );

  if (rows.length === 0) {
    return '## عرض خاص: هذا أول طلب للعميل — اعرض خصم 15% على الطلب الأول كود: WELCOME15';
  }

  const daysSinceLast = Math.floor(
    (Date.now() - new Date(rows[0].created_at)) / 86400000
  );

  if (daysSinceLast >= 14) {
    return `## عرض خاص: العميل لم يطلب منذ ${daysSinceLast} يوم — اعرض عليه "اشتقنالك! خصم 20% طلبتك الجاية" كود: WELCOME_BACK20`;
  }

  return '';
};

النشر والتشغيل على السيرفر

البوت جاهز للتطوير المحلي — الآن نشره على سيرفر حقيقي. الخيارات المثلى لمطعم:

الخيار التكلفة الصعوبة مناسب لـ
Railway.app مجاني / 5$ شهرياً سهل جداً البداية والتجريب
DigitalOcean Droplet 6$ - 12$ شهرياً متوسط التشغيل الفعلي
Render.com مجاني / 7$ شهرياً سهل البداية مع Postgres
VPS محلي (Contabo) 5$ شهرياً يحتاج خبرة Linux التحكم الكامل

النشر على Railway (الأسرع)

bash — Deploy to Railway
# Install Railway CLI
npm install -g @railway/cli

# Login and init
railway login
railway init

# Add MySQL database
railway add --plugin mysql

# Set environment variables
railway variables set ANTHROPIC_API_KEY=sk-ant-xxx
railway variables set WHATSAPP_TOKEN=EAAxxxx
railway variables set PHONE_NUMBER_ID=12345
railway variables set WEBHOOK_VERIFY_TOKEN=my_secret

# Deploy
railway up

# Get your URL (use this as Webhook URL in Meta)
railway domain
تذكير مهم — Webhook URL

بعد الحصول على URL السيرفر، اذهب إلى Meta for Developers → WhatsApp → Configuration → أضف Webhook URL الخاص بك مع Verify Token، واشترك في حدث messages. بعدها كل رسالة واتساب ستصل لسيرفرك تلقائياً.

إدارة العمليات بـ PM2

bash — PM2 Process Manager
npm install -g pm2

# Start bot with auto-restart
pm2 start src/index.js --name restaurant-bot

# Auto-start on server reboot
pm2 startup
pm2 save

# Monitor logs in real-time
pm2 logs restaurant-bot

# Restart after code update
pm2 restart restaurant-bot

Tips & Tricks — 8 نصائح عملية من الميدان

01

ردّ على الـ Webhook فوراً

دائماً أرسل res.sendStatus(200) أول ما تستقبل الطلب قبل معالجة أي شيء. Meta تُعيد المحاولة إذا لم تصلها استجابة خلال 20 ثانية — مما يسبب رسائل مكررة.

02

احتفظ بـ 20 رسالة فقط في الذاكرة

إرسال كامل تاريخ المحادثة لكلود يزيد التكلفة والوقت. الـ 20 رسالة الأخيرة كافية تماماً لفهم السياق — قص الأقدم منها تلقائياً.

03

اكتب System Prompt بصوت البراند

بدل "أنت بوت مطعم"، قل "أنت لؤي، موظف خدمة عملاء مطعم بيت الشاورما، شخصيتك مرحة ودافئة". كلود سيحافظ على هذه الشخصية في كل رد.

04

استخدم max_tokens بحكمة

500 token كافٍ لردود واتساب. الرسائل الطويلة جداً تنفّر العميل على المحمول. أخبر كلود صراحةً في System Prompt: "ردودك لا تتجاوز 3-4 أسطر قصيرة".

05

أضف Fallback للأخطاء

إذا فشل الاتصال بكلود أو قاعدة البيانات، أرسل رسالة "عذراً، فيه مشكلة مؤقتة، فريقنا سيتواصل معك خلال دقائق" بدل صمت مطبق يُقلق العميل.

06

اختبر بأرقام حقيقية قبل الإطلاق

Meta تتيح 5 أرقام اختبار مجانية. اطلب من موظفي المطعم التجربة لأسبوع كاملاً وسجّل كل الأخطاء والمواقف التي لم يُحسن البوت التعامل معها ثم طوّر System Prompt.

07

أتمتة إشعارات حالة الطلب

أنشئ endpoint منفصلاً يستقبل التحديثات من نظام المطبخ ويرسل إشعار واتساب تلقائي. العميل الذي يتلقى "طلبك خرج للتوصيل" يثق بالخدمة أكثر بكثير.

08

سجّل كل محادثة للتحليل

خزّن كل رسالة في جدول logs مع timestamp. بعد شهر، ستجد أنماطاً: ما الأصناف الأكثر سؤالاً، متى يتخلى العملاء عن الطلب، وما الشكاوى الأكثر تكراراً.

Hidden Gems — 5 استخدامات غير مألوفة لا يعرفها أحد

البوت كمدير مخزون ذكي

كلود يتابع الطلبات ويحذّر المدير عبر واتساب لما صنف معين وصل لحد معين: "تنبيه: الشاورما لحمة أوشكت على النفاد — 8 وجبات متبقية فقط". كل ذلك من نفس قاعدة البيانات.

تقارير نهاية اليوم تلقائية

جدوِل cron job يُرسل للمدير كل يوم الساعة 11 مساءً ملخص المبيعات بالواتساب: إجمالي الإيرادات، أكثر الأصناف مبيعاً، عدد الطلبات، ومتوسط الفاتورة — من صنع كلود.

بوت تدريب الموظفين الجدد

نفس البنية تُستخدم لإنشاء بوت داخلي يجيب على أسئلة الموظفين الجدد عن الروتين، أوقات الدوام، وصفات الأطباق، وسياسة الشركة — بكل لغة وبأسلوب محادثة.

اكتشاف الاحتيال والطلبات المشبوهة

أخبر كلود في System Prompt بعلامات الطلبات المشبوهة (طلبات كبيرة لعنوان جديد، إلغاء متكرر بعد التأكيد). سيُبلّغ تلقائياً ويُعلّق الطلب للمراجعة اليدوية.

بناء برنامج ولاء مُضمَّن

بدون app منفصل — كلود يتتبع نقاط الولاء في قاعدة البيانات ويُبلّغ العميل فور وصوله لجائزة: "مبروك! وصلت للطلب العاشر، الوجبة الجاية على حسابنا. كود: FREE10".

الأسئلة الشائعة

هل يحتاج بوت الواتساب خادم مستمر التشغيل؟

نعم، البوت يحتاج خادم يعمل 24/7 لاستقبال الرسائل الواردة من WhatsApp Webhook. يمكن استخدام VPS بسيط بـ 5-10 دولار شهرياً أو خدمات مثل Railway أو Render للنشر السهل، أو خدمات Serverless مثل AWS Lambda مع تكلفة أقل.

ما الفرق بين WhatsApp Business API وتطبيق واتساب العادي؟

WhatsApp Business API مصمم للشركات ويتيح الاتصال البرمجي لإرسال واستقبال الرسائل تلقائياً عبر Webhooks. يختلف عن التطبيق العادي بإمكانية التكامل مع الأنظمة الخارجية وإرسال رسائل bulk وإنشاء قوالب رسائل معتمدة من Meta.

كيف يتعامل كلود مع طلبات متعددة في نفس الوقت؟

كلود يعالج كل محادثة بشكل مستقل. يمكن تشغيل طلبات متوازية باستخدام async/await في Node.js — كل رسالة واردة تُعالج في thread منفصل مع context المحادثة المخزن في قاعدة البيانات. النظام يدعم مئات الطلبات المتزامنة دون تدخل بشري.

هل يمكن للبوت قبول الدفع الإلكتروني مباشرة في واتساب؟

نعم، البوت يرسل رابط دفع من Stripe أو PayMob أو Fawry مباشرة في المحادثة. العميل يضغط الرابط ويكمل الدفع، ثم يتلقى تأكيداً تلقائياً. في بعض الدول يدعم واتساب Pay مدمجاً لكن الروابط الخارجية تعمل في كل مكان.

كم تكلفة تشغيل البوت شهرياً؟

التكلفة تعتمد على حجم الاستخدام: WhatsApp API عبر Meta مجاني لأول 1000 محادثة شهرياً ثم 0.005-0.04 دولار لكل محادثة. Claude API بحوالي 3-15 دولار لكل مليون token. خادم VPS بـ 5-10 دولار. مطعم متوسط يصرف 20-80 دولار شهرياً بالكامل.

هل يفهم البوت اللهجة العامية المصرية والخليجية؟

كلود يفهم اللهجات العربية المختلفة بشكل ممتاز — مصري، خليجي، شامي، مغربي. يمكن تدريبه بأمثلة من عملاء المطعم الفعليين في الـ System Prompt لتحسين الدقة مع المصطلحات المحلية والأطباق المحلية.

ماذا يحدث إذا طلب العميل التحدث مع موظف حقيقي؟

البوت يكتشف طلب التحويل البشري تلقائياً ويحوّل المحادثة لواجهة إدارية حيث يستطيع الموظف الاستلام. يمكن إعداد إشعار فوري للمدير عبر تيليجرام أو SMS. سجل المحادثة كاملاً يكون مرئياً للموظف لمتابعة السياق.

محتاج مساعدة احترافية؟

فريق A Plan جاهز يساعدك في تطبيق حلول الذكاء الاصطناعي على شغلك. تواصل معنا وخلينا نشتغل سوا.

تواصل معنا عبر واتساب

🧭 اكتشف المزيد

مواضيع مرتبطة من أقسام أخرى تُكمّل ما تعلمته