
Whats360 API وWebhooks: الدليل العملي لربط WhatsApp والبريد والأنظمة الخارجية
إذا كنت مطورًا أو تعمل داخل شركة برمجيات وتحتاج إلى ربط WhatsApp أو البريد الإلكتروني أو أنظمة الدفع أو المتاجر الإلكترونية مع تطبيقك، فالمشكلة الحقيقية لا تتعلق بإرسال رسالة واحدة فقط، وإنما ببناء تكامل برمجي متكامل يستطيع التعامل مع المصادقة، الأجهزة، الرسائل، الحملات، الأحداث، الاستجابات، الأخطاء، وإعادة المحاولة.
هنا تظهر أهمية واجهات API وWebhooks في Whats360، لأنها تعمل كطبقة ربط بين النظام الذي تطوره وبين خدمات الاتصال والمراسلة والأتمتة.
في هذا الدليل ستتعرف بصورة عملية على Email Send API وWhatsApp Developer API وVCash API وWebhooks، مع توضيح الوظائف، ونقاط النهاية Endpoints، والمعاملات Parameters، وطرق المصادقة، ونماذج الطلبات والاستجابات، وأكواد الأخطاء، وأمثلة البرمجة، وطريقة ربط الأنظمة الخارجية مثل Shopify وWooCommerce وn8n.
الخلاصة السريعة: API تستخدم عندما تريد من نظامك طلب تنفيذ عملية، بينما Webhook يستخدم عندما تريد استقبال حدث أو إرسال بيانات تلقائيًا إلى نظام آخر. وفي التكاملات المتقدمة يمكن استخدام الاثنين معًا لبناء Workflow متكامل.
ما هي API وما هي Webhooks؟
يمكن تبسيط الفكرة من خلال النظر إلى اتجاه الاتصال بين الأنظمة.
API تعني أن نظامك يرسل طلبًا إلى منصة أخرى ويطلب منها تنفيذ عملية محددة.
على سبيل المثال، يمكن لتطبيقك أن يطلب إرسال رسالة WhatsApp، أو إنشاء جهاز، أو معرفة حالة Instance، أو إنشاء حملة، أو إرسال بريد إلكتروني، أو الاستعلام عن رصيد أو معاملات.
أما Webhook فيعمل بطريقة مختلفة. عندما يحدث Event معين، يقوم النظام بإرسال البيانات تلقائيًا إلى عنوان URL تقوم أنت بتحديده.
يمكن أن يكون السيناريو مثل:
متجر إلكتروني → Webhook → نظام التكامل → Whats360 → WhatsApp
أو:
Whats360 → Webhook → CRM خارجي
لذلك يمكن تلخيص الفرق في جملة عملية:
API = اطلب من النظام تنفيذ شيء.
Webhook = أخبر نظامًا آخر أن شيئًا حدث.
لماذا تحتاج الشركات إلى API وWebhooks؟
عندما يكون WhatsApp منفصلًا عن النظام الداخلي للشركة، يضطر الموظف إلى نقل المعلومات يدويًا بين الأنظمة.
قد يصل طلب جديد إلى المتجر، ثم يبحث الموظف عن رقم العميل، ثم يفتح WhatsApp، ثم يكتب رسالة، ثم يعود إلى نظام المبيعات لتحديث حالة الطلب.
هذه العملية يمكن تحويلها إلى Workflow آلي.
عند إنشاء الطلب، يمكن للمتجر إرسال Event إلى Webhook، ثم تقوم طبقة التكامل بمعالجة البيانات، وبعد ذلك تستدعي WhatsApp Developer API لإرسال الرسالة المناسبة.
وبنفس الطريقة يمكن استقبال رسالة WhatsApp وإرسال بياناتها إلى CRM أو قاعدة بيانات أو نظام أتمتة.
فكرة التكامل في سطر واحد
بدل أن يكون WhatsApp تطبيقًا منفصلًا عن بقية أنظمتك، يمكن وضعه داخل Architecture البرمجية بحيث تصبح الرسائل والأحداث جزءًا من دورة العمل اليومية للنظام.
كيف تبدأ بناء التكامل مع Whats360 API؟
قبل كتابة أي كود، يجب تحديد Architecture واضحة للتكامل. الخطأ الشائع هو البدء بمجموعة من Requests دون تحديد مصدر البيانات والجهة التي ستستقبلها والنتيجة النهائية المطلوبة.
التصميم الأفضل يبدأ بتحديد النظام المصدر، والنظام المستهدف، والبيانات التي سيتم نقلها، واتجاه الاتصال، وطريقة المصادقة، والأحداث المطلوبة، وكيفية التعامل مع الأخطاء.
فمثلًا إذا كان الهدف هو إرسال رسالة WhatsApp بعد إنشاء طلب، فقد يكون المسار:
متجر إلكتروني → Webhook → Integration Layer → Whats360 API → WhatsApp
أما إذا كان الهدف هو إرسال الرسائل من نظام CRM، فقد يكون المسار:
CRM → Whats360 API → WhatsApp
هذا التخطيط يجعل كل مكون مسؤولًا عن وظيفة محددة، ويقلل من صعوبة اكتشاف الأخطاء لاحقًا.
Email Send API لإرسال البريد الإلكتروني برمجيًا
يمكن استخدام Email Send API لإرسال البريد الإلكتروني من نظام خارجي من خلال API بدلًا من الاعتماد على إرسال الرسائل يدويًا من لوحة تحكم منفصلة.
نقطة النهاية الخاصة بالإرسال هي:
POST https://whats360.live/api/v1/email/send
وتستخدم المصادقة من خلال Bearer Token في Header:
Authorization: Bearer [TOKEN_ID]
يبدأ الحصول على التوكن من Endpoint تسجيل الدخول:
POST https://whats360.live/api/auth/login
ويكون جسم الطلب بصيغة JSON:
{
"username": "[IDENTIFIER_ID]",
"password": "[IDENTIFIER_ID]"
}
ومثال باستخدام cURL:
curl -X POST https://whats360.live/api/auth/login \
-H "Content-Type: application/json" \
-d '{
"username": "[IDENTIFIER_ID]",
"password": "[IDENTIFIER_ID]"
}'
عند نجاح المصادقة يحصل التطبيق على Token يمكن استخدامه في طلبات API المصرح بها.
إرسال بريد إلكتروني من خلال Email API
يتطلب طلب إرسال البريد مجموعة من الحقول الأساسية التي تحدد المرسل والمستلم ومحتوى الرسالة.
| الحقل | النوع | الوظيفة |
|---|---|---|
from |
string | عنوان المرسل |
to |
string | عنوان المستلم |
subject |
string | موضوع البريد |
body |
string | محتوى الرسالة |
مثال عملي:
curl -X POST https://whats360.live/api/v1/email/send \
-H "Authorization: Bearer [TOKEN_ID]" \
-H "Content-Type: application/json" \
-d '{
"from": "[EMAIL_ID]",
"to": "[EMAIL_ID]",
"subject": "Hello from API",
"body": "This is the email body."
}'
ويمكن تنفيذ العملية من JavaScript باستخدام fetch:
const response = await fetch(
'https://whats360.live/api/v1/email/send',
{
method: 'POST',
headers: {
'Authorization': 'Bearer [TOKEN_ID]',
'Content-Type': 'application/json'
},
body: JSON.stringify({
from: '[EMAIL_ID]',
to: '[EMAIL_ID]',
subject: 'Hello from API',
body: 'This is the email body.'
})
}
);
const result = await response.json();
console.log(result);
استجابات Email API والتعامل مع الأخطاء
عند نجاح إرسال البريد تكون الاستجابة:
{
"ok": true,
"data": {
"message": "Email sent successfully"
}
}
أما عند حدوث مشكلة فقد تكون الاستجابة:
{
"ok": false,
"error": "Error description"
}
ومن المهم ألا يتعامل التطبيق مع HTTP Request باعتباره نجاحًا بمجرد عدم حدوث خطأ في الاتصال. يجب قراءة الاستجابة نفسها والتأكد من حالة العملية وتسجيل الخطأ عند فشلها.
نصيحة للمطور
احتفظ بسجل للـEndpoint المستخدم، ووقت الطلب، وحالة الاستجابة، ورسالة الخطأ. هذه المعلومات تختصر وقت تشخيص مشكلات التكامل بصورة كبيرة.
إعداد DNS للبريد الإلكتروني
استخدام Email API لا يلغي أهمية إعداد النطاق والبنية الخاصة بالبريد. إعداد DNS بشكل صحيح يساعد في تجهيز الدومين للإرسال ويشمل سجلات مثل MX وA وSPF وDMARC وDKIM.
سجل MX
Host: @
Value: mail.yourdomain.com
Priority: 10
سجل A
Host: mail
Value: SERVER_IP
سجل SPF
Host: @
Value: v=spf1 ip4:SERVER_IP ~all
سجل DMARC
Host: _dmarc
Value: v=DMARC1; p=none
سجل DKIM
Host: default._domainkey
Value: v=DKIM1; k=rsa; p=...
ويتم الحصول على قيمة DKIM بعد تفعيل الإعداد من صفحة الدومينات.
كما أن استخدام نطاق جديد للإرسال بكميات كبيرة يحتاج إلى التعامل معه تدريجيًا، وعدم الانتقال مباشرة إلى أحجام ضخمة من الرسائل، حتى يتم بناء سمعة مناسبة للإرسال.
WhatsApp Developer API للمطورين
إذا كان الهدف هو ربط WhatsApp بتطبيق أو CRM أو نظام برمجي، فإن WhatsApp Developer API توفر مجموعة من نقاط النهاية التي تغطي إرسال الرسائل وإدارة الأجهزة والحملات.
تعتمد واجهة المطورين على Token يتم تمريره ضمن عنوان الطلب، إلى جانب المعاملات التي تحدد الجهاز والمستلم والمحتوى المطلوب.
وتتضمن الواجهة نقاط نهاية لإرسال النصوص والصور والفيديو والصوت والمستندات.
حوّل WhatsApp إلى جزء من نظامك البرمجي
إذا كان لديك CRM أو متجر أو تطبيق خاص وتريد ربطه مع WhatsApp، فإن API تمنح فريق التطوير طبقة مباشرة لتنفيذ عمليات الإرسال وإدارة الأجهزة والحملات.
- إرسال رسائل من النظام.
- ربط CRM والمتاجر.
- إدارة أكثر من Instance.
- تشغيل Workflows آلية.
إرسال رسالة WhatsApp نصية
نقطة النهاية الخاصة بإرسال النصوص هي:
GET /api/v1/send-text
وتستخدم معاملات مثل:
token
instance_id
jid
msg
ومثال باستخدام cURL:
curl "https://whats360.live/api/v1/send-text?token=[TOKEN_ID]&instance_id=[IDENTIFIER_ID]&jid=[PHONE_ID]@s.whatsapp.net&msg=Hello"
بهذه الطريقة يستطيع النظام الخارجي إرسال الرسالة بدلًا من الاعتماد على تدخل الموظف.
يمكن استخدام هذه الوظيفة في سيناريوهات مثل إشعارات الطلبات، تحديثات العملاء، التنبيهات، رسائل المتابعة، أو أي Workflow يحتاج إلى إرسال رسالة من النظام.
إرسال الصور والفيديو والصوت والمستندات
لا تقتصر واجهة المطورين على الرسائل النصية، وإنما تتضمن نقاط نهاية لأنواع مختلفة من الوسائط.
إرسال صورة
GET /api/v1/send-image
وتستخدم معاملات مثل:
token
instance_id
jid
imageurl
caption
حيث يكون caption اختياريًا.
إرسال فيديو
GET /api/v1/send-video
مع معاملات:
token
instance_id
jid
videourl
caption
إرسال صوت
GET /api/v1/send-audio
مع معاملات:
token
instance_id
jid
audiourl
إرسال مستند
GET /api/v1/send-doc
مع معاملات:
token
instance_id
jid
docurl
caption
هذا يجعل التكامل مناسبًا للأنظمة التي تحتاج إلى إرسال ملفات أو مستندات أو صور وفيديوهات ضمن دورة عمل آلية.
إدارة WhatsApp Instances من خلال API
عند بناء نظام يتعامل مع أكثر من رقم WhatsApp، تصبح إدارة Instances جزءًا أساسيًا من التكامل.
تتيح الواجهة مجموعة من العمليات المتعلقة بالأجهزة، مثل عرض الأجهزة، وإنشاء جهاز، وتوصيله، وفصله، ومعرفة حالته، والحصول على QR، وفتح صفحة QR، وحذف الجهاز.
عرض الأجهزة
GET /api/v1/instances
إنشاء جهاز
GET /api/v1/instances/create
ومن المعاملات:
token
id
name
مثال:
curl "https://whats360.live/api/v1/instances/create?token=[TOKEN_ID]&id=new-device&name=New+Device"
توصيل الجهاز
GET /api/v1/instances/connect
فصل الجهاز
GET /api/v1/instances/disconnect
معرفة حالة الجهاز
GET /api/v1/instances/status
الحصول على QR
GET /api/v1/instances/qr
فتح صفحة QR
GET /api/v1/instances/qr-page
حذف الجهاز
GET /api/v1/instances/delete
وجود هذه العمليات في طبقة API يسمح للتطبيق الخارجي بالتعامل مع الأجهزة كجزء من النظام بدلًا من فصل إدارة الأجهزة عن بقية دورة العمل.
إدارة حملات WhatsApp من خلال API
يمكن كذلك التحكم في الحملات برمجيًا بدلًا من تنفيذ جميع العمليات يدويًا من لوحة التحكم.
وتشمل نقاط النهاية المتعلقة بالحملات:
GET /api/v1/campaigns
POST /api/v1/campaigns/create
POST /api/v1/campaigns/recipients
POST /api/v1/campaigns/start
POST /api/v1/campaigns/pause
POST /api/v1/campaigns/resume
POST /api/v1/campaigns/stop
GET /api/v1/campaigns/status
POST /api/v1/campaigns/delete
مثال على إنشاء حملة:
curl -X POST \
"https://whats360.live/api/v1/campaigns/create?token=[TOKEN_ID]&instance_id=[IDENTIFIER_ID]" \
-H "Content-Type: application/json" \
-d '{"name":"test","message_content":"Hello {{name}}"}'
وبعد إنشاء الحملة يمكن بدء تشغيلها:
curl -X POST \
"https://whats360.live/api/v1/campaigns/start?token=[TOKEN_ID]&instance_id=[IDENTIFIER_ID]&campaign_id=[IDENTIFIER_ID]"
وتصبح الحملة بذلك جزءًا من Workflow يمكن التحكم فيه من النظام البرمجي.
استجابات WhatsApp Developer API
الاستجابة الناجحة تكون بصيغة مشابهة:
{
"success": true,
"message": "...",
"response": {}
}
أما الاستجابة عند حدوث خطأ:
{
"success": false,
"error": "error message"
}
ويجب أن يتعامل التطبيق مع هذه الاستجابات بطريقة واضحة، فلا يكفي تنفيذ الطلب والانتقال إلى العملية التالية دون التأكد من نتيجة العملية.
أكواد أخطاء WhatsApp API
| الكود | الدلالة | الإجراء العملي |
|---|---|---|
| 400 | طلب غير صحيح أو Parameter ناقص | مراجعة البيانات المرسلة |
| 401 | Token غير صحيح أو منتهي | مراجعة المصادقة |
| 403 | تجاوز حد أو صلاحية | مراجعة الحدود والصلاحيات |
| 404 | Instance غير موجود | مراجعة Instance ID |
| 463 | الرقم غير مفتوح للمحادثة وفق القيد المشار إليه | مراجعة حالة المحادثة ثم إعادة المحاولة |
| 500 | خطأ داخلي | التعامل مع الخطأ وإعادة المحاولة وفق المنطق المناسب |
ماذا يعني الخطأ 463؟
يشير الخطأ 463 إلى أن الرقم غير مفتوح للمحادثة وفق القيد البروتوكولي المشار إليه.
في السيناريو التشغيلي المذكور، يمكن معالجة الحالة بإرسال رسالة من الهاتف مباشرة إلى الرقم مرة واحدة، ثم إعادة محاولة الإرسال من API أو CRM.
المهم هنا ألا يتم افتراض أن المشكلة في صيغة Request لمجرد أن الرسالة لم تُرسل. يجب قراءة كود الاستجابة وفهم طبيعة الخطأ أولًا.
عندما يفشل الإرسال لا تبدأ بتغيير الكود عشوائيًا
اقرأ Status Code وError Message وتأكد من Token وInstance والمستلم والمعاملات. بعض المشكلات مرتبطة بحالة الحساب أو المحادثة وليست بخطأ في البرمجة نفسها.
VCash API وربط العمليات المالية
يمكن استخدام VCash API للتعامل برمجيًا مع أجهزة VCash وبعض العمليات المرتبطة بالرسائل النصية وUSSD والأرصدة والمعاملات.
وتعتمد المصادقة على Bearer Token:
Authorization: Bearer [TOKEN_ID]
عرض أجهزة VCash
GET /api/v1/vcash/devices
إرسال SMS
POST /api/v1/vcash/sms/send
مثال:
curl -X POST \
-H "Authorization: Bearer [TOKEN_ID]" \
-H "Content-Type: application/json" \
"https://whats360.live/api/v1/vcash/sms/send" \
-d '{
"device_id": "[IDENTIFIER_ID]",
"recipient": "[PHONE_ID]",
"message": "Hello! This is a test message",
"sim_slot": 1
}'
تنفيذ USSD
POST /api/v1/vcash/ussd/execute
مثال:
{
"device_id": "[IDENTIFIER_ID]",
"command": "*9#",
"sim_slot": 1
}
معرفة الرصيد
GET /api/v1/vcash/balance
عرض المعاملات
GET /api/v1/vcash/transactions
ومن المعاملات المستخدمة:
device_id
type
limit
offset
وتكون الاستجابة الناجحة في VCash مثل:
{
"success": true,
"message": "...",
"data": {}
}
أما الخطأ:
{
"success": false,
"error": "error description"
}
Webhooks وربط الأنظمة الخارجية
إذا كانت API مناسبة لتنفيذ العمليات عند الطلب، فإن Webhooks مناسبة لتبادل الأحداث تلقائيًا.
تستطيع استخدام Webhooks لربط Whats360 مع CRM، أو قاعدة بيانات، أو نظام أتمتة، أو متجر إلكتروني، أو فريق داخلي يحتاج إلى استقبال إشعارات عند حدوث أحداث معينة.
ومن أمثلة الاستخدام:
- مزامنة الرسائل مع CRM.
- إرسال بيانات العملاء إلى نظام خارجي.
- إشعار فريق المبيعات بوصول رسالة.
- تشغيل Workflow داخل n8n أو Make.
- تسجيل الأحداث داخل قاعدة بيانات.
- تشغيل إجراءات تلقائية بعد أحداث معينة.
Incoming Webhook وOutgoing Webhook
التمييز بين الاتجاهين ضروري أثناء تصميم التكامل.
Incoming Webhook
البيانات تأتي من نظام خارجي إلى Whats360.
مثال: Shopify → Whats360
Outgoing Webhook
Whats360 يرسل البيانات إلى نظام خارجي.
مثال: Whats360 → CRM
وبذلك يصبح اتجاه البيانات واضحًا قبل كتابة أي كود.
ربط Whats360 مع n8n
يمكن استخدام Webhook كمدخل إلى Workflow في n8n.
السيناريو يمكن أن يكون:
Event → Whats360 Webhook → n8n → Action
يبدأ الإعداد بإنشاء Webhook ونسخ URL، ثم إنشاء Workflow داخل n8n وإضافة Webhook Trigger، ووضع الرابط، ثم إضافة الإجراءات التي يجب تنفيذها بعد استقبال البيانات.
بعد الانتهاء يتم اختبار الـWorkflow ثم تفعيله.
يمكن أن يكون الإجراء التالي هو تخزين البيانات، أو تحديث CRM، أو استدعاء API أخرى، أو إرسال إشعار إلى فريق العمل.
لديك نظام وتريد ربطه مع WhatsApp؟
إذا كنت تستخدم n8n أو Make أو CRM أو قاعدة بيانات خاصة، يمكن تصميم التكامل بحيث يستقبل النظام Events ثم يستخدم Whats360 API لتنفيذ الإجراءات المطلوبة.
ربط Shopify مع Whats360
من أقوى استخدامات Webhooks ربط المتاجر الإلكترونية بالرسائل الآلية.
يمكن بناء Workflow مثل:
Shopify Order → Webhook → Whats360 → WhatsApp
عند إنشاء طلب جديد في Shopify، يرسل المتجر بيانات الطلب إلى Webhook، ثم تقوم طبقة التكامل بتحليل البيانات واستخدام المعلومات المطلوبة لإرسال رسالة WhatsApp.
يمكن إنشاء Incoming Webhook في Whats360 باستخدام قالب Shopify، ثم نسخ رابط الاستقبال وربطه داخل إعدادات Shopify.
ومن الأحداث المذكورة:
orders/create
orders/updated
orders/paid
customers/create
مثال على البيانات التي قد تصل إلى Webhook:
{
"id": "[IDENTIFIER_ID]",
"order_number": 1234,
"total_price": "199.00",
"customer": {
"first_name": "[PERSON_ID]",
"phone": "[PHONE_ID]"
}
}
ومن المهم عند التعامل مع Webhooks القادمة من المتجر الاهتمام بالتحقق من مصدر البيانات واستخدام Secret والتحقق من قيمة X-Shopify-Hmac-SHA256 عند تطبيق آلية التحقق المناسبة.
ربط WooCommerce مع Whats360
يمكن تطبيق الفكرة نفسها مع WooCommerce:
WooCommerce → Webhook → Whats360 → WhatsApp
يتم إنشاء Incoming Webhook، ثم اختيار قالب WooCommerce، وبعد ذلك استخدام إعدادات Webhooks في WooCommerce لإنشاء الاتصال.
وتشمل الإعدادات اسم Webhook، والحالة، والـTopic، وDelivery URL، وSecret.
ومن الأحداث التي يمكن ربطها:
- Order created.
- Order updated.
- Customer created.
- Product updated.
مثال على Payload:
{
"id": "[IDENTIFIER_ID]",
"status": "processing",
"total": "150.00",
"billing": {
"first_name": "[PERSON_ID]",
"phone": "[PHONE_ID]"
}
}
وفي حالة وجود مشكلة يمكن مراجعة Logs داخل WooCommerce لمعرفة حالة الطلبات التي أرسلت إلى Webhook.
كما يجب أن يعيد Endpoint استجابة ناجحة مثل 200 OK عند استلام البيانات بصورة صحيحة.
Custom Webhook للتكاملات الخاصة
ليس كل نظام يستخدم Shopify أو WooCommerce. لذلك تظهر أهمية Custom Webhook عندما تحتاج إلى ربط نظام داخلي أو تطبيق خاص لا يملك قالب تكامل جاهزًا.
يمكن تحديد اتجاه البيانات حسب طبيعة المشروع.
في Outgoing Webhook ترسل Whats360 البيانات إلى عنوان خارجي عند حدوث Event.
ومن البيانات التي يمكن التعامل معها:
phone
message
sender_name
instance_id
media_url
timestamp
chat_jid
message_id
أما في Incoming Webhook فيمكن استقبال بيانات من النظام الخارجي وتحويلها إلى رسالة WhatsApp.
مثال Endpoint:
POST /api/instances/{id}/webhooks/{webhook_id}/incoming
مع Body مثل:
{
"phone": "[PHONE_ID]",
"message": "Your order #1234 is confirmed!",
"name": "[PERSON_ID]"
}
والاستجابة الناجحة:
{
"status": "success",
"message": "Webhook received successfully"
}
إعدادات Webhook داخل المنصة
عند إنشاء Webhook يمكن أن تتضمن الإعدادات اسم Webhook، واتجاه الاتصال، والرابط، وSecret اختياري، والأحداث المطلوبة، وعدد محاولات إعادة الإرسال، والتأخير بين المحاولات، والمتغيرات المستخدمة في البيانات.
ومن الأحداث:
- Incoming Message.
- Sent Message.
- Send Failure.
- Subscription Expiration.
وتتراوح محاولات إعادة الإرسال بين 1 و5، مع قيمة افتراضية قدرها 3 محاولات، وتأخير افتراضي 30 ثانية.
ومن المتغيرات المتاحة:
{{phone}}
{{message}}
{{sender_name}}
{{instance_id}}
{{timestamp}}
{{message_id}}
{{media_url}}
{{chat_jid}}
كما تتوفر قوالب جاهزة لـShopify وWooCommerce، بالإضافة إلى Custom Webhook.
تصميم Architecture صحيحة للتكامل
من الأخطاء الشائعة التعامل مع API على أنها مجرد قائمة من URLs. التصميم الأفضل هو وضع كل واجهة داخل Architecture واضحة تحدد مسؤولية كل مكون.
في تطبيق بسيط يمكن أن يكون المسار:
Application
↓
Authentication
↓
Whats360 API
↓
Message / Campaign / Instance
↓
Response
أما في نظام يعتمد على الأحداث:
Event
↓
Webhook
↓
Validation
↓
Field Mapping
↓
Business Logic
↓
API Action
↓
Response
هذه الطبقات مهمة لأنها تفصل منطق التطبيق عن تفاصيل الاتصال بالمنصة.
فإذا تغير Workflow الداخلي، لا تحتاج بالضرورة إلى إعادة كتابة كل API Integration، وإنما تعدل طبقة Business Logic أو Mapping.
كيف تتعامل مع أخطاء التكامل؟
من الأخطاء البرمجية الشائعة بناء التكامل على افتراض أن كل Request سينجح.
التصميم الأفضل يعتمد على دورة واضحة:
Request → Response → Validation → Logging → Retry أو Failure Handling
عند ظهور 400 راجع المعاملات والبيانات.
عند ظهور 401 راجع Token والمصادقة.
عند ظهور 403 راجع الحدود والصلاحيات.
عند ظهور 404 راجع Instance أو المورد المطلوب.
عند ظهور 463 راجع حالة المحادثة والقيود المتعلقة بها.
عند ظهور 500 تعامل معه كخطأ داخلي، مع تسجيل الحالة والتعامل مع إعادة المحاولة وفق منطق التطبيق.
ومن المفيد أن يحتفظ النظام بسجل يتضمن:
- Endpoint.
- وقت الطلب.
- Instance.
- Status Code.
- Error Message.
- معرف العملية إن كان متاحًا.
متى تستخدم API ومتى تستخدم Webhook؟
| الاحتياج | الأداة الأنسب | مثال |
|---|---|---|
| تنفيذ عملية عند الطلب | API | إرسال رسالة WhatsApp |
| معرفة حالة جهاز | API | Instance Status |
| استقبال حدث تلقائي | Webhook | وصول رسالة |
| ربط متجر خارجي | Webhook + API | طلب جديد ثم رسالة WhatsApp |
في الأنظمة الكبيرة لا يكون السؤال عادةً: API أم Webhook؟ بل كيف نستخدم الاثنين معًا بالشكل الصحيح.
أفضل ممارسات بناء التكامل البرمجي
حماية بيانات المصادقة
يجب عدم وضع Tokens الحساسة داخل الواجهة الأمامية أو JavaScript الذي يمكن للمستخدم الوصول إليه. الأفضل أن تمر العمليات الحساسة عبر Backend آمن.
التحقق من البيانات
قبل إرسال Request، تحقق من وجود الحقول المطلوبة وصحة قيمها. لا تنتظر أن تكتشف API أن رقم الهاتف أو Instance ID غير صحيح.
تسجيل الأخطاء
Logging ليس ميزة إضافية في الأنظمة التي تعتمد على التكاملات؛ بل هو جزء أساسي من تشغيلها. بدون Logs سيصبح اكتشاف سبب فشل رسالة أو Webhook أصعب بكثير.
إدارة Retry
إعادة المحاولة يجب أن تكون محسوبة. لا تجعل النظام يعيد إرسال العملية بلا حدود، لأن ذلك قد يؤدي إلى تكرار عمليات أو رسائل غير مقصودة.
فصل طبقة التكامل
من الأفضل وضع منطق الاتصال بـWhats360 داخل Integration Layer واضحة بدل توزيع Requests في كل أجزاء التطبيق.
اختبار Webhooks
اختبر استقبال البيانات قبل الاعتماد على التكامل في العمليات الفعلية. تحقق من شكل Payload، وأسماء الحقول، والاستجابة، والتعامل مع البيانات الناقصة.
مراقبة حالة الأجهزة
في الأنظمة التي تعتمد على WhatsApp Instances، لا يكفي معرفة أن Instance تم إنشاؤه. يجب أن يكون النظام قادرًا على التعامل مع حالة الاتصال والاستجابة الناتجة عن العمليات.
منع تكرار العمليات
عند استخدام Retry أو Webhooks، يجب تصميم منطق التطبيق بحيث لا يؤدي وصول الحدث أكثر من مرة إلى تنفيذ العملية نفسها بصورة غير مقصودة.
القرار التقني الصحيح
لا تبنِ Integration على أساس أن API تعمل دائمًا بلا أخطاء. صمم منذ البداية للتعامل مع Success وFailure وTimeout وRetry والبيانات المكررة وتغير حالة الجهاز.
كيف تجمع API وWebhooks داخل نظام واحد؟
أفضل سيناريوهات التكامل لا تستخدم API بمعزل عن Webhooks.
تخيل متجرًا إلكترونيًا يستقبل طلبًا جديدًا. المتجر يرسل البيانات إلى Webhook. تستقبل طبقة التكامل البيانات وتتحقق منها. بعد ذلك تستخدم WhatsApp Developer API لإرسال رسالة للعميل.
وفي الاتجاه الآخر، عندما تصل رسالة من العميل، يمكن إرسال Event إلى CRM عبر Outgoing Webhook.
بهذا يصبح المسار ثنائي الاتجاه:
Store
↓
Webhook
↓
Integration Layer
↓
Whats360 API
↓
WhatsApp
↓
Webhook
↓
CRM
هذه هي الفكرة الأساسية وراء بناء نظام اتصال متكامل بدل استخدام WhatsApp كأداة منفصلة.
مقالات ذات صلة
شرح Whats360 Webhooks وربط الأنظمة
WhatsApp API وWebhook والتكامل البرمجي
الأسئلة الشائعة حول Whats360 API وWebhooks
ما هو Whats360 API؟
هو مجموعة من واجهات البرمجة التي تتيح للأنظمة الخارجية تنفيذ عمليات مرتبطة بالمراسلات والأجهزة والحملات وبعض خدمات التكامل برمجيًا.
ما الفرق بين API وWebhook؟
API تستخدم عندما يريد نظامك طلب تنفيذ عملية، بينما Webhook يستخدم لإرسال أو استقبال بيانات تلقائيًا عند حدوث Event محدد.
كيف أرسل رسالة WhatsApp من نظام خارجي؟
يتم ذلك باستخدام Endpoint الإرسال المناسب في WhatsApp Developer API مع Token وInstance ID وبيانات المستلم ومحتوى الرسالة.
هل يمكن ربط Whats360 مع CRM؟
نعم، ويمكن بناء التكامل باستخدام API لتنفيذ العمليات وWebhooks لإرسال الأحداث والبيانات بين Whats360 ونظام CRM.
كيف يمكن ربط Shopify مع Whats360؟
يمكن إنشاء Incoming Webhook وربطه بأحداث Shopify مثل إنشاء الطلب أو تحديثه أو دفعه، ثم استخدام البيانات القادمة في Workflow يرسل الرسالة المناسبة.
هل يمكن ربط WooCommerce مع Whats360؟
نعم، من خلال Webhook مناسب وربطه من إعدادات Webhooks داخل WooCommerce، ثم استخدام البيانات في Workflow التكامل.
ما وظيفة Email Send API؟
تتيح إرسال البريد الإلكتروني من نظام خارجي من خلال API باستخدام المصادقة والبيانات المطلوبة مثل المرسل والمستلم وموضوع الرسالة ومحتواها.
ما هي VCash API؟
هي واجهات برمجية للتعامل مع أجهزة VCash وبعض العمليات مثل إرسال SMS وتنفيذ USSD والاستعلام عن الرصيد والمعاملات.
ماذا يعني الخطأ 401؟
يشير إلى مشكلة في المصادقة مثل Token غير صحيح أو منتهي، ويجب مراجعة بيانات المصادقة المستخدمة في الطلب.
ماذا يعني الخطأ 404 في API؟
يشير إلى أن المورد المطلوب غير موجود، مثل Instance غير موجود أو معرف غير صحيح.
ماذا يعني الخطأ 463؟
يشير إلى أن الرقم غير مفتوح للمحادثة وفق القيد البروتوكولي المشار إليه، ويمكن في السيناريو المذكور إرسال رسالة من الهاتف إلى الرقم ثم إعادة المحاولة.
هل أحتاج إلى API وWebhook معًا؟
ليس في كل مشروع، لكن الجمع بينهما مفيد جدًا في الأنظمة التي تستقبل أحداثًا من مصدر خارجي ثم تنفذ إجراءات آلية باستخدام API.
كيف أبدأ إذا كان لدي نظام برمجي خاص؟
ابدأ بتحديد الأحداث والعمليات المطلوبة، ثم حدد الـEndpoints والمعاملات والمصادقة، وبعد ذلك أنشئ Integration Layer لمعالجة الطلبات والاستجابات والأخطاء.
الخلاصة
القيمة الحقيقية في API وWebhooks لا تأتي من معرفة أسماء الـEndpoints فقط، وإنما من القدرة على وضع هذه الواجهات داخل Workflow منطقي يخدم النظام بالكامل.
إذا كان هدفك هو إرسال رسائل من تطبيق خارجي، فابدأ بـWhatsApp Developer API.
إذا كان نظامك يحتاج إلى إرسال البريد الإلكتروني، فاستخدم Email Send API مع إعداد DNS المناسب.
إذا كنت تريد استقبال أحداث من متجر أو CRM أو نظام خارجي، فاستخدم Webhooks.
إذا كان المشروع يتطلب التعامل مع أجهزة VCash أو SMS أو USSD أو بيانات المعاملات، فاستخدم VCash API.
أما الأنظمة التي تجمع متجرًا وCRM وWhatsApp وأتمتة، فالتصميم الأقوى غالبًا يعتمد على الجمع بين:
API + Webhooks + Integration Layer + Error Handling + Automation
بهذه البنية يصبح WhatsApp جزءًا من النظام البرمجي، وليس مجرد تطبيق منفصل لإرسال الرسائل.
هل لديك مشروع يحتاج إلى WhatsApp API أو Webhooks؟
إذا كان لديك متجر إلكتروني أو CRM أو تطبيق خاص أو نظام داخلي وتحتاج إلى تحديد طريقة الربط المناسبة، يمكنك إرسال فكرة التكامل والعمليات التي تريد تنفيذها لمناقشة المسار التقني المناسب.
الكلمات المفتاحية
Whats360 API، WhatsApp API، WhatsApp Developer API، Whats360 Webhooks، Webhooks، WhatsApp Webhook، WhatsApp API للمطورين، API التكامل مع WhatsApp، WhatsApp CRM Integration، Email Send API، Email API، VCash API، VCash Webhooks، Shopify WhatsApp API، WooCommerce WhatsApp API، n8n WhatsApp Integration، WhatsApp API Integration، REST API، API Endpoints، API Authentication، WhatsApp Automation، WhatsApp Integration، ربط WhatsApp مع CRM، ربط WhatsApp مع Shopify، ربط WhatsApp مع WooCommerce، برمجة WhatsApp API، تكامل الأنظمة مع WhatsApp، إرسال رسائل WhatsApp من API، إدارة WhatsApp Instances، WhatsApp Campaign API، API Webhooks 2026.
الأسئلة الشائعة التي يجيب عنها المقال
- ما هو Whats360 API؟
- ما الفرق بين WhatsApp API وWebhooks؟
- كيف أرسل رسالة WhatsApp من نظام خارجي؟
- ما هي WhatsApp Developer API؟
- ما هي Email Send API؟
- كيف يتم إرسال البريد الإلكتروني من خلال API؟
- ما هي VCash API؟
- كيف يتم ربط Whats360 مع CRM؟
- كيف يتم ربط Shopify مع Whats360؟
- كيف يتم ربط WooCommerce مع Whats360؟
- كيف يمكن استخدام n8n مع Whats360 Webhooks؟
- ما هو Incoming Webhook؟
- ما هو Outgoing Webhook؟
- ما هو Custom Webhook؟
- كيف يتم إنشاء Webhook مخصص؟
- ما هي أهم Whats360 API Endpoints؟
- ما هي معاملات WhatsApp API؟
- كيف تتم المصادقة في API؟
- ما معنى خطأ 400 في WhatsApp API؟
- ما معنى خطأ 401 في WhatsApp API؟
- ما معنى خطأ 403 في WhatsApp API؟
- ما معنى خطأ 404 في WhatsApp API؟
- ما معنى خطأ 463 في WhatsApp API؟
- كيف يتم التعامل مع أخطاء API؟
- كيف يتم تصميم Integration Architecture صحيحة؟
- هل يمكن استخدام API وWebhooks معًا؟
- كيف يتم إرسال الصور والفيديو والمستندات من WhatsApp API؟
- كيف يتم إدارة WhatsApp Instances من خلال API؟
- كيف يتم التحكم في حملات WhatsApp برمجيًا؟
- كيف يتم بناء تكامل احترافي بين WhatsApp والمتاجر الإلكترونية؟







