أحداث WhatsApp التي تحرك سير العمل في n8n.

تعمل «webhooks» الموقعة من Flowella على تشغيل سير عمل n8n من خلال مشغل Webhook الخاص بـ n8n، وتقوم عقدة «HTTP Request» بإرسال قوالب WhatsApp مرة أخرى عبر واجهة برمجة تطبيقات Flowella.

  • يعمل اليوممن خلال واجهة برمجة تطبيقات (API) Flowella و«webhooks»
  • قريبًاعقدة «Flowella» لـ «n8n»
«فلو»، شخصية «فلوويلا» الترويجية، وهي تقوم بتوصيل سلك بأخر العقد الملونة الثلاثة لربطها معًا

أطلق الحدث، وتابع الحمولة.

إليك سير عمل n8n، مرسوم بأسلوب Flowella. اختر حدثًا نموذجيًّا وأرسله، ثم تابعه من عقدة إلى أخرى: تقوم عقدة Switch بتوجيه كل حدث، بينما تقوم عقدة HTTP Request بتنبيه فريقك أو تحديث قائمة البريد الإلكتروني الخاصة بك أو إرسال نموذج WhatsApp عبر واجهة برمجة تطبيقات Flowella. حدد أي عقدة لترى بالضبط ما استقبلته أو أرسلته.

فلو تشير إلى أحد الأسهم الثلاثة الموجودة على اللافتة، تمامًا كما يختار فرع سير العمل مسارًا واحدًا
العقد الخاصة بـ n8n فقط
مثال على فعالية
Acme Clubحساب تجاري
بيانات تجريبية

اليوم

مرحبًا يا آدا، ستُجدد عضويتك في نادي «أكيمي» في 31 أكتوبر. أجيبي هنا إذا كانت لديك أي أسئلة.
فعاليات «فلوويلا»سير عمل n8n
بيانات تجريبية

ما نشرته «فلوويلا» على الويب هوك بيانات تجريبية

POST/webhook/flowella-events

Content-Type
application/json
X-Flowella-Signature
يتم التوقيع عند حدوث حدث ما

أرسل حدثًا لترى المنشورات التي تنشرها «فلوويلا» هنا.

POST/webhook/flowella-events

Content-Type
application/json
X-Flowella-Signature
5d2c9f1a…e19a
{
  "id": "6f1d8a2c-4b7e-4c19-9a53-0e2b7c4d9f10",
  "type": "message.received",
  "created_at": "2026-10-16T08:41:07.000Z",
  "payload_version": "1",
  "data": {
    "messageId": "clsamplemsg00000000000043",
    "conversationId": "clsampleconv0000000000007",
    "contactId": "clsamplecontact0000000003",
    "direction": "INBOUND",
    "type": "TEXT",
    "metaMessageId": "wamid.sample00000000000043"
  }
}

POST/webhook/flowella-events

Content-Type
application/json
X-Flowella-Signature
5d2c9f1a…e19a
{
  "id": "6f1d8a2c-4b7e-4c19-9a53-0e2b7c4d9f10",
  "type": "optout.created",
  "created_at": "2026-10-16T08:41:07.000Z",
  "payload_version": "1",
  "data": {
    "contactId": "clsamplecontact0000000003",
    "conversationId": "clsampleconv0000000000007",
    "phone": "+447700900123",
    "reason": "USER_KEYWORD"
  }
}

POST/webhook/flowella-events

Content-Type
application/json
X-Flowella-Signature
5d2c9f1a…e19a
{
  "id": "6f1d8a2c-4b7e-4c19-9a53-0e2b7c4d9f10",
  "type": "template.status_updated",
  "created_at": "2026-10-16T08:41:07.000Z",
  "payload_version": "1",
  "data": {
    "metaTemplateId": "1234567890123456",
    "templateName": "autumn_fair_invite",
    "status": "APPROVED",
    "language": "en_GB"
  }
}

يحتوي كل تسليم على نفس المغلف، وتوجد الحقول الخاصة بالحدث في مفتاحه الأخير: id type created_at payload_version data

تحقق من «X-Flowella-Signature» قبل اتخاذ أي إجراء: فهو ملخص سداسي عشري بنظام HMAC-SHA256 للنص الأصلي، تم تشفيره باستخدام مفتاح التوقيع السري الخاص بك.

المفتاح: يتم تطبيق أول قاعدة تتحقق شروطها جميعها على كل حدث

هذا الحدث: لم يتم التحقق منه بعد type: message.received data.type: TEXT type: optout.created type: template.status_updated data.status: APPROVED

  1. إبلاغ الفريق {{ $json.body.type }} يساوي message.received {{ $json.body.data.type }} يساوي TEXT
  2. تحديث قائمة البريد الإلكتروني {{ $json.body.type }} يساوي optout.created
  3. إرسال الحملة {{ $json.body.type }} يساوي template.status_updated {{ $json.body.data.status }} يساوي APPROVED

