SMS が好きな人と LINE WORKS からやり取りする
LINE WORKS を中心にビジネスのやり取りをしています。お客さんや関係者さんとのコミュニケーション手段は様々です。LINE WORKS のトークも使いますが、電話、E-mail、Web 会議でのやり取りもあります。
そして SMS が主たる連絡手段という方もいます。携帯電話会社やその販売店の方達に多いですね。
SMS も LINE WORKS でやり取りできたらなという事で、Twilio API を使って LINE WORKS の Bot でやり取り可能にしてみました。
Microsoft Power Automate のクラウド フローを利用しています。
動作の様子
Twilio で取得した電話番号宛てに SMS が届くと、LINE WORKS の Bot とのトークルームにメッセージが転送されます。メッセージには返信ボタンがあります。これをクリックして返信メッセージを入力すると、Twilio 経由で相手に SMS で返信されます。
Power Automate のクラウド フロー
Microsoft Power Automate に Twilio SMS のコネクターがあったので、それを利用してみました。
ソリューションに、SMS 受信と SMS 送信の 2 種類のクラウド フローを作成しています。
LINE WORKS の Bot API の botId, token, userId を、環境変数として作成しています。
SMS 受信のクラウド フロー
Twilio からの Webhook で SMS を受信
[HTTP 要求の受信時] をトリガーにします。"HTTP POST の URL" は、Twilio の Console で Incoming Message の "Send a webhook" の "Request URL" で利用します。
"JSON スキーマ" は以下です。
{
"type": "object",
"properties": {
"$content-type": {
"type": "string"
},
"$content": {
"type": "string"
},
"$formdata": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"key",
"value"
]
}
}
}
}
受信メッセージから差出人と本文を取り出す
受信メッセージの差出人と本文を格納するため、[変数を初期化する] アクションを使います。
受信メッセージの差出人と本文を取り出します。
スイッチで Key が "Body" と "From" の Value をそれぞれ変数に格納しています。
LINE WORKS のボタン テンプレート でメッセージを転送する
[HTTP] アクションで LINE WORKS の Bot API のリクエストを行います。
ボタン テンプレート形式のメッセージで、返信動作のためのボタンを表示します。
ボタン テンプレートの送信例。
SMS 送信のクラウド フロー
LINE WORKS トークルームの Bot 宛てメッセージを受信
[HTTP 要求の受信時] をトリガーにします。"HTTP POST の URL" は、LINE WORKS の Developer Console で Bot の Callback URL として利用します。
"JSON スキーマ" は以下です。
{
"type": "object",
"properties": {
"type": {
"type": "string"
},
"source": {
"type": "object",
"properties": {
"userId": {
"type": "string"
},
"channelId": {
"type": "string"
},
"domainId": {
"type": "integer"
}
}
},
"issuedTime": {
"type": "string"
},
"content": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"text": {
"type": "string"
},
"postback": {
"type": "string"
}
}
}
}
}
受信メッセージが postback のデータを含むかの条件で分岐
SMS 転送時のボタン テンプレートのボタンをクリックした場合は postback が送られます。テキストが入力されたときには含まれません。[条件] のアクションで分岐します。
[はいの場合] 返信ボタンのクリックだった場合は、メッセージ入力を促す
[HTTP] アクションで LINE WORKS の Bot API のリクエストを行います。
テキスト形式のメッセージで、返信メッセージ入力を促します。
Excel のテーブルに返信メッセージ待ちの行を追加。
[いいえの場合] 返信メッセージの入力だった場合は SMS を返信
Excel のテーブルの行の取得で、メッセージ待ちの行を取得。
Twilio の "携帯ショートメール(SMS)送信" のアクションで SMS 送信。
SMS 送信が行われたら、テーブルの行を削除。
Twilio
Twilio の SMS 機能を利用します。コンソールから Messaging Service の設定をします。
Messaging Service の Sender pool で該当の Sender を開き、A MESSAGE COMES IN の Webhook に Power Automate の "HTTP 要求の受信" で生成された URL を指定します。
LINE WORKS の Bot の設定
Developer Console で Bot を登録します。
Callback URL には、Power Automate の "HTTP 要求の受信" で生成された URL を指定します。
設定は以上です。
動作確認
SMS を Twilio の電話番号宛てに送信すると、LINE WORKS の Bot からメッセージが配信されます。返信ボタンのクリックで、送信者に返信できます。