Suporte ao Cliente por SMS

A ampla disponibilidade do SMS torna essa solução versátil para o atendimento ao cliente. Os números de telefone podem ser impressos, lidos em voz alta e publicados em sites, permitindo que qualquer pessoa, seja online ou offline, entre em contato com a sua empresa.

Oferecer atendimento ao cliente por SMS é uma forma de proporcionar um sistema completo de comunicação bidirecional a qualquer pessoa que tenha um celular conectado a uma rede móvel.

Neste tutorial

Você desenvolverá um sistema de atendimento ao cliente por SMS utilizando as APIs e bibliotecas da Vonage.

Para fazer isso:

Pré-requisitos

Para que este tutorial funcione, você precisará de:

Um aplicativo Web básico

Para este tutorial, comece com um aplicativo web de uma única página. O usuário poderá clicar em um link para abrir seu aplicativo de SMS e solicitar suporte. Seu aplicativo receberá a mensagem SMS recebida e abrirá um novo ticket. Por fim, o aplicativo responderá com uma nova mensagem SMS ao usuário, confirmando o número do ticket.

Comece criando um aplicativo básico.

rails new customer-support cd customer-support rake db:create db:migrate

A página ficará na raiz do nosso aplicativo e fornecerá um link para o seu aplicativo de SMS com um texto já preenchido.

Inserindo uma primeira página

rails g controller pages index

app/views/pages/index.html.erb

<h1>ACME Support</h1>

<p>
  <a href="sms://<%= ENV['VONAGE_NUMBER'] %>?body=Hi ACME, I'd like some help with: " class='button'>
    Get support via SMS
  </a>
</p>

Com isso configurado, o servidor pode ser iniciado.

Iniciando o servidor

rails server

Comprar um número de telefone

Antes que o aplicativo possa receber uma mensagem SMS, é necessário alugar um número de telefone da Vonage. Os números de telefone podem ser adquiridos na painel de controle ou diretamente da linha de comando com o CLI da Vonage.

vonage numbers:buy US --number=15555555555 Number 15555555555 purchased.

Por fim, é preciso informar à Vonage o endpoint do webhook para o qual deve ser enviada uma solicitação HTTP quando for recebida uma mensagem SMS de entrada. Isso pode ser feito usando o painel de controle ou o CLI da Vonage.

vonage number:sms 15555555555 http://[your.domain.com]/support Number updated

Nota: Certifique-se de que seu servidor esteja em funcionamento e disponível publicamente antes de tentar configurar um novo URL de retorno de chamada para webhooks. Ao configurar um novo webhook, a Vonage fará uma chamada para o seu servidor a fim de confirmar se ele está disponível.

Processar um SMS recebido

Quando o cliente enviar sua mensagem SMS, ela será recebida pela Vonage por meio da rede da operadora de celular. Em seguida, a Vonage enviará um webhook para o seu aplicativo.

Este webhook conterá o texto original enviado, o número de telefone de origem da mensagem e mais alguns parâmetros. Para mais detalhes, consulte o Mensagem recebida documentação.

Seu aplicativo deve processar o webhook recebido, extrair o texto e o número, abrir um novo ticket ou atualizar um ticket existente. Se esta for a primeira solicitação do cliente, o aplicativo deve enviar uma mensagem de confirmação de volta ao cliente com o número do ticket.

Isso é feito salvando a mensagem recebida e abrindo um novo ticket, caso ainda não haja um ticket aberto para esse número.

Adicionar um modelo de ticket e um modelo de mensagem

rails g controller support index rails g model Ticket number rails g model Message text ticket:references rake db:migrate

app/controllers/support_controller.rb

class SupportController < ApplicationController
  def index
    save_message
    send_response
    render nothing: true
  end

  private

  def ticket
    @ticket ||= Ticket.where(
      number: params[:msisdn]
    ).first_or_create
  end

  def save_message
    message = Message.create(
      text: params[:text],
      ticket: ticket
    )
  end

Envie uma resposta por SMS com o número do ticket

Para enviar a confirmação por SMS ao cliente, adicione o SDK do servidor da Vonage ao seu projeto.

Gemfile

gem 'vonage'
gem 'dotenv-rails'

Nota: Para inicializar o SDK do servidor, você precisará passar a ele o seu Chave e segredo da API. Recomendamos enfaticamente que você não armazene suas credenciais de API no código, mas que utilize variáveis de ambiente.

Com a biblioteca inicializada, o aplicativo agora pode enviar um SMS. Envie uma resposta apenas se esta for a primeira mensagem deste ticket.

def send_response
  return if ticket.messages.count > 1

  client = Vonage::Client.new
  result = client.sms.send(
    from: ENV['VONAGE_NUMBER'],
    to: ticket.number,
    text: "Dear customer, your support" \
          "request has been registered. " \
          "Your ticket number is #{ticket.id}. " \
          "We intend to get back to any " \
          "support requests within 24h."
  )
end

Conclusão

Neste tutorial, você aprendeu a receber uma mensagem SMS do celular de um cliente e a enviar uma resposta por SMS para ele. Com esses trechos de código, você agora dispõe de uma solução de atendimento ao cliente por SMS utilizando a SMS API da Vonage.

Obter o código

Todo o código deste tutorial e muito mais está em disponível no GitHub.

Recursos