في انتظار حدث ما.

تتطابق القاعدة 1، لذا يتم تفعيل الحدث لإخطار الفريق.

تتطابق القاعدة 2، لذا ينتقل الحدث إلى «تحديث قائمة البريد».

تتوافق القاعدة 3، لذا ينتقل الحدث إلى «إرسال الحملة».

يقوم جهاز التبديل بتمرير الحدث دون تغيير، بحيث تتمكن العقدة التالية من قراءة $json.body أيضًا.

ما أرسلته عقدة «طلب HTTP» بيانات تجريبية

POSThttps://alerts.example.com/hooks/whatsapp-replies

Content-Type
application/json

لا تعمل هذه العقدة إلا عندما تتطابق القاعدة 1.

POSThttps://alerts.example.com/hooks/whatsapp-replies

Content-Type
application/json

conversationId من {{ $json.body.data.conversationId }}contactId من {{ $json.body.data.contactId }}

{
  "conversationId": "clsampleconv0000000000007",
  "contactId": "clsamplecontact0000000003"
}
200 OK

POSThttps://alerts.example.com/hooks/whatsapp-replies

Content-Type
application/json

لم يتم التشغيل. أرسل جهاز Switch هذا الحدث إلى مخرج آخر.

يحتوي هذا الحدث على معرّفات، وليس على الرد نفسه، لذا يقوم فريقك بفتح المحادثة في صندوق الوارد في Flowella والرد عليها من هناك.

ما أرسلته عقدة «طلب HTTP» بيانات تجريبية

POSThttps://lists.example.com/v1/unsubscribes

Content-Type
application/json

لا تعمل هذه العقدة إلا عندما تتطابق القاعدة رقم 2.

POSThttps://lists.example.com/v1/unsubscribes

Content-Type
application/json

phone من {{ $json.body.data.phone }}reason من {{ $json.body.data.reason }}

{
  "phone": "+447700900123",
  "reason": "USER_KEYWORD"
}
200 OK

POSThttps://lists.example.com/v1/unsubscribes

Content-Type
application/json

لم يتم التشغيل. أرسل جهاز Switch هذا الحدث إلى مخرج آخر.

"optout.created" هو الحدث الذي يحمل رقم الهاتف، بحيث تتمكن أدواتك الأخرى من التوقف عن إرسال الرسائل إليها أيضًا.

ما أرسلته عقدة «طلب HTTP» بيانات تجريبية

POSThttps://api.flowella.io/v1/templates/send

Authorization
Bearer flo_(مخفي)من بيانات اعتمادك في n8n
Content-Type
application/json

لا تعمل هذه العقدة إلا عندما تتطابق القاعدة رقم 3.

POSThttps://api.flowella.io/v1/templates/send

Authorization
Bearer flo_(مخفي)من بيانات اعتمادك في n8n
Content-Type
application/json
Idempotency-Key
6f1d8a2c-4b7e-4c19-9a53-0e2b7c4d9f10

templateId من {{ $json.body.data.metaTemplateId }}Idempotency-Key من {{ $json.body.id }}، وبالتالي، لا يتم إرسال الشحنة التي أعيدت محاولتها مرتين أبدًاrecipients من قائمة الأعضاء التي تحتفظ بها شبكة n8n

{
  "templateId": "1234567890123456",
  "whatsappChannelId": "clsamplechannel0000000001",
  "recipients": [
    { "phone": "+447700900123", "bodyParameters": ["Ada"] },
    { "phone": "+447700900456", "bodyParameters": ["Ben"] }
  ]
}
202 Accepted{ "id": "v1ts-0123456789abcdef", "status": "accepted" }

POSThttps://api.flowella.io/v1/templates/send

Authorization
Bearer flo_(مخفي)من بيانات اعتمادك في n8n
Content-Type
application/json

لم يتم التشغيل. أرسل جهاز Switch هذا الحدث إلى مخرج آخر.

احتفظ بمفتاح API في بيانات اعتماد n8n، ولا تضعه أبدًا في سير العمل نفسه. تعني رسالة الخطأ «202 Accepted» أن Flowella قد أدرجت عملية الإرسال في قائمة الانتظار وتقوم بتسليمها في الخلفية.

قم بإعداده في ثلاث خطوات.

