Études de cas

Comment AdRoll envoie & suit les emails dans son application Ruby à l’aide de l’API de Mailgun

L'article d'aujourd'hui est rédigé par Peter Clark, PDG d'userfox (désormais AdRoll), une formidable nouvelle start-up qui change la façon dont les entreprises communiquent avec leurs clients par email. Ils ont été lancés il y a quelques semaines à peine, comme vous l'avez peut-être vu sur Hacker News. Dans l'article d'aujourd'hui, Peter explique ce que fait userfox, comment ils ont conçu leur application, et un peu comment ils utilisent Mailgun, y compris le code pour le faire ! Bonne lecture.

Bonjour, je suis Peter, PDG d’userfox. userfox aide les entreprises à envoyer des emails de bienvenue meilleurs et plus efficaces. Aujourd’hui, la plupart des entreprises accueillent leurs nouveaux clients avec un unique email du type « bienvenue sur mon produit ! ».

Le problème avec cela, c’est que les gens sont occupés. Vous oubliez que vous vous êtes inscrit à des services, vous ne vous souvenez que des services dont vous avez besoin ou que vous aimez, et cela ne se produit généralement pas à la seconde où vous vous inscrivez.

userfox envoie donc une séquence d’emails : lors de votre inscription, quelques jours plus tard, une semaine plus tard, plus tard dans le mois, etc. L’industrie appelle cela une séquence « goutte-à-goutte ». Ces emails contiennent des trucs et astuces sympas sur votre produit, des anecdotes sur l’identité de vos clients et pourquoi ils vous aiment, et ainsi de suite.

Nous faisons cela très simplement. En fait, il est beaucoup plus rapide d’intégrer userfox à votre application que d’envoyer votre unique email de bienvenue médiocre. C’est une évidence, n’est-ce pas ? collez simplement un extrait de javascript dans votre pied de page – et voilà.

Comment nous avons conçu notre application

Framework : Ruby on Rails

Automatisation des emails & infrastructure : Mailgun

Base de données : MongoHQ pour MongoDB

Tests : Citrus

Comment nous utilisons Mailgun

Nous sommes une entreprise d’email marketing. Nous ne sommes pas une entreprise d’infrastructure, c’est pourquoi nous comptons sur Mailgun pour faire des choses que nous aurions dû construire autrement. Mailgun délivre tous les emails de nos clients. L’API de statistiques de Mailgun alimente les statistiques d’userfox. Pourquoi réinventer la roue avec ces éléments, alors que Mailgun fait un travail si génial ? D’ailleurs, avez-vous déjà essayé de gérer un serveur d’email ? Mailgun fait un travail divin….

Notre implémentation de base utilisant Mailgun ressemble à ceci. Nous construisons les données du message ensemble :

                                

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

Et ensuite nous le mettons en file d’attente dans une tâche via une requête POST REST. Mailgun permet l’envoi via SMTP mais nous préférons la flexibilité et la rapidité qui accompagnent l’utilisation de l’API. Notre requête POST ressemble à ceci.

                                

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

Mailgun est vraiment puissant lorsqu’il s’agit d’envoyer des messages. Mais nous gérons également toutes nos statistiques à partir de Mailgun. Lorsqu’un message est envoyé, nous voulons savoir s’il a été livré et ce qu’il est devenu. A-t-il été ouvert, cliqué, signalé comme spam ? L’utilisateur a-t-il choisi de se désinscrire (bien sûr, cela n’arriverait jamais) ? Toutes ces données peuvent être envoyées à votre application avec des webhooks. Par exemple, si vous souhaitiez publier dans votre base de données lorsqu’un utilisateur clique sur un lien, vous pourriez procéder ainsi :

                                

                                    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
                                
                            

Cela vous indiquerait qu’un utilisateur a cliqué sur un email et vous donnerait des informations sur l’identité de la personne qui a cliqué. Vous pouvez faire cela pour les clics, les ouvertures, les désinscriptions, les plaintes pour spam, les rebonds, les échecs et les livraisons.

Si vous avez une entreprise qui doit communiquer avec ses clients, essayez  userfox . Nous avons fait le plus dur pour vous.

« L’utilisation de Mailgun nous permet d’assurer un meilleur service à nos marketeurs. Ils comptent sur nous, et nous comptons sur Mailgun : et cette relation nous aide à maintenir notre crédibilité auprès de nos clients. »
Photo of Paulius Milisauskas
Paulius Milisauskas Vice-président des opérations clients
Tenez-moi au courant ! Recevez d’excellentes ressources dans votre boîte de réception chaque semaine.
Envoyez-moi la newsletter Mailjet. J’accepte expressément de recevoir la newsletter et je sais que je peux facilement me désabonner à tout moment.

Découvrez la newsletter de Mailjet chaque mois dans votre boîte de réception.