التكاملات
تكامل n8n
أرسل رسائل WhatsApp من مسارات عمل n8n الخاصة بك. مثلًا، راسل عميلًا محتملًا جديدًا من webhook، أو أكّد طلبًا من متجرك، أو أرسل تنبيهًا عند فشل فحص ما.
هناك طريقتان للربط:
- عقدة Wbiztool المجتمعية (
n8n-nodes-wbiztool): عقد جاهزة تحتوي على حقول لكل خيار. - عقدة HTTP Request المدمجة: تعمل على أي نسخة من n8n وتمنحك الوصول إلى كل نقاط نهاية API. راجع استخدام عقدة HTTP Request.
قبل أن تبدأ#
- حساب Wbiztool مع رقم WhatsApp متصل في WhatsApp settings (إعدادات WhatsApp).
- Client ID (معرّف العميل) وAPI key (مفتاح API) من Settings → API keys (الإعدادات ← مفاتيح API).
- WhatsApp Client ID (معرّف عميل WhatsApp) للرقم الذي سترسل منه، ويظهر في WhatsApp settings.
ثبّت العقدة المجتمعية#
افتح العقد المجتمعية
في n8n، انتقل إلى Settings → Community Nodes وانقر على Install.
أدخل اسم الحزمة
أدخل
n8n-nodes-wbiztool، وأكّد وثبّت. أعد تشغيل n8n إذا لم تظهر العقد.
في النسخة المستضافة ذاتيًا يمكنك أيضًا تثبيتها باستخدام npm في مجلد العقد المخصصة في n8n:
npm install n8n-nodes-wbiztool
أنشئ بيانات الاعتماد#
أضف بيانات اعتماد جديدة من النوع WbizTool API:
| الحقل | القيمة |
|---|---|
| Client ID | معرّف عميل API الخاص بك. |
| API Key | مفتاح API الخاص بك. |
| WhatsApp Client ID | الرقم الافتراضي الذي تُرسل منه. تتيح لك معظم العقد تجاوزه. |
| Base URL | أبقِ القيمة الافتراضية https://wbiztool.com/api/v1 (دون شرطة مائلة في النهاية). |
عند الحفظ، يختبر n8n بيانات الاعتماد مقابل التحقق من بيانات الاعتماد.
العقد#
تضيف الحزمة هذه العقد. تستدعي كل منها نقطة نهاية في Wbiztool API وتُخرج استجابة API.
| العقدة | ما تفعله | API |
|---|---|---|
| WbizTool Send Message | إرسال نص أو صورة أو ملف إلى رقم هاتف أو مجموعة. | إرسال رسالة، الإرسال إلى مجموعة |
| WbizTool Send Group Message | إرسال رسالة إلى مجموعة WhatsApp باسمها. | الإرسال إلى مجموعة |
| WbizTool Send Multi Message | إرسال الرسالة نفسها إلى قائمة أرقام مفصولة بفواصل. | الإرسال إلى عدة أرقام |
| WbizTool Schedule Message | جدولة رسالة لتاريخ ووقت. راجع التحذير أدناه. | جدولة رسالة |
| WbizTool Cancel Message | إلغاء رسالة مجدولة بمعرّف رسالتها. | إلغاء رسالة |
| WbizTool Message Status | الحصول على حالة رسالة بمعرّف رسالتها. لا تُرجع عنصرًا إلا الرسالة ذات الحالة Sent (مرسلة). الرسالة التي في قائمة الانتظار أو الفاشلة أو الملغاة أو المنتهية الصلاحية توقف العقدة بخطأ مثل Created أو Failed؛ فعّل Continue On Fail للتفرّع بناءً عليه. | حالة الرسالة |
| WbizTool Check Credentials | التحقق من أن Client ID ومفتاح API يعملان. | التحقق من بيانات الاعتماد |
| WbizTool List WhatsApp Clients | عرض أرقام WhatsApp في مساحة عملك. | عرض قائمة الأرقام المتصلة |
| WbizTool Create WhatsApp Client | إضافة رقم WhatsApp إلى مساحة عملك، مع رابط webhook اختياري. | ربط رقم WhatsApp |
| WbizTool WhatsApp Client Status | التحقق مما إذا كان رقم WhatsApp متصلًا. | حالة الاتصال |
WbizTool Send Message#
| الحقل | ملاحظات |
|---|---|
| Target Type (نوع الهدف) | Phone Number (رقم هاتف) أو Group (مجموعة). |
| Phone Number | يظهر مع Phone Number. اربطه من العقد السابقة، مثل {{ $json.phone }}. |
| Country Code (رمز الدولة) | القيمة الافتراضية 91. غيّرها إلى رمز دولة المستلمين. يُضاف قبل رقم الهاتف ما لم يكن الرقم يبدأ به بالفعل. |
| Group Name (اسم المجموعة) | يظهر مع Group. الاسم الدقيق لمجموعة ينتمي إليها رقم WhatsApp الخاص بك. |
| Message Type (نوع الرسالة) | Text أو Image with Text أو File with Text. |
| Message Text (نص الرسالة) | الرسالة، حتى 3,000 حرف. |
| Image URL / File URL / File Name | تظهر لرسائل الصور والملفات. يجب أن تكون الروابط عامة. |
| WhatsApp Client ID (Optional) | اتركه فارغًا لاستخدام الرقم المحدد في بيانات الاعتماد. |
| Additional Options (خيارات إضافية) | Expire After (Seconds) (انتهاء الصلاحية بعد ثوانٍ) وWebhook URL. |
تُخرج العقدة messageId (قيمة msg_id من API). احفظه إذا أردت التحقق من الحالة أو إلغاء الرسالة لاحقًا.
مثال على مسار عمل#
- تستقبل عقدة Webhook عميلًا محتملًا جديدًا مع
phoneوname. - WbizTool Send Message: اضبط Phone Number على
{{ $json.phone }}وMessage Text علىHi {{ $json.name }}, thanks for signing up!. - عقدة IF: تحقق من أن
{{ $json.messageId }}ليس فارغًا للمتابعة إلى الخطوة التالية، مثل تحديث نظام CRM.
تُخرج WbizTool Send Message الناجحة عنصرًا مثل هذا:
{
"success": true,
"messageId": 9817263,
"status": 1,
"message": "Created",
"response": { "status": 1, "message": "Created", "msg_id": 9817263 }
}
يتضمن العنصر أيضًا كائن input بالقيم التي أرسلتها العقدة. إذا أرجعت API خطأ، تتوقف العقدة وتعرض message الخاصة بـ API. فعّل Continue On Fail للحصول على عنصر يحتوي على success: false ونص error بدلًا من ذلك.
مع WbizTool WhatsApp Client Status، استخدم طريقة الفحص General Status. تُرجع طريقة Status by ID خطأ لكل رقم بسبب علّة في نقطة النهاية تلك في API. مع General Status، يوقف الرقم غير المتصل العقدة أيضًا بخطأ Disconnected، لذا فعّل إعداد Continue On Fail في العقدة إذا أردت التفرّع بناءً على النتيجة.
استخدام عقدة HTTP Request#
أضف عقدة HTTP Request واضبطها هكذا:
| الإعداد | القيمة |
|---|---|
| Method | POST |
| URL | https://wbiztool.com/api/v1/send_msg/ |
| Authentication | None |
| Send Body | On |
| Body Content Type | JSON |
| Specify Body | Using JSON |
ثم الصق جسمًا مثل هذا واربط القيم من العقد السابقة باستخدام التعبيرات:
{
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"whatsapp_client": 678,
"msg_type": 0,
"country_code": "91",
"phone": "{{ $json.phone }}",
"msg": "Hi {{ $json.name }}, thanks for signing up!"
}
يُرجع الاستدعاء الناجح {"status": 1, "message": "Created", "msg_id": 9817263}. كل الحقول ورسائل الخطأ موجودة في إرسال رسالة.
لاستدعاء نقاط نهاية أخرى، غيّر الرابط وجسم الطلب. مثلًا، لجدولة رسالة استخدم https://wbiztool.com/api/v1/schedule_msg/ وأضف date بالصيغة DD/MM/YYYY، وtime بالصيغة HH:MM وtimezone. راجع جدولة رسالة.
لإرسال الرسالة نفسها إلى عدة أرقام أو مجموعات في استدعاء واحد، استخدم https://wbiztool.com/api/v1/send_msg/multi/ وضع المستلمين في phone كسلسلة نصية واحدة مفصولة بفواصل. راجع الإرسال إلى عدة أرقام.
{
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"whatsapp_client": 678,
"msg_type": 1,
"country_code": "91",
"phone": "{{ $json.phones }}",
"img_url": "https://example.com/offers/diwali-sale.jpg",
"msg": "Our Diwali sale starts tomorrow!"
}
لا تضع إلا أرقامًا في كل رقم هاتف. أي قيمة ليست عددًا صحيحًا، مثل 98765 43210، تُرسل كاسم مجموعة.
تعمل تعبيرات n8n داخل أي حقل نصي. مثلًا، تحية تعتمد على وقت اليوم، أو نص يعتمد على إجمالي الطلب:
{
"msg": "Good {{ $now.hour < 12 ? 'morning' : 'evening' }} {{ $json.name }}, your order total is {{ $json.total }}.{{ $json.total > 1000 ? ' Delivery is free.' : '' }}"
}
يستخدم $now المنطقة الزمنية لمسار العمل (Workflow settings → Timezone)، لذا اضبطها لتحديد متى ينتهي «الصباح».
تلقَّ إشعارًا عند إرسال رسالة#
أنشئ مسار عمل webhook
أضف عقدة Webhook بطريقة HTTP
POSTوانسخ رابط الإنتاج الخاص بها.مرّر الرابط عند الإرسال
ضع ذلك الرابط في خيار Webhook URL في العقدة، أو في الحقل
webhookفي جسم طلب HTTP.اقرأ النتيجة
تستدعي Wbiztool الرابط بمجرد إرسال الرسالة أو فشلها. الجسم مرمّز كنموذج (form-encoded) ولا يحتوي إلا على
msg_idوstatus، وقيمتهSENTأوFAILED.
راجع Webhook لمعرفة إعادة المحاولات والمهل الزمنية.
استكشاف الأخطاء وإصلاحها#
| المشكلة | ما الذي يجب التحقق منه |
|---|---|
| يفشل اختبار بيانات الاعتماد | تحقق من Client ID ومفتاح API في Settings → API keys، ومن أن Base URL لا ينتهي بشرطة مائلة، ومن أن WhatsApp Client ID في بيانات الاعتماد رقم في مساحة العمل هذه. |
Auth Error: invalid api key | حُذف المفتاح أو ينتمي إلى مساحة عمل مختلفة. |
Invalid whatsapp client | WhatsApp Client ID ليس رقمًا في مساحة العمل هذه. |
Invalid phone number | تحتوي قيمة الهاتف على أحرف أو رموز غير المسافات والنقاط والشرطات والأقواس و+، أو تتكون من أقل من 6 أرقام أو أكثر من 17 رقمًا. اربط رقمًا يتكون من أرقام فقط مثل 919876543210. |
Either phone or group_name parameter is required | قيمة الهاتف المربوطة فارغة لهذا العنصر. |
Invalid Contact Number "…" | يصبح الرقم أطول من 15 رقمًا بعد إضافة رمز الدولة. تحقق من أن رمز الدولة لا يُضاف إلى رقم يتضمن رمزًا بالفعل. |
Not enough credits | لم يتبقَّ في باقتك أي رسائل. |
| تنجح العقدة لكن الرسالة لا تُرسل | تنتظر الرسالة في قائمة الانتظار إلى أن يتصل رقم WhatsApp الخاص بك. تحقق منها عبر حالة الرسالة باستخدام عقدة HTTP Request، أو في سجل رسائلك. تبلّغ عقدة WbizTool Message Status عن الرسالة التي في قائمة الانتظار كخطأ باسم Created. |
