对话组件

对话组件是聊天中的功能,您可以为企业电话号码启用这些功能。使用该组件可令 WhatsApp 用户更轻松地与您的企业展开互动。您可以配置易于使用的命令,提供提前编写好的开场白供用户点击,并使用欢迎消息问候首次与您企业对话的用户。

限制

如果 WhatsApp 用户点击了使用预先填好的文本配置的通用链接(即 wa.me 链接),开场白的用户界面将自动关闭。

通过 WhatsApp 管理工具 (WAM) 配置

您可以在 WhatsApp 管理工具中为您选择的特定电话号码配置所有这些功能:

  1. 前往 Meta 开发者网站中的“我的应用”面板
  2. 选择您的应用,然后在左侧面板上选择 WhatsApp 下的配置
  3. 电话号码下,选择管理电话号码
  4. 在要配置的电话号码的最右侧,选择设置下的齿轮图标
  5. 选择自动
  6. 访问并配置对话组件。

如果解决方案合作伙伴可以在 WhatsApp 管理工具中访问其客户的 WhatsApp Business 商业帐号,他们就可以为客户配置这些功能。

欢迎消息

每当 WhatsApp 用户首次打开与您的对话时,您就可以收到 Webhooks 通知。如需使用您自己设计的特定欢迎消息回复这些用户,启用欢迎消息功能将很实用。

欢迎消息非常适合展开服务互动,如客户支持或账户服务。例如,您可以在自己的应用或网站上嵌入一个 WhatsApp 按钮。用户点击该按钮后,系统将跳转到 WhatsApp 界面,在那里用户会收到欢迎消息,该消息提供了用户可以如何与您互动的语境信息。

如果您启用了此功能,当用户向您发送消息时,WhatsApp 客户端会检查该用户与您的公司电话号码之间当前是否已有消息对话。如果没有,客户端会触发 messages Webhooks,其中 type 会设为 request_welcome。然后,您可以使用自己设计的欢迎消息回复用户。

request_welcome Webhooks 会触发一个客户服务时间窗。在该时间窗内,您的企业在回复客户时可以发送自由格式的消息。

Webhooks 有效负载

{
  "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": "<WHATSAPP_MESSAGE_ID>",
                "timestamp": "<TIMESTAMP>",
                "type": "request_welcome"  // Indicates first time message from WhatsApp user
              }
            ]
          },
          "field": "messages"
        }
      ]
    }
  ]
}

开场白

开场白是您首次与某个用户聊天时出现在消息对话中的可定制、可点击的文本字符串。例如:“计划旅行”或“制定健身计划”。

开场白非常适合展开服务互动,如客户支持或账户服务。例如,您可以在自己的应用或网站上嵌入一个 WhatsApp 按钮。用户点击该按钮后,系统将跳转到 WhatsApp 界面,在那里用户可以从一组可定制的提示中选择他们可以与您的服务互动的方式。

您可以为一个公司电话号码配置最多 4 个开场白。每个开场白不得超过 80 个字符,而且不支持表情。

用户点击开场白会触发标准已接收消息 Webhooks,其中包含开场白字符串(分配到有效负载中的 body 属性)。如果用户尝试向您发送消息,而不是点击开场白,键盘将以悬窗的方式出现,但用户可以关闭键盘,以再次查看开场白菜单。

如果 WhatsApp 用户点击了使用预先填好的文本配置的通用链接wa.meapi.whatsapp.com 链接),开场白的用户界面将自动关闭。

Webhooks 有效负载

{
  "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": "<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 时,会触发已接收消息 Webhooks,其中包含该完整的文本字符串(分配到 body 属性)。然后,您便可生成并返回一张在火星上赛车的图片。

您最多可定义 30 个命令。每个命令不得超过 32 个字符,每个提示不得超过 256 个字符。不支持表情。

Webhooks 有效负载

{
  "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": "<WHATSAPP_MESSAGE_ID>",
                "timestamp": "<TIMESTAMP>",
                "text": {
                  "body": "/imagine cars racing on Mars"
                },
                "type": "text"
              }
            ]
          },
          "field": "messages"
        }
      ]
    }
  ]
}

通过 API 配置

通过使用此 API,您还可以配置对话组件和查看任何配置值。

对话组件 API 有两个端点:

POST </PHONE_NUMBER_ID>/conversational_automation - 用于配置给定电话号码的对话组件。

GET /<PHONE_NUMBER_ID>/conversational_automation - 返回给定电话号码的 enable_welcome_message、commands 以及 prompts 字段的当前值。

通过对话组件 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 Business 商业帐号中的一个电话号码。

+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 Webhooks。