IBM Cloud Docs
SMS with Twilio 対話の処理

SMS with Twilio 対話の処理

SMS テキスト・メッセージングを使用して、アシスタントと顧客との会話のフローを管理するために使用できる一般的なタスクについて説明します。

SMS メッセージング対話をサポートするカスタマイズをダイアログに追加する前に、SMS with Twilio 統合をセットアップする必要があります。 詳しくは、SMS with Twilio との統合を参照してください。

以下のタイプのタスクを実行できます。

コマンド・リファレンス資料については、 SMS 統合のリファレンス を参照してください。

SMS ベースのアクションをダイアログに追加する

ダイアログからメッセージング固有のアクションを呼び出す場合は、以下のガイドラインに従ってください。

  • ダイアログ・ノード JSON スニペットの output オブジェクトではなく、 context オブジェクト内で SMS アクションを定義します。
  • 会話ターンごとに 1 つの SMS アクションまたは 1 つのシーケンスのみを定義します。
  • SMS アクションが構成されているダイアログ・ノードから、アクションが構成されている別のダイアログ・ノードにジャンプしないでください。

テキスト・メッセージ固有のアクションを使用可能にするには、SMS アクションをトリガーするダイアログ・ノードに JSON コード・ブロックを追加する必要があります。

ダイアログ・ノードに JSON コード・ブロックを追加するには、次の手順を実行します。

  1. 「ダイアログ」 をクリックして、ダイアログ・ツリーを開きます。

  2. アクションを呼び出すダイアログ・ノードを開きます。

  3. アシスタントの応答で、オプション・メニュー 「オプション」 メニューをクリックし、 「JSON エディターを開く」 を選択します。

  4. smsAction コマンド JSON コード・ブロックを context オブジェクトに追加します。 (context オブジェクトが存在しない場合には、context オブジェクトを追加します。 context オブジェクトは output オブジェクトと対等です。)

    以下に例を示します。

     {
       "output": {
         "generic": [
         ]
       },
       "context": {
         "smsAction": {
           "command": "<command-name>",
           "parameters": {
             "<first-parameter>": "<parameter-value>"
           }
         }
       }
     }
    

テキストを介するマルチメディア・コンテンツの送信

イメージなどのマルチメディア・コンテンツをテキスト・メッセージ内で送信できるようにするには、smsActSendMedia コマンドを使用します。

{
  "output": {
      "generic": [
      ]
  },
  "context": {
    "smsAction": {
          "command": "smsActSendMedia",
          "parameters":{
            "mediaURL": [
              "https://example.com/images/image.png"
            ]
         }  
    }
  }
}

vsmsActSendMedia コマンドには、以下のパラメーター値を指定できます。

  • mediaURL: イメージまたは動画の 1 つ以上の公開アクセス可能なメディア URL の JSON 配列。

リストのカスタマイズ

以下のリストの表示方法と処理方法をカスタマイズできます。

オプション・リスト

ダイアログでは option 応答タイプがサポートされます。ダイアログには顧客が選択する複数のオプションが表示されます。 option 応答タイプに定義されたオプションが顧客に表示される方法をカスタマイズすることができます。また、vgwActSetOptionsConfig アクション・コマンドを追加して、顧客がオプションを選択できる方法をカスタマイズできます。

次の例は、option 応答タイプをカスタマイズする方法を示しています。

{
  "output": {
    "generic": [
      {
      "title": "Which of these items do you want to insure?",
      "options": [
      {
        "label": "Boat",
        "value": {
          "input": {
            "text": "I want to buy boat insurance."
          }
        },
          "label": "Car",
          "value": {
            "input": {
              "text": "I want to buy car insurance."
            }
          },
          "label": "House",
          "value": {
            "input": {
              "text": "I want to buy house insurance."
            }
          }
        }
      ],
      "description": "Insurance types.",
      "response_type": "option"
      }
    ]
  },
  "context": {
    "smsAction": {
      "command": "smsActSetOptionsConfig",
      "parameters": {
        "prefixText": "%s."
      }
    }
  }
}

最初に、 title 属性に指定された値がユーザーに表示されます。 次に各 label 属性に指定されたテキストが表示されます。 例: Which of these items do you want to insure? 1.Boat 2.Car 3.House

各オプションの先頭にアシスタントが表示するものを構成するには、prefixText パラメーターを編集します。 オプションに対応する番号を表示するには %s を使用します。これは実行時に実際の番号に置き換えられます。

"smsAction": {
  "command": "smsActSetOptionsConfig",
  "parameters": {
    "prefixText": "Enter %s for "
  }
}

例: Which of these items do you want to insure? Enter 1 for Boat Enter 2 for Car Enter 3 for House

明確化リスト

顧客の照会への対応で処理するのに適切なダイアログ・ノードが複数あることが確実だとダイアログがみなす場合、明確化がトリガーされます。 明確化では、回答を得るためにどのパスをたどるかを明確にするように顧客に求めます。 詳しくは、明確化を参照してください。

smsActSetDisambiguationConfig アクション・コマンドを追加することにより、明確化リストの選択項目の表示方法、顧客が明確化を選択する仕方をカスタマイズできます。

会話の早い段階でトリガーされるウェルカム・ノードまたは別のノードでカスタマイズを定義して、明確化がトリガーされるたびにカスタマイズが適用されるようにすることができます。

{
  "output": {
      "generic": [
      ]
  },
  "context": {
    "smsAction": {
      "command": "smsActSetDisambiguationConfig",
      "parameters": {
        "prefixText": "%s."
      }
    }
  }
}

表示されると、アシスタントにより Did you mean? など、明確化のために構成した導入テキストが表示されます。 次に、明確化リストからの選択項目を番号付き選択項目としてリストします。

prefixText パラメーターは、 label で指定されたテキストに数値接頭部を追加します。 リスト選択項目には順番に番号が付けられ、リストに示されている順序でユーザーに表示されます。 ユーザーは、番号を入力して選択項目の 1 つを選ぶことができます。

例えば、ラベルが次のように構成されているとします。

"label": "I'd like to order a drink."

アシスタントにより、次のメッセージがユーザーに送信されます。

1. I'd like to order a drink.

各ラベルの前に付加されるテキストを構成できます。 prefixText 属性で、%s が提案に対応する番号を表わしています。これは実行時に実際の番号に置き換えられます。

"context": {
    "smsAction": {
      "command": "smsActSetDisambiguationConfig",
      "parameters": {
        "prefixText": "Enter %s for:"
      }
    }
  }

prefixTextEnter %s for: と設定すると、次の出力が顧客に対して送信されます。

Enter 1 for: I'd like to order a drink.