مركز تفضيلات Salesforce Marketing Cloud: AMPScript ومثال على الصفحة السحابية

AMPscript رمز صفحة تفضيلات Salesforce-Integrated Marketing Cloud

قصة حقيقية ... انطلقت مسيرتي المهنية بالفعل منذ أكثر من عقد من الزمان عندما بدأت وظيفتي كمستشار تكامل لـ ExactTarget (الآن Salesforce Marketing Cloud). لقد نقلتني وظيفتي إلى جميع أنحاء العالم لمساعدة الشركات في تطوير عمليات تكامل عميقة مع النظام الأساسي وقمت ببناء الكثير من المعرفة المؤسسية للمنصة التي تمت ترقيتي إلى مدير المنتجات.

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

كان أحد مشاريعي الأخيرة هو العمل على منصة برمجة نصية داخلية تمكن عملائنا من إضافة برنامج نصي إلى رسائل البريد الإلكتروني الخاصة بهم. عملت مع مدير منتج آخر وقمنا بالعديد من الأبحاث ... قررت في النهاية تطوير نهج على غرار JQuery مع وظائفنا الخاصة ، ولكن بما في ذلك القدرة على تمرير المصفوفات واستهلاكها ، واستخدام JSON ، وما إلى ذلك. الحل ... حتى تصل إلى التنمية. في وقت مبكر من دورة المنتج ، تم إلغاء مكتبتي واستبدلها أحد كبار المطورين AMPscript.

بعد سنوات ، شريك Salesforce تقوم الشركة التي أشارك فيها الآن بإجراء عمليات تكامل مؤسسية معقدة ، وأجد نفسي غارقة في AMPscript على أساس يومي - إما تحسين منطق محتوى البريد الإلكتروني أو طرح Cloud Pages. بطبيعة الحال ، فإن الإحباط الناتج عن العمل يومًا بعد يوم مع AMPscript يضمن لي أن القرار الخاطئ قد تم اتخاذه في تلك الأيام ... كان الحل الخاص بي أكثر أناقة. أشعر أنني عدت إلى برمجة TRS-80 في لغة BASIC.

المحرر الذي تستخدمه في Cloud Pages لا يرحم. لا يواجه مشكلات بسيطة مثل التصريح عن المتغيرات أو أخطاء في بناء الجملة في التعليمات البرمجية الخاصة بك. في الواقع ، يمكنك بالفعل نشر صفحة تؤدي ببساطة إلى إنشاء 500 خطأ في الخادم. هناك أيضًا حقلا تسمية لصفحاتك ... لا تسألني لماذا.

الموالية للنصيحة: إذا لم تعرض Cloud Pages مطلقًا بيانات نموذجية عندما تكون على وشك النشر ويبدو أنها تتم معالجتها إلى الأبد ... فستتسبب في حدوث خطأ. إذا قمت بالنشر على أي حال ، فربما يتعين عليك حذف الصفحة السحابية تمامًا والبدء من جديد. أعتقد أن البنية التحتية التي تم بناؤها ليست ذكية بما يكفي لتحديد تغيير الرمز وتستمر في معالجة الكود المخزن مؤقتًا.

بصرف النظر عن ذلك ، سوف يسعدك معرفة أن العديد من نماذج التعليمات البرمجية الموثقة بها أخطاء نحوية خاصة بها. ياي! إنها تجربة مروعة ... لكن لا يزال بإمكانك ويجب عليك استخدامها لأنها توفر بعض المرونة المذهلة.

ملاحظة جانبية: هناك صفحة سحابية جديدة خبرتنا... حيث يبدو أنهم أعادوا تصميم الصفحة فقط ولا تقدم أي معلومات إضافية. أنا في الواقع أحب الإصدار القديم بشكل أفضل لتسلسل النشر متعدد الخطوات.

بينما شركتي Highbridge يبتكر حلولًا معقدة تدعم Ajax تدمج أنظمة متعددة وتتضمن امتدادات البيانات مع AMPscript و SSJS و Cloud Pages والبريد الإلكتروني ... أردت مشاركة مثال بسيط لكيفية البدء ببساطة باستخدام AMPscript للاستعلام عن مثيل Salesforce الخاص بك والسحب عودة البيانات. في هذه الحالة ، حقل منطقي بسيط يحتفظ بعلامة إلغاء الاشتراك الرئيسية. يمكنك بالطبع توسيع هذا الرمز لإنشاء صفحة تفضيلات كاملة أو مركز ملف تعريف يمكنك استخدامه.

قم بإنشاء ارتباط صفحة سحابية ببيانات المشترك

إذا قمت بعرض تفاصيل Cloud Page ، فيمكنك الحصول على معرف الصفحة الفريد للصفحة التي يمكنك تضمينها في رسائل البريد الإلكتروني الخاصة بك.

معرف الصفحة السحابية

بناء الجملة كما يلي:

<a href="%%=RedirectTo(CloudPagesURL(361))=%%">View My Preferences</a>

AMPscript لبيانات Salesforce عبر Cloud Pages عبر ملحقات البيانات

تتمثل الخطوة الأولى في إنشاء AMPscript لإعلان المتغيرات واسترداد البيانات من Salesforce لاستخدامها في صفحتك. في هذا المثال ، تم تسمية الحقل المنطقي Salesforce الذي يحمل "صواب أو خطأ" انسحبت:

