新增互動式訊息至聊天室 - Amazon Connect

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

新增互動式訊息至聊天室

互動式訊息是豐富的訊息,可提供提示和預先設定的顯示選項以供客戶選擇。這些訊息由 Amazon Lex 提供支援,並透過 Amazon Lex 使用 Lambda 進行設定。

提示

如果您已與 Apple Messages for Business 整合,請參閱 Apple 網站上的互動式訊息類型

驗證限制

字串欄位限制 (例如標題、副標題等) 預計將由用戶端 (即自訂建置介面或託管通炫小工具) 強制執行。SendMessageAPI 只會檢查字串的總大小是否小於 20KB。

  • 在您使用託管通訊小工具而不進行自訂時,如果字串超過欄位限制,則該字串在使用者介面上將被截斷,並附加省略符號 (......)。您可以透過自訂小工具來決定如何強制執行欄位限制。

  • 如果您要與其他平台整合 (例如 Apple Messages for Business),請檢閱本主題中 Amazon Connect 的限制,並檢閱其他平台說明文件中的限制。例如,較舊版本的 iOS 不支援快速回覆。

必須遵循所有其他欄位限制,才能順利傳送訊息。

訊息顯示範本

Amazon Connect 提供下列訊息顯示範本,供您在聊天中將資訊呈現給客戶:

這些範本定義了資訊的呈現方式,以及在聊天介面中顯示的資訊。透過聊天傳送互動式訊息時,流程會驗證訊息格式是否遵循其中一個範本。

清單挑選器範本

使用清單挑選器範本,向客戶呈現最多六個選項的清單。每個選擇都可以有自己的圖片。

下列圖片顯示清單挑選器範本如何在聊天中呈現資訊的兩個範例。

  • 一張圖片顯示三個按鈕,每個按鈕都具備文字中的水果名稱:蘋果、柳橙、香蕉。

  • 第二張圖片顯示一家商店的圖片,然後在下面的三個按鈕,每個按鈕都附有名稱、影像和水果的價格。

清單挑選器範本會呈現在聊天中的資訊。

下列程式碼是您可以在 Lambda 中使用的清單挑選器範本。注意下列事項:

  • 粗體文字是強制性參數。

  • 在某些情況下,如果父元素存在於請求中,並且不是強制/粗體,但其中的欄位是,則這些欄位是必要的。例如,請參閱下列範本中的 data.replyMessage 結構。如果結構存在,標題是強制性的。否則,可選擇是否完成 replyMessage

