إنشاء عميل محتمل في Salesforce عبر Zapier عند تسجيل مستخدم جديد في Discourse

يمكن إنشاء فرص مبيعات (Leads) في Salesforce عندما يسجل المستخدم في منتداك عن طريق تكوين حدث مستخدم ويب هوك للنشر في Zapier، ثم استخدام تكامل Zapier مع Salesforce لإنشاء الفرصة.

إنشاء Zap جديد

سجّل الدخول إلى Zapier وانقر على زر “Make a Zap!”. سيتم نقلك إلى صفحة تحتوي على نموذج لإنشاء Zap الخاص بك:

أعطِ اسمًا لـ Zap الخاص بك، ثم انقر على “Choose App” من قسم Trigger في النموذج. من قسم “Choose a Trigger App” في الصفحة، حدد Webhooks:

في نموذج “Select Webhooks by Zapier Trigger”، حدد “show less common options”، ثم اختر “Catch Raw Hook”:

انقر على “Save + Continue”.

ثم انسخ عنوان URL الخاص بالويب هوك إلى الحافظة.

إنشاء ويب هوك لحدث مستخدم في Discourse

لإنشاء ويب هوك Discourse، انتقل في منتداك إلى Admin / API / Webhooks وانقر على زر Add webhook. في النموذج الذي يظهر، الصق عنوان URL الخاص بويب هوك Zapier في حقل Payload URL. تحت “Which events should trigger this webhook؟”، حدد Select individual events. ثم تحت مجموعة User Events، حدد خانة الاختيار User is created. حدد خانة الاختيار Active لتفعيل الويب هوك، ثم انقر على زر Create.

:bulb: نصيحة: بما أنك تختار فقط حدث user_created، فإن Discourse سيشغل هذا الويب هوك فقط عند تسجيل مستخدم جديد — وليس عند تغييرات أخرى في بيانات المستخدم. هذا يعني أن خطوة التصفية (Filter) في Zapier الموصوفة أدناه اختيارية، لكن لا يزال يُنصح بها كإجراء احترازي.

اختبار الويب هوك في Zapier

الآن عد إلى Zapier وانقر على زر ‘Ok, I did this’:

الآن تحتاج إلى إرسال طلب تجريبي من Discourse إلى Zapier. لتوليد البيانات المطلوبة لاختبار الخطوات التالية، ستحتاج إلى إنشاء مستخدم جديد في منتداك. يُفضل استخدام عنوان بريد إلكتروني Gmail مؤقت لهذا الغرض. سجّل في منتداك كمستخدم جديد، ثم عد إلى خطوة العينة في Zapier لمراجعة البيانات.

يمكنك توسيع العينة لرؤية البيانات التي تم إرسالها من Discourse. انقر على Continue للانتقال إلى الخطوة التالية.

التقاط حدث إنشاء المستخدم في Discourse

إذا كنت قد اخترت فقط حدث user_created عند تكوين الويب هوك في Discourse، فإن خطوة التصفية هذه اختيارية. ومع ذلك، لا تزال إجراءً احترازيًا جيدًا. انقر على Add a Step، ثم انقر على Filter:

لتصفية جميع الأحداث ما عدا حدث إنشاء المستخدم، قم بتكوين التصفية بحيث تستمر فقط إذا تطابق Headers Http X Discourse Event تمامًا مع user_created.

انقر على زر Test and Continue. إذا قمت بتشغيل الحدث التجريبي عن طريق إنشاء مستخدم جديد في منتداك، فستظهر لك إشعار نجاح. إذا رأيت بدلاً من ذلك إشعارًا بأن Zap لن يستمر، فعد إلى بيانات العينة وتأكد من أن Headers Http X Discourse Event مضبوطة على user_created.

انقر على زر Continue للانتقال إلى الخطوة التالية.

تحليل الحمولة الخام باستخدام خطوة Run Javascript

انقر على Add a Step من قائمة Zap الخاصة بك. ثم انقر على Action/Search وحدد Code من قائمة Action. في نموذج Code، حدد Run-Javascript.

سيقوم Zapier بإنشاء كائن inputData يمكنك إضافة خصائص مسمّاة إليه. أضف اسمًا لخاصيتك في العمود الأيسر. من العمود الأيمن، حدد “Catch Raw Hook” من القائمة المنسدلة، ثم حدد “Raw Body”:

مرّر لأسفل الصفحة لرؤية حقل إدخال الكود:

بعد ذلك، يجب استبدال الكود التجريبي بكود يقوم بتحليل الـ Raw Body ويعيد كائنًا يحتوي على القيم التي تحتاجها لعملية الإجراء النهائية. إليك الكود الذي أستخدمه. يتطلب Salesforce اسمًا أخيرًا، لذا إذا لم يكن هناك اسم أخير، فسيتم إرجاع خطأ. في موقع Discourse الخاص بي، أضفت حقل مستخدم مخصصًا للشركة وهو مطلوب عند التسجيل. أريد تمرير هذه البيانات إلى Salesforce. من خلال النظر في الحمولة المرسلة من Discourse، أعرف أن هذا الحقل موجود في \"user_fields\":[\"10\"]. ستحتاج إلى تكوين الكود لإعادة حقول البيانات الخام التي تريد تمريرها إلى Salesforce.

const parsed = JSON.parse(inputData.raw);
if (parsed.user) {
  const user = parsed.user,
        name = user.name,
        userFields = user.user_fields;
  let firstName,
      lastName,
      company;
  
  if (name) {
    const splitName = name.split(' ');
    firstName = splitName[0];
    lastName = splitName[1]
    }
  if (userFields) {
    company = userFields['10'];
  }
  if (lastName) {
    return {id: user.id,
            username: user.username,
            lastName: lastName,
            firstName: firstName,
            email: user.email,
            company: company,
            error: null
           };
  } else {
    return {error: "Missing last name"}
  }
} else {
  return {error: "A user object was not returned"};
}

بعد إضافة الكود الخاص بك، انقر على زر Continue، ثم انقر على زر Test This Step. يجب أن تُرجع النتائج بيانات المستخدم الجديد:

تصفية الطلبات الفاشلة

إذا عاد خطوتك في JavaScript بخطأ، على سبيل المثال “Missing last name”، يمكنك إضافة خطوة تصفية أخرى لتجنب إرسال طلبات فاشلة إلى Salesforce. انقر على Add a Step من قائمة Zaps، ثم انقر على Filter. قم بتكوين هذه التصفية لتستمر فقط إذا لم تكن هناك أخطاء:

إنشاء فرصة (Lead) في Zapier

انقر على Add A Step، ثم Action/Search. من قائمة Action، ابحث عن Salesforce وحددها. في قائمة إجراءات Salesforce، حدد Create Lead. انقر على Save + Continue. ثم انقر على Connect an Account. سيُطلب منك السماح لـ Zapier بالوصول إلى حساب Salesforce الخاص بك. انقر على زر Test للتأكد من اتصالك:

في صفحة Set up Salesforce Lead، يمكنك إضافة حقول من خطوة Run-Javascript إلى الحقول المقابلة في Salesforce:

انقر على Continue، ثم على Send Test To Salesforce. يجب أن تظهر فرصة Salesforce جديدة. إذا كان كل شيء يعمل بشكل صحيح، فانقر على Finish، ثم قم بتفعيل Zap.

11 إعجابًا