Você pode integrar o SendGrid ao Merlin e enviar um e-mail em poucos passos. Para isso vamos utilizar os componentes Código javascript e Webhook e fazer algumas pequenas edições.
Porém, antes de irmos ao passo a passo da integração, veja como projetamos nosso bot de exemplo para esse tutorial:
Vamos ao passo a passo:
Acesse sua conta no SendGrid, https://app.sendgrid.com/, e vá até Sender Authentication, para criarmos sua credencial para envio de e-mails. Siga o passo a passo conforme imagem abaixo:
Clique em 1) Settings → 2) Sender Authentication → 3) Get Started (referente ao Single Sender Verification / Verify an Address)
Na próxima tela, preencha com seus dados. Lembre-se de colocar um e-mail válido pois este será o remetente quando for enviar e-mail.
Após preencher os dados e clicar em Create, você será direcionado para um aviso. Onde ele solicita que você vá até a caixa de entrada do e-mail utilizado e clique em um link para confirmar que ele é de seu domínio.
No e-mail será um tela assim:
Clique em Verify Single Sender para validar a ação. Lembre-se que se não fizer isso em até 48 horas, esse e-mail perde a validade e você terá que repetir o processo do início.
Agora acesse novamente sua conta no SendGrid, https://app.sendgrid.com/, e vá até API Keys, para gerarmos a sua chave de API a ser utilizada no Merlin. Siga o passo a passo conforme imagem abaixo:
Clique em 1) Settings → 2) API Keys → 3) Create API Key
Neste momento, você deve se preparar para:
Com seu e-mail configurado e de posse da chave de API, vamos a configuração no Merlin. Para este tutorial, foram utilizados 4 componentes Pergunta aberta para coletar as informações de nome, e-mail, assunto e mensagem. Veja abaixo como cada um foi configurado:
Agora vamos adicionar o componente Código javascript para prepararmos a estrutura dos dados a serem enviados ao SendGrid. Nesse momento vamos usar os valores que coletamos com as perguntas feitas e juntar com o nosso e-mail configurado no SendGrid.
var user = {
email: `[email protected]`,
name: `William Lopes`
}
var to = {
email: `{{{email}}}`,
name: `{{{nome}}}`
}
var subject = `{{{assunto}}}`
var message = `<p><b>Nome:</b> {{{nome}}}</p><p><b>Mensagem:</b> {{{mensagem}}}</p>`
var content = {
type: 'text/html',
value: message
}
/* cria a estrutura para enviar o e-mail */
var sendgridParam = {
personalizations: [{ to: [to] }],
from: user,
subject: subject,
content: [content]
}
Merlin.addCustomData('sendgrid-parametros', JSON.stringify(sendgridParam))
Atenção para alguns pontos:
Use 3 chaves para a variável, ex.: {{{nome}}}
.
var user = { ... }
→ é quem vai enviar o e-mail.
var to = { ... }
→ é quem vai receber o e-mail.
Caso queira ter um valor pré-definido, basta alterar para e colocar o texto desejado, ex.:
var subject = "Assunto já pré-definido"
Você pode usar tags HTML para enviar no seu e-mail.
Veja como ficou o nosso componente configurado:
De possa da chave de API e com a estrutura de dados do e-mail ajustada, agora é o momento de configurar o Webhook que irá fazer a comunicação com o SendGrid e enviar o e-mail, de fato. Adicione um componente Webhook e configure-o da seguinte forma:
Descrição: Envia e-mail pelo SendGrid
Salvar variável no campo: sendgrid-resposta
Avançado → Parâmetros:
{{{sendgrid-parametros}}}
Avançado → Headers:
{
"Authorization": "Bearer CHAVE_DE_API"
}
Exemplo:
{
"Authorization": "Bearer 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"
}
Veja como ficou configurado:
Feito isso, basta adicionar uma mensagem para mostrar que o e-mail foi enviado após passar pelo Webhook.
Para testar, acesse o seu bot e responda as perguntas:
E na caixa de entrada vai estar lá conforme preenchido:
Referências