发送生日电子邮件

简介

此用例介绍如何计划在收件人生日当天向他们发送重复的电子邮件。

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

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

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

为此,请创建活动并单击​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日出生的非闰年的也是如此。

创建循环投放

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

注意

要执行工作流,必须启动与活动包相关的技术工作流。 有关详细信息,请参阅技术工作流列表部分。

如果为活动启用了批准步骤,则只有确认这些步骤后,才会发送投放。 有关详细信息,请参阅选择要批准的进程部分。

在此页面上