Ir para o conteúdo

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 }}"
  }
)