Estudios De Caso
Cómo resolvió UserVoice su problema con el email entrante
Hace unos dos años, ejecutábamos el sistema de tickets de UserVoice en nuestros propios servidores Postfix. Desde entonces, hemos cambiado a Mailgun tanto para el email entrante como para el email saliente, y estamos muy contentos con ello. Aquí tienes nuestra historia y los problemas a los que nos enfrentamos en relación con el email entrante.
El email entrante antes de Mailgun
Nuestro sistema de tickets inicial utilizaba Postfix para gestionar el email entrante (y saliente). Postfix es un software muy sólido, pero está un poco anticuado y, sinceramente, su documentación es un poco obtusa. A esto se suma el hecho de que no estábamos configurando Postfix de una manera «normal». La mayoría de los tutoriales y ejemplos te enseñan cómo configurar usuarios y buzones de forma discreta dentro de Postfix, pero nosotros queríamos gestionarlo todo dentro de nuestra aplicación Rails.
Después de trastear mucho, por fin conseguimos que funcionara. Hicimos que se ejecutara un script de shell para cada email entrante, que añadía el email a Redis a través de un trabajo de Resque.
Dentro del trabajo de Resque, analizábamos el email utilizando TMail. Un problema con el que nos encontramos fue con las codificaciones. Nuestra aplicación Rails está diseñada para funcionar con UTF-8 y soporte de codificación de Ruby 1.9.3, pero TMail cuenta con soporte de codificación heredado. Probamos la nueva gema Mail, pero no conseguía analizar un email si tenía algo «raro». El email es como el salvaje oeste: todo vale. Tu analizador debe ser extremadamente robusto, y la gema Mail (hace ~2 años) no lo era.
Después de analizar el email, tenemos que analizar el cuerpo para separar las partes nuevas del email del hilo o historial citado del email. Nuestra primera versión era relativamente ingenua y básicamente se dividía en «El xx/xx/xxxx, Alguien respondió:». Entonces considerábamos la parte superior como la porción nueva del mensaje. Nuestro sistema no gestionaba muy bien las respuestas en línea.
Si alguna vez había un problema y necesitábamos buscar un diagnóstico, teníamos que conectarnos por ssh a nuestra máquina de Postfix y buscar en nuestros registros con grep. Esto estaba bien, pero nuestro personal de asistencia menos técnico no podía resolver los problemas de forma autónoma.
En términos de redundancia o escalabilidad, teníamos una sola máquina. Por suerte, nunca se cayó, y por suerte no tuvimos que escalar.
Después de Mailgun
Mailgun aborda todos estos problemas.
En primer lugar, ya no tenemos que pelearnos con Postfix. Al configurar una sencilla regla «catch_all» en Mailgun, todos los emails dirigidos a *@*.uservoice.com se envían a nuestros servidores vía HTTP.
Estos emails vienen preanalizados. Todo lo que se envía a nuestros servidores llega en UTF-8. Solo eso ya vale su peso en oro.
Además de eso, Mailgun separa automáticamente las porciones nuevas del mensaje del hilo. Se incluyen como un parámetro llamado «stripped-text» en el webhook, que es exactamente lo que necesitamos cuando mostramos un mensaje en UserVoice. Ya no tenemos que mantener una desordenada colección de expresiones regulares. Además, gestiona automáticamente las respuestas en línea.
Nuestro equipo de asistencia tiene registros con capacidad de búsqueda de todos los mensajes entrantes y salientes. Se acabó buscar mensajes con grep, y la interfaz que ofrece Mailgun es completamente accesible para nuestro equipo de asistencia.
Por último, ya no tenemos que preocuparnos por escalar nuestros servidores, la conmutación por error y cosas de esa naturaleza. Mailgun se encarga de todo eso por nosotros.
La mejor parte de Mailgun
El equipo técnico de Mailgun y su asistencia son de primera. Siempre responden con rapidez y son de gran ayuda. Han cumplido e implementado funciones clave cuando las necesitábamos para cerrar ciertos clientes. Nos avisan de forma proactiva de los problemas (como el envío de spam a los clientes) y de posibles problemas de configuración. También nos ayudan a rastrear problemas cuando nuestros clientes tienen dificultades para reenviar un email. Como empresa que está completamente enfocada en hacer que la asistencia al cliente sea mejor, ¡eso nos gusta!
«Podemos garantizar un mejor servicio para nuestros profesionales del marketing al usar Mailgun. Ellos cuentan con nosotros y nosotros contamos con Mailgun: y esta relación nos ayuda a mantener la credibilidad ante nuestros clientes».