Package Information
Documentation
n8n-nodes-zernio-messaging
حزمة Community Node مخصصة لـ Zernio Unified Inbox. تعتمد على العقد الرسمي الحالي v1 ولا ترسل أي طلبات إلى عناوين يحددها المستخدم خارج Base URL الموجود في الاعتماد.
ما تم تنفيذه
- Zernio Messaging: رفع Binary مباشر حتى 25MB عبر
/v1/media/upload-direct، ثم إرسال نص، رابط مرفق، WhatsApp/Generic Template، WhatsApp Interactive، Location، Contact، وRaw JSON مضبوط. - عمليات المحادثات والرسائل: بدء محادثة، قائمة/بحث/قراءة المحادثات، قائمة الرسائل، تعديل وحذف الرسائل، reactions، typing، وmark read.
- Zernio Trigger: استقبال Webhooks والتحقق من
X-Zernio-Signatureأو legacyX-Late-Signatureبـ HMAC-SHA256، مع فلتر أحداث ومنع Event IDs المكررة خلال دورة العمل. - حماية الأسرار: API key داخل Credential فقط ولا يدخل في
jsonأو رسائل الخطأ. Idempotency-Keyاختياري للإرسال؛ Zernio يحتفظ بالمفاتيح الناجحة 24 ساعة. لا توجد إعادة محاولات صامتة.continueOnFailيعيد عنصر خطأ مرتبطًا بالعنصر الأصلي.
التثبيت
npm install
npm run build
npm pack
# ثبّت ملف tgz الناتج داخل n8n أو انسخ الحزمة إلى مجلد community-nodes
أضف Credential باسم Zernio API، أدخل API Key، واترك Base URL الافتراضي https://zernio.com/api.
إرسال رسالة
اختر Send Message، أدخل Account ID وConversation ID، ثم نوع الرسالة. جميع الحقول تدعم Expressions مثل:
{{$json.accountId}}
{{$json.conversationId}}
{{$json.message}}
{{$json.orderId + ":" + $json.attempt}}
للمرفقات عبر رابط يجب أن يكون الرابط عامًا. لرفع Binary، استخدم Upload Binary Media، واختر اسم خاصية Binary؛ يرجع Zernio رابطًا عامًا يمكن تمريره إلى Send Message. الحد الرسمي 25MB والتخزين المؤقت يحذف بعد 7 أيام.
القوالب المعتمدة تستخدم template.elements[0].name/language/components. Interactive يدعم الأنواع التي يعلنها OpenAPI الحالي. الرسائل التفاعلية رسائل session داخل نافذة 24 ساعة. category: utility لا يجتمع مع template أو attachment أو location أو contacts، وquickReplies لا يجتمع مع buttons. يبقى رفض المنصة هو المرجع النهائي للقيود الخاصة بالحساب والقالب.
Webhook Trigger
أنشئ subscription في Zernio Dashboard → Webhooks بنفس URL الذي يعرضه n8n، واضبط secret نفسه في Trigger. Zernio يرسل Event ID ثابتًا في X-Zernio-Event-Id ويمكن فلترة message.received مثلًا. يفضل تشغيل HTTPS وعدم تعطيل التوقيع.
أمثلة Workflow
- Webhook/AI Agent → Zernio Messaging، مع
{{$json.conversationId}}و{{$json.output}}. - Google Sheets/CRM → Split in Batches → Zernio Messaging، مع مفتاح
{{$json.customerId + ":" + $execution.id}}إذا كان مناسبًا لسياسة التكرار. - Zernio Trigger (
message.received) → IF/Router → Template أو Interactive reply.
الاختبارات
npm run build
npm test
npm run lint
npm run pack:check
لا توجد اختبارات Live في الحزمة؛ لا يتم الادعاء بإرسال حقيقي دون API key وتجربة صريحة من المستخدم. أخطاء 429 و5xx لا تعاد تلقائيًا لأن فشل الاستجابة قد يحدث بعد قبول الرسالة من المنصة؛ استخدم reconciliation وIdempotency وفق توثيق Zernio.