傳送生日電子郵件

簡介

此使用案例說明如何規劃在收件者生日當天,將循環電子郵件傳送至其清單。

若要設定此使用案例,我們建立了下列定位工作流程:

此(每日執行)工作流程會選取目前日期有生日的所有收件者。

此使用案例也可以以視訊的形式找到。有關詳細資訊,請參閱建立工作流視頻。

若要這麼做,請建立促銷活動,然後按一下​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套件相關的技術工作流程。 有關詳細資訊,請參閱技術工作流清單部分。

如果促銷活動的核准步驟已啟用,則只有在確認這些步驟後,才會傳送傳送。 有關詳細資訊,請參閱選擇要批准的進程部分。

本頁內容