{ "templateType":"ListPicker", "version":"1.0", "data":{ "replyMessage":{ "title":"Thanks for selecting!", "subtitle":"Produce selected", "imageType":"URL", "imageData":"https://interactive-msg.s3-us-west-2.amazonaws.com/fruit_34.3kb.jpg", "imageDescription":"Select a produce to buy" }, "content":{ "title":"What produce would you like to buy?", "subtitle":"Tap to select option", "imageType":"URL", "imageData":"https://interactive-msg.s3-us-west-2.amazonaws.com/fruit_34.3kb.jpg", "imageDescription":"Select a produce to buy", "elements":[ { "title":"Apple", "subtitle":"$1.00", "imageType":"URL", "imageData":"https://interactive-message-testing.s3-us-west-2.amazonaws.com/apple_4.2kb.jpg" }, { "title":"Orange", "subtitle":"$1.50", "imageType":"URL", "imageData":"https://interactive-message-testing.s3-us-west-2.amazonaws.com/orange_17.7kb.jpg", }, { "title":"Banana", "subtitle":"$10.00", "imageType":"URL", "imageData":"https://interactive-message-testing.s3-us-west-2.amazonaws.com/banana_7.9kb.jpg", "imageDescription":"Banana" } ] }

清單挑選器限制

如果您選擇從頭開始建置自己的 Lambda,下表列出了每個清單挑選器元素的限制。強制性參數會以粗體顯示。

如要傳送無限的選項,請在應用程式中實作動作按鈕。如需詳細資訊,請參閱互動式訊息清單選取器/面板中的動作按鈕實作

父項欄位 欄位 必要 最少字元 最多字元 其他要求

templateType

有效範本類型

data

version

必須為 "1.0"

data

內容
replyMessage

內容

標題

1

400

應該是無提示範本的描述

元素

1 個項目

6 個項目

這是元素的陣列。陣列中最多 6 個元素。如要傳送無限的元素,請使用動作按鈕功能。

字幕

0

400

imageType

0

50

必須為 "URL"

imageData

0

200

必須為有效的可公開存取網址

imageDescription

0

50

referenceId

字串. 只需要動作按鈕功能。

listId

字串. 只需要動作按鈕功能。

預索引

數字。只需要動作按鈕功能。

nextIndex

數字。只需要動作按鈕功能。

templateIdentifier

數字。應該是一個 UUID。如果浮動切換中要使用「清單挑選器/面板」,則需要此欄位

元素

標題

1

400

字幕

0

400

imageType

0

50

必須為 "URL"

imageData

0

200

必須為有效的可公開存取網址

imageDescription

0

50

沒有影像則無法存在

actionDetail

只需要動作按鈕功能。必須為 "PREVIOUS_OPTIONS" 或 "SHOW_MORE"。

replyMessage

標題

1

400

字幕

0

400

imageType

0

50

必須為 "URL"

imageData

0

200

必須為有效的可公開存取網址

imageDescription

0

50

沒有影像則無法存在

時間挑選器範本

時間挑選器範本對於讓客戶能夠安排預約非常實用。在聊天中您最多可以向客戶提供 40 個時段。

下列影像顯示時間挑選器範本如何在聊天中呈現資訊的兩個範例。

  • 一個影像顯示一個日期,並在其下方顯示一個時段。

  • 第二個影像顯示一個日期,而在其下方則顯示兩個時段。

在聊天中呈現資訊的時間挑選器範本。

下列程式碼是您可以在 Lambda 中使用的時間挑選器範本。注意下列事項:

  • 粗體文字是強制性參數。

  • 在某些情況下,如果父元素存在於請求中,並且不是強制/粗體,但其中的欄位是,則這些欄位是必要的。例如,請參閱下列範本中的 data.replyMessage 結構。如果結構存在,標題是強制性的。否則,可選擇是否完成 replyMessage

{ "templateType":"TimePicker", "version":"1.0", "data":{ "replyMessage":{ "title":"Thanks for selecting", "subtitle":"Appointment selected", }, "content":{ "title":"Schedule appointment", "subtitle":"Tap to select option", "timeZoneOffset":-450, "location":{ "latitude":47.616299, "longitude":-122.4311, "title":"Oscar", "radius":1, }, "timeslots":[ { "date" : "2020-10-31T17:00+00:00", "duration": 60, }, { "date" : "2020-11-15T13:00+00:00", "duration": 60, }, { "date" : "2020-11-15T16:00+00:00", "duration": 60, } ], } } } }

時間挑選器限制

下表列出了每個時間挑選器元素的限制。如果您選擇從頭開始建置自己的 Lambda,請使用此資訊。強制性參數會以粗體顯示。

父項欄位 欄位 必要 最少字元 最多字元 其他要求

templateType

有效範本類型

data

version

必須為 "1.0"

data

replyMessage
內容

replyMessage

標題

1

400

應該為無提示範本的描述

字幕

0

400

內容

標題

1

400

應該為無提示範本的描述

字幕

0

200

時區偏移

-720

840

未設定時,此欄位為選擇性欄位。我們的範例用戶端預設為使用者的時區。如果已設定,則會根據輸入的時區顯示。該欄位應該是一個整數,表示根據 GMT 時間的分鐘數,指定事件位置的時區。

location

時段

1

40

這是時段的陣列。陣列中最多 40 個元素。

location

經度

-180

180

必須為兩倍

緯度

-90

90

必須為兩倍

標題

1

400

radius

0

200

時段

date

應為 ISO-8601 時間格式:YYYY-MM-DDTHH.MM+00.00

例如:

"2020-08-14T21:21+00.00"

duration

1

3600

面板範本

透過使用面板範本,您可以在一個問題下向客戶提供多達 10 個選擇。但是,您只能包含一個影像,而不是每個選擇都可以有影像。

下列影像顯示面板範本如何在聊天中呈現資訊的範例。它會在訊息頂部顯示一個影像,並在影像下顯示一個提示,詢問我該如何提供幫助? 點選以選取選項。在提示下向客戶顯示三個選項:查看自助式服務選項與客服人員交談結束聊天

在聊天中呈現資訊的面板範本。

下列程式碼是您可以在 Lambda 中使用的面板範本。注意下列事項:

  • 粗體文字是強制性參數。

  • 在某些情況下,如果父元素存在於請求中,並且不是強制/粗體,但其中的欄位是,則這些欄位是必要的。例如,請參閱下列範本中的 data.replyMessage 結構。如果結構存在,標題是強制性的。否則,可選擇是否完成 replyMessage

{ "templateType":"Panel", "version":"1.0", "data":{ "replyMessage":{ "title":"Thanks for selecting!", "subtitle":"Option selected", }, "content":{ "title":"How can I help you?", "subtitle":"Tap to select option", "imageType":"URL", "imageData":"https://interactive-msg.s3-us-west-2.amazonaws.com/company.jpg", "imageDescription":"Select an option", "elements":[ { "title":"Check self-service options", }, { "title":"Talk to an agent", }, { "title":"End chat", } ] } } }

面板限制

如果您選擇從頭開始建置自己的 Lambda,下表列出了每個面板元素的限制。強制性參數會以粗體顯示。

如要傳送無限的選項,請在應用程式中實作動作按鈕。如需詳細資訊,請參閱互動式訊息清單選取器/面板中的動作按鈕實作

父項欄位 欄位 必要 最少字元 最多字元 其他要求

templateType

有效範本類型

data

version

必須為 "1.0"

data

replyMessage
內容

內容

標題

1

400

應該是無提示範本的描述

字幕

0

400

元素

1 個項目

10 個項目

這是元素的陣列。陣列中最多 10 個元素。

imageType

0

50

必須為 "URL"

imageData

0

200

必須為有效的可公開存取網址

imageDescription

0

50

沒有影像則無法存在

referenceId

字串. 只需要動作按鈕功能。

listId

字串. 只需要動作按鈕功能。

預索引

數字。只需要動作按鈕功能。

nextIndex

數字。只需要動作按鈕功能。

templateIdentifier

數字。應該是一個 UUID。如果浮動切換中要使用「清單挑選器/面板」,則需要此欄位

元素

標題

1

400

actionDetail

只需要動作按鈕功能。必須為 "PREVIOUS_OPTIONS" 或 "SHOW_MORE"。

replyMessage

標題

1

400

字幕

0

400

快速回覆範本

使用快速回覆訊息,以在內嵌清單中取得客戶及其對客戶的簡單回覆。您可以在一個快速回覆訊息中向客戶提供多達 5 個選項。快速回覆不支援影像。

下列影像顯示快速回覆範本如何在聊天中呈現資訊的範例。

在聊天中呈現資訊的面板範本。

下列程式碼是您可以在 Lambda 中使用的快速回覆範本。

{ "templateType": "QuickReply", "version": "1.0", "data": { "content": { "title": "Which department would you like?", "elements": [ { "title": "Billing" }, { "title": "Cancellation" }, { "title": "New Service" } ] } } }

快速回覆限制

下表列出了每個快速回覆元素的限制。如果您選擇從頭開始建置自己的 Lambda,請使用此資訊。強制性參數會以粗體顯示。

欄位 必要 最少字元 最多字元 其他要求

templateType

有效範本類型

data

version

必須為 "1.0"

內容

標題

1

400

應該是無提示範本的描述

元素

2 個項目

5 個項目

這是元素的陣列。陣列中最小 2 個元素和最多 5 個元素。

標題

1

200

使用浮動切換在一個訊息中向客戶顯示多達 5 個清單挑選器或面板。類似清單挑選器和時間挑選器,您可以透過使用 SHOW_MORE 功能新增更多的選項至浮動切換。

以下 GIF 顯示浮動切換範本如何在聊天中呈現資訊的範例。客戶可透過使用左、右箭頭捲動影像的浮動切換。

客戶聊天體驗中的浮動切換。

下圖顯示了兩個了解更多超連結,這是浮動切換挑選器超連結元素的範例。

附超連結的浮動切換挑選器。

以下程式碼是您可以在 Lambda 中使用的浮動切換範本。

{ "templateType": "Carousel", "version": "1.0", "data": { "content": { "title": "View our popular destinations", "elements": [ { "templateIdentifier": "template0", "templateType": "Panel", "version": "1.0", "data": { "content": { "title": "California", "subtitle": "Tap to select option", "elements": [ { "title": "Book flights" }, { "title": "Book hotels" }, { "title": "Talk to agent" } ] } } }, { "templateIdentifier": "template1", "templateType": "Panel", "version": "1.0", "data": { "content": { "title": "New York", "subtitle": "Tap to select option", "elements": [ { "title": "Book flights" }, { "title": "Book hotels" }, { "title": "Talk to agent" } ] } } } ] } } }

對於託管的通訊小工具使用者:

  • 浮動切換範本上的選項會導致 JSON 字串回應結構如下列範例所示,傳回 Lambda (其他互動式訊息類型會傳回僅含 selectionText 值的一般字串回應):

    { templateIdentifier: "template0", listTitle: "California", selectionText: "Book hotels" }
  • 在浮動切換中,您可以在清單挑選器/面板元素中提供超連結。若要建立超連結而非按鈕,請在應為超連結的元素包含下列其他欄位:

    { title: "Book flights", ... type: "hyperlink", url: "https://www.example.com/Flights" }

下表列出每個浮動切換元素的限制。如果您選擇從頭開始建置自己的 Lambda,請使用此資訊。強制性參數會以粗體顯示。

父項欄位 欄位 必要 最少字元 最多字元 其他要求

templateType

有效範本類型

data

version

必須為 "1.0"

data

內容

內容

標題

1

400

應該是無提示範本的描述

元素

2 個項目

5 個項目

這是一個清單挑選器面板範本的陣列。每個浮動切換只接受一種互動式訊息類型。每個元素都應包含頂層欄位 templateIdentifier。陣列中至少 2 個範本和最多 5 個範本。

注意

為了獲得最佳的客戶體驗,我們建議每個範本都使用一致的影像/元素數量。

omitTitleFromCarouselResponse

布林值-選擇性地以 SelectionText"" 而非預設的 "PickerTitle: SelectionText" 回應。

carouselIsVertical

布林值 - 可選擇使用垂直捲動呈現 Carousel 元素。

您可以為聊天訊息的標題和副標題新增 RTF 格式。例如,您可以新增連結、斜體、粗體、編號清單和項目符號清單。您可以使用 markdown 將文字格式化。

以下的聊天方塊影像顯示在標題和副標題使用 RTF 格式的範例清單挑選器。

  • 標題我們如何提供幫助? aws.amazon.com 是粗體的,並包含一個連結。

  • 副標題包含斜體和粗體文字、項目符號清單和編號清單。它也會顯示純連結、文字連結和範例程式碼。

  • 聊天方塊的底部顯示三個清單挑選器元素。

聊天方塊、附連結的標題、附清單和連結的副標題。

如何使用 markdown 格式化文字

您可以用多行格式寫入標題和副標題字串,也可以在單行中使用 `\r\n` 換行符號來寫入標題和副標題字串。

  • 多行格式:以下程式碼範例顯示如何以多行格式編寫 markdown 清單。

    const MultiLinePickerSubtitle = `This is some *emphasized text* and some **strongly emphasized text** This is a bulleted list (multiline): * item 1 * item 2 * item 3 This is a numbered list: 1. item 1 2. item 2 3. item 3 Questions? Visit https://plainlink.com/faq [This is a link](https://aws.amazon.com) This is \`\` ` const PickerTemplate = { templateType: "ListPicker|Panel", version: "1.0", data: { content: { title: "How can we help?", subtitle: MultiLinePickerSubtitle, elements: [ /* ... */ ] } } }
  • 單行格式:下列範例顯示如何使用 `\r\n` 換行符號在單行中編寫副標題。

    const SingleLinePickerSubtitle = "This is some *emphasized text* and some **strongly emphasized text**\r\nThis is a bulleted list:\n* item 1\n* item 2\n* item 3\n\nThis is a numbered list:\n1. item 1\n2. item 2\n3. item 3\n\nQuestions? Visit https://plainlink.com/faq\r\n[This is a link](https://aws.amazon.com)\r\nThis is `<code/>`"; const PickerTemplate = { templateType: "ListPicker|Panel", version: "1.0", data: { content: { title: "How can we help?", subtitle: SingleLinePickerSubtitle, elements: [ /* ... */ ] } } }

下列範例顯示如何使用 markdown 設定斜體與粗體文字格式:

This is some *emphasized text* and some **strongly emphasized text**

下列範例顯示如何使用 markdown 將文字格式化為程式碼:

This is `<code />`

如何使用 markdown 格式化連結

若要建立連結,請使用下列語法:

[aws](https://aws.amazon.com)

以下範例顯示兩種可以用 markdown 新增連結的方法:

Questions? Visit https://plainlink.com/faq

[This is a link](https://aws.amazon.com)