2020.01.14
『Twilio』の紹介と、Salesforceから簡単にSMS送受信ができる『Twilio for Salesforce』の紹介
はじめに
はじめまして、テラスカイでエンジニアをしている上川と申します。
最近、Salesforceを導入されているお客様の中で、簡単にSMS送信を実現したいという要望をお聞きします。
テラスカイと言えば、Salesforceに強いというイメージですが、最近はTwilioというクラウドサービスも扱い始めました。
今回はそのTwilioを使用して簡単にSalesforceでSMS送信を実現する方法を紹介します。
最近、Salesforceを導入されているお客様の中で、簡単にSMS送信を実現したいという要望をお聞きします。
テラスカイと言えば、Salesforceに強いというイメージですが、最近はTwilioというクラウドサービスも扱い始めました。
今回はそのTwilioを使用して簡単にSalesforceでSMS送信を実現する方法を紹介します。
『Twilio』とは?
Twilioについて、『電話やSMSをAPIで簡単に組み込めるサービス』と認識している方も多いのではないでしょうか?
もちろん、それらの機能もありますが、それだけではありません。
はじめに、Twilioについて紹介したいと思います。
もちろん、それらの機能もありますが、それだけではありません。
はじめに、Twilioについて紹介したいと思います。
Twilio社について
Twilio社は2008年にアメリカで生まれた会社です。
また、2019年1月にTwilio Japanが設立されています。
また、2019年1月にTwilio Japanが設立されています。
Twilio Japan
Twilioはインターネットと世界の電話回線の接続を可能にし、企業はモバイルアプリやWebからTwilioのAPIを通じて通話やメッセージの交換が可能になりビジネスに活用できます。
Twilioのサービス全体像
Twilioは、CPaaSと呼ばれるクラウドコミュニケーションプラットフォームを提供しています。
提供しているサービスはたくさんありますが具体的には、以下のようなものです。
・プログラマブルな次世代クラウドコンタクトセンター
(Twilio Flex)
・サーバーレス開発
(Twilio Function)
・認証サービス、人工知能、スキルベースルーティング、フロー
(Authy、AutoPilot、TaskRouter、Studio等)
・チャネルAPI
(電話、SMS、ビデオ、Chat、SNSメッセンジャー(LINE/WhatsApp/Facebook Messenger)、メール、Fax等)
・スーパーネットワーク
(グローバルネットワークと9地域27カ所のデータセンターをベースとしてネットワークが構築されており、180の国と地域で電話番号を利用でき、600億件のインタラクション数をさばいている)
一番下のスーパーネットワークを基盤として、各種チャネルAPIを提供しており、数行のコードで簡単にアプリに電話などの機能を組み込むことが出来ます。
Studioは受電時やメッセージ受信時に行う動作(IVRの設定等)をフローで視覚的に定義できます。
Twilio Functionはサーバレスの開発環境です。
これらを統合したクラウドコンタクトセンターがTwilio Flexです。
Twilio FlexはjavaScriptライブラリであるReactで柔軟に画面のカスタマイズが可能です。なので、タスクの種別やチャネルの種類によって、オペレータとって最適な画面を作成することが可能です。(ここについては後日詳細な記事を書きたいと思います。)
提供しているサービスはたくさんありますが具体的には、以下のようなものです。
・プログラマブルな次世代クラウドコンタクトセンター
(Twilio Flex)
・サーバーレス開発
(Twilio Function)
・認証サービス、人工知能、スキルベースルーティング、フロー
(Authy、AutoPilot、TaskRouter、Studio等)
・チャネルAPI
(電話、SMS、ビデオ、Chat、SNSメッセンジャー(LINE/WhatsApp/Facebook Messenger)、メール、Fax等)
・スーパーネットワーク
(グローバルネットワークと9地域27カ所のデータセンターをベースとしてネットワークが構築されており、180の国と地域で電話番号を利用でき、600億件のインタラクション数をさばいている)
一番下のスーパーネットワークを基盤として、各種チャネルAPIを提供しており、数行のコードで簡単にアプリに電話などの機能を組み込むことが出来ます。
Studioは受電時やメッセージ受信時に行う動作(IVRの設定等)をフローで視覚的に定義できます。
Twilio Functionはサーバレスの開発環境です。
これらを統合したクラウドコンタクトセンターがTwilio Flexです。
Twilio FlexはjavaScriptライブラリであるReactで柔軟に画面のカスタマイズが可能です。なので、タスクの種別やチャネルの種類によって、オペレータとって最適な画面を作成することが可能です。(ここについては後日詳細な記事を書きたいと思います。)
これらを組み合わせた例
例えば、顧客から受電した時にCRMから情報を取得し、オペレーターがその情報を参照できる例を考えてみます。
①まずTwilioで購入した電話番号に電話がかかってくるとします。
②Twilio電話番号に対して、受電時に特定のStudioを起動するように設定しておくことで、Studio内のフローに入ります。
③Studio内で定義したIVRで条件分岐し、Twilio Functionで外部APIを叩いてCRMから顧客情報を取得します。
④スキルベースルーティングで最適なオペレーターにタスクを振り分けます。
⑤タスクを受け取ったオペレータはTwilio Flex上で、取得した顧客情報とカスタマイズされた最適な画面を見ながら作業することが出来ます。
①まずTwilioで購入した電話番号に電話がかかってくるとします。
②Twilio電話番号に対して、受電時に特定のStudioを起動するように設定しておくことで、Studio内のフローに入ります。
③Studio内で定義したIVRで条件分岐し、Twilio Functionで外部APIを叩いてCRMから顧客情報を取得します。
④スキルベースルーティングで最適なオペレーターにタスクを振り分けます。
⑤タスクを受け取ったオペレータはTwilio Flex上で、取得した顧客情報とカスタマイズされた最適な画面を見ながら作業することが出来ます。
押さえておくべき3つの点
・Twilioは電話やSMSのAPIだけではなく、様々なコミュニケーションに関するソリューションを提供している。
・それらの部品を組み合わせることで自由で柔軟なカスタマイズが可能である。
・Twilioのソリューションを統合したTwilio Flexという柔軟にカスタマイズ可能なクラウドコンタクトセンターも提供されている。
・それらの部品を組み合わせることで自由で柔軟なカスタマイズが可能である。
・Twilioのソリューションを統合したTwilio Flexという柔軟にカスタマイズ可能なクラウドコンタクトセンターも提供されている。
『Twilio for Salesforce』とは?
さて、本題に入りましょう(笑)
『Twilio for Saleforce』とは、Salesforceに簡単にSMS等のTwilio機能を組み込める、Twilio社が提供しているAppExchangeです。
『Twilio for Saleforce』とは、Salesforceに簡単にSMS等のTwilio機能を組み込める、Twilio社が提供しているAppExchangeです。
Twilio for Salesforce: Send and Receive SMS in Minutes - Twilio - AppExchange
Easily add text messaging to Salesforce with the global leader in cloud communications. Use Salesforce data and components you know to customize SMS messaging and report on results.####Learn more: https://www.twilio.com/salesforce
『Twilio for Salesforce』でできること
・プロセスビルダーからSMS送信やTwilio Studioを呼び出せる
・キャンペーンに関連付けられたリードおよび連絡先に、カスタマイズされたSMSメッセージを送信
・Salesforceレコードページから連絡先と1対1でメッセージ(Chat形式のコンポーネントを配置できる)
・Twilio REST APIをApexで呼び出せる(電話とかSMS送信とかを自由に組み込めるみたい)
・キャンペーンに関連付けられたリードおよび連絡先に、カスタマイズされたSMSメッセージを送信
・Salesforceレコードページから連絡先と1対1でメッセージ(Chat形式のコンポーネントを配置できる)
・Twilio REST APIをApexで呼び出せる(電話とかSMS送信とかを自由に組み込めるみたい)
チュートリアル
基本的には以下のドキュメントをみながら設定していくことで簡単に上記のことができます。
プロセスビルダーからSMS送信
流れ(チュートリアルの通りになります)
・Salesforceの組織にAppExchange「Twilio for Salesforce」をインストール
・Twilioアカウントの用意 sign up
・TwilioでUSの電話番号を購入 ※投稿時点で日本の電話番号はSMS未対応のため
・TwilioでAPIキーの作成
・Twilioで Messaging Serviceを作成し購入したTwilio電話番号を登録
・Salesforce側でTwilioの認証情報を登録
・プロセスビルダー作成
・レコードを更新してSMS送信検証
・Twilioアカウントの用意 sign up
・TwilioでUSの電話番号を購入 ※投稿時点で日本の電話番号はSMS未対応のため
・TwilioでAPIキーの作成
・Twilioで Messaging Serviceを作成し購入したTwilio電話番号を登録
・Salesforce側でTwilioの認証情報を登録
・プロセスビルダー作成
・レコードを更新してSMS送信検証
商談の金額が一定以上の時に、商談の所有者の電話番号にSMS送信するプロセスビルダー
商談のレコードの金額を変更
商談所有者の宛先にTwilio電話番号からSMSが送信されていることを確認
コーディング一切なしで、簡単にSMS送信を実現することが出来ました。
Salesforceレコードページから連絡先と1対1でメッセージ(Chat形式のコンポーネントを配置できる)
ページレイアウトに埋め込むだけで1対1のやりとりが可能でした。
ApexでSMSを送信してみる
テスト用に作成したVFページです。
SendSMSボタン押したら、SMSを送信します。
SendSMSボタン押したら、SMSを送信します。
<apex:page controller="TestSendSMSTwilioFromApexPageController"> <!-- Begin Default Content REMOVE THIS --> <h1>Congratulations</h1> This is your new Page<br/> sid:<apex:outputText value="{!sid}"></apex:outputText><br/> totalSegments:<apex:outputText value="{!totalSegments}"></apex:outputText><br/> media:<apex:outputText value="{!media}"></apex:outputText> <apex:form > <apex:commandButton action="{!sendSMS}" value="SendSMS" id="theButton"/> </apex:form> <!-- End Default Content REMOVE THIS --> </apex:page>
Visualforce
public with sharing class TestSendSMSTwilioFromApexPageController { public String sid { get; set; } public Integer totalSegments { get; set; } public String media { get; set; } public PageReference sendSMS() { //Post Example TwilioSF.TwilioApiClient api = new TwilioSF.TwilioApiClient(); api.addUrlPart('Accounts'); api.addUrlPart('Account SIDをここに書く'); api.addUrlPart('Messages.json'); api.addParam('To','宛先の電話番号(+819012345678)'); api.addParam('From','Twilioの電話番号'); api.addParam('Body','Here is my message'); TwilioSF.TwilioApiClientResponse response = api.doPost(); //Example with key value pairs sid = response.getTwilioJsonParser().get('sid').getString(); totalSegments = response.getTwilioJsonParser().get('num_segments').getInteger(); //Example a key with object media = response.getTwilioJsonParser().get('subresource_uris').get('media').getString(); return null; } }
Apex Controller
送信結果です。
まとめ
Twilio for SalesforceをSalesforceに導入することで簡単に、SMSの送信などができることがわかりました。
SalesforceでSMSを送信したいときに、是非ご検討頂ければと思います。
個人的には、ApexでTwilioのRest APIを叩くところがSMS送信しかドキュメントが見当たらなかったので、電話など他の機能もドキュメントが是非欲しいところですね。
SalesforceでSMSを送信したいときに、是非ご検討頂ければと思います。
個人的には、ApexでTwilioのRest APIを叩くところがSMS送信しかドキュメントが見当たらなかったので、電話など他の機能もドキュメントが是非欲しいところですね。
Twilio | SMS、音声、LINEと繋がるコミュニケーションAPI | 株式会社テラスカイ
Twilioは電話やテキストメッセージ、FAX、Eメール、チャット、ビデオ通話など、さまざまな通信手段をAPI経由で利用できるコミュニケーションプラットフォームです。
Twilioの導入をご検討の方は、お気軽にご相談ください。
45 件