双方向SMSによる顧客エンゲージメント
プログラム可能なSMSは、一方通行の通知だけに役立つわけではありません。アウトバウンド通知とインバウンドメッセージを組み合わせれば、企業と顧客の間にチャットのようなやり取りが生まれます。
このチュートリアルでは
顧客の電話番号に配達通知を送信し、配達枠を変更したいときに顧客が返信する。
あなたのアプリのワークフローはこうだ:
そのためには
- Vonageバーチャル番号を設定する - バーチャル・ナンバーをレンタルし、インバウンド・メッセージ用のウェブフック・エンドポイントを設定する。
- 基本的なウェブアプリを作成する - 顧客の電話番号を収集するWebアプリを作成します。
- SMS通知を送信する - 顧客にSMSで配達通知を送信し、返信を要求する。
- 返信SMSを処理する - SMSの返信を処理し、確認する。
前提条件
このチュートリアルに必要なものは以下の通り:
- A Vonageアカウント
- VonageがあなたのアプリにWebhookリクエストを出せるように、一般にアクセス可能なWebサーバー。ローカルで開発する場合は のようなツールを使用する必要があります。 ングロク
- このチュートリアルのソースコード https://github.com/Nexmo/ruby-customer-engagement/.
- 米国を拠点とするすべての顧客は、以下を遵守するためにブランドとキャンペーンを登録する必要があります。 10 DLCガイドライン.
Vonageバーチャル番号を設定する
Vonageは、受信メッセージをVonageバーチャル番号に関連付けられたWebhookエンドポイントに転送します。
バーチャルナンバーの管理には 開発者API または Vonage CLI.以下の例では、Vonage CLIを使ってVonage番号をレンタルしています:
vonage numbers search US
✅ Searching for numbers
There is 1 number available for purchase in United States
Number Type Features Monthly Cost Setup Cost
----------- ------ --------------- ------------ ----------
16127779311 Mobile MMS, SMS, VOICE €0.90 €0.00
Use vonage numbers buy to purchase.
vonage numbers search US
✅ Searching for numbers
There is 1 number available for purchase in United States
Number Type Features Monthly Cost Setup Cost
----------- ------ --------------- ------------ ----------
16127779311 Mobile MMS, SMS, VOICE €0.90 €0.00
Use vonage numbers buy to purchase.
vonage numbers buy US 16127779311
✅ Searching for numbers
Are you sure you want to purchase the number 16127779311 for €0.90? [y/n] y
✅ Purchasing number
Number 16127779311 purchased
Number: 16127779311
Country: 🇺🇸 United States
Type: Mobile
Features: MMS, SMS, VOICE
Monthly Cost: €0.90
Setup Cost: €0.00
Linked Application ID: Not linked to any application
Voice Callback: Not Set
Voice Callback Value: Not Set
Voice Status Callback: Not Set
vonage numbers buy US 16127779311
✅ Searching for numbers
Are you sure you want to purchase the number 16127779311 for €0.90? [y/n] y
✅ Purchasing number
Number 16127779311 purchased
Number: 16127779311
Country: 🇺🇸 United States
Type: Mobile
Features: MMS, SMS, VOICE
Monthly Cost: €0.90
Setup Cost: €0.00
Linked Application ID: Not linked to any application
Voice Callback: Not Set
Voice Callback Value: Not Set
Voice Status Callback: Not Set
次に、仮想番号を次のWebhookエンドポイントに関連付けます。 インバウンドSMSを扱う:
vonage numbers update US 16127779311 `
--voice-status-callback='https://example.com/voice/status' `
--voice-callback-value='https://example.com/voice/callback' `
--voice-callback-type='sip'
Searching for number to update [======================================] 1/1 100%
Number updated successfully
Number: 16127779311
Country: 🇺🇸 United States
Type: Mobile
Features: MMS, SMS, VOICE
Monthly Cost: €0.90
Setup Cost: €0.00
Linked Application ID: Not linked to any application
Voice Callback: sip
Voice Callback Value: https://example.com/voice/callback
Voice Status Callback:https://example.com/voice/status
vonage numbers update US 16127779311 ^
--voice-status-callback='https://example.com/voice/status' ^
--voice-callback-value='https://example.com/voice/callback' ^
--voice-callback-type='sip'
Searching for number to update [======================================] 1/1 100%
Number updated successfully
Number: 16127779311
Country: 🇺🇸 United States
Type: Mobile
Features: MMS, SMS, VOICE
Monthly Cost: €0.90
Setup Cost: €0.00
Linked Application ID: Not linked to any application
Voice Callback: sip
Voice Callback Value: https://example.com/voice/callback
Voice Status Callback:https://example.com/voice/status
注ウェブフック・エンドポイントをバーチャル番号に関連付ける前に、サーバーが稼動しており、一般に利用可能であることを確認してください。 が公開されていることを確認してください。コンフィギュレーションが成功した場合、VonageはWebhookエンドポイントから200 OKレスポンスを受信する必要があります。もし ローカルで開発している場合は、次のようなツールを使用してください。 ングロク ローカル・ウェブ・サーバーをインターネットに公開する。
これでバーチャルナンバーの設定が完了し、SMS配信通知を送信できるようになりました。
基本的なウェブアプリを作成する
用途 シナトラ を使い、単一ページのウェブ・アプリを作成する:
ジェムファイル
source 'https://rubygems.org'
# our web server
gem 'sinatra'
app.rb
# web server and flash messages
require 'sinatra'
# load environment variables
# from .env file
require 'dotenv'
Dotenv.load
# Index
# - collects a phone number
#
get '/' do
erb :index
end
通知SMSを送信する電話番号を収集するHTMLフォームを追加します:
views/index.erb
<form action="/notify" method="post">
<div class="field">
<label for="number">
Phone number
</label>
<input type="text" name="number">
</div>
<div class="actions">
<input type="submit" value="Notify">
</div>
</form>
フォームは電話番号を E.164 SMS APIが期待するフォーマット:
SMS通知を送信する
このチュートリアルでは、SMSを送信するために Ruby用VonageサーバーSDK をあなたの アプリに
ジェムファイル
# the nexmo library
gem 'vonage'
# a way to load environment
# variables
gem 'dotenv'
Vonage APIを使用する 鍵と秘密 でクライアントを初期化する:
app.rb
# Vonage library
require 'vonage'
vonage = Vonage::Client.new(
api_key: ENV['VONAGE_API_KEY'],
api_secret: ENV['VONAGE_API_SECRET']
)
注コード内にAPI認証情報を保存せず、環境変数を使用してください。
通知SMSへの返信を受け取るには、以下の手順でバーチャル・ナンバーを送信メッセージのSenderIDとして設定します。 にリクエストする。 SMS API:
app.rb
# Notify
# - Send the user their delivery
# notification, asking them
# to respond back if they
# want to make any changes
#
post '/notify' do
notification = "Your delivery is scheduled for tomorrow between " +
"8am and 2pm. If you wish to change the delivery date please " +
"reply by typing 1 (tomorrow), 2 (Thursday) or 3 (deliver to"
"post office) below.<br/><br/>";
vonage.sms.send(
from: ENV['VONAGE_NUMBER'],
to: params['number'],
text: notification
)
"Notification sent to #{params['number']}"
end
このSMSが顧客に受信されたことを確認するには、以下の項目をチェックしてください。 納品書.このチュートリアルでは領収書のVerifyは行いません。
返信SMSを処理する
あなたの顧客があなたの通知SMSに返信すると、Vonageは次のように転送します。 インバウンドメッセージ を返します。 仮想番号に関連付けられたウェブフック・エンドポイントへ。
このチュートリアルアプリでは、受信した Webhook を処理し、テキストと Numbers を抽出して、確認メッセージを送信します。 を送信します。
app.rb
# Receive incoming message
#
# - Receives incoming SMS
# message, stores it, and
# notifies sender
#
get '/update' do
choice = params['text']
number = params['msisdn']
# You can store or validate
# the choice made here
message = "Thank you for picking option #{choice}. " +
"Your delivery is now fully scheduled in."
vonage.sms.send(
from: ENV['VONAGE_NUMBER'],
to: number,
text: message
)
body ''
end
顧客の入力を保存し、検証することは、このチュートリアルの範囲を超えています。
先ほど受信したSMSに返信してください。アプリによって処理され、数秒以内に以下のような確認メールが届くはずです。 数秒以内にあなたの選択した
結論
あなたのアプリでSMSを送受信するのはとても簡単です。数行のコードで、SMS APIを使って顧客の電話にSMSを送信し、返信を処理し、確認の返信をすることができます。 SMS APIで顧客の電話にSMSを送信し、返信を処理し、確認で応答しています。
コードを取得する
このチュートリアルのコードはすべて 顧客エンゲージメントのための双方向SMS GitHub Repo.