Show Menu
主题×

发送生日电子邮件

简介

此用例介绍如何计划在收件人生日当天向收件人列表发送循环电子邮件。
要设置此用例,我们创建了以下定位工作流:
此(每日运行)工作流将选择在当前日期有生日的所有收件人。
此用例也可以以视频的形式找到。 有关此内容的详细信息,请参阅创 建工作流视频
为此,请创建营销活动,然后单击选 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)
    
    
    Click Finish to confirm.
  8. 在查询编辑器中,在列的第一个单元格 Operator 中,选择 equal to
  9. 接下来,单击第二列()的第一个单元​ Value ​格,然后单击以 Edit expression 打开表达式编辑器。
  10. 在函数列表中,双击, Day ​可通过节点访问该函 Date 数。
  11. 双击该函 GetDate 数以检索当前日期。
    编辑器的上半部分显示以下公式:
    Day(GetDate())
    
    
    Click Finish to confirm.
  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日),则转换将启用,2月29日出生的接收者将添加到3月1日的发送中。 True 否则, 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日出生的收件人

创建活 Fork 动,并将其中一个出站过渡链接到活 Query 动。
在此查询中,选择出生日期为2月29日的所有收件人。
将结果与活动结 Union 合。
将两个活动分支的结 Test Email delivery 果关联到一个活动,以向所有收件人的生日列表发送电子邮件,即使是在非闰年的2月29日出生的收件人也是如此。

创建重复交付

根据您 要发送的生日电子邮件模板 ,添加重复的提交活动。
要执行工作流,必须启动与营销活动流程相关的技术工作流。 有关详细信息,请参阅营销活动 流程工作流列表部分
如果为营销活动启用了批准步骤,则仅在确认这些步骤后才会发送提交。 有关详细信息,请参阅选 择要批准的流程一节