发送生日电子邮件

简介

此用例介绍如何计划在收件人生日当天向客户发送循环电子邮件。

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

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

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

要执行此操作,请创建一个活动并单击​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. 在函数列表中,按住多次键并单击可通过​Date​节点访问的​Day。 此函数返回表示与作为参数传递的日期对应的日期的数字。

  7. 在可用字段的列表中,多次单击​Birth date。 编辑器的上半部分随后显示以下公式:

    Day(@birthDate)
    

    单击​Finish​进行确认。

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

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

  10. 在函数列表中,按住多次键并单击可通过​Date​节点访问的​Day

  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日出生的也是如此。

创建循环投放

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

注意

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

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

在此页面上

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now