بريد إلكتروني تفاعلي مدعوم ببيانات Salesforce المباشرة

يصادق Salesforce عمليات التكامل بين الخوادم عبر JWT موقَّع، لا عبر كلمة مرور أو رمز تحديث تنتهي صلاحيته بصمت. ويدعم مصدر بيانات API في MailInApp هذا التدفق أصليًا: سجّل الدخول بشهادة Connected App ومفتاحها الخاص، ونفّذ استعلام SOQL، واربط الصفوف المُعادة مباشرة بعنصر بطاقة مؤشرات الأداء أو مخطط — ملخّص لمسار المبيعات بأرقام حقيقية وحالية في كل إرسال، لا لقطة شاشة ملصقة في بريد.

الموضوع

Your pipeline this week

يصادق Salesforce عمليات التكامل بين الخوادم عبر JWT موقَّع، لا عبر كلمة مرور — ويدعم مصدر بيانات API في MailInApp هذا التدفق أصليًا. اربط مرة واحدة، ويمكن لعنصر بطاقة مؤشرات الأداء أو مخطط الارتباط مباشرة بصفوف Opportunity أو Account أو Contact الحيّة، دون رمز تحديث تحتاج إلى مراقبته ودون ملف CSV تعيد تصديره قبل كل إرسال.

معظم رسائل «مسار المبيعات الأسبوعي» لقطة شاشة لتقرير، تتقادم لحظة لصقها. ربط عنصر مخطط مباشرة بمصدر بيانات مدعوم من Salesforce يعني أن رقم العنصر نفسه يأتي من استعلام SOQL حقيقي — ويعيد الإرسال المتكرر تشغيل ذلك الاستعلام من جديد في كل إرسال، فيعكس ملخّص يوم الاثنين فعلًا مسار مبيعات يوم الاثنين.

كيف يعمل الاتصال

MailInApp

يوقّع JWT بالمفتاح الخاص لـ Connected App لديك

نقطة نهاية الرموز في Salesforce

تتحقق من التوقيع، وتعيد رمز وصول

Salesforce REST API

تنفّذ استعلام SOQL الخاص بك، بمصادقة رمز Bearer

بريدك

عناصر بطاقة مؤشرات الأداء والمخططات مربوطة مباشرة بالصفوف

تحدث كل خطوة من جهة الخادم في كل إرسال. لا تُرسَل أي كلمة مرور أبدًا، ولا يوجد رمز تحديث — فالرمز القديم يُستبدل بتوقيع تأكيد جديد.

هذا هو تدفق JWT Bearer نفسه الذي يوثّقه Salesforce لعمليات التكامل بين الخوادم الخاصة به، موصولًا بأوضاع مصادقة OAuth2 الحالية في MailInApp لمصادر بيانات API، بدلًا من تكامل مخصّص لـ Salesforce وحده.

أعدّ Connected App مرة واحدة

في Salesforce Setup، أنشئ Connected App، وفعّل إعدادات OAuth، وارفع شهادة موقَّعة ذاتيًا ضمن Use digital signatures — تذهب الشهادة إلى Salesforce، ويذهب المفتاح الخاص RSA المقترن بها إلى MailInApp. اضبط Permitted Users على Admin approved users are pre-authorized، وهذا ما يجعل التبادل غير تفاعلي: لا توجد شاشة موافقة يضطر نصٌّ برمجي إلى النقر عبرها. دوّن Consumer Key الخاص بـ Connected App وعنوان My Domain لمؤسستك — فكلاهما يدخل في إعداد الاتصال في MailInApp.

وجّهه إلى استعلام SOQL

نقطة النهاية في مصدر البيانات هي عنوان URL لاستعلام REST، وسلسلة الاستعلام هي البيانات الفعلية التي تعود إليك:

SELECT Name, Amount, StageName, CloseDate FROM Opportunity WHERE IsClosed = false

اضبط مسار البيانات على records — إذ يغلّف Salesforce نتائج استعلامه في مصفوفة records. تعود حقول العلاقات مثل Owner.Email متداخلة فيُسقطها محلّل الصفوف في MailInApp، لذا أبقِ الاستعلام مسطّحًا؛ واختر OwnerId بدلًا منها إن احتجت إلى معرّف للمالك للتصفية أو الدمج عليه لاحقًا.

اربط العناصر به مباشرة، لا بوسوم الدمج

أضِف الاتصال إلى مشروع من لوحة البيانات في الاستوديو بدور مجموعة (collection) — الربط نفسه الذي يستخدمه عنصر التكرار. ومن هناك، يمكن لـ عناصر بطاقة مؤشرات الأداء والمخطط الشريطي والخطي والدائري الارتباط به مباشرة من لوحة الخصائص الخاصة بكلٍّ منها:

  • تصبح بطاقة مؤشرات الأداء المضبوطة على Amount مع تجميع Sum رقمًا حيًّا لـ «إجمالي مسار المبيعات المفتوح».
  • يصبح المخطط الشريطي المجمّع حسب StageName، مع Amount كسلسلة له (بتجميع Sum مجددًا)، تفصيلًا لمسار المبيعات حسب المرحلة.

لا يحتاج أيٌّ من العنصرين إلى كتابة وسم دمج واحد يدويًا — فالربط يؤدي العمل، ويبقى العنصران صحيحين مع انتقال الصفقات بين المراحل أو إغلاقها.

أرسله وفق جدول

