Atención al cliente por SMS
La disponibilidad general de los SMS los convierte en una solución versátil para la atención al cliente. Los números de teléfono pueden imprimirse, leerse en voz alta y colocarse en sitios web, lo que permite a cualquier persona, en línea o no, relacionarse con su empresa.
Ofrecer atención al cliente a través de SMS es una forma de proporcionar un sistema completo de comunicación bidireccional a cualquiera que tenga un teléfono conectado a una red móvil.
En este tutorial
Construirás un sistema de atención al cliente por SMS utilizando las API y las bibliotecas de Vonage.
Para ello:
- Crear una aplicación web básica - crear una aplicación web básica con un enlace para abrir un ticket de soporte.
- Comprar un número - compra un número de teléfono de Vonage para enviar SMS y recibir SMS entrantes
- Procesar un SMS entrante - aceptar y procesar los SMS entrantes recibidos del cliente
- Enviar un SMS de respuesta con un número de ticket - responder con un nuevo número de ticket cuando se abre un ticket
Requisitos previos
Para que este tutorial funcione necesitarás:
- A Account de Vonage
- Un servidor web de acceso público para que Vonage pueda realizar solicitudes de webhook a tu aplicación. Si estás desarrollando localmente, debes utilizar una herramienta como ngrok
- El código fuente de este tutorial de https://github.com/Nexmo/ruby-sms-customer-support/
- Todos los clientes con sede en EE.UU. deben registrar una marca y una campaña para cumplir con 10 directrices DLC.
Una aplicación web básica
Para este tutorial se parte de una aplicación web con una página. El usuario podrá hacer clic en un enlace para abrir su aplicación SMS y solicitar soporte. Tu aplicación recogerá los SMS entrantes y abrirá un nuevo ticket. Finalmente, la aplicación responderá con un nuevo SMS al usuario confirmando su número de ticket.
Empieza por crear una aplicación básica.
La página estará en la raíz de nuestra aplicación y proporcionará un enlace a tu aplicación de SMS con algún texto pre-rellenado.
Añadir una primera 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>
Una vez hecho esto, se puede iniciar el servidor.
Arrancar el servidor
Comprar un número de teléfono
Antes de que la aplicación pueda recibir un SMS, debe alquilarse un número de teléfono de Vonage. Los Numbers de teléfono se pueden comprar en la sección salpicadero o directamente desde la línea de comandos con CLI de Vonage.
Por último, se debe informar a Vonage el punto final de webhook al que realizar una solicitud HTTP cuando se reciba un SMS entrante. Esto se puede hacer utilizando la función salpicadero o el CLI de Vonage.
Nota: Asegúrate de que tu servidor esté funcionando y disponible públicamente antes de intentar configurar una nueva URL de devolución de llamada para webhooks. Cuando configures un nuevo webhook, Vonage realizará una llamada a tu servidor para confirmar que está disponible.
Procesar un SMS entrante
Cuando el cliente envíe su SMS, Vonage lo recibirá a través de la red del operador de telefonía móvil. Posteriormente, Vonage hará un webhook a tu aplicación.
Este webhook contendrá el texto original enviado, el número de teléfono del que procede el mensaje y algunos parámetros más. Para más detalles, consulte la página Mensaje entrante documentación.
Su aplicación debe procesar el webhook entrante, extraer el texto y el número, abrir un nuevo ticket o actualizar un ticket existente. Si se trata de la primera solicitud de un cliente, la aplicación debe enviarle un mensaje de confirmación con su número de ticket.
Para ello, se guarda el mensaje entrante y se abre un nuevo ticket si el número no tiene ya un ticket abierto.
Añadir un ticket y un modelo de mensaje
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
Enviar un SMS de respuesta con un número de ticket
Para enviar la confirmación al SMS del cliente, agrega el SDK del servidor de Vonage a tu proyecto.
Gemfile
gem 'vonage'
gem 'dotenv-rails'
Nota: Para inicializar el SDK del Servidor necesitará pasarle su Clave y secreto de la API. Le recomendamos encarecidamente que no almacene las credenciales de la API en el código, sino que utilice variables de entorno.
Con la biblioteca inicializada, la aplicación ya puede enviar un SMS. Envíe una respuesta sólo si éste fue el primer mensaje en este 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
Conclusión
En este tutorial aprendiste a recibir un SMS desde el teléfono de un cliente y a enviarle una respuesta por SMS. Con estos fragmentos de código, ahora tienes una solución de soporte al cliente por SMS usando la SMS API de Vonage.
Obtener el código
Todo el código para este tutorial y más es disponible en GitHub.