会話コンポーネント

会話コンポーネントとは、ビジネス電話番号で有効にできるチャット内の機能のことです。この機能を使うと、WhatsAppユーザーがビジネスとやり取りしやすくなります。使いやすいコマンドを設定したり、ユーザーがタップできる、事前設定されたアイスブレイカーを用意したり、初めてのユーザーにウェルカムメッセージであいさつしたりすることができます。

制限

WhatsAppユーザーが、定形テキストが設定されているユニバーサルリンク(つまりwa.meリンク)をタップすると、アイスブレイカーのユーザーインターフェイスは自動的に閉じます。

WhatsAppマネージャ(WAM)から設定する

WhatsAppマネージャで以下の手順を実行して、選択した特定の電話番号に対してこれらの機能をすべて設定することができます。

  1. Meta for Developersサイトの[マイアプリ]ダッシュボードに移動します。
  2. アプリを選択し、左パネルで、WhatsApp[設定]を選択します。
  3. [電話番号][電話番号を管理]を選択します。
  4. 設定したい電話番号の右端にある、[設定]歯車アイコンを選択します。
  5. [自動化]を選択します。
  6. 会話コンポーネントにアクセスし、設定します。

WhatsAppマネージャで顧客のWhatsApp Businessアカウントにアクセスできるソリューションパートナーも、顧客のためにこれらの機能を設定できます。

ウェルカムメッセージ

現在、ウェルカムメッセージは意図したとおりに機能しません。

残念ながら、この機能が今後実装される時期については未定です。

タイプが自由形式、インタラクティブ、テンプレートのメッセージは、いずれもウェルカムメッセージとして送信できます。分類されたメッセージの価格が適用されます。

WhatsAppユーザーによって初めてあなたとの間でチャットが開かれたときに、必ずWebhooksで通知を受け取ることができます。これは、自分でデザインした特別なウェルカムメッセージで初めてのユーザーに返信したい場合に便利です。

ウェルカムメッセージは、カスタマーサポートやアカウントサービスなど、サービスインタラクションに最適です。例えば、アプリやウェブサイトにWhatsAppボタンを埋め込むことができます。ユーザーがボタンをタップすると、WhatsAppにリダイレクトされ、あなたとどのようにやり取りできるかに関する情報が含まれたウェルカムメッセージを受け取ります。

この機能を有効にすると、ユーザーがメッセージを送信したときに、WhatsAppクライアントがユーザーとビジネス電話番号との間に既存のメッセージスレッドがないかチェックします。ない場合、クライアントは、typerequest_welcomeに設定して、messages Webhooksをトリガーします。それから、独自のウェルカムメッセージでユーザーに返信することができます。

request_welcome Webhooksはカスタマーサービス時間枠をトリガーします。この期間内に、ビジネスは顧客への返信の際に自由形式のメッセージを送ることができます。

Ash: My home office supervisor

ウェルカムメッセージとしてのカルーセルテンプレートメッセージ

Webhookペイロード

{
  "object": "whatsapp_business_account",
  "entry": [
    {
      "id": "<WHATSAPP_BUSINESS_ACCOUNT_ID>",
      "changes": [
        {
          "value": {
            "messaging_product": "whatsapp",
            "metadata": {
              "display_phone_number": "<BUSINESS_DISPLAY_PHONE_NUMBER>",
              "phone_number_id": "<BUSINESS_PHONE_NUMBER_ID>"
            },
            "contacts": [
              {
                "profile": {
                  "name": "<WHATSAPP_USER_NAME>"
                },
                "wa_id": "<WHATSAPP_USER_ID>"
              }
            ],
            "messages": [
              {
                "from": "<WHATSAPP_USER_PHONE_NUMBER_ID>",
                "id": "<WHATSAPP_MESSAGE_ID>",
                "timestamp": "<TIMESTAMP>",
                "type": "request_welcome"  // Indicates first time message from WhatsApp user
              }
            ]
          },
          "field": "messages"
        }
      ]
    }
  ]
}