تحتاج إلى حساب على «Flowella» مرتبط بـ«WhatsApp»، ونموذج معتمد من «Meta»، وسلسلة عمليات على «n8n». ثم:

  1. الخطوة 1: إضافة مشغل Webhook

    ابدأ سير العمل باستخدام عقدة Webhook في n8n، واضبطها على POST، ثم انسخ عنوان URL الخاص بها في بيئة الإنتاج.

    عقدة Webhookبيانات تجريبية
    الطريقة
    POST
    المسار
    flowella-events
    عنوان URL
    https://n8n.example.com/webhook/flowella-events
    الاستماع
    الويب هوكس الصادرة
  2. الخطوة 2: اشترك في «فلوويلا»

    في «الإعدادات» → «Webhooks»، أضف عنوان URL هذا، واختر الأحداث التي تريدها، واحفظ سر التوقيع. يؤدي النقر على «إرسال اختبار» إلى تشغيل حدث «webhook.test». يجب أن تكون لديك صلاحية «المالك» أو «المسؤول».

    Webhooksبيانات تجريبية
    نقطة النهاية
    https://n8n.example.com/webhook/flowella-events
    الأحداث
    message.received, optout.created, template.status_updated
    سر التوقيع
    تم الحفظ
    تم إرسال الاختبار
    إعدادات Webhook
  3. الخطوة 3: إرجاع البيانات عبر طلب HTTP

    أضف عقدة «طلب HTTP» تُرسل طلبًا من نوع POST إلى /v1/templates/send، مع إدراج مفتاح واجهة برمجة تطبيقات Flowella الخاص بك في بيانات الاعتماد الموجودة في الرأس.

    عقدة طلب HTTPبيانات تجريبية
    الطريقة
    POST
    عنوان URL
    https://api.flowella.io/v1/templates/send
    البيانات التعريفية
    Header: Authorization
    202 مقبولة
    مرجع واجهة برمجة التطبيقات (API)

ما الذي ينجح اليوم، وما الذي ينتظرنا في المستقبل.

كل ما سبق يعمل عبر واجهة برمجة تطبيقات (API) Flowella و«webhooks»، وهي متاحة الآن. وستتوفر قريبًا عقدة Flowella الخاصة بـ n8n.

قريبًا

عقدة «فلوويلا» لشبكة «n8n»

سننشر هنا كيفية عملها عندما تصبح جاهزة. وحتى ذلك الحين، يمكن استخدام مشغل Webhook وعقدة طلب HTTP في n8n للقيام بهذه المهمة.

معلومات مفيدة

  • تحقق من التوقيعيحتوي كل طلب على رأس «X-Flowella-Signature»، وهو ملخص سداسي عشري بنظام HMAC-SHA256 لنص الجسم الخام. تحقق منه قبل اتخاذ أي إجراء. وأثناء تغيير السر، يحتوي رأس «X-Flowella-Signature-Previous» على التوقيع القديم أيضًا.
  • أجب في غضون 10 ثوانٍتنتظر Flowella ما يصل إلى 10 ثوانٍ للحصول على رمز 2xx وتحاول التسليم 3 مرات كحد أقصى، بفاصل زمني يبلغ ثانية واحدة وثانيتين. قم بالرد أولاً، ثم قم بأي مهام تستغرق وقتًا طويلاً.
  • توقعوا إعادة البثتحمل عملية التسليم المعادة نفس معرّف المغلف، لذا احتفظ بالمعرّفات التي تعاملت معها واعتبر التكرار عملية لا تؤدي إلى أي نتيجة.
  • المعرّفات، وليس الكلماتتحتوي message.received على معرّفات الرسائل واتجاهها ونوعها، ولا تحتوي أبدًا على نصها. يقوم فريقك بقراءة الردود والرد عليها في صندوق الوارد في Flowella.

متوفر اليوم يعمل اليوم

متاح لأي أداة تقوم بإرسال واستقبال طلبات HTTP، بما في ذلك n8n.

أحداث Webhook التي يمكنك الاشتراك فيها اليوم

  • message.received
  • message.sent
  • message.delivered
  • message.read
  • message.failed
  • conversation.opened
  • conversation.closed
  • optout.created
  • template.status_updated
  • contact.created
  • contact.updated
  • contact.deleted

بالإضافة إلى webhook.test، الذي يقوم «Send test» بتشغيله عند الطلب.

فلو تقفز فرحًا وهي ترفع قبضتها في الهواء وتمسك بهاتف في يدها

ابدأ في البرمجة باستخدام Flowella و n8n.

كل ما يرد في هذه الصفحة يعمل حاليًا من خلال واجهة برمجة تطبيقات (API) Flowella و«webhooks». احجز عرضًا توضيحيًّا مدته 30 دقيقة عبر Teams وسنستعرض معًا سير العمل لديك.

عرض جميع عمليات التكامل