发送生日电子邮件

简介

此用例介绍如何计划在收件人生日当天向收件人列表发送定期电子邮件。

要设置此用例,我们创建了以下定位工作流:

此(每日运行)工作流会选择当前日期生日的所有收件人。

此用例也可以以视频的形式找到。有关更多信息,请参阅创建工作流视频。

要实现此目的,请创建营销活动并单击​Targeting and workflows​选项卡。 有关更多信息,请参阅在工作流中构建主目标一节。

然后,执行以下步骤:

计划发送

  1. 首先,添加​调度程序​以触发每天发送的投放。 在以下示例中,每天早上6点创建投放。

识别生日为的收件人

配置​Scheduler​活动以便工作流每天启动后,识别出生日期等于当前日期的所有收件人。

要执行此操作,请应用以下步骤:

  1. 将​Query​活动拖放到工作流中,并双击该活动。

  2. 单击​编辑查询​链接,然后选择​Filtering conditions

  3. 单击​Expression​列的第一个单元格,然后单击​Edit expression​以打开表达式编辑器。

  4. 单击​Advanced selection​以选择筛选模式。

  5. 选择​Edit the formula using an expression​并单击​Next​以显示表达式编辑器。

  6. 在函数列表中,双击​Day,可通过​Date​节点访问该节点。 此函数返回表示与作为参数传递的日期对应的日期的数字。

  7. 在可用字段列表中,双击​Birth date。 然后,编辑器的上部显示以下公式:

    Day(@birthDate)
    

    单击​Finish​确认。

  8. 在查询编辑器中,在​Operator​列的第一个单元格中,选择​equal to

  9. 接下来,单击第二列的第一个单元格(Value),然后单击​Edit expression​以打开表达式编辑器。

  10. 在函数列表中,双击​Day,可通过​Date​节点访问该节点。

  11. 双击​GetDate​函数以检索当前日期。

    编辑器的上部显示以下公式:

    Day(GetDate())
    

    单击​Finish​确认。

  12. 重复此步骤以检索对应于当月的出生月份。 为此,请单击​Add​按钮并重复步骤3至10,将​Day​替换为​Month

    完整查询如下所示:

将​Query​活动的结果链接到​Email delivery​活动,以向生日时所有收件人的列表发送电子邮件。

包括2月29日出生的收件人(可选)

如果要包含2月29日出生的所有收件人,此用例将介绍如何计划向生日的收件人列表发送定期电子邮件 — 无论这是否是闰年。

此用例的主要实施步骤是:

  • 选择收件人
  • 选择是否是闰年
  • 选择2月29日出生的任何收件人

要设置此用例,我们创建了以下定位工作流:

如果当前年份​不是闰年,并且工作流在3月1日运行,则我们需要选择昨天(2月29日)生日的所有收件人,并将它们添加到收件人列表。 在任何其他情况下,都不需要任何其他操作。

步骤1:选择收件人

配置​Scheduler​活动以便工作流每天启动后,识别周年为当天的所有收件人。

注意

如果当前年份是闰年,则所有在2月29日出生的收件人都将自动包含在内。

识别生日为的收件人部分中介绍了如何选择生日对应于当前日期的收件人。

步骤2:选择它是否是闰年

利用​Test​活动,可检查它是否为闰年以及当前日期是否为3月1日。

如果测试得到验证(年份不是闰年 — 没有2月29日 — 而当前日期实际上是3月1日),则​True​过渡将启用,2月29日出生的收件人将添加到3月1日的投放中。 否则,将启用​False​过渡,并且只有在当前日期出生的收件人将收到投放。

将下面的代码复制并粘贴到​Advanced​选项卡的​Initialization script​部分。

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日出生的任何收件人

创建​Fork​活动,并将其中一个叫客过渡链接到​Query​活动。

在此查询中,选择出生日期为2月29日的所有收件人。

将结果与​Union​活动组合。

将两个​Test​活动分支的结果链接到​Email delivery​活动,以向生日的所有收件人列表发送电子邮件,即使是2月29日出生的非闰年的收件人。

创建循环投放

根据要发送的生日电子邮件模板添加​定期投放​活动。

注意

要执行工作流,必须启动与Campaign包相关的技术工作流。 有关更多信息,请参阅技术工作流列表一节。

如果为营销活动启用了批准步骤,则只有在确认这些步骤后才会发送投放。 有关更多信息,请参阅选择要批准的流程一节。

在此页面上