我需要做一个简单的通讯表格。这个表格应该是这样的:
此表单应与帮助EXM一起使用
我在EXM中创建了带有订阅链接的触发消息。 我为“提交”按钮编写了此代码,以触发“新闻稿目标”
[HttpPost]
public ActionResult NewsletterSubscribe(NewsletterViewBag model)
{
var goal = Context.Database.GetItem(newsletterGoal);
if (goal == null)
{
continue;
}
var registerGoal = new Sitecore.Analytics.Data.Items.PageEventItem(goal);
var eventData = Tracker.Current.CurrentPage.Register(registerGoal);
eventData.Data = goal[DateTime.Now.ToString(CultureInfo.InvariantCulture)];
Tracker.Submit();
}
如何将触发的消息分配给newsletterGoal? 我也尝试用这种方式手动发送消息:
MessageItem message = Sitecore.Modules.EmailCampaign.Factory.GetMessage(new ID(messageId));
Sitecore.Modules.EmailCampaign.AsyncSendingManager manager = new AsyncSendingManager(message);
var contactId = ClientApi.GetAnonymousIdFromEmail(email);
var recipientId = (RecipientId) new XdbContactId(contactId);
manager.SendStandardMessage(recipientId);
我在日志中看到错误:收件人'xdb:857bbea1-1f18-4621-a798-178399cd0b54'不存在。但是Triggered Message没有任何收件人列表
答案 0 :(得分:1)
目标未直接分配给消息。但是,您可以分配参与计划和广告系列。每条消息都有自己的参与计划,以处理跟踪消息的联系人操作。如果您创建了一个触发目标的广告系列,则可以将其分配给邮件,并在收到邮件时与联系人关联。您还可以利用邮件参与计划在联系人通过这些状态时触发事件。
此外,您在录制联系人数据时遗漏了一些细节。 查看EXM模块中包含的简报注册控件。其中重要的部分是:
for eachWord in ogtL: #ogtL is a List
newString=""
for eachCharacter in eachWord:
newString+=eachCharacter
newString.replace("?","0")
print(newString)
它会直接将电子邮件地址写入Mongo,而不是等待会话结束。在注册代码中包含此内容以及相关的RecipientId和ContactId属性。
注册后,您可以以编程方式注册目标,或将其发送到可以注册目标的感谢页面(高级 - 跟踪),或发送消息并让注册目标。或者为流程的每个步骤创建一个包含状态的参与计划(这是最好的方法)。
您还希望将收件人添加到新闻稿消息稍后可以使用的列表中。实际上,在我看来,例如订阅表格可以满足您的所有需求。