مرکز ترجیحی ابر بازاریابی Salesforce: مثال AMPScript و صفحه Cloud

کد صفحه ترجیحی ابر بازاریابی یکپارچه با AMPscript Salesforce

داستان واقعی ... شغل من واقعاً بیش از یک دهه پیش هنگامی که من موقعیت خود را به عنوان مشاور ادغام ExactTarget (اکنون Salesforce Marketing Cloud) شروع کردم ، شروع به کار کرد. شغل من در سراسر جهان باعث شد تا شرکتها در توسعه ادغامهای عمیق با این پلتفرم کمک کنند و دانش نهادی زیادی را از این پلتفرم کسب کردم که به عنوان مدیر محصول ارتقا یافتم.

چالش های مدیر محصول برای سازمانی که قبلاً متعلق به توسعه دهنده بود ، سرانجام من را به سمت ادامه کار سوق داد. این یک سازمان عالی بود ، اما من هرگز به طور واقعی متعلق به محصول. بنابراین ، در حالی که همتایان من در پشتیبانی ، فروش و بازاریابی محصول به دنبال تغییر واقعی بودند ... واقعیت این بود که تیم سازنده اغلب راه حل متفاوتی را پیاده سازی می کند و من چند روز قبل از انتشار آن را می فهمم.

یکی از آخرین پروژه های من کار بر روی یک پلت فرم اسکریپت نویسی داخلی بود که به مشتریان ما امکان می دهد اسکریپت را به ایمیل های خود اضافه کنند. من با مدیر محصول دیگری کار کردم و تعداد زیادی تحقیق کردیم ... سرانجام تصمیم گرفتیم رویکردی به سبک JQuery با عملکردهای خود توسعه دهیم ، اما از جمله توانایی عبور و مصرف آرایه ها ، استفاده از JSON و غیره. راه حل ... تا زمانی که به توسعه ضربه بزند. در اوایل چرخه تولید ، کتابخانه من حذف شد و یک توسعه دهنده ارشد آن را جایگزین کرد AMPscript.

سالها بعد ، شریک Salesforce شرکتی که من در آن شریک هستم در حال انجام ادغام های پیچیده و سازمانی است و من روزانه در AMPscript غرق می شوم - یا منطق محتوای ایمیل را افزایش می دهم یا Cloud Pages را گسترش می دهم. البته ، ناامیدی از کار روز به روز با AMPscript به من اطمینان می دهد که تصمیم اشتباه در آن روزها گرفته شده است ... راه حل من بسیار ظریف تر بود. احساس می کنم دوباره به برنامه نویسی TRS-80 در BASIC برگشته ام.

ویرایشگری که برای Cloud Pages استفاده می کنید بخشنده نیست. این مسائل ساده مانند اعلام متغیرها یا خطاهای نحوی با کد شما را نمی گیرد. در واقع ، شما واقعاً می توانید صفحه ای را منتشر کنید که به سادگی خطای 500 سرور ایجاد کند. همچنین دو صفحه نامگذاری برای صفحات شما در نظر گرفته شده است ... چرا از من نپرسید.

طرفدار نکته: اگر Cloud Pages هرگز هنگام ارسال اطلاعات نمونه داده را بر نمی گرداند و به نظر می رسد که برای همیشه در حال پردازش است ... شما خطایی را ایجاد خواهید کرد. اگر به هر حال منتشر می کنید ، احتمالاً مجبور خواهید شد صفحه Cloud را به کلی حذف کرده و از ابتدا شروع کنید. حدس من این است که زیرساختی که روی آن ساخته شده به اندازه کافی هوشمند نیست که بتواند تغییر کد را شناسایی کند و فقط پردازش کد حافظه پنهان را ادامه می دهد.

گذشته از این ، شما خوشحال خواهید شد که بدانید بسیاری از نمونه های کد مستند خطاهای نحوی خاص خود را دارند. بله این یک تجربه وحشتناک است ... اما هنوز هم می توانید و باید از آن استفاده کنید زیرا انعطاف پذیری شگفت انگیزی را ایجاد می کند.

یادداشت جانبی: یک صفحه ابر جدید وجود دارد تجربه… جایی که به نظر می رسد آنها فقط صفحه را دوباره پوست می کنند و هیچ اطلاعات اضافی را ارائه نمی دهد. من در واقع نسخه قدیمی را برای توالی انتشار چند مرحله ای بهتر می پسندم.

در حالی که شرکت من است Highbridge راه حل های پیچیده و مجهز به Ajax ایجاد می کند که چندین سیستم را با هم ادغام می کند و از پسوندهای داده با AMPscript ، SSJS ، Cloud Pages و ایمیل استفاده می کند ... داده های برگشتی در این حالت ، یک فیلد ساده بولی که یک پرچم لغو اشتراک اصلی را حفظ می کند. البته می توانید این کد را گسترش دهید تا کل صفحه اولویت یا مرکز نمایه ای را که می توانید استفاده کنید ایجاد کند.

با داده های مشترک پیوند ابر صفحه ایجاد کنید

اگر جزئیات صفحه Cloud خود را مشاهده کنید ، می توانید شناسه صفحه منحصر به فردی را برای صفحه به دست آورید که می توانید در ایمیل های خود قرار دهید.

شناسه صفحه ابر

نحو به شرح زیر است:

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

AMPscript برای داده های Salesforce از طریق Cloud Pages از طریق Data Extensions

اولین قدم ساخت 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 هستید ، در اینجا منابع بسیار خوبی وجود دارد:

  • راهنمای AMPscriptالکترونیکی که توسط برخی از کارمندان Salesforce سازماندهی شده است ، این یک پایگاه داده کاملاً کامل از نحو AMPscript است ، اگرچه مثال ها بسیار سبک هستند. اگر قویتر بود ، ارزش سرمایه گذاری را داشت.
  • Trailhead AMPscript - Salesforce's Trailhead یک منبع یادگیری رایگان است و می تواند با استفاده از AMPscript ، SSJS و نحوه تعامل این دو ، اصول زبان را در شما مرور کند.
  • Stack Exchange for Salesforce - یک انجمن آنلاین عالی برای درخواست کمک با تعداد زیادی نمونه کد AMPscript.

در ادغام Cloud Pages شما با Salesforce یک فرصت کافی وجود دارد تا یک تجربه کاربری برتر را ارائه دهید. و اگر شرکت شما در تلاش است ، همیشه می توانید برای کمک به ما با ما تماس بگیرید!

تماس با ما Highbridge

شما چه فکر میکنید؟

این سایت از Akismet برای کاهش هرزنامه استفاده می کند. بدانید که چگونه نظر شما پردازش می شود.