此用例介绍如何计划在收件人生日当天向收件人列表发送定期电子邮件。
要设置此用例,我们创建了以下定位工作流:
此(每日运行)工作流会选择当前日期生日的所有收件人。
此用例也可以以视频的形式找到。 有关更多信息,请参阅 创建工作流 视频。
为此,请创建营销活动,然后单击 Targeting and workflows 选项卡。 有关更多信息,请参阅 在工作流中构建主目标 中。
然后,执行以下步骤:
首先,添加 调度程序 来触发每天发送投放的操作。 在以下示例中,每天早上6点创建投放。
配置 Scheduler 活动,以便工作流每天启动,识别其出生日期等于当前日期的所有收件人。
要执行此操作,请应用以下步骤:
拖放 Query 活动并双击该活动。
单击 编辑查询 链接并选择 Filtering conditions.
单击 Expression 列,单击 Edit expression 打开表达式编辑器。
单击 Advanced selection ,以选择筛选模式。
选择 Edit the formula using an expression 单击 Next 以显示表达式编辑器。
在函数列表中,双击 Day,可通过 Date 节点。 此函数返回表示与作为参数传递的日期对应的日期的数字。
在可用字段列表中,双击 Birth date. 然后,编辑器的上部显示以下公式:
Day(@birthDate)
单击 Finish 确认。
在查询编辑器的 Operator 列,选择 equal to.
接下来,单击第二列的第一个单元格(Value),然后单击 Edit expression 打开表达式编辑器。
在函数列表中,双击 Day,可通过 Date 节点。
双击 GetDate 函数检索当前日期。
编辑器的上部显示以下公式:
Day(GetDate())
单击 Finish 确认。
重复此步骤以检索对应于当月的出生月份。 为此,请单击 Add 按钮并重复步骤3至10,替换 Day with Month.
完整查询如下所示:
链接的结果 Query 活动 Email delivery 活动,向生日时所有收件人的列表发送电子邮件。
如果要包含2月29日出生的所有收件人,此用例将介绍如何计划向生日的收件人列表发送定期电子邮件 — 无论这是否是闰年。
此用例的主要实施步骤是:
要设置此用例,我们创建了以下定位工作流:
如果当前年份 不是闰年 此工作流于3月1日运行,我们需要选择昨天(2月29日)生日的所有收件人,并将他们添加到收件人列表。 在任何其他情况下,都不需要任何其他操作。
配置 Scheduler 活动,以便工作流每天启动,识别周年为当天的所有收件人。
如果当前年份是闰年,则所有在2月29日出生的收件人都将自动包含在内。
选择生日对应于当前日期的收件人,请参见 确定生日为的收件人 中。
的 Test 活动允许您检查它是否是闰年以及当前日期是否为3月1日。
如果测试得到验证(年份不是闰年 — 没有2月29日 — 而当前日期的确是3月1日), True 过渡已启用,2月29日出生的收件人将添加到3月1日的投放。 否则, False 过渡已启用,并且只有在当前日期出生的收件人将收到投放。
将下面的代码复制并粘贴到 Initialization script 部分 Advanced 选项卡。
function isLeapYear(iYear)
{
if(iYear/4 == Math.floor(iYear/4))
{
if(iYear/100 != Math.floor(iYear/100))
{
// Divisible by 4 only -> Leap Year
return 1;
}
else
{
if(iYear/400 == Math.floor(iYear/400))
{
// Divisible by 4, 100 and 400 -> Leap year
return 1;
}
}
}
// all others: no leap year
return 0;
}
// Return today's date and time
var currentTime = new Date()
// returns the month (from 0 to 11)
var month = currentTime.getMonth() + 1
// returns the day of the month (from 1 to 31)
var day = currentTime.getDate()
// returns the year (four digits)
var year = currentTime.getFullYear()
// is current year a leap year?
vars.currentIsALeapYear = isLeapYear(year);
// is current date the first of march?
if(month == 3 && day == 1) {
// today is 1st of march
vars.firstOfMarch = 1;
}
在 Conditional forks 部分:
vars.currentIsALeapYear == 0 && vars.firstOfMarch == 1
创建 Fork 活动,并将其中一个叫客过渡链接到 Query 活动。
在此查询中,选择出生日期为2月29日的所有收件人。
将结果与 Union 活动。
链接这两个变量的结果 Test 活动分支到 Email delivery 活动向所有生日收件人的列表发送电子邮件,甚至是2月29日出生的非闰年收件人。
添加 循环投放 活动。