Estudios De Caso

Cómo AdRoll envía y rastrea emails en su aplicación Ruby usando la API de Mailgun

El artículo de hoy lo ha escrito Peter Clark, CEO de userfox (ahora AdRoll), una nueva e increíble startup que está cambiando la forma en que las empresas se comunican con sus clientes por email. Lanzaron hace apenas unas semanas, como quizás hayas visto en Hacker News. En el artículo de hoy, Peter explica qué hace userfox, cómo han diseñado la arquitectura de su aplicación y un poco sobre cómo están usando Mailgun, ¡incluyendo el código para hacerlo! Que lo disfrutes.

Hola, soy Peter, CEO de userfox. userfox ayuda a las empresas a enviar emails de bienvenida mejores y más eficaces. Hoy en día, la mayoría de las empresas dan la bienvenida a los nuevos clientes con un único email de «¡bienvenido a mi producto!».

El problema con esto es que la gente está ocupada. Olvidas que te registraste en servicios, solo recuerdas los servicios que necesitas o te encantan, y eso generalmente no ocurre en el instante en que te registras.

Así que userfox envía una secuencia de emails: cuando te registras, unos días después, una semana después, más adelante en el mes, y así sucesivamente. La industria llama a esto una secuencia de «goteo». Estos emails contienen consejos y trucos geniales sobre tu producto, anécdotas sobre quiénes son tus clientes y por qué les encantas, y demás.

Hacemos esto de forma muy sencilla. De hecho, es mucho más rápido integrar userfox con tu aplicación que enviar tu único y cutre email de bienvenida. Es obvio, ¿verdad? simplemente pega un único fragmento de javascript en tu pie de página y listo.

Cómo diseñamos la arquitectura de nuestra aplicación

Framework: Ruby on Rails

Automatización de emails e infraestructura: Mailgun

Base de datos: MongoHQ para MongoDB

Pruebas: Citrus

Cómo usamos Mailgun

Somos una empresa de email marketing. No somos una empresa de infraestructura, así que confiamos en Mailgun para hacer cosas que de otro modo tendríamos que crear. Mailgun entrega todos los emails de nuestros clientes. La API de analíticas de Mailgun impulsa las analíticas de userfox. ¿Por qué deberíamos reinventar la rueda con estas cosas, cuando Mailgun hace un trabajo tan genial? Además, ¿has intentado gestionar un servidor de email? Mailgun hace el trabajo de Dios….

Nuestra implementación básica usando Mailgun se ve así. Construimos los datos del mensaje juntos:

                                

                                    data = {:to => email, :from => get_from(trigger), :subject => get_subject(info, email,  
trigger), :text => "#{text}", :html => "#{html}", "h:X-Mailgun-Variables" => "{"id": "" + id + ""}"}
                                
                            

Y luego lo ponemos en cola en un trabajo a través de un post REST. Mailgun permite enviar a través de SMTP, pero preferimos la flexibilidad y velocidad que conlleva usar la API. Nuestro post se ve así.

                                

                                       RestClient.post Userfox::Application.config.mailgun_endpoint + '/' + domain + '/messages', data, :Authorization => Userfox::Application.config.mailgun_auth {  
      |response, request, result|
      return response
    }
                                
                            

Mailgun es muy potente a la hora de enviar mensajes. Pero también ejecutamos todas nuestras analíticas a través de Mailgun. Cuando se envía un mensaje, queremos saber que se ha entregado y qué ha pasado con él. ¿Se ha abierto, se ha hecho clic en él o ha sido reportado como spam? ¿El usuario se dio de baja (por supuesto, esto nunca pasaría)? Todos estos datos se pueden enviar a tu aplicación con webhooks. Por ejemplo, si quisieras publicar en tu base de datos cuando un usuario hace clic en un enlace, podrías hacer esto:

                                

                                    AdRoll Code 2require 'openssl'  
def verify(api_key, token, timestamp, signature)  
  return signature == OpenSSL::HMAC.hexdigest(
                          OpenSSL::Digest::Digest.new('sha256'),
                          api_key,
                          '%s%s' % [timestamp, token])
end class PostsController  "Name", :title => "Title",
                         :content => "#{user} clicked on #{link}").save
      end
    end
    render :text => "OK"
  end
end
                                
                            

Esto te diría que un usuario ha hecho clic en un email y te daría información sobre quién hizo clic. Puedes hacer esto para clics, aperturas, bajas, quejas por spam, rebotes, fallos y entregas.

Si tienes un negocio que necesita comunicarse con los clientes, prueba con userfox . Hemos hecho el trabajo duro por ti.

«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».
Photo of Paulius Milisauskas
Paulius Milisauskas Vicepresidente de Operaciones de Cliente
¡Mantenme informado/a! Recibe excelentes recursos en tu bandeja de entrada cada semana.
Envíame la newsletter de Mailjet. Acepto expresamente recibir la newsletter y sé que puedo darme de baja fácilmente en cualquier momento.

¡Consulta mensualmente tu bandeja de entrada para recibir la newsletter de Mailjet!