%%[

/* Declare EVERY variable */
VAR @contactKey,@agent,@referrer,@unsub
VAR @rs,@updateRecord,@checked
 
/* Request your ContactKey from the querystring */
Set @contactKey = Iif(Empty([_subscriberKey]),RequestParameter("contactKey"),[_subscriberKey])

/* Set unsub to false unless it is passed in the querystring */
SET @unsub = Iif(Not Empty(RequestParameter('unsub')),RequestParameter('unsub'),'false')
 
/* If unsub, then update the Salesforce field OptedOut */ 
IF NOT Empty(@unsub) THEN
  SET @updateRecord = UpdateSingleSalesforceObject('contact',@contactKey,'OptedOut', @unsub)
ENDIF

/* Retrieve the Salesforce Contact record */
Set @rs = RetrieveSalesforceObjects('contact', 'FirstName,LastName,OptedOut', 'Id', '=', @contactKey);
 
/* Get the fields from the record */
 IF RowCount(@rs) == 1 then
  var @record, @firstName, @lastName, @optout
  set @record = Row(@rs, 1)
  set @firstName = Field(@record, "FirstName")
  set @lastName = Field(@record, "LastName")
  set @optout = Field(@record, "OptedOut")
ENDIF

/* Build a string for your checkbox to be checked or not
 set @checked = '';
 IF (@optout == 'true') THEN
  set @checked = 'checked'
 ENDIF
 
]%%

يمكنك الآن إنشاء HTML الخاص بك والنموذج الذي يعالج الطلب:

<!DOCTYPE html>
<html>
   <title>Profile Center</title>
   <body>
      <h2>Your Profile:</h2>
      %%[ if RowCount(@rs) == 1 then ]%%
      <ul>
         <li><strong>First Name:</strong> %%=v(@firstName)=%%</li>
         <li><strong>Last Name:</strong> %%=v(@lastName)=%%</li>
         <li><strong>Unsubcribed:</strong> %%=v(@optout)=%%</li>
      </ul>
      <form method="get">
       <div>
         <input type="hidden" id="contactKey" name="contactKey" value="%%=v(@contactKey)=%%">
         <input type="checkbox" id="unsub" name="masterUnsub" value="true" %%=v(@checked)=%%>
         <label for="masterUnsub">Unsubscribe From All</label>
        </div>
       <div>
         <button type="submit">Update</button>
        </div>
     </form>
      %%[ else ]%%
      <p>You don't have a record.</p>
      %%[ endif ]%%
   </body>
</html>

هذا كل شيء ... ضع كل شيء معًا وستحصل على صفحة تفضيل يتم تحديثها بسجل المشترك الخاص بك وتمرير طلبًا لتحديث حقل منطقي (صواب / خطأ) في Salesforce. يمكنك الآن إنشاء استعلامات مخصصة حول هذا المجال للتأكد دائمًا من عدم إرسال أي بريد إلكتروني إلى جهات الاتصال التي تم إلغاء اشتراكها!

كيفية تحسين صفحة التفضيلات أو مركز الملفات الشخصية

بالطبع ، هذا مجرد دعابة لما هو ممكن في صفحة التفضيل. التحسينات التي قد ترغب في التفكير فيها:

  • قم بتعبئة النص الفعلي من امتداد بيانات آخر حتى يتمكن فريق التسويق لديك من تحديث محتوى الصفحة وقتما يشاء دون لمس الرمز.
  • قم بتعبئة امتداد بيانات قائمة المنشورات وتكرارها عبر المنشورات لتقديم الاشتراك أو إلغاء الاشتراك في التفضيلات بالإضافة إلى إلغاء الاشتراك الرئيسي.
  • قم بتعبئة امتداد بيانات السبب لمعرفة سبب إتقان المشتركين لإلغاء الاشتراك.
  • قم بتعبئة معلومات الملف الشخصي الأخرى من سجل Salesforce لتوفير معلومات ملف تعريف إضافية.
  • قم بمعالجة الصفحة باستخدام Ajax بحيث يمكنك ملؤها بسلاسة.
  • قدم وسيلة للتسجيل بحيث يمكن للمستخدم الوصول إلى مركز ملف التعريف الشخصي الخاص به في أي وقت.

موارد إضافية لـ AMPscript

إذا كنت تبحث عن بعض المساعدة الإضافية لتعلم ونشر AMPscript ، فإليك بعض الموارد الرائعة:

  • دليل AMPscripte - تم تنظيمها بواسطة بعض موظفي Salesforce ، هذه قاعدة بيانات كاملة جدًا من بناء جملة AMPscript ، على الرغم من أن الأمثلة خفيفة حقًا. إذا كانت أكثر قوة ، فقد يكون الأمر يستحق الاستثمار.
  • تريلهيد AMPscript - يعد Salesforce's Trailhead مصدرًا تعليميًا مجانيًا ويمكنه إرشادك عبر أساسيات اللغة باستخدام كل من AMPscript و SSJS وكيفية تفاعل الاثنين.
  • Stack Exchange لـ Salesforce - مجتمع رائع عبر الإنترنت لطلب المساعدة مع الكثير من عينات أكواد AMPscript.

هناك الكثير من الفرص لدمج صفحاتك السحابية مع Salesforce لتوفير تجربة مستخدم فائقة. وإذا كانت شركتك تكافح ، فيمكنك دائمًا الاتصال بنا للمساعدة!

إتصلوا بنا Highbridge

ما رأيك؟

يستخدم هذا الموقع نظام Akismet لتقليل الرسائل الضارة. تعرف كيف تتم معالجة بيانات تعليقك.