アイスブレイカー

アイスブレイカーとは、ユーザーと初めてチャットしたときのメッセージスレッドに表示される、カスタマイズ可能でタップ可能なテキスト文字列のことです。例えば、「旅行を計画する」や「ワークアウトプランを作る」とすることができます。

アイスブレイカーは、カスタマーサポートやアカウントサービスなど、サービスインタラクションに最適です。例えば、アプリやウェブサイトにWhatsAppボタンを埋め込むことができます。ユーザーがボタンをタップすると、WhatsAppにリダイレクトされます。そこで、サービスとのやり取りの方法を示す、カスタマイズ可能な一連のプロンプトから選択することができます。

1件のビジネス電話番号につき最大4つのアイスブレイカーを設定できます。各アイスブレイカーには最大80文字を含めることができます。絵文字はサポートされていません。

ユーザーがアイスブレイカーをタップすると、標準の受信メッセージWebhookがトリガーされます。そのペイロードには、bodyプロパティに割り当てられたアイスブレイカー文字列が含まれています。ユーザーがアイスブレイカーをタップするのではなく直接メッセージを送ろうとすると、キーボードがオーバーレイとして表示されます。キーボードを閉じると、アイスブレイカーのメニューが再び表示されます。

WhatsAppユーザーが、定型テキストが設定されているユニバーサルリンク(wa.meリンクかapi.whatsapp.comリンク)をタップすると、アイスブレイカーのユーザーインターフェイスは自動的に閉じます。

Webhookペイロード

{
  "object": "whatsapp_business_account",
  "entry": [
    {
      "id": "<WHATSAPP_BUSINESS_ACCOUNT_ID>",
      "changes": [
        {
          "value": {
            "messaging_product": "whatsapp",
            "metadata": {
              "display_phone_number": "<BUSINESS_DISPLAY_PHONE_NUMBER>",
              "phone_number_id": "<BUSINESS_PHONE_NUMBER_ID>"
            },
            "contacts": [
              {
                "profile": {
                  "name": "<WHATSAPP_USER_NAME>"
                },
                "wa_id": "<WHATSAPP_USER_ID>"
              }
            ],
            "messages": [
              {
                "from": "<WHATSAPP_USER_PHONE_NUMBER_ID>",
                "id": "<WHATSAPP_MESSAGE_ID>",
                "timestamp": "<TIMESTAMP>",
                "text": {
                  "body": "Plan a trip"
                },
                "type": "text"
              }
            ]
          },
          "field": "messages"
        }
      ]
    }
  ]
}

コマンド

コマンドとは、WhatsAppユーザーがビジネスとのメッセージスレッドにスラッシュを入力することで表示できるテキスト文字列です。

コマンドは、コマンド自体と、ユーザーがコマンドを実行するとどうなるかを示すヒントで構成されます。例えば、次のようにコマンドを定義することができます。

/imagine - Create images using a text prompt

WhatsAppユーザーが/imagine cars racing on Marsと入力すると、受信メッセージWebhookが起動して、bodyプロパティにそのテキスト文字列が割り当てられます。そうすると、火星でレースしている車の画像を生成して返すことができます。

最大30のコマンドを定義できます。各コマンドは最大32文字、各ヒントは最大256文字です。絵文字はサポートされていません。

Webhookペイロード

{
  "object": "whatsapp_business_account",
  "entry": [
    {
      "id": "<WHATSAPP_BUSINESS_ACCOUNT_ID>",
      "changes": [
        {
          "value": {
            "messaging_product": "whatsapp",
            "metadata": {
              "display_phone_number": "<BUSINESS_DISPLAY_PHONE_NUMBER>",
              "phone_number_id": "<BUSINESS_PHONE_NUMBER_ID>"
            },
            "contacts": [
              {
                "profile": {
                  "name": "<WHATSAPP_USER_NAME>"
                },
                "wa_id": "<WHATSAPP_USER_ID>"
              }
            ],
            "messages": [
              {
                "from": "<WHATSAPP_USER_PHONE_NUMBER_ID>",
                "id": "<WHATSAPP_MESSAGE_ID>",
                "timestamp": "<TIMESTAMP>",
                "text": {
                  "body": "/imagine cars racing on Mars"
                },
                "type": "text"
              }
            ]
          },
          "field": "messages"
        }
      ]
    }
  ]
}

