Recientemente hemos añadido una nueva funcionalidad a la nueva versión de Mailrelay, los webhooks.
Los webhooks permiten realizar conexiones en tiempo real con sistemas externos, y actualmente hay posibilidad de definir:
- Cuando un suscriptor se añade a un grupo
- Cuando se elimina del grupo
- O cuando se da de baja
¿Para que nos pueden servir estos webhooks?
Te pongo un ejemplo muy sencillo, imagina que tu empresa gestiona todos los contactos, clientes, en un CRM propio donde tiene todos sus datos, compras anteriores, etc. Y para enviarles las campañas de email, exportan estos contactos y los importan a Mailrelay, desde donde envían.
El problema, hasta ahora, era que, aunque en Mailrelay los contactos pueden darse de baja a través de los enlaces en la newsletter, para darlos de baja del CRM (u otro sistema externo) había que utilizar el API o hacerlo de forma manual.
Con la nueva opción de webhooks es más fácil enviar una petición y gestionarla mediante programación desde el lado del CRM.
En este post vamos a ver como definir y probar el funcionamiento de los webhook.
· Definiendo un webhook para las bajas
Los webhooks se definen en la sección de Automatizaciones:
Una vez en esta sección, crearemos una nueva automatización:
La automatización que vamos a crear es de tipo «personalizado» (la otra opción es la de cumpleaños, pero esa no nos interesa ahora):
A partir de aquí tendremos que realizar la definición básica de la automatización.
Vamos a comentar los parámetros más importantes después de la siguiente imagen:
Tenemos estas opciones:
- Nombre: este es solo el nombre interno del trigger, puedes llamarlo como prefieras
- Todos los suscriptores: podríamos definir un grupo concreto, pero para este ejemplo selecciono a todos
Tras definir esos puntos tendremos que «Añadir trigger», para definir la acción que desencadenará el evento.
Elegiremos la opción de «Actividad Del Suscriptor»:
Dentro de todas las opciones de actividad del suscriptor tenemos:
Utilizaremos el evento de cancelación de la suscripción, que es el que nos interesa en este momento, pero sería posible definir eventos para cuando se añade un suscriptor a un grupo, o es eliminado (sin hacer baja) de un grupo:
Al trigger le añadiremos el nombre que deseemos y, algo importante:
- Webhook url: es decir, la URL a la que se va a enviar la petición, cuando se curse una baja de un contacto.
- La petición se envía en el array GET normalmente, no en el POST
La URL destino del webhook es una URL de nuestra web donde podemos recibir la información enviada por Mailrelay, con información del contacto que ha realizado la baja, y tratar dicha información de la forma que necesitemos.
Una vez hecho eso te queda Validar y aplicar:
Y ya por último, para crear todo el automatismo, hacer click en el botón «crear automatización»:
De esa forma ya estaría todo listo, y solo queda que desde el lado del CRM o software se gestionen las llamadas que serán lanzadas cuando ocurra alguna baja.
· Probando el webhook con herramientas de test
Es posible que desees probar el webhook sin tener todavía la programación del lado de tu software, para ello puedes utilizar un servicio como el de RequestBin:
En esta pantalla solo tienes que hacer click en el botón «Create a RequestBin», te recomiendo también que lo crees de forma privada.
Una vez hecho eso, verás una pantalla similar a la siguiente:
Puedes copiar esa URL, y pegarla cuando estés creando el webhook:
Solo tenemos que poner la URL en la casilla del formulario, y luego podemos lanzar una prueba desde el botón «Webhook de prueba»:
Si aceptamos el mensaje el webhook se enviará, y podremos ver la petición en RequestBin:
Es una petición de ejemplo, pero guarda la misma estructura que una petición real:
{«unsubscribe_event»:{«source»:»web»,»ip»:»192.168.1.1″,»email»:»[email protected]»,»reason»:null,
«description»:null,»created_at»:»2019-06-14T10:48:41.510+02:00″},
«time»:»2019-06-14T10:48:41.511+02:00″,»automation_trigger_id»:0,»subscriber»:{«id»:null,»email»:»[email protected]»,
«name»:null,»score»:null,»status»:»inactive»,
«subscribed_at»:null,»subscribed_with_acceptance»:false,»subscribe_ip»:null,
«unsubscribed»:false,»unsubscribed_at»:null,»unsubscribe_ip»:null,
«unsubscribe_sent_email_id»:null,»address»:null,»city»:null,»state»:null,
«country»:null,»birthday»:null,»website»:null,»bounced»:false,»reported_spam»:false,
«local_ban»:false,»global_ban»:false,»created_at»:»2019-06-14T10:48:41.507+02:00″,»updated_at»:»2019-06-14T10:48:41.507+02:00″,
«custom_fields»:{}}}
De forma que puedes conocer esa estructura para tratarla en tu sistema.
También puedes realizar peticiones reales si guardas el automatismo, y generas una baja real.
Esas las verás en RequestBin pero ya con la información real del contacto.
· Automatizaciones al añadir el contacto y cambio de grupo
Hasta ahora hemos hablado de crear un trigger para la baja, pero también existen otras acciones, como cuando se añade un nuevo contacto, es decir, cuando se registra un nuevo contacto.
La diferencia es que en estos casos, al contrario que en la baja tenemos opción de enviar un email también en respuesta, por lo tanto el webhook aparece en un desplegable:
Realmente esta es la única diferencia, pues por lo demás se comporta exactamente igual.
Ten en cuenta que dentro de una automatización, puedes crear todos los triggers que necesites. Así que puedes tener un trigger que mande un email al contacto cuando se registre, y otro trigger que envíe un webhook, no hay problema.
Esperamos que esta nueva funcionalidad te sea de utilidad.
Muy buen post. Estoy tratando aprender mas sobre los webhooks.
Saludos desde Ecuador
Hola, buenas tardes. Hay una manera de ¿recibir un webhook desde otra plataforma por ejemplo para agregar un nuevo contacto y agregarlo a un grupo?
En el ejemplo solo es para enviar webhook pero no para recibir.
Muchas gracias.
Un Saludo!
¡Hola! Puedes echarle un ojo a Piesync https://blog.mailrelay.com/es/2020/12/08/envio-masivo-de-emails quizá te sirva para hacer lo que quieres. Un saludo!