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:
- Criar um aplicativo web básico - criar um aplicativo web básico com um link para abrir um ticket de suporte.
- Comprar um número - adquirir um número de telefone da Vonage para enviar SMS e receber SMS
- Processar um SMS recebido - receber e processar SMS recebidas do cliente
- Envie uma resposta por SMS com o número do ticket - responder com um novo número de ticket quando um ticket for aberto
Pré-requisitos
Para que este tutorial funcione, você precisará de:
- A Account da Vonage
- Um servidor web acessível ao público para que a Vonage possa enviar solicitações de webhook ao seu aplicativo. Se você estiver desenvolvendo localmente, deve usar uma ferramenta como ngrok
- O código-fonte deste tutorial, disponível em https://github.com/Nexmo/ruby-sms-customer-support/
- Todos os clientes sediados nos EUA devem registrar uma marca e uma campanha para cumprir as exigências de 10 diretrizes para DLCs.
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.
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
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
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.
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.
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
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.