此使用案例說明如何規劃在收件者生日當天傳送循環電子郵件給收件者清單。
為了設定此使用案例,我們建立了以下目標定位工作流程:
此(每日執行)工作流程會選取在目前日期生日的所有收件者。
此使用案例也可以透過影片形式找到。 如需詳細資訊,請參閱 建立工作流程 視訊。
若要這麼做,請建立行銷活動,然後按一下 Targeting and workflows 標籤。 如需詳細資訊,請參閱 在工作流程中建立主要目標 區段。
然後按照以下步驟操作:
首先,新增 排程器 以觸發每天傳送傳遞。 在以下範例中,傳遞會在每天早上6點建立。
設定之後 Scheduler 活動讓工作流程每天開始,識別其出生日期等於目前日期的所有收件者。
若要這麼做,請套用下列步驟:
拖放 Query 活動並連按兩下工作流程。
按一下 編輯查詢 連結並選取 Filtering conditions.
按一下第一個儲存格 Expression 欄並按一下 Edit expression 以開啟運算式編輯器。
按一下 Advanced selection 以選取篩選模式。
選取 Edit the formula using an expression 並按一下 Next 以顯示運算式編輯器。
在函式清單中,按兩下 Day,可透過 Date 節點。 此函式傳回的數字,代表以引數形式傳遞之日期對應的日期。
在可用欄位清單中,按兩下 Birth date. 然後編輯器的上方區段會顯示下列公式:
Day(@birthDate)
按一下 Finish 確認。
在查詢編輯器中, Operator 欄,選取 equal to.
接著,按一下第二欄的第一個儲存格(Value),然後按一下 Edit expression 以開啟運算式編輯器。
在函式清單中,按兩下 Day,可透過 Date 節點。
連按兩下 GetDate 函式以擷取目前日期。
編輯器的上方區段會顯示下列公式:
Day(GetDate())
按一下 Finish 確認。
重複此程式以擷取與目前月份對應的出生月份。 若要這麼做,請按一下 Add 按鈕並重複步驟3至10,取代 Day 替換為 Month.
完整的查詢如下:
連結的結果 Query 活動至 Email delivery 活動,在您所有收件者的生日當天傳送電子郵件至其清單。
如果您想要包含所有在2月29日出生的收件者,此使用案例會說明如何計畫傳送循環電子郵件給生日收件者清單 — 無論是否為閏年。
此使用案例的主要實施步驟為:
為了設定此使用案例,我們建立了以下目標定位工作流程:
若為本年度 不是閏年 而工作流程會在3月1日執行,因此我們需要選取昨日(2月29日)生日的所有收件者,並將其新增至收件者清單。 在任何其他情況下,都不需要執行其他動作。
設定之後 Scheduler 活動以便工作流程每天開始,識別其週年是當天的所有收件者。
如果今年是閏年,則會自動納入所有在2月29日出生的收件者。
如果選取的收件者生日符合目前日期,系統會顯示在 識別其生日為的收件者 區段。
此 Test 活動可讓您檢查是否為閏年,以及目前的日期是否為3月1日。
如果測試通過驗證(該年不是閏年 — 沒有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
建立 Fork 活動並將其中一個出站轉變連結至 Query 活動。
在此查詢中,選取出生日期為2月29日的所有收件者。
將結果與 Union 活動。
連結兩個專案的結果 Test 活動分支到 Email delivery 活動,在收件者的生日當天傳送電子郵件給所有收件者清單,甚至包括在2月29日非閏年出生的收件者。
新增 循環傳遞 活動根據您要傳送的生日電子郵件範本。