Enviar email de aniversário sending-a-birthday-email
Este caso de uso apresenta como planejar o envio de um e-mail recorrente para uma lista de destinatários no dia de seus aniversários.
Para configurar esse caso de uso, criamos o seguinte workflow para construção do target:
Esse workflow (execução diária) seleciona todos os destinatários que fazem aniversário na data atual.
Para fazer isso, crie uma campanha e adicione um fluxo de trabalho de campanha.
Siga as etapas detalhadas abaixo.
Identificar destinatários cujo aniversário é identifying-recipients-whose-birthday-it-is
Após configurar a atividade Scheduler para que o workflow inicie todos os dias, identifique todos os destinatários cuja data de nascimento for igual à data atual.
Para fazer isso, siga as etapas abaixo:
-
Arraste e solte uma atividade Query no workflow e clique duas vezes nela.
-
Clique no link Editar query e selecione Filtering conditions.
-
Clique na primeira célula da coluna Expression e clique em Edit expression para abrir o editor de expressão.
-
Clique em Advanced selection para selecionar o modo do filtro.
-
Selecione Edit the formula using an expression e clique em Next para exibir o editor de expressão.
-
Na lista de funções, clique duas vezes em Day, que é acessível no nó Date. Essa função retorna o número que representa o dia correspondente à data passada como parâmetro.
-
Na lista de campos disponíveis, clique duas vezes em Birth date. A seção superior do editor exibe a seguinte fórmula:
code language-none Day(@birthDate)
Clique em Finish para confirmar.
-
No editor de consultas, na primeira célula da coluna Operator, selecione equal to.
-
Em seguida, clique na primeira célula da segunda coluna (Value) e clique em Edit expression para abrir o editor de expressão.
-
Na lista de funções, clique duas vezes em Day, que é acessível no nó Date.
-
Clique duas vezes na função GetDate para recuperar a data atual.
A seção superior do editor exibe a seguinte fórmula:
code language-none Day(GetDate())
Clique em Finish para confirmar.
-
Repita este procedimento para recuperar o mês de nascimento correspondendo ao mês atual. Para fazer isso, clique no botão Add e repita as etapas de 3 a 10, substituindo Day por Month.
A query completa é a seguinte:
Vincule o resultado da atividade Query a uma atividade Email delivery para enviar um email para a lista de todos os destinatários aniversariantes.
Incluir recipients nascidos em 29 de fevereiro (opcional) including-recipients-born-on-february-29th--optional-
Se desejar incluir todos os destinatários que nasceram em 29 de fevereiro, este caso de uso apresentará como planejar o envio de um e-mail recorrente para uma lista de destinatários em seus aniversários, seja um ano bissexto ou não.
As principais etapas de implementação para este caso de uso são:
- Seleção de destinatários
- Seleção se é um ano bissexto ou não
- Seleção de todos os destinatários nascidos em 29 de fevereiro
Para configurar esse caso de uso, criamos o seguinte workflow para construção do target:
Se o ano atual não for um ano bissexto e o workflow for executado em 1º de março, precisamos selecionar todos os destinatários que teriam seu aniversário no dia anterior (29 de fevereiro) e adicioná-los à lista de destinatários. Em qualquer outro caso, nenhuma ação adicional é necessária.
Etapa 1: Selecionar os recipients step-1--selecting-the-recipients
Após configurar a atividade Scheduler para que o workflow inicie todos os dias, identifique todos os destinatários cujos aniversários são no dia atual.
Selecionar destinatários cujo aniversário corresponde à data atual é apresentado na seção Identifying recipients whose birthday it is.
Etapa 2: Selecionar se é um ano bissexto ou não step-2--select-whether-or-not-it-is-a-leap-year
A atividade Test permite verificar se é um ano bissexto e se a data atual é 1º de março.
Se o teste for verificado (o ano não é um ano bissexto, não há 29 de fevereiro e a data atual é de fato 1º de março), a transição True é habilitada e os destinatários nascidos em 29 de fevereiro serão adicionados à entrega de 1º de março. Caso contrário, a transição False será ativada e somente os destinatários nascidos na data atual receberão a entrega.
Copie e cole o código abaixo na seção Initialization script da guia 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;
}
Adicione a seguinte condição na seção Conditional forks:
vars.currentIsALeapYear == 0 && vars.firstOfMarch == 1
Etapa 3: Selecionar todos os destinatários nascidos em 29 de fevereiro step-3--select-any-recipients-born-on-february-29th
Crie uma atividade Fork e vincule uma das transições de saída a uma atividade Query.
Nesta query, selecione todos os destinatários cujas datas de nascimento são 29 de fevereiro.
Combine os resultados com uma atividade Union.
Vincule os resultados das duas ramificações de atividade Test a uma atividade Email delivery para enviar um email para a lista de todos os seus destinatários aniversariantes, até mesmo àqueles que nasceram em 29 de fevereiro durante um ano não bissexto.
Criar uma entrega recorrente creating-a-recurring-delivery-in-a-targeting-workflow
Adicione uma atividade de Entrega recorrente com base no modelo de email de aniversário que você deseja enviar.