Estudos de caso

Como a UserVoice resolveu seu problema de e-mail de entrada

Esta postagem foi escrita por Jonathan Novak, Chefe de Engenharia da UserVoice, onde ele acaba de comemorar seu 3º ano na empresa. A UserVoice é uma solução completa para gerenciar o engajamento do usuário, feedback, solicitações de helpdesk e bases de conhecimento. Mais de 120.000 organizações em mais de 170 países a utilizam para ouvir as vozes de seus usuários.

Há cerca de dois anos, rodávamos o sistema de tickets da UserVoice em nossos próprios servidores Postfix. Desde então, mudamos para o Mailgun tanto para e-mail de entrada quanto para e-mail de saída, e estamos muito felizes com isso. Aqui está nossa história e os problemas com os quais lidamos em relação ao e-mail de entrada.

E-mail de entrada antes do Mailgun

Nosso sistema de tickets inicial usava o Postfix para lidar com o e-mail de entrada (e de saída). O Postfix é um software muito sólido, mas um pouco desatualizado e, honestamente, sua documentação é um tanto confusa. Isso é agravado pelo fato de que não estávamos configurando o Postfix de uma maneira “normal”. A maioria dos tutoriais e exemplos mostra como configurar usuários isolados e caixas de correio dentro do Postfix, mas queríamos gerenciar tudo isso dentro do nosso aplicativo Rails.

Depois de fuçar muito, finalmente conseguimos fazê-lo funcionar. Fizemos um script shell ser executado para cada e-mail de entrada, que adicionava o e-mail ao Redis por meio de um job do Resque.

Dentro do job do resque, analisávamos o e-mail usando o TMail. Um problema que enfrentamos foi com as codificações. Nosso aplicativo Rails foi projetado para funcionar com suporte a codificação UTF-8 e Ruby 1.9.3, mas o TMail tem suporte a codificações legadas. Tentamos a nova gem Mail, mas ela falhava ao analisar um e-mail se houvesse algo “estranho” nele. O e-mail é como o velho oeste: vale tudo. Seu parser deve ser extremamente robusto, e a gem Mail (há ~2 anos) não era.

Depois de analisar o e-mail, precisamos analisar o corpo para separar as novas partes do e-mail do histórico/thread citada do e-mail. Nossa primeira versão era relativamente ingênua e basicamente apenas dividia em “Em xx/xx/xxxx, Alguém respondeu:”. Considerávamos então a parte superior como a nova porção da mensagem. Nosso sistema não lidava muito bem com respostas “inline”.

Se houvesse algum problema e precisássemos encontrar diagnósticos, tínhamos que acessar nossa máquina do postfix via ssh e usar o grep em nossos logs. Isso era aceitável, mas nossa equipe de suporte menos técnica não conseguia resolver problemas de forma autônoma.

Em termos de redundância ou escalabilidade, tínhamos apenas uma máquina. Felizmente ela nunca caiu, e felizmente não precisamos escalar.

Depois do Mailgun

O Mailgun resolve todos esses problemas.

Primeiro, não precisamos mais lutar com o Postfix. Ao configurar uma regra “catch_all” simples no Mailgun, todos os e-mails endereçados a *@*.uservoice.com são enviados aos nossos servidores via HTTP.

Esses e-mails vêm pré-analisados. Tudo que é enviado aos nossos servidores chega em UTF-8. Só isso já vale seu peso em ouro.

Além disso, o Mailgun separa automaticamente as novas partes da mensagem da thread. Elas são incluídas como um parâmetro chamado “stripped-text” no webhook, que é exatamente o que precisamos quando mostramos uma mensagem na UserVoice. Não precisamos mais manter uma coleção confusa de expressões regulares. Além disso, ele lida automaticamente com respostas “inline”.

Nossa equipe de suporte tem logs totalmente pesquisáveis de todas as mensagens de entrada e de saída. Chega de procurar mensagens com o grep, e a interface que o Mailgun fornece é completamente acessível à nossa Equipe de Suporte.

Finalmente, não precisamos mais nos preocupar em escalar nossos servidores, failover e coisas dessa natureza. O Mailgun cuida de tudo isso para nós.

A melhor parte do Mailgun

A equipe técnica do Mailgun e seu suporte são de primeira linha. Eles são sempre responsivos e úteis. Eles nos ajudaram e implementaram recursos essenciais quando precisávamos deles para fechar com certos clientes. Eles nos avisam proativamente sobre problemas (como spam para clientes) e possíveis problemas de configuração. Eles também nos ajudam a rastrear problemas quando nossos clientes têm dificuldades para encaminhar e-mail. Como uma empresa totalmente focada em melhorar o suporte ao cliente, nós gostamos disso!

“Conseguimos garantir melhor atendimento aos nossos profissionais de marketing usando o Mailgun. Eles contam conosco, e nós contamos com o Mailgun: e esse relacionamento nos ajuda a manter a credibilidade com nossos clientes.”
Photo of Paulius Milisauskas
Paulius Milisauskas Vice-presidente de Operações de Clientes
Mantenha-me informado! Receba ótimos recursos em sua caixa de entrada toda semana.
Envie-me a newsletter da Mailjet. Eu concordo expressamente em receber a newsletter e sei que posso cancelar a inscrição facilmente a qualquer momento.

Verifique sua caixa de entrada mensalmente para receber sua newsletter da Mailjet!