发送生日电子邮件 sending-a-birthday-email
简介 introduction
此用例介绍了如何规划在收件人的生日当天向收件人列表发送定期电子邮件。
为了设置此用例,我们创建了以下定位工作流:
此(每日运行)工作流会选择在当前日期生日的所有收件人。
此用例也可以通过视频的形式找到。 有关详情,请参阅 创建工作流 视频。
要实现此目的,请创建营销策划,然后单击 Targeting and workflows 选项卡。 有关详情,请参阅 在工作流中构建主目标 部分。
然后按照以下步骤操作:
计划发送 configuring-the-scheduler
-
首先,添加 调度程序 以触发每天发送投放。 在以下示例中,每天早上6:00创建投放。
确定生日为的收件人 identifying-recipients-whose-birthday-it-is
配置之后 Scheduler 活动以便工作流每天开始一次,标识其出生日期等于当前日期的所有收件人。
要执行此操作,请应用以下步骤:
-
拖放 Query 活动并将其双击到工作流中。
-
单击 编辑查询 链接并选择 Filtering conditions.
-
单击 Expression 列并单击 Edit expression 以打开表达式编辑器。
-
单击 Advanced selection 以选择过滤模式。
-
选择 Edit the formula using an expression 并单击 Next 以显示表达式编辑器。
-
在函数列表中,双击 Day,可通过 Date 节点。 此函数返回数字,该数字表示与作为参数传递的日期对应的日期。
-
在可用字段列表中,双击 Birth date. 然后,该编辑器的上半部分显示以下公式:
code language-none Day(@birthDate)
单击 Finish 确认。
-
在查询编辑器的第一个单元格中, Operator 列,选择 equal to.
-
接下来,单击第二列的第一个单元格(Value),然后单击 Edit expression 以打开表达式编辑器。
-
在函数列表中,双击 Day,可通过 Date 节点。
-
双击 GetDate 函数以检索当前日期。
编辑器的上半部分显示以下公式:
code language-none Day(GetDate())
单击 Finish 确认。
-
重复此过程以检索对应于当前月份的出生月份。 要执行此操作,请单击 Add 按钮并重复步骤3至10,更换 Day 替换为 Month.
完整的查询如下所示:
链接结果 Query 活动到 Email delivery 活动,以在所有收件人的生日当天向其列表发送电子邮件。
包括2月29日出生的收件人(可选) including-recipients-born-on-february-29th--optional-
如果您希望包含所有在2月29日出生的收件人,则此用例将介绍如何计划向生日收件人的列表发送定期电子邮件 — 无论是否为闰年。
此用例的主要实施步骤包括:
- 选择收件人
- 选择是否为闰年
- 选择2月29日出生的任何收件人
为了设置此用例,我们创建了以下定位工作流:
如果当前年份 不是闰年 并且工作流在3月1日运行,我们需要选择昨天生日(2月29日)的所有收件人,并将其添加到收件人列表。 在任何其他情况下,无需执行其他操作。
步骤1:选择收件人 step-1--selecting-the-recipients
配置之后 Scheduler 活动以便工作流每天启动,标识其周年纪念日为当天的所有收件人。
选择其生日对应于当前日期的收件人将显示在 确定生日为的收件人 部分。
步骤2:选择是否为闰年 step-2--select-whether-or-not-it-is-a-leap-year
此 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
步骤3:选择2月29日出生的任何收件人 step-3--select-any-recipients-born-on-february-29th
创建 Fork 活动,并将其中一个叫客过渡链接到 Query 活动。
在此查询中,选择出生日期为2月29日的所有收件人。
将结果与 Union 活动。
链接两个结果的结果 Test 活动分支到 Email delivery 活动,向所有生日收件人的列表发送电子邮件,即使那些在非闰年出生于2月29日的人也不例外。
创建循环投放 creating-a-recurring-delivery-in-a-targeting-workflow
添加 循环投放 活动基于要发送的生日电子邮件模板。