Salesforce Marketing Cloud首选项中心:AMPScript和云页面示例

AMPscript Salesforce集成的Marketing Cloud首选项页面代码

真实的故事……十年前,我开始担任ExactTarget(现为Salesforce Marketing Cloud)的集成顾问一职时,我的职业真正开始了。 我的工作带我走遍世界各地,协助公司开发与该平台的深度集成,并且我积累了很多有关该平台的机构知识,因此被提升为产品经理。

对于以前由开发人员所有的组织,产品经理面临的挑战最终使我继续前进。 这是一个很棒的组织,但我从未真正做到 拥有 产品。 因此,尽管支持,销售和产品营销的同行们都希望我做出真正的改变……但事实是,开发团队经常实施不同的解决方案,而我会在发布前几天就找到答案。

我的最后一个项目是在一个内部脚本平台上工作,该平台使我们的客户能够将脚本添加到他们的电子邮件中。 我与另一位产品经理一起工作,我们进行了大量研究……最终决定使用我们自己的功能开发一种JQuery风格的方法,但包括传递和使用数组,利用JSON等的功能。解决方案…直到开发成功。 在产品周期的早期,我的图书馆报废了,一位高级开发人员将其替换为 脚本.

多年后, Salesforce合作伙伴 我现在是合作伙伴的一家公司正在做复杂的企业集成,我发现自己每天都沉迷于AMPscript中-增强电子邮件内容逻辑或推出Cloud Pages。 当然,AMPscript的日复一日的无聊工作使我无法确定当时的错误决定……我的解决方案会更加优雅。 我觉得我要回到用BASIC编写TRS-80的程序了。

您用于Cloud Pages的编辑器是不可原谅的。 它不会捕获简单的问题,例如在代码中声明变量或语法错误。 实际上,您实际上可以发布一个页面,该页面只会产生500个服务器错误。 您的页面还有两个命名字段……不要问我为什么。

临提示: 如果要在发布时Cloud Pages从不返回样本数据,并且看起来它一直在处理,则将引发错误。 如果仍然进行发布,则可能必须完全删除“云页面”并重新开始。 我的猜测是,它所建立的基础架构不够智能,无法识别代码更改,只是继续处理缓存的代码。

除此之外,您将很高兴知道许多记录的代码示例都有其自己的语法错误。 耶! 这是一种可怕的体验……但是您仍然可以并且应该使用它,因为它提供了惊人的灵活性。

边注: 有一个新的云页面 相关经验…看起来他们只是重新设置了页面的外观,并且没有提供任何其他信息。 实际上,对于多步骤发布序列,我实际上更喜欢旧版本。

当我的公司 Highbridge 构建了复杂的,支持Ajax的解决方案,该解决方案集成了多个系统并将数据扩展与AMPscript,SSJS,Cloud Pages和电子邮件结合在一起……我想分享一个简单的示例,说明如何使用AMPscript来查询Salesforce实例并提取返回数据。 在这种情况下,一个简单的布尔字段将保留主取消订阅标志。 当然,您可以扩展此代码以构建可以使用的整个首选项页面或个人资料中心。

生成具有订阅者数据的云页面链接

如果查看您的“云页面”详细信息,则可以获取可包含在电子邮件中的页面的唯一页面ID。

云页面ID

语法如下:

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

通过数据扩展通过云页面的Salesforce数据的AMPscript

第一步是构建AMP脚本以声明变量并从Salesforce检索数据以在页面中使用。 在此示例中,我的保存为true或false的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 指南e –由一些Salesforce员工组织,这是一个非常完整的AMPscript语法数据库,尽管示例很简单。 如果它更强大,则可能值得投资。
  • Trailhead AMP脚本 – Salesforce的Trailhead是免费的学习资源,可以通过AMPscript,SSJS指导您学习该语言的基础知识,以及两者如何交互。
  • 用于Salesforce的Stack Exchange –一个强大的在线社区,可请求提供大量AMPscript代码示例的帮助。

将您的Cloud Pages与Salesforce集成在一起将提供大量的机会,以提供卓越的用户体验。 如果您的公司陷入困境,可以随时与我们联系以提供帮助!

联系方式 Highbridge

你觉得呢?

本网站使用Akismet来减少垃圾邮件。 了解您的数据如何处理.