傳送生日電子郵件

此使用案例介紹如何計畫在收件人生日當天向其清單發送定期電子郵件。

要設定此用例,我們建立了以下目標工作流:

此(每日運行)工作流選擇在當前日期具有其生日的所有收件人。

為此,請建立市場活動並添加 活動工作流

然後,按照下面詳述的步驟操作。

標識生日的收件人

配置 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,替換 DayMonth

    完整查詢如下所示:

連結 Query 活動 Email delivery 的子菜單。

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

如果要包括2月29日出生的所有收件人,此使用案例將介紹如何計畫將定期電子郵件發送到其生日收件人清單 — 無論這是否是閏年。

此使用案例的主要實施步驟是:

  • 選擇收件人
  • 選擇它是否是閏年
  • 選擇2月29日出生的任何收件人

要設定此用例,我們建立了以下目標工作流:

如果當前年份 不是閏年 工作流在3月1日運行,我們需要選擇昨天(2月29日)已過生日的所有收件人,並將它們添加到收件人清單中。 在任何其他情況下,都不需要採取其他行動。

步驟1:選擇收件人

配置 Scheduler 活動,以便工作流每天啟動,確定其週年日為當天的所有收件人。

注意

如果本年是閏年,則所有2月29日出生的受贈人都將自動包括在內。

選擇其生日與當前日期對應的收件人 標識生日的收件人 的子菜單。

步驟2:選擇它是否是閏年

Test 活動允許您檢查它是否是閏年以及當前日期是否為3月1日。

如果test被證實(年不是閏年 — 沒有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日出生的所有收件人

建立 Fork 活動並將其中一個出站轉換連結到 Query 的子菜單。

在此查詢中,選擇出生日期為2月29日的所有收件人。

將結果與 Union 的子菜單。

連結兩者的結果 Test 活動分支到 Email delivery 活動,在所有收件人的生日當天向清單發送電子郵件,甚至是在2月29日出生的那些人。

建立循環交貨

添加 循環交付 基於要發送的生日電子郵件模板的活動。

注意

要執行工作流,必須啟動與市場活動包相關的技術工作流。 有關詳細資訊,請參閱 技術工作流清單 的子菜單。

如果為市場活動啟用了審批步驟,則只有在確認這些步驟後才會發送交貨。 有關詳細資訊,請參閱一節。

本頁內容