Support client SMS

La disponibilité générale des SMS en fait une solution polyvalente pour l'assistance à la clientèle. Les numéros de téléphone peuvent être imprimés, lus et placés sur des sites web, ce qui permet à toute personne en ligne ou hors ligne d'entrer en contact avec votre entreprise.

Fournir une assistance à la clientèle par SMS est un moyen d'offrir un système de communication bidirectionnel complet à toute personne disposant d'un téléphone connecté à un réseau mobile.

Dans ce tutoriel

Vous construirez un système d'assistance à la clientèle par SMS en utilisant les API et les bibliothèques de Vonage.

Pour ce faire :

Conditions préalables

Pour que ce tutoriel fonctionne, vous aurez besoin de :

Une application Web de base

Pour ce tutoriel, commencez par une application web avec une seule page. L'utilisateur pourra cliquer sur un lien pour ouvrir son application SMS et demander de l'aide. Votre application collectera les SMS entrants et ouvrira un nouveau ticket. Enfin, l'application répondra par un nouveau SMS à l'utilisateur en confirmant son numéro de ticket.

AppVonagePhoneAppVonagePhoneSMS 1WebhookSMS RequestSMS 2

Commencez par créer une application de base.

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

La page sera à la racine de notre application et fournira un lien vers votre application SMS avec un texte pré-rempli.

Ajouter une première page

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>

Une fois ces éléments en place, le serveur peut être démarré.

Démarrage du serveur

rails server

Acheter un numéro de téléphone

Avant que l'application puisse recevoir un SMS, un numéro de téléphone Vonage doit être loué. Les numéros de téléphone peuvent être achetés à partir de la page d'accueil de tableau de bord ou directement à partir de la ligne de commande avec l'option CLI Vonage.

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

Enfin, Vonage doit être informé du point de terminaison du webhook auquel adresser une requête HTTP lorsqu'un SMS entrant est reçu. Cela peut se faire à l'aide de l'option tableau de bord ou le CLI Vonage.

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

Note: Assurez-vous que votre serveur fonctionne et qu'il est publiquement disponible avant d'essayer de configurer une nouvelle URL de rappel pour les webhooks. Lorsque vous configurez un nouveau webhook, Vonage appelle votre serveur pour confirmer qu'il est disponible.

Traiter un SMS entrant

Lorsque le client envoie son SMS, celui-ci est reçu par Vonage via le réseau de l'opérateur mobile. Vonage créera ensuite un webhook vers votre application.

Ce webhook contiendra le texte original envoyé, le numéro de téléphone d'où provient le message et quelques autres paramètres. Pour plus de détails, voir la page Message entrant documentation.

Votre application doit traiter le webhook entrant, extraire le texte et le numéro, ouvrir un nouveau ticket ou mettre à jour un ticket existant. S'il s'agit de la première demande d'un client, l'application doit lui envoyer un message de confirmation avec son numéro de ticket.

Pour ce faire, le message entrant est enregistré et un nouveau ticket est ouvert si le numéro n'a pas déjà un ticket ouvert.

Ajouter un ticket et un modèle de message

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

Envoyer un SMS de réponse avec un numéro de ticket

Pour envoyer la confirmation au SMS du client, ajoutez le SDK du serveur Vonage à votre projet.

Fichier de gemmes

gem 'vonage'
gem 'dotenv-rails'

Note: Pour initialiser le SDK Serveur, vous devez lui transmettre votre fichier Clé et secret de l'API. Nous vous recommandons vivement de ne pas stocker vos identifiants d'API dans votre code, mais d'utiliser des variables d'environnement.

Une fois la bibliothèque initialisée, l'application peut maintenant envoyer un SMS. N'envoyez une réponse que s'il s'agit du premier message sur ce 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

Conclusion

Dans ce tutoriel, vous avez appris à recevoir un SMS du téléphone d'un client et à lui envoyer un SMS de réponse. Grâce à ces extraits de code, vous disposez maintenant d'une solution d'assistance clientèle par SMS utilisant l'API SMS de Vonage.

Obtenir le code

Tout le code pour ce tutoriel et plus encore est disponible sur GitHub.

Ressources