رسائل بريد معاملاتية تفاعلية عبر Send API

معظم أدوات إرسال البريد المعاملاتي لا تعرض إلا HTML عاديًا. أما POST /api/v1/send في وضع القالب فيعرض أحد مشاريعك في الاستوديو — بما في ذلك محرك البدائل الكامل والعناصر التفاعلية — مع mergeData بديلًا عن صف القيم الديناميكية، فيمكن لإيصال أو رسالة تأكيد يطلقها خادمك الخلفي أن تحمل عنصر تقييم أو عرض بيع إضافي في عنصر منتج تمامًا كما يفعل الإرسال التسويقي.

الموضوع

Your order receipt

معظم أدوات إرسال البريد المعاملاتي لا تعرض إلا HTML عاديًا. أما POST /api/v1/send في وضع القالب فيعرض أحد مشاريعك في الاستوديو، بما في ذلك محرك البدائل الكامل والعناصر التفاعلية. فيمكن لإيصال أو رسالة تأكيد يطلقها خادمك الخلفي أن تحمل عنصر تقييم أو عرض بيع إضافي في عنصر منتج تمامًا كما يفعل الإرسال التسويقي.

الإيصال من أعلى رسائل الشركة معدلًا للفتح — وهو دائمًا تقريبًا أبسطها شكلًا، لأنه يُولَّد عادةً بأي مكتبة معاملاتية كانت الأسهل في التوصيل، لا بأي شيء مرتبط بنظام تصميم.

صمّمه مرة واحدة، وأطلقه من خادمك الخلفي

ابنِ الإيصال أو رسالة التأكيد كمشروع عادي في الاستوديو، مع أي عناصر مناسبة — تقييم لقياس CSAT بعد الشراء، أو عرض بيع إضافي لمنتج ذي صلة في عنصر منتج. ثم يستدعي خادمك الخلفي Send API في وضع القالب مع معرّف المشروع وكائن mergeData بديلًا عن القيم الديناميكية لذلك الطلب تحديدًا.

صنّفه معاملاتيًا، بالشكل الصحيح

ضبط type على "transactional" يتجاوز حظر الإرسال الناتج عن إلغاء الاشتراك — فالإيصال يجب أن يصل حتى إلى من ألغى اشتراكه في الرسائل التسويقية — لكنه لا يتجاوز أبدًا حظر الإرسال الناتج عن الارتداد، لأن العنوان السيئ فعلًا لا ينبغي الاستمرار في الإرسال إليه أيًّا كان نوع البريد.

مصادَق عليه مثل أي تكامل API

مفتاح API مُسمًّى لكل مالك، بمصادقة Bearer، يُنشأ ويُلغى من قسم المطوّرين في لوحة التحكم. وتمنع ترويسة Idempotency-Key الطلبَ المُعاد من إرسال الإيصال مرتين.

ما الذي لا ينتقل

يتخطى الوضع الحرّ (دون projectId، فقط html/text خام) مسار العرض بالكامل — لا وسوم دمج، ولا محرك بدائل، ويُرسَل تمامًا كما هو. وهذا هو الخيار الصحيح لشيء مثل رمز OTP لمرة واحدة؛ أما وضع القالب فهو ما يستحق الاستخدام حين يستفيد البريد نفسه من عنصر تفاعلي.

البدء

ابنِ القالب المعاملاتي كمشروع في الاستوديو بالعناصر التفاعلية التي تريدها، وأنشئ مفتاح API من قسم المطوّرين، واستدعِ POST /api/v1/send في وضع القالب مع mergeData وtype: "transactional".

تسلسل نموذجي للبناء والإرسال

  1. 1

    ابنِ القالب المعاملاتي كمشروع في الاستوديو

    صمّم الإيصال أو رسالة التأكيد مرة واحدة في الاستوديو، مع أي عناصر تفاعلية مناسبة — تقييم، أو منتج ذو صلة، أو زر لحالة الطلب.

  2. 2

    أنشئ مفتاح API

    أنشئ مفتاح API مُسمًّى ضمن قسم المطوّرين في لوحة التحكم — فهو يصادق كل استدعاء لـ Send API كرمز Bearer.

  3. 3

    استدعِ Send API في وضع القالب

    يرسل خادمك الخلفي طلب POST إلى /api/v1/send مع معرّف المشروع وكائن mergeData بديلًا عن القيم الديناميكية لذلك الطلب أو الحدث تحديدًا.

  4. 4

    صنّفه معاملاتيًا

    اضبط type على «transactional» كي يتجاوز الإرسال حظر الإرسال الناتج عن إلغاء الاشتراك (مع بقاء حظر الإرسال الناتج عن الارتداد ساريًا) — الدلالة الصحيحة لإيصال يحتاجه المستلم بغض النظر عن تفضيلاته التسويقية.

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

هل يمكن لبريد معاملاتي يُرسَل عبر API أن يتضمن العناصر التفاعلية نفسها التي تتضمنها الحملة العادية؟

نعم — يعرض وضع القالب مشروعًا موجودًا في الاستوديو تمامًا كما يعرضه renderEmail() في أي إرسال آخر، فينتقل كل عنصر ومحرك البدائل الكامل ذو المستويات الثلاثة كما هي.

كيف تصل بيانات كل مستلم إلى القالب، في غياب صف في مصدر البيانات لاستدعاء API؟

يحلّ كائن mergeData في جسم الطلب محل صف مصدر البيانات — فتُحسم حتى 100 حقل مسطّح من المفاتيح والقيم في وسوم الدمج {{field}} الخاصة بالمشروع لذلك الاستدعاء الواحد.

ما الفرق بين النوع «transactional» والنوع «marketing» في نقطة النهاية نفسها؟

يتحكم الحقل type في قائمة حظر الإرسال التي تُفحص: يتجاوز النوع المعاملاتي حظر الإرسال الناتج عن إلغاء الاشتراك (فالإيصال يجب أن يصل حتى إلى من ألغى اشتراكه في الرسائل التسويقية) لكنه لا يتجاوز أبدًا حظر الإرسال الناتج عن الارتداد؛ أما النوع التسويقي فيحترم الاثنين.

هل يوجد حدّ لمعدل الطلبات على Send API؟

نعم — 60 طلبًا في الدقيقة لكل مفتاح API، إضافة إلى سقف الحجم الشهري نفسه لكل مالك الذي تتشاركه جميع مسارات الإرسال؛ ويمنع ترويسة Idempotency-Key إرسال الطلب المُعاد مرتين.

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

نعم — حذف projectId وإرسال html/text مباشرة يستخدم الوضع الحرّ، فيُرسَل كما هو دون مسار عرض أو وسوم دمج؛ أما وضع القالب (مع projectId) فهو ما يحمل العناصر التفاعلية ومحرك البدائل.

ابنِ هذا في الاستوديو

ابدأ بالباقة المجانية — كل عنصر تفاعلي ومحرك البدائل الكامل مضمَّنان في كل فئة.