Transaction Email¶
src/external-sdk/transaction-email/index.ts
Usamos ums serviço emailmanager.
Cadastro¶
Sem que um novo usuário se cadastra é enviado um e-maild e boas vindas.
import { TransactionEmailService } from '..'
TransactionEmailService.sendWelcome({
email: string;
displayName: string;
})
Desafio¶
import { TransactionEmailService } from '..'
TransactionEmailService.desafioToMany(payload: {
users: {
email: string;
displayName: string;
}[];
desafio: {
nome: string;
materia: string;
totalQuestoes: number;
pontuacao: number;
vestibular: string;
topAssuntos: string[];
}
subject?: string
url?: string;
})
Imagem do E-mail¶

Mutation¶
input CampaignInput {
"""Tipo da notificação email ou push"""
type: String
"""Campanha do envio desafio | simulado | questoes-avulsa"""
model: String
"""ID do desafio | simulado | questoes-avulsa"""
modelId: String
"""Titulo da mensagem em caso de PUSH"""
title: String
"""Mensagem em caso de PUSH"""
message: String
"""Titúlo no e-mail enviado"""
subject: String
"""URL EMAIL ou PUSH"""
url: String
"""Se foi enviado para all | premium | freemium"""
audience: String
}
sendCampanhaEmailDesafio(campaign: CampaignInput): Boolean
Campanha (Marketing)¶
Agora abaixo será como enviar campanha do desafio nos modelos
enum CampaignAudience {
All = 'all', // toda a base
Premium = 'premium', // usuários level 2
Freemium = 'freemium', // usuários level 1
User = 'user', // usuário especifico pelo o ID
Custom = 'custom' // envio customizado com nome e email
}
Audiência ALL, PREMIUM e FREEMIUM¶
Recomendado ter caltela ppara envio dessas audiências.
- Só é permitido envio de uma campanha por audiência;
- O E-mail do lançamento do desafio será enviado para toda a base do banco com cadastro confirmado.
sendCampanhaEmailDesafio(
campaign: {
type: "email",
model: "desafio",
modelId: "623a8e049070b95bff057ca4", // ID do desafio
// escolher algum das audiencias abaixo
audience: "all" || "premium" || "freemium",
}
)
Seguindo o mesmo delo do acima pode ser enviado uma subject diferente do padrão.
IMPORTANTE
Caso queira que tenha presente o nome do usuário adicionar
{{ displayName }}na string.
sendCampanhaEmailDesafio(campaign: {
type: "email",
model: "desafio",
modelId: "623a8e049070b95bff057ca4",
audience: "all",
subject: "Chegou Desafio! Confira agora {{ displayName }}"
})
Audiência Custom¶
Esse forma é para enviar um e-mail por usuário. Pode ser utilizado para testes e não tem limite de envio.
sendCampanhaEmailDesafio(
campaign: {
type: "email",
model: "desafio",
modelId: "623a8e049070b95bff057ca4", // ID do desafio
audience: "custom",
email: "exemplo@gmail.com",
displayName: "Teste Email"
}
)
// Com subject
sendCampanhaEmailDesafio(
campaign: {
type: "email",
model: "desafio",
modelId: "623a8e049070b95bff057ca4", // ID do desafio
audience: "custom",
email: "exemplo@gmail.com",
displayName: "Teste Email",
subject: "Desafio TESTE! Confira agora {{ displayName }}"
}
)