생일 이메일 보내기 sending-a-birthday-email
소개 introduction
이 사용 사례에서는 생일 당일 수신자 목록에 반복 이메일 전송을 계획하는 방법을 제공합니다.
이 사용 사례를 설정하기 위해 다음과 같은 타겟팅 워크플로우를 만들었습니다.
이 (일일 실행) 워크플로우는 현재 날짜에 생일이 있는 모든 수신자를 선택합니다.
이 사용 사례는 비디오 형식에서도 찾을 수 있습니다. 자세한 내용은 워크플로 만들기 비디오를 참조하십시오.
이렇게 하려면 캠페인을 만들고 Targeting and workflows 탭을 클릭하십시오. 자세한 내용은 워크플로우에서 기본 대상 만들기 섹션을 참조하십시오.
그런 다음 다음 다음 단계를 수행합니다.
전송 예약 configuring-the-scheduler
-
먼저 매일 게재 전송을 트리거할 스케줄러 를 추가하십시오. 아래 예에서는 게재가 매일 오전 6시에 생성됩니다.
생일이 다음과 같은 수신자 식별 identifying-recipients-whose-birthday-it-is
워크플로우가 매일 시작되도록 Scheduler 활동을 구성한 후 생년월일이 현재 날짜와 동일한 모든 수신자를 식별합니다.
그렇게 하려면 다음 단계를 적용합니다.
-
Query 활동을 워크플로우에 끌어다 놓고 두 번 클릭합니다.
-
쿼리 편집 링크를 클릭하고 Filtering conditions 을(를) 선택합니다.
-
Expression 열의 첫 번째 셀을 클릭하고 Edit expression 을(를) 클릭하여 표현식 편집기를 엽니다.
-
필터링 모드를 선택하려면 Advanced selection 을(를) 클릭하십시오.
-
표현식 편집기를 표시하려면 Edit the formula using an expression 을(를) 선택하고 Next 을(를) 클릭합니다.
-
함수 목록에서 Date 노드를 통해 액세스할 수 있는 Day 을(를) 두 번 클릭합니다. 이 함수는 매개 변수로 전달된 날짜에 해당하는 일을 나타내는 숫자를 반환합니다.
-
사용 가능한 필드 목록에서 Birth date 을(를) 두 번 클릭합니다. 그런 다음 편집기의 상단 섹션에 다음 수식이 표시됩니다.
code language-none Day(@birthDate)
Finish 을(를) 클릭하여 확인합니다.
-
쿼리 편집기의 Operator 열의 첫 번째 셀에서 equal to 을(를) 선택합니다.
-
그런 다음 두 번째 열(Value)의 첫 번째 셀을 클릭하고 Edit expression 을 클릭하여 식 편집기를 엽니다.
-
함수 목록에서 Date 노드를 통해 액세스할 수 있는 Day 을(를) 두 번 클릭합니다.
-
현재 날짜를 검색하려면 GetDate 함수를 두 번 클릭하십시오.
편집기의 상단 섹션에는 다음 수식이 표시됩니다.
code language-none Day(GetDate())
Finish 을(를) 클릭하여 확인합니다.
-
이 절차를 반복하여 현재 달에 해당하는 출생월을 검색합니다. 이렇게 하려면 Add 단추를 클릭하고 3단계부터 10단계까지 반복하여 Day 을(를) Month(으)로 바꿉니다.
전체 쿼리는 다음과 같습니다.
Query 활동 결과를 Email delivery 활동에 연결하여 생일에 받는 사람 목록으로 전자 메일을 보냅니다.
2월 29일에 태어난 수신자 포함(선택 사항) including-recipients-born-on-february-29th--optional-
2월 29일에 태어난 모든 수신자를 포함하려는 경우 이 사용 사례에서는 윤년이든 아니든 생일에 대한 수신자 목록에 반복 이메일을 보내는 방법을 제시합니다.
이 사용 사례의 주요 구현 단계는 다음과 같습니다.
- 수신자 선택
- 윤년인지 여부 선택
- 2월 29일에 태어난 수신자 선택
이 사용 사례를 설정하기 위해 다음과 같은 타겟팅 워크플로우를 만들었습니다.
현재 연도 이(가) 윤년이 아님 이고 워크플로우가 3월 1일에 실행되는 경우 어제(2월 29일) 생일이 있었던 모든 수신자를 선택하고 수신자 목록에 추가해야 합니다. 다른 경우에는 추가 작업이 필요하지 않습니다.
1단계: 수신자 선택 step-1--selecting-the-recipients
워크플로우가 매일 시작되도록 Scheduler 활동을 구성한 후에는 기념일이 현재 일인 모든 수신자를 식별합니다.
생일이 현재 날짜에 해당하는 수신자를 선택하면 생일이 현재 날짜인 수신자 식별 섹션에 표시됩니다.
2단계: 윤년인지 여부 선택 step-2--select-whether-or-not-it-is-a-leap-year
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일에 태어난 수신자 선택 step-3--select-any-recipients-born-on-february-29th
Fork 활동을 만들고 아웃바운드 전환 중 하나를 Query 활동에 연결합니다.
이 질의에서는 생년월일이 2월 29일인 모든 수신자를 선택합니다.
결과를 Union 활동과 결합합니다.
두 Test 활동 분기의 결과를 Email delivery 활동에 연결하여 윤년이 아닌 해 동안 2월 29일에 태어난 모든 받는 사람(생일 기준)에게 전자 메일을 보냅니다.
반복 게재 만들기 creating-a-recurring-delivery-in-a-targeting-workflow
보내려는 생일 전자 메일 템플릿을 기반으로 반복 게재 활동을 추가합니다.