Este post es un poco meta (al hablar en el blog sobre algo del mismo blog), pero lo escribí porque al buscar tutoriales sobre cómo implementar mi propio newsletter encontré muy poco materia: tuve que averiguar cómo hacerlo mediante prueba y error, y adaptando instrucciones no pensadas para hugo
/blogdown
.
Me gustaría que quienes están buscando lograr lo mismo tengan las cosas más fáciles, y para ello explico aquí, paso a paso, 3 formas distintas de implementar un newsletter en un sitio blogdown
.
Estas 3 formas de implementar un newsletter difieren en nivel de dificultad, y en qué tanta automatización y personalización permiten en el resultado final.
Debido a que es un tutorial paso a paso, el artículo es bastante largo. Mi recomendación es NO leerlo completo, sino que decidir primero cuál de los 3 métodos se ajusta más a lo que buscas, y luego ir directo a la sección donde se explica ese método.
Estos 3 métodos son:
- Método 1: newsletter manual con Buttondown. Con este método cada vez que publiquemos un nuevo post tendremos que escribir manualmente el texto de un correo anunciando el artículo, invitando a los suscriptores a hacer clic en un enlace y leerlo.
- Método 2: newsletter automatizado con MailChimp, sin segmentación. Con este método usaremos el feed RSS del blog para crear una automatización en MailChimp, la cual enviará un correo a todos los suscriptores cada vez que se publique un nuevo artículo.
- Método 3: newsletter automatizado y segmentado con MailChimp. Similar al método 2, pero con la sofisticación de que los suscriptores pueden auto-seleccionarse en distintas listas de distribución por tema o idioma (por ej, elegir recibir sólo posts de Data Science en inglés). Requiere crear una automatización por cada lista de distribución segmentada, identificar feeds RSS específicos para cada tema, y hacer ajustes en el gestor de audiencias de MailChimp, por lo que es más complejo que el método 2.
Abajo pueden un ver un cuadro resumen con las ventajas y desventajas de estos 3 métodos.
Los 3 métodos ofrecen formularios de suscripción para que los lectores se den de alta en el newsletter, así que no hay mucha diferencia entre ellos en este plano.
Además, notar que el método 1, el más simple, sí permite tener segmentación de suscriptores (algo que el método 2 no tiene). La trampa aquí es que se trata de una segmentación manual, en el sentido de que tendremos que escribir a mano los correos personalizados para cada segmento (no se enviarán automáticamente a medida que publiquemos contenido en el blog).
Finalmente (antes de partir con los tutoriales en sí) añadir un par de consideraciones:
En blogdown
existen muchos casos particulares debido a que los distintos temas de hugo
tienen diferentes características/funcionalidades, y puede que en algunos temas los pasos mostrados acá requieran de cierta adaptación. Pero en la mayoría de los casos todo debería funcionar de forma muy parecida (🤞🏼).
El post no se llama “Todas las formas de agregar un newsletter…”. Si buscan en la web probablemente encontrarán muchos otros servicios de newsletter que también podrían integrarse con blogdown
con algo de esfuerzo, y quizás algunos de ellos sean más sencillos o más potentes que los mostrados acá. Mi intención no es hacer una revisión exhaustiva de todos los métodos existentes para hacer un newsletter (eso sería un e-book, no un blogpost) sino que simplemente compartir con la comunidad los 3 métodos que encontré yo, con la idea de facilitar las cosas a quienes deseen hacer algo parecido.
El artículo no asume conocimiento previo sobre Buttondown o MailChimp, pero sí asume que tienes un buen manejo de blogdown
, es decir, que sabes como crear y personalizar un sitio web mediante ese paquete. Si ese no es tu caso, puedes encontrar una muy buena introducción al tema en el libro blogdown: Creating Websites with R Markdown.
Es un artículo “opinionado”. Cuando me propuse implementar un newsletter tenía una idea muy clara de lo que quería lograr, y por ende los métodos que encontré y que estoy compartiendo ahora están “sesgados” en esa dirección.
Y ya sin más que agregar, paso a mostrarles los tutoriales de cada uno de los métodos.
Método 2: newsletter automatizado con MailChimp, sin segmentación
Ahora veremos cómo implementar en MailChimp un newsletter que notifique automáticamente a tus suscriptores cada vez que publiques un nuevo blogpost, sin necesidad de escribir correos manualmente.
Debido a que MailChimp es más complejo de usar que Buttondown, intentaré mantener esta sección fácil de seguir enfocándome primero en el caso más básico: una única lista de distribución con todos los artículos del blog. Posteriormente (en el método 3) cubriré el caso de listas de distribución segmentadas (análogas a los tags de Buttondown) para enviar artículos de distintos idiomas o temas según las preferencias de tu audiencia.
Otra consideración con MailChimp es que el contenido del newsletter estará determinado por el feed RSS de tu blog. Si tu blog dispone de feeds RSS con contenido completo, entonces los suscriptores recibirán los posts completos en cada correo. Si no, los correos mostrarán solo un fragmento con el comienzo de cada artículo, y los suscriptores tendrán que ir al blog para leer el resto.
Paso a paso
Paso 1: Registrarse en MailChimp (y dar una dirección física)
Al igual que con Buttondown, el primer paso para usar MailChimp es crear una cuenta. Sin embargo, aquí aparece una consideración adicional: a causa del carácter más “profesional” de este servicio se nos solicita registrar una dirección física, debido a leyes anti-spam internacionales que obligan a dar tal información a quienes envíen correos masivos.
Esta dirección luego aparecerá por defecto al pie de los correos enviados y en algunos formularios del flujo de suscripción (por ejemplo, cuando un suscriptor cambia sus preferencias). Es posible ocultarla en algunos lugares, pero no en todos, por lo que siempre habrá páginas públicas que muestren la dirección registrada.
¿Qué hacer aquí? Es natural que nos cause incomodidad publicar un dato así de sensible, pero si no ingresamos nada en ese campo, MailChimp simplemente no nos deja seguir.
Las recomendaciones oficiales de MailChimp para evitar dar la dirección de nuestro hogar son las siguientes:
Dar la dirección de una universidad, en caso de ser estudiantes o estar afiliados a una institución académica.
Dar la dirección de nuestro lugar de trabajo o de un espacio de cowork.
Contratar una casilla postal y usar esa dirección como información de contacto.
En general, cualquier dirección donde podamos recibir y recoger correo físico será una opción válida que cumplirá con la legislación anti-spam.
Además de la disyuntiva de la dirección física, al registrarnos en MailChimp también debemos escoger el plan a contratar (aquí el gratuito debería ser suficiente si la lista de suscripción es pequeña), y un “Nombre del negocio”, que debería ser el nombre de nuestro sitio web o blog.
Finalmente (e igual que en Buttondown), se muestra una opción para importar direcciones de correo, útil si es que estamos migrando un newsletter existente. En caso contrario se puede omitir.
Y listo, con eso finaliza el registro y podemos avanzar al paso 2.
Paso 4: Implementar el formulario de suscripción
Mientras que en Buttondown el formulario de suscripción viene configurado por defecto y sin muchas opciones de personalización, en MailChimp se nos da la posibilidad de diseñarlo nosotros mismos. El proceso de diseño es relativamente sencillo ya que contamos con un editor visual: para acceder a él solo hay que ir a Audience > Signup forms y ahí hacer clic en “Form Builder”.
Lo primero que veremos dentro del editor visual será el formulario de suscripción predeterminado de MailChimp. Este incluye el campo de correo electrónico, que es el único estrictamente necesario, y también otros como fecha de nacimiento, nombre, y apellido. Depende de nosotros cuáles de estos campos adicionales conservar y cuáles eliminar.
Para eliminar un campo hay que seleccionarlo y luego presionar “Delete” en la parte inferior del panel de la derecha. Se nos mostrará una advertencia ya que eliminar el campo implica también eliminar los datos vinculados a este (en el gestor de audiencias de MailChimp). Si ya hay datos asociados a este campo puede convenir simplemente ocultarlo (opción también disponible en el panel de la derecha).
Además, se pueden agregar campos nuevos para recolectar información adicional. Esto lo usaremos en la siguiente sección para implementar los newsletters segmentados, pero para el newsletter simple nos basta y sobra con el campo de correo electrónico.
Una vez personalizado el formulario de suscripción tenemos 2 opciones para agregarlo a nuestro blog:
La más simple: usar el enlace directo al formulario de suscripción. Este enlace apunta a un formulario alojado en MailChimp que luce idéntico al diseñado/previsualizado en el editor visual. Este se puede obtener en la sección “Signup form URL” dentro del editor visual de formularios. Con esta URL se puede crear un link desde cualquier lugar visible del blog (por ej., la barra de navegación).
Incrustar el formulario en nuestro blog mediante código HTML. Esto es más complejo, pero evita que lectores tengan que ir a una URL externa para suscribirse, y además da al formulario una apariencia más consistente con el resto de nuestro blog.
Para implementar el formulario HTML incrustado hay que volver a Audience > Signup forms, pero ahora entrando en la sección “Embedded forms”.
En esta sección hay varias opciones de formularios incrustados, algunas con CSS y JavaScript, pero recomendaría usar la opción Unstyled: un formulario HTML básico que reduce la posibilidad de conflicto con el tema del blog.
Luego de seleccionar el formulario Unstyled recomiendo además desactivar la opción Include form title, porque el formulario se incrustará en una página Markdown que ya tiene su propio título.
Es importante mencionar que los campos de este formulario y los del formulario que diseñamos en el editor visual son los mismos. No estamos creando un formulario distinto, sino que usando otra forma de acceder a él.
Luego de configurar las opciones, hay que ir al final de la página y presionar el botón “Generate Embed Code”.
Se debe copiar el código que aparecerá ahí, y pegarlo en el archivo .md
correspondiente (aquel donde queremos que se muestre el formulario de suscripción). El código debe ir debajo de la cabecera YAML (en mi caso agregué también un pequeño texto explicativo entre la cabecera y el formulario).
Al hacer knit del blog, la página con el formulario de suscripción debería lucir así:
¡Y listo! Aquí ya tenemos un formulario de suscripción totalmente funcional, conectado al newsletter automatizado que creamos en la sección anterior.
Sin embargo, yo hice 2 ajustes adicionales, totalmente opcionales, que creo que mejoran la apariencia y funcionalidad del formulario.
Primero, cambiar el estilo del botón “Subscribe”. El por defecto no tiene mucha apariencia de botón, y además le falta un salto de línea que lo separe del campo Email Address. Para esto hay que buscar este código:
<input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button">
Y reemplazarlo por este código:
</br> <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" style="height:27px; width:100px; font-size:16px"></div>
Segundo, agregar al final de la página un link al formulario alojado en MailChimp (el enlace directo que vimos en la sección anterior). ¿Por qué? Por la eventualidad de alguien que desee suscribirse pero use algún bloqueador de contenido (por ej., uBlock Origin) que le impida visualizar el formulario incrustado. Con este link esas personas tendrán una forma alternativa de darse de alta en el newsletter.
Para hacer este cambio basta con agregar un texto con el link correspondiente después de que termine el código del formulario incrustado (es decir, después de esta línea: <!--End mc_embed_signup-->
).
Al hacer estos cambios la apariencia del formulario quedará así:
Método 3: newsletter automatizado y segmentado con MailChimp
Estamos llegando a la parte final de este tutorial. Si sigues leyendo hasta aquí es porque no te basta con tener un único newsletter con todo el contenido de tu blog, sino que deseas tener varias listas de distribución, segmentadas por idioma, por tema, o ambas.
Para no extender tanto este artículo (que ya esta siendo bastante largo), aquí no haré una explicación “paso por paso” como en secciones anteriores, sino que será una especie de anexo de la sección anterior (método 2), mostrando qué cosas hay que hacer distinto para obtener un newsletter segmentado (eso implica que si saltaste directo desde la introducción hasta acá, tendrás que subir y leer primero la parte del método 2, lo siento 😅).
Crear segmentos para cada lista de distribución
Otro ingrediente necesario para segmentar un newsletter es contar con las respectivos campos de datos o columnas en el gestor de audiencias de MailChimp, indicando a qué segmento pertenece cada suscriptor.
MailChimp ofrece varias formas de crear categorías de suscriptores, y una de ellas literalmente se llama Segmentos, pero la que en realidad nos conviene usar se llama Grupos (es confuso, lo sé), ya que está directamente vinculada con los formularios de suscripción.
Para crear grupos hay que ir a Audience > All Contacts, ahí seleccionar el menú drop-down “Manage contacts” y hacer clic en “Groups”.
Dentro de la sección “Groups” hay que presionar el botón “Create Groups”, a la derecha de la pantalla.
Ahí aparecerá la siguiente página de configuración, donde se debe ingresar el nombre (Group category) y posibles valores (Group names) del grupo a crear. También se debe elegir cómo aparecerán estas opciones dentro del formulario de suscripción (radio buttons, dropdown, checkboxes, etc).
Aquí existe mucha libertad para crear distintos arreglos, dependiendo de cómo queremos que sea el flujo para enrolarse en cada lista de distribución.
Para ejemplificar los pasos que vienen después, replicaré los mismos grupos que implementé en mi propio blog, pero ahora usando radio buttons para todos ellos:
Para implementar esta segmentación hay que dirigirse a la sección “Create groups” ya mencionada y crear los 2 tipos de grupos, escogiendo As radio buttons… para ambos.
Hecho esto, la sección de grupos debería verse así:
Ahora hay que disponibilizar un formulario que permita elegir entre estos grupos. Para esto, igual que antes, tenemos 2 opciones:
Usar un link directo a un formulario alojado en MailChimp. Los pasos para hacer esto son idénticos que los para el newsletter no segmentado.
Incrustar un formulario en nuestro blog. Aquí los pasos son muy similares a los del newsletter no segmentado, con una sola diferencia: dentro de Audience > Signup forms > Embedded Forms > Unstyled hay que asegurarse de activar la casilla “Show interest group fields”. Lo demás es todo igual: obtener el código HTML y pegarlo en un archivo .md
de nuestra preferencia, dentro del repositorio del blog.
En ambos casos los grupos creados en el paso anterior se agregarán automáticamente al formulario.
Si seguimos la opción del formulario incrustado, el resultado debería lucir así:
Aquí ya contamos con un formulario funcional que permitirá a los lectores escoger su propia lista de suscripción en base a idioma e intereses/contenido. Técnicamente no es necesario hacer nada más y podrían saltar de aquí a la sección final del tutorial pero si les gusta rizar el rizo como a mi pueden leer a continuación cómo hacer algunas mejoras al formulario incrustado.
Mezclado los ingredientes para crear un newsletter segmentado
Una vez que tenemos las URLs de los feeds RSS, los segmentos de audiencia, y el formulario que permite a los suscriptores escoger su segmento, es hora de combinar todo esto para echar a andar nuestro newsletter segmentado ✨.
Lo que hay que hacer aquí es simplemente repetir el proceso de crear un newsletter automatizado (explicado ya en la sección anterior) para cada uno de los segmentos, pero haciendo 2 cambios:
- Al momento de ingresar la URL del feed RSS, hay que usar la URL correspondiente al feed del tema/idioma específico para el segmento.
- En el paso de escoger la audiencia, en vez de seleccionar Entire audience hay que elegir Group or new segment. Al hacerlo aparecerá debajo un cuadro para indicar los criterios que definen la audiencia segmentada, y los grupos creados en pasos anteriores estarán dentro de los criterios disponibles. Por ejemplo, en este caso, se puede segmentar a los suscriptores según la opción de Idioma e Intereses/contenido que escogieron en el formulario de suscripción.
¡Y listo! El resto de los pasos son idénticos a los del newsletter sin segmentación. Solo recalcaría la necesidad de repetir el proceso con cada uno de los segmentos, configurando una automatización distinta para todos ellos.
Tu feedback es bienvenido. Si tienes comentarios sobre este artículo puedes enviármelos por correo.
Por cierto, luego de este artículo retomo la serie sobre el libro Causal Inference: The Mixtape. El próximo post estará dedicado al capítulo 4, acerca el modelo causal de Potential Outcomes.