Центр предпочтений Salesforce Marketing Cloud: пример AMPScript и облачной страницы

Код страницы предпочтений Marketing Cloud, интегрированный с AMPscript Salesforce

Реальная история… Моя карьера пошла вверх более десяти лет назад, когда я начал работать консультантом по интеграции для ExactTarget (теперь Salesforce Marketing Cloud). Моя работа привела меня по всему миру, помогая компаниям в развитии глубокой интеграции с платформой, и я накопил столько институциональных знаний о платформе, что меня повысили до менеджера по продукту.

Проблемы менеджера по продукту для организации, которая ранее принадлежала разработчикам, в конечном итоге заставили меня двигаться дальше. Это была отличная организация, но я никогда не принадлежащих продукт. Итак, в то время как мои коллеги из отдела поддержки, продаж и маркетинга продукта надеялись, что я внесу настоящие изменения ... в действительности команда разработчиков часто внедряла другое решение, и я узнал об этом за несколько дней до выпуска.

Один из моих последних проектов работал над внутренней платформой сценариев, которая позволила бы нашим клиентам добавлять сценарии в свои электронные письма. Я работал с другим менеджером по продукту, и мы провели массу исследований ... в конце концов решили разработать подход в стиле JQuery с нашими собственными функциями, но включая возможность передавать и использовать массивы, использовать JSON и т. Д. решение… пока оно не дойдет до разработки. В начале цикла продукта моя библиотека была списана, и старший разработчик заменил ее на AMPscript.

Спустя годы Партнер Salesforce Компания, партнером которой я являюсь, теперь занимается сложной корпоративной интеграцией, и я ежедневно увяз в AMPscript - либо улучшая логику содержания электронной почты, либо развертывая Cloud Pages. Конечно, разочарование от ежедневной работы с AMPscript убедило меня в том, что в те дни было принято неправильное решение… мое решение было бы гораздо более элегантным. Я чувствую, что вернулся к программированию TRS-80 на BASIC.

Редактор, который вы используете для Cloud Pages, неумолим. Он не улавливает простые проблемы, такие как объявление переменных или синтаксические ошибки в вашем коде. Фактически, вы можете опубликовать страницу, которая просто выдаст ошибку сервера 500. Для ваших страниц также есть два поля именования… не спрашивайте меня, почему.

Pro-совет: Если облачные страницы никогда не возвращают образцы данных, когда вы собираетесь опубликовать, и похоже, что они обрабатываются вечно ... вы выдаете ошибку. Если вы все равно публикуете, вам, вероятно, придется полностью удалить облачную страницу и начать все сначала. Я предполагаю, что инфраструктура, на которой он построен, недостаточно интеллектуальна, чтобы идентифицировать изменение кода, и просто продолжает обрабатывать кешированный код.

Кроме того, вы будете рады узнать, что многие из задокументированных примеров кода имеют собственные синтаксические ошибки. Ура! Это ужасный опыт ... но вы все равно можете и должны использовать его, потому что он обеспечивает удивительную гибкость.

Примечание: Появилась новая облачная страница ЖИВИ ПОЛНОЙ… Где похоже, что они только что изменили скин страницы, и это не дает никакой дополнительной информации. На самом деле мне больше нравится старая версия из-за многоступенчатой ​​последовательности публикации.

Пока моя компания Highbridge создает сложные решения с поддержкой Ajax, которые интегрируют несколько систем и включают расширения данных с AMPscript, SSJS, Cloud Pages и электронной почтой ... Я хотел бы поделиться простым примером того, как вы можете начать, просто используя AMPscript, чтобы запросить свой экземпляр Salesforce и получить назад данные. В данном случае простое логическое поле, которое сохраняет главный флаг отмены подписки. Вы, конечно, можете расширить этот код, чтобы создать целую страницу настроек или центр профилей, которые вы можете использовать.

Создание ссылки на облачную страницу с данными подписчика

Если вы просматриваете сведения о своей облачной странице, вы можете получить уникальный идентификатор страницы, который вы можете включать в свои электронные письма.

идентификатор облачной страницы

Синтаксис следующий:

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

AMPscript для данных Salesforce через облачные страницы с помощью расширений данных

Первым шагом является создание вашего AMPscript для объявления переменных и получения данных из Salesforce для использования на вашей странице. В этом примере мое логическое поле Salesforce, содержащее значение true или false, называется Отказаться:

%%[

/* 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>

Вот и все ... сложите все вместе, и вы получите страницу настроек, которая обновляется с учетом вашей записи подписчика и передает запрос на обновление логического поля (true / false) в Salesforce. Теперь вы можете создавать пользовательские запросы вокруг этого поля, чтобы всегда гарантировать, что контакты, для которых отключены, не отправляются по электронной почте!

Как улучшить страницу настроек или центр профиля

Конечно, это всего лишь тизер того, что возможно со страницей настроек. Улучшения, о которых вы, возможно, захотите подумать:

  • Заполните фактический текст из другого расширения данных, чтобы ваша маркетинговая команда могла обновлять содержимое страницы в любое время, не касаясь кода.
  • Заполните расширение данных списка публикаций и прокрутите публикации, чтобы предложить согласие или отказ от предпочтений в дополнение к основному отказу от подписки.
  • Заполните расширение данных причины, чтобы зафиксировать, почему ваши подписчики предпочитают отказаться от подписки.
  • Заполните другую информацию профиля из записи Salesforce, чтобы предоставить дополнительную информацию профиля.
  • Обработайте страницу с помощью Ajax, чтобы ее можно было легко заполнить.
  • Предложите средство регистрации, чтобы ваш пользователь мог получить доступ к своему личному центру профиля в любое время.

Дополнительные ресурсы для AMPscript

Если вам нужна дополнительная помощь в изучении и развертывании AMPscript, вот несколько отличных ресурсов:

  • AMPscript Guide - организованная некоторыми сотрудниками Salesforce, это довольно полная база данных синтаксиса AMPscript, хотя примеры действительно легкие. Если бы он был более надежным, это могло бы стоить вложений.
  • Trailhead AMPscript - Trailhead от Salesforce - это бесплатный учебный ресурс, который может познакомить вас с основами языка как с AMPscript, так и с SSJS, а также с тем, как они могут взаимодействовать.
  • Обмен стеками для Salesforce - отличное онлайн-сообщество, которое запрашивает помощь с множеством примеров кода AMPscript.

Есть масса возможностей интеграции ваших облачных страниц с Salesforce, чтобы обеспечить превосходное взаимодействие с пользователем. А если ваша компания испытывает трудности, вы всегда можете обратиться к нам за помощью!

Контакты Highbridge

Как вы думаете?

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются ваши данные комментариев.