يعيد إرسال متكرر أسبوعي تشغيل استعلام SOQL ويعيد عرض العنصرين مقابل صفوف Salesforce الحالية في كل مرة ينطلق فيها — بنية الملخّص نفسها، بأرقام جديدة كل يوم اثنين، دون أن يعيد أحد بناءه يدويًا. ويمنح عنصر زر يشير إلى عنوان URL لكل Opportunity في Salesforce كل قارئ للملخّص طريقة بنقرة واحدة لفتح السجل الكامن وراء رقم يلفت انتباهه.

البدء

أنشئ Connected App في Salesforce بشهادة لتدفق JWT Bearer، واربطه في تبويب مصادر البيانات في MailInApp باستخدام Consumer Key واسم مستخدم التكامل والمفتاح الخاص، ووجّه نقطة النهاية إلى استعلام SOQL مع records كمسار للبيانات، ثم اربط بطاقة مؤشرات أداء ومخططًا شريطيًا به من لوحة البيانات في الاستوديو. راجع دليل تكامل Salesforce للإعداد الكامل حقلًا بحقل.

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

  1. 1

    أنشئ Connected App في Salesforce للوصول بين الخوادم

    فعّل إعدادات OAuth، وارفع شهادة رقمية موقَّعة ذاتيًا، وشغّل JWT Bearer Flow، واضبط Permitted Users على «Admin approved users are pre-authorized» كي لا يضطر أي شخص إلى المرور بشاشة موافقة.

  2. 2

    اربط Salesforce كمصدر بيانات API

    اختر OAuth2 JWT Bearer في تبويب مصادر البيانات في MailInApp، ثم الصق عنوان URL للرمز، وConsumer Key الخاص بـ Connected App بوصفه Issuer، واسم مستخدم التكامل بوصفه Subject، ومضيف تسجيل الدخول بوصفه Audience، والمفتاح الخاص المطابق.

  3. 3

    وجّه نقطة النهاية إلى استعلام SOQL

    نقطة النهاية هي عنوان URL لاستعلام REST في مؤسستك، ومسار البيانات هو «records» — فاستعلام مثل SELECT Name, Amount, StageName, CloseDate FROM Opportunity WHERE IsClosed = false يعيد صفوف مسار المبيعات الحيّة في كل عملية جلب.

  4. 4

    اربط عناصر مؤشرات الأداء والمخططات به مباشرة

    أضِف ربطًا بدور «مجموعة» (collection) إلى المصدر من لوحة البيانات في الاستوديو، ثم اربط حقل القيمة في بطاقة مؤشرات الأداء (Sum لـ Amount) وحقل «التجميع حسب» في المخطط الشريطي (StageName) به — دون كتابة أي وسوم دمج يدويًا.

  5. 5

    أرسله وفق جدول متكرر

    يعيد إرسال متكرر أسبوعي تشغيل الاستعلام ويعيد عرض العنصرين مقابل صفوف Salesforce الحالية في كل مرة، فيعكس ملخّص يوم الاثنين دائمًا مسار مبيعات يوم الاثنين.

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

هل يحتاج رمز الوصول يومًا إلى تجديد يدوي؟

لا — يوقّع MailInApp تأكيد JWT جديدًا ويستبدله برمز وصول جديد تلقائيًا كلما اقترب الرمز المخزّن مؤقتًا من انتهاء صلاحيته، ومرة أخرى إذا عاد أي استدعاء بخطأ عدم التفويض. لا يوجد رمز تحديث تحتاج إلى مراقبته في هذا التدفق؛ فالرمز القديم يُستبدل ببساطة بإصدار رمز جديد.

هل تصل كلمة مرور Salesforce الخاصة بي إلى MailInApp في أي وقت؟

لا — يصادق تدفق JWT Bearer بتأكيد موقَّع يُتحقق منه مقابل شهادة، لا بتبادل اسم مستخدم وكلمة مرور أبدًا. والسرّ الوحيد الذي يخزّنه MailInApp هو نصف المفتاح الخاص من زوج الشهادة ذاك، مُقنَّعًا في كل استجابة بعد حفظه.

هل يمكن لكل مندوب مبيعات رؤية فرصه الخاصة فقط؟

فقط إذا أعاد استعلام SOQL حقلًا مسطّحًا يمكن التصفية عليه — فحقل علاقة مثل Owner.Email يعود ككائن متداخل ويُسقَط، لأن محلّل الصفوف في MailInApp لا يسطّح القيم المتداخلة. اختر بدلًا منه معرّفًا مسطّحًا مثل OwnerId، وصفِّ عنصر مخطط مربوطًا مقابل حقل مطابق في صف جهة الاتصال الخاص بجمهورك (يمكن لعامل تصفية «الربط بالبيانات» في المخطط الإشارة إلى وسوم دمج المستلم) لتقسيم الاستعلام المشترك نفسه لكل مستلم.

ما إصدار Salesforce الذي أحتاجه؟

أي إصدار مفعَّل فيه الوصول إلى REST API — تتضمنه إصدارات Enterprise وUnlimited وPerformance وDeveloper Edition؛ بينما يحتاج Professional وEssentials إلى الإضافة الخاصة بـ API. ويحتاج ملف تعريف مستخدم التكامل نفسه أيضًا إلى تفعيل API Enabled.

هل يعمل هذا مع بيئة sandbox بدلًا من بيئة الإنتاج؟

نعم — استخدم https://test.salesforce.com مضيفًا لعنوان URL للرمز وقيمةً لـ Audience معًا، ووجّه نقطة النهاية إلى عنوان My Domain الخاص ببيئة sandbox بدلًا من عنوان بيئة الإنتاج.

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

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