本指南介绍了对话型 Action(将于 2023 年 6 月 13 日弃用)的用户消息传递和迁移路径。涵盖以下领域:
- 弃用阶段:Actions 目前以及弃用后的运作方式。
- 推荐的消息:可添加到 Action 中的推荐通知。
- 可能的迁移途径:用于在弃用后留住用户的选项。
主动发布的博文(可选)
每个 Action、代理机构和商家都是不同的。除了使用本指南中推荐的消息更新您的 Action 外,您还可以考虑发布一篇博文,积极回答以下常见的用户问题:
- 发生了什么?
- 我的体验何时会发生变化?
- 如何才能继续使用类似功能?
我们建议在任何弃用公告中都提供迁移路径选项。您可以通过电子邮件、简报和社交媒体分享帖子。
弃用阶段
下表介绍了对话型 Action 目前的行为方式、停用日期后对话型 Action 将如何变化,以及一些建议更新,以帮助用户通知用户。
弃用日期之前(2023 年 6 月 13 日) | 弃用后 | |
---|---|---|
操作行为 | 现有 Action 体验 | 操作调用已停用 |
推荐的开发者动态 | 向 Action 添加弃用通知(建议) | 不适用 |
Google 用户体验更新 | 调用时,Google 可能会提供文字转语音 (TTS) 通知,说明在弃用日期之后,相应 Action 将不再可用。 | 调用时,Google 会提供 TTS,以告知用户此操作已不可用。 |
如果您决定在弃用日期之前不主动停用您的 Action,调用该 Action 的用户会收到 Google 提供的 TTS 通知。此通知的确切措辞仍在定义中,但最终的措辞不会包含面向用户的迁移信息。
推荐消息
如需告知用户即将停用,最好的方法是在用户调用您的操作时通知他们。您还可以利用以下机会向客户介绍使用类似功能的迁移路径。
沟通目的:通知用户即将发生的变更,并告知用户可用的迁移选项。
消息发送时间范围:在弃用前至少提前 30 天通知用户(2022 年 5 月 13 日至 2022 年 6 月 13 日)。
处理停用查询
如需具体回答用户提出的弃用问题,请创建一个新的全局自定义 intent,并使用下面的建议措辞:
- “我们将在
date
上关闭Action Name
。如需了解详情,请查看short link
|migration path message
。”
Interactive Canvas
如果您的 Action 使用 Interactive Canvas,请将通知横幅添加到使用以下示例措辞的画布加载页面:
- “
Action Name
将于date
关闭。如需了解详情,请前往shortlink url
。” - “
Action Name
将于migration path message
date
关闭。”
通信内容(可选)
您还可以通过其他方式更新现有操作,以通知用户即将发生的变更。请考虑为现有的 Action 消息添加弃用通知的后缀:
- “
existing message
。另外提醒一下,Action Name
将于date
(关闭 | 正在关闭)开始。” - “
existing message
。另外,想提醒你一下,Action Name
将于migration path
date
(关闭 | 正在关闭)。”
您还可以为 Action 可能实现的特殊功能添加通知:
深层链接调用:显示提供信息的基本卡片(示例)。
Last prompt
消息:您可以向以下任何提示类型添加last prompt
消息(示例):- 内置 intent (BII)。适用于 Play 游戏、讲故事和教育 BII。
- 日常安排建议。
- 欢迎提示。
退出提示:您还可以向退出提示 (
actions.intent.CANCEL
) 添加特殊的last prompt
消息(示例)。推送通知:将以下建议的措辞添加到使用 Action Builder 或 Dialogflow 构建的任何推送通知中:
- “提醒:
Action Name
将于date
关停。如需了解详情,请前往shortlink url
。” - “提醒:
Action Name
将于migration path message
date
关闭。
- “提醒:
可能的迁移途径
虽然对话型 Action 可能没有类似的迁移路径,但请根据用户需求和可用的开发者资源考虑以下选项。
媒体内容
媒体操作可让用户在 Google 助理上发现您的内容,并直接在您的应用中开始播放内容。您可以使用以下示例消息帮助用户过渡到媒体操作:
-
“只要说“Hey Google,播放
Media Brand Name
”,您随时可以找到我们。” -
“只要说“Hey Google,听
Media Brand Name
上的‘song’,您就可以随时找到我们。”
媒体操作与对话操作不同:
- 使用媒体操作时,用户不会直接与第三方“互动”,而是通过 Google 助理与第三方互动。
- 媒体操作不是对话式的,仅支持“单次”查询。
Android 应用
Google 助理与应用有关的 Action 是一项 Android 功能,可让用户使用 Google 助理通过语音启动和控制 Android 应用。您可以通过此示例消息功能告知用户您的应用操作:
-
“您可以随时说“Hey Google,打开
App Name
”,找到我们。 -
“只要说“Hey Google,
BII
,即可打开我们的 Android 应用。”App Name
-
“只要说“Hey Google,打开
App Name
”,即可安装我们的 Android 应用。
与应用有关的 Action 的工作机制与对话型 Action 存在一些不同:
- 与应用有关的 Action BII 提供有限的语言和语言区域支持。
- 需要 Android 应用才能启动应用操作。
- 智能显示屏不支持与应用有关的 Action。
- 与应用有关的 Action 不是对话式的,仅支持“单次”查询。
硬件
Google 智能家居允许开发者使用 Google 助理为设备启用语音功能。您可以通过以下示例消息,向用户介绍您的智能家居 Action:
-
“您可以随时使用
device name
(网址为store
)与我们联系” -
“你可以在 Google Home 应用中通过
device name
与我们联系”
智能家居与对话型 Action 存在以下区别:
- 智能家居只能添加到兼容的设备上。
- 智能家居不是对话式的,仅支持“单次”询问。
聊天代理
如需通过聊天机器人与用户来回对话,可以使用以下产品:
- Dialogflow CX 可为大型和复杂的代理提供高级代理类型。它提供与 Dialogflow CX Phone Gateway、Dialogflow Messenger、Messenger from Facebook 和 LINE 等产品的集成。请参阅完整的集成列表。
- Dialogflow EX 提供了一种标准代理类型,适合规模较小、较为简单的代理。它集成了 Slack、Telegram、LINE、Facebook 的 Messenger、Meta 中的 Workplace 等。请参阅完整的集成列表。
您可以通过以下示例消息功能向用户介绍聊天代理:
- “如需日后支持,请拨打
support number
。” -
“如需未来的支持,请访问我们的网站:
short link url
。” -
“今后如有反馈,请通过 Slack 频道
Company Name
与我们聊天。”
聊天代理服务与对话型 Action 存在一些不同:
- 智能显示屏不支持代理。
- 代理无法与 Google 助理集成。
客户服务
借助聊天机器人、语音聊天机器人和电话帮助台,所有这些功能均内置于 Agent Assist 和 CCAI Insights 等 Contact Center AI 产品中,从而更快地满足客户需求。 您可以使用此示例消息功能向用户介绍客户服务选项:
- 如需日后的支持服务,请拨打
support number
。” -
“如需未来的支持,请访问我们的网站,网址为
short link url
。” - 今后,欢迎在‘Company name’的 Slack 频道上与我们聊天。”
客户服务选项与对话型 Action 存在一些不同:
- 智能显示屏不支持此设置。
- 无法与 Google 助理集成。
网站
您可以将用户引导至您的网站可能提供的功能。您可以使用此示例消息功能向用户介绍 Web 选项:
-
“如需未来的支持,请访问我们的网站,网址为
short link url
。”
网站与对话型 Action 存在以下不同:
- 智能显示屏不支持网站。
- 网站无法直接与 Google 助理集成
代码示例
使用这些代码示例,为对话型 Action 构建与日落相关的响应。
基本卡片示例
YAML
candidates: - first_simple: variants: - speech: >- We are turning offon . For more details check out text: >- We are turning off on . For more details check out content: card: title: Turning Off subtitle: text: >- `We are turning off on . For more details check out .` button: name: Learn more open: url:
JSON
{ "candidates": [ { "first_simple": { "variants": [ { "speech": "We are turning offon . For details, check out .", "text": "We are turning off on . For details, check out ." } ] }, "content": { "card": { "title": "Turning Off ", "subtitle": " ", "text": "`We are turning off on . For details, check out .`", "button": { "name": "Learn more", "open": { "url": " " } } } } } ] }
Node.js
app.handle('Card', conv => { conv.add('We are turning offon . For details, check out .'); conv.add(new Card({ "title": "Turning Off ", "subtitle": " ", "text": "Card Content", "button": new Link({ name: 'Learn more', open: { url: ' ', }, }) })); });
JSON
{ "responseJson": { "session": { "id": "session_id", "params": {} }, "prompt": { "override": false, "content": { "card": { "title": "Turning Off", "subtitle": " ", "text": "We are turning off on . For, details check out .", "button": { "name": "Learn more", "open": { "url": " " } } } }, "firstSimple": { "speech": "We are turning off on . For details, check out .", "text": "We are turning off on . For details, check out ." } } } }
最后一个问题示例
YAML
candidates: - first_simple: variants: - speech:text: last_simple: variants: - speech: Also, just reminding you that will be turning off on text: Also, just reminding you that will be turning off on
JSON
{ "candidates": [ { "first_simple": { "variants": [ { "speech": "", "text": " " } ] }, "last_simple": { "variants": [ { "speech": "Also, just reminding you that will be turning off on ", "text": "Also, just reminding you that will be turning off on " } ] } } ] }
Node.js
app.handle('Simple', conv => { conv.add(new Simple({ speech: '', text: ' ' })); conv.add(new Simple({ speech: 'Also, just reminding you that will be turning off on ', text: 'Also, just reminding you that will be turning off on ' })); });
JSON
{ "responseJson": { "session": { "id": "session_id", "params": {} }, "prompt": { "override": false, "firstSimple": { "speech": "", "text": " " }, "lastSimple": { "speech": "Also, just reminding you that will be turning off on ", "text": "Also, just reminding you that will be turning off on " } } } }
上一个提示(退出/取消)示例
YAML
candidates: - first_simple: variants: - speech:text: last_simple: variants: - speech: Also, just reminding you that will be turning off on . Bye. text: Also, just reminding you that will be turning off on . Bye.
JSON
{ "candidates": [ { "first_simple": { "variants": [ { "speech": "", "text": " " } ] }, "last_simple": { "variants": [ { "speech": "Also, just reminding you that will be turning off on . Bye.", "text": "Also, just reminding you that will be turning off on . Bye." } ] } } ] }
Node.js
app.handle('Simple', conv => { conv.add(new Simple({ speech: '', text: ' ' })); conv.add(new Simple({ speech: 'Also, just reminding you that will be turning off on . Bye.', text: 'Also, just reminding you that will be turning off on . Bye.' })); });
JSON
{ "responseJson": { "session": { "id": "session_id", "params": {} }, "prompt": { "override": false, "firstSimple": { "speech": "", "text": " " }, "lastSimple": { "speech": "Also, just reminding you that will be turning off on . Bye.", "text": "Also, just reminding you that will be turning off on . Bye." } } } }