API経由で設定

APIを使用すると、会話コンポーネントを設定して、設定された値を表示することもできます。

会話コンポーネントAPIには次の2つのエンドポイントがあります。

POST </PHONE_NUMBER_ID>/conversational_automationは、指定された電話番号の会話コンポーネントを設定するために使用されます。

GET /<PHONE_NUMBER_ID>/conversational_automationは、enable_welcome_message、コマンド、プロンプトフィールドの現在の値を返します。

APIから会話コンポーネントを設定する

POSTエンドポイントを呼び出して、指定された電話番号の会話コンポーネントを設定することができます。

リクエストの構文

// Enable or disable the Welcome Message for the given phone number ID
POST /<PHONE_NUMBER_ID>/conversational_automation?enable_welcome_message=<ENABLE_DISABLE>

// Configure Commands with names and descriptions
POST /<PHONE_NUMBER_ID>/conversational_automation?commands=<COMMAND_LIST>

// Configure Prompts
POST /<PHONE_NUMBER_ID>/conversational_automation?prompts=<PROMPT>

本文のプロパティ


プレースホルダー説明値の例

<PHONE_NUMBER_ID>

整数

必須。


WhatsAppビジネスアカウントの電話番号ID。

+12784358810

<ENABLE_DISABLE>

ブーリアン

任意。


電話番号のウェルカムメッセージを有効または無効にするためのブーリアン。


true

<COMMAND_LIST>

JSON

任意。


設定するコマンドのリスト。


"commands": {
     "command_name": "generate"
     "command_description": "Create a new image",
     “command_name”: “rethink”
     “command_description”: “Generate new images from existing images”,
} 

<PROMPTS>

文字列のリスト

任意。


設定するプロンプト。


"prompts": ["Book a flight","plan a vacation"]

リクエストの例

   curl -X POST \
 'https://graph.facebook.com/v19.0/PHONE_NUMBER_ID/conversational_automation' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
   "enable_welcome_message": true/false,
   "commands": [
     {
       "command_name": "tickets",
       "command_description": "Book flight tickets",
     },
     {
       "command_name": "hotel",
       "command_description": "Book hotel",
     }
   ],
 "prompts": ["Book a flight","plan a vacation"]
}'

応答の例

{
  "success": true
}

APIから現在の設定を表示する

GETエンドポイントを呼び出して、指定された電話番号の会話コンポーネントの現在の設定を表示することができます。

リクエストの構文

GET  /<PHONE_NUMBER_ID>?fields=conversational_automation

応答の例

{
  "conversational_automation": {
    "enable_welcome_message": true
    "prompts": [
      "Find the best hotels in the area",
      "Find deals on rental cars"
    ],
    "commands": [
      {
        "command_name": "tickets",
        "command_description": "Book flight tickets",
      },
      {
        "command_name": "hotel",
        "command_description": "Book hotel",
      }
    ],
  }
  "id": "123456"
}

テスト

会話コンポーネントの設定が完了した後にテストするには、WhatsAppクライアントを開き、ビジネス電話番号とのチャットを開きます。

ウェルカムメッセージとアイスブレイカーでは、そのビジネス電話番号とのチャットスレッドがすでにある場合、まずそのチャットスレッドを削除する必要があります。

  1. WhatsAppクライアントでスレッドを開きます。
  2. ビジネス電話番号のプロフィールをタップします。
  3. [チャットを消去] > [すべてのメッセージを消去]をタップします。
  4. チャットを削除
  5. このビジネスで新しいチャットスレッドを開始します。

それから、ビジネス電話番号にメッセージを送ることができます。送信すると、request_welcome Webhookがトリガーされます。