Ir al contenido principal
Todas las coleccionesGuías de usuario
Eventos: Enviar alertas de correo electrónico personalizadas utilizando webhooks de Ubidots y plantillas dinámicas
Eventos: Enviar alertas de correo electrónico personalizadas utilizando webhooks de Ubidots y plantillas dinámicas

Aprende a integrar los datos de tu evento a través de la API para enviar alertas de correo electrónico personalizadas a tus clientes utilizando SendGrid y Ubidots.

Santiago Pachon Robayo avatar
Escrito por Santiago Pachon Robayo
Actualizado hace más de 2 meses

SendGrid es una plataforma de marketing digital todo en uno que permite a las empresas B2B y B2C, vendedores de comercio electrónico y agencias construir relaciones con los clientes a través de campañas de marketing digital de extremo a extremo y mensajería transaccional.

La plataforma de correo electrónico transaccional de SendGrid tiene una API que soporta contenido HTML dinámico para entregar mensajes personalizados a clientes o usuarios finales, como se puede ver en su documentación aquí. En este tutorial, integrarás los eventos de tu cuenta de Ubidots a través de webhooks para enviar una alerta de correo electrónico personalizada a tus clientes.

Requisitos

1. Crea una plantilla de correo electrónico con contenido dinámico

Inicia sesión en tu cuenta de SendGrid, ve a la barra de menú en la parte superior izquierda, haz clic en “Email API”, selecciona “Dynamic Templates” y luego haz clic en “Create Dynamic Template”.

image.png

Dale un nombre a tu plantilla y luego haz clic en “Create”, y haz clic en “Add version” para comenzar a editar el contenido de tu plantilla. Aquí elegiremos una “Blank Template”, selecciona “Design Editor” para edición visual, arrastrar y soltar con acceso para modificar HTML.

2. Edita la plantilla para incluir tu contenido personalizado

El menú del editor se divide en dos partes principales, “Settings” y “Building”.​

image.png

En "Settings" asigna un nombre personalizado a esta versión de tu plantilla, también puedes configurar un “Subject” y un “Preheader”, que es el contenido que sigue al asunto en el correo electrónico que se enviará a tus clientes. “Build” te permitirá agregar componentes visuales a tu plantilla desde una paleta de arrastrar y soltar que incluye módulos como imágenes, código, botones, etc.

Aquí, agregaremos—en orden de arriba hacia abajo—una imagen seguida de un módulo de código que tendrá dentro una tabla HTML para mostrar los datos de tu evento dinámicamente utilizando la sintaxis de handlebars, también conocida como "Mustache". Para más información sobre cómo funciona esta sintaxis, consulta la documentación de SendGrid aquí.

En resumen, los valores de handle o mustache se indicarán en la solicitud API, la clave sería su nombre y el valor sería los datos del evento—en este caso, el nombre de tu dispositivo Ubidots, el nombre de la variable, el valor que activó la alerta y la marca de tiempo del evento.

Aquí está la estructura de nuestra plantilla:

  • Componente de imagen: Allí puedes subir una imagen desde tu computadora. Ten en cuenta que la imagen subida puede ser modificada, en caso de que necesites cambiar el tamaño de tu imagen puedes modificar su propiedad width de la siguiente manera.

  • Componente de código: Copia y pega el siguiente código HTML:

<style>h2{font-family: arial, sans-serif}table {font-family: arial, sans-serif;border-collapse: collapse;width: 100%;}td, th {border: 1px solid #dddddd;text-align: left;padding: 8px;}</style><h2>Datos del Sensor</h2><table><tr><th>Nombre del Dispositivo</th><th>Variable</th><th>Último Valor</th><th>Marca de Tiempo</th></tr><tr><td>##{{devicename}}</td><td>##{{variable}}</td><td>##{{value}}</td><td>##{{date}}</td></tr></table>

La plantilla se verá de la siguiente manera:

image.png

3. Integra un evento a través de webhooks a la API de SendGrid

Aquí nos enfocaremos en la configuración necesaria para enviar una solicitud POST al endpoint de la API de correo electrónico transaccional con el fin de enviar un correo electrónico a un cliente. Para hacer esto, necesitarás la API Key de tu cuenta de SendGrid y el template ID de la plantilla ya creada. Si necesitas aprender cómo crear un webhook en detalle, consulta este tutorial.

  • Para crear una nueva clave API o modificar la existente, ve al panel izquierdo en tu cuenta de SendGrid, selecciona “Settings” y haz clic en “API Keys”.

  • El template ID se puede obtener yendo a “Templates” de la siguiente manera:

image.png

En la sección de acción del evento de tu Ubidots, debes seleccionar el método HTTP POST, la URL de SendGrid y los encabezados de la siguiente manera:

Método HTTP: POST
URL: https://api.sendgrid.com/v3/mail/send

Encabezados:

Content-Type

application/json

Authorization

Bearer <<Tu clave API de SendGrid>>

Cuerpo:

{"from":{"email":"support@youriotcompany.com"},"personalizations":[{"to":[{"email":"yourcustomers@email.com"}],"dynamic_template_data":{"subject":"<variable> alert!", "devicename":"<deviceName>","variable":"<variable>","value":"<value>","date":"<timestamp>"}}],"template_id":"<el id de tu plantilla>"}

Así es como se ve la configuración al configurar el webhook en el módulo de eventos:

image.png

El siguiente video te ayudará a entender cómo ingresar el contenido dinámico del evento en el cuerpo, como el valor para las claves que ya configuramos en nuestra plantilla.

4. Prueba tu evento y verifica los resultados

En este ejemplo, tenía un sensor de Humedad conectado a una placa ESP32 y configuré el evento basado en esta condición.

image.png

Una vez que se activó el evento, tu cliente recibirá un correo electrónico como este:

image.png
¿Ha quedado contestada tu pregunta?