

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

# 在 Amazon Connect 中設定電子郵件
<a name="setup-email-channel"></a>

以下是為您的聯絡中心設定電子郵件管道的步驟概觀。
+ [為您的 Amazon Connect 執行個體啟用電子郵件](enable-email1.md)。在此程序中，您會收到自動產生的電子郵件地址。您也可以選擇新增五個自訂地址。
+ [建立電子郵件地址](create-email-address1.md).
+ [建立或更新電子郵件的佇列](create-queue.md)：在**外撥電子郵件組態**區段中：
  + **預設電子郵件地址**：指定客服人員在回覆或啟動電子郵件時預先選取的傳出電子郵件地址。
    + 這必須是 Amazon Connect 內的已驗證電子郵件地址 （在 Amazon SES 驗證網域下的 Amazon Connect 中建立的電子郵件地址）。 Amazon SES 
    + 這應該是此佇列最常用的電子郵件地址。
    + 對於客服人員起始的外撥電子郵件，客服人員可以使用其轉接設定檔中設定的預設外撥佇列的預設電子郵件地址來傳送電子郵件。客服人員也可以從佇列上設定**的其他電子郵件地址**中選取，讓您根據客服人員的角色或團隊，靈活地控制可使用的電子郵件地址。
    + 此模型類似於外撥語音聯絡人，您可以在其中指定每個佇列的外撥來電者 ID 和流程，而客服人員會使用其轉接設定檔的預設外撥佇列。
  + **外寄電子郵件流程**：選取要針對從此佇列傳送的外寄電子郵件執行的流程。您可以選取 [Amazon Connect 中的預設外撥流程：「此通話不會進行錄音」](default-outbound.md)或其他類型為 Outbound 的流程。
    + 您在此處設定的外撥電子郵件流程適用於客服人員對此佇列上收到的內撥電子郵件聯絡人的回覆，以及當此佇列選取為客服人員轉接設定檔中的預設外撥佇列時，客服人員起始的外撥電子郵件。
    + 如果您未指定外寄電子郵件流程， [Amazon Connect 中的預設外撥流程：「此通話不會進行錄音」](default-outbound.md) 會自動用於來自此佇列的所有外寄電子郵件。
    + 與外撥語音聯絡類似，為每個佇列設定不同的外撥電子郵件流程可讓您根據佇列彈性地執行不同的聯絡流程。這可讓您自訂不同團隊、品牌或業務單位的傳出電子郵件體驗。

  **在其他電子郵件地址**區段中：
  + **搜尋電子郵件地址**：最多選取 49 個其他電子郵件地址，客服人員可在回覆或啟動電子郵件時使用。客服人員可以使用其工作區中的下拉式清單，從所有設定的電子郵件地址 （預設加上其他） 中選取 （請參閱 [選取寄件者電子郵件地址](agent-select-from-email.md))。每個佇列最多可設定 50 個電子郵件地址 （預設 1 個 \$1 額外 49 個）。

  可用的電子郵件地址清單遵守[標籤型存取控制 (TBAC)](https://docs.aws.amazon.com/connect/latest/adminguide/tag-based-access-control.html)。客服人員只會看到他們有權根據指派的標籤使用的電子郵件地址。
+  [建立或更新轉接設定檔](routing-profiles.md)，以指定客服人員可以處理電子郵件聯絡。
**重要**  
在轉接設定檔中：  
**預設傳出佇列**會定義客服人員所啟動的任何傳出電子郵件可用的電子郵件地址清單。客服人員可以從此佇列上設定的電子郵件地址中選取 。
**每個客服人員的聯絡上限**會定義客服人員可以接收的電子郵件數量，而該數量的兩倍是客服人員可以啟動的傳出電子郵件數量。例如，如果您將**每個客服人員的聯絡人上限**設定為 5，客服人員最多可以接收 5 封電子郵件，並建立最多 10 封客服人員啟動的傳出電子郵件。
+  [建立訊息範本](create-message-templates1.md)。電子郵件範本可以定義客服人員的電子郵件結構，例如簽章或免責聲明，或者其也可以是完整回應。
+ 使用 [傳送訊息](send-message.md) 區塊設定流程。使用此區塊，根據範本或自訂訊息，傳送訊息給客戶。此外，您可以指定：
  + 收件者和寄件者電子郵件地址和顯示名稱。您可以使用 [系統屬性](connect-attrib-list.md#attribs-system-table) 手動或動態指定它們，例如：
    + **客戶端點地址**：這是啟動聯絡的客戶電子郵件地址。
    + **系統電子郵件地址**：這是客戶將電子郵件傳送至其中的電子郵件地址。
    + **客戶顯示名稱**：這會從客戶傳送給您的電子郵件中擷取。
    + **系統顯示名稱**：客戶傳送的電子郵件顯示名稱。
    + **副本電子郵件地址清單**：客戶電子郵件上副本電子郵件地址的完整清單。
    + **收件者電子郵件地址清單**：客戶電子郵件上收件者電子郵件地址的完整清單。

    例如，若要在客戶向您傳送電子郵件時傳送自動回覆，請將**電子郵件地址**動態設定為**客戶端點地址**，並將**顯示名稱**動態設定為**客戶顯示名稱**。
  + **訊息**：指定範本或輸入純文字。
    + 您可以使用**區段屬性** - **電子郵件主旨**，動態指定**主旨**。
    + 您可以選擇**使用者定義**屬性，動態指定**訊息**。
  + **連結至聯絡**：選擇是否要將傳入聯絡電子郵件連結至傳出聯絡電子郵件。您可能不想為自動回覆電子郵件選擇此選項。
+ 使用 [檢查聯絡屬性](check-contact-attributes.md) 區塊中的屬性來檢查聯絡的管道。如果是電子郵件，您可以使用下列 [區段屬性](connect-attrib-list.md#attribs-segment-attributes) 來檢查：
  + **電子郵件主旨**：例如，您可以檢查主旨是否有特定關鍵字。
  + **Amazon SES 垃圾郵件判定**和 **Amazon SES 病毒判定**：當客戶的電子郵件送達時，Amazon SES 會掃描是否有垃圾郵件和病毒。例如，如果條件等於 FAILED (表示電子郵件未通過檢查)，您可以中斷聯絡的連線或將電子郵件傳送至特殊佇列，供管理員檢閱。
+ 將下列安全性設定檔許可指派給需要啟動傳出電子郵件的客服人員。
  + **聯絡人控制台 (CCP)** - **啟動電子郵件對話**

# Amazon Connect 電子郵件的運作方式
<a name="email-capabilities"></a>

Amazon Connect 電子郵件提供內建功能，可讓您輕鬆地對客戶服務電子郵件的解決方案排定優先順序、指派和自動化，從而提高客戶滿意度和客服人員生產力。您可以接收和回應客戶傳送到您[設定的電子郵件地址](create-email-address1.md)的電子郵件，或使用 [StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html) API 在網站或行動應用程式上使用 Web 表單來提交。

Amazon Connect 電子郵件與 [Amazon Simple Email Service (SES)](https://docs.aws.amazon.com/ses/latest/dg/Welcome.html) 整合，以傳送、接收和監控[標示為垃圾郵件或包含病毒的內容](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-concepts.html#receiving-email-auth-and-scan)的電子郵件、[交付成功率](https://docs.aws.amazon.com/ses/latest/dg/monitor-sending-activity.html)和[寄件者評價結果](https://docs.aws.amazon.com/ses/latest/dg/monitor-sender-reputation.html)。

 本主題說明 Amazon Connect 電子郵件與 Amazon SES 如何搭配運作以實現無縫的客戶體驗。

**Topics**
+ [接收電子郵件](#email-capabilities-howreceived)
+ [電子郵件聯絡](#email-capabilities-howtranslated)
+ [每封電子郵件訊息都是唯一的電子郵件聯絡](#email-capabilities-howmanaged)
+ [電子郵件討論串](#email-capabilities-howthreadsmanaged)
+ [傳送電子郵件](#email-capabilities-howemailssent)

## 接收電子郵件
<a name="email-capabilities-howreceived"></a>

Amazon Connect 有三種主要方式可以接收電子郵件：
+ **方法 1**：透過 Amazon Connect 中定義的[電子郵件地址](create-email-address1.md) (例如 support@*customer-domain*.com)，使用[來自 Amazon SES 的已驗證電子郵件網域](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-domain-proc)，例如 Amazon Connect 執行個體隨附的電子郵件網域 (例如 @*instance-alias*.email.connect.aws)，或您擁有或由貴公司提供的自訂已驗證網域 (例如 @*customer-domain*.com)。如需加入自訂電子郵件網域的詳細資訊，請參閱 [為您的執行個體啟用電子郵件](enable-email1.md) 中的[步驟 3：使用您自己的自訂電子郵件網域](enable-email1.md#use-custom-email)。
+ **方法 2**：使用電子郵件伺服器上的轉接規則 (例如 [Microsoft 365 Connectors](https://learn.microsoft.com/en-us/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/set-up-connectors-to-route-mail)、[Google Workspace Mail Routes](https://support.google.com/a/answer/2614757?hl=en&ref_topic=2921034&sjid=9077065025577504786-NC))，使用已加入 Amazon SES 的已驗證電子郵件網域 (例如 @*customer-domain*.com)，將傳入電子郵件傳送至其中一個 [Amazon SES 的 SMTP 端點](https://docs.aws.amazon.com/general/latest/gr/ses.html)。
+ **方法 3**：使用 [StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html) API 在您的網站或行動應用程式中使用 Web 表單來啟動電子郵件聯絡。這會開始傳入電子郵件聯絡，類似於客戶傳送電子郵件到您的電子郵件地址。

下圖說明 Amazon Connect 如何針對上述各個方法，使用 [StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html) API 接收從客戶傳送的電子郵件。

![\[顯示訊息如何以 Web 表單或電子郵件形式傳送至 StartEmailContact API 的圖表。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/email-ses-diagram.png)


若要整合方法 1 或 2，您必須先驗證 Amazon SES 上的電子郵件網域，才能在 Amazon Connect 中使用電子郵件網域。如需指示，請參閱[透過 DNS 提供者驗證 DKIM 網域身分](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-domain-proc)。

若要整合方法 3，您可以使用 [StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html) API。這是傳入電子郵件聯絡的所有整合方法的主要 API。它的運作方式類似於 [StartTaskContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartTaskContact.html)。這需要您執行下列其中一個步驟：
+ 在傳入電子郵件聯絡的收件者或副本屬性中，包含至少一個來自 Amazon Connect 執行個體的電子郵件地址。

-或是-
+ 從 Amazon Connect 執行個體定義傳入流程，以轉接建立的傳入電子郵件聯絡。

如果同時定義兩者，預設行為會優先考慮來自 Amazon Connect 執行個體的傳入流程，以處理建立的傳入電子郵件聯絡。如果收件者或副本電子郵件地址屬性中包含來自 Amazon Connect 執行個體的多個電子郵件地址，則會在您的 Amazon Connect 執行個體中建立多個傳入電子郵件聯絡。

## 電子郵件訊息如何成為電子郵件聯絡
<a name="email-capabilities-howtranslated"></a>

對於 Amazon Connect 中的一般電子郵件接收，包括 Web 表單型電子郵件，[StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html) API 會公開請求物件上的基本電子郵件欄位。此物件用於填入電子郵件資訊，並在 Amazon Connect 中啟動電子郵件聯絡。包含下列欄位：
+ 寄件者電子郵件地址
+ 收件者電子郵件地址
+  副本電子郵件地址
+ 主旨
+ 純文字或 HTML 訊息內文
+ 附件

如需如何將電子郵件聯絡資訊填入電子郵件聯絡的詳細資訊，請參閱 Amazon Connect 電子郵件聯絡資料模型。

在 [StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html) API 執行請求參數驗證並確保至少一個收件者或副本電子郵件地址有效且存在於 Amazon Connect 執行個體之後，會發生下列情況：

1. 聯絡 ID 會做為 API 回應內文的一部分產生並傳回。

1. 非同步工作流程會觸發，以執行額外的電子郵件訊息處理。

1. 流程啟動。這是與 Amazon Connect 執行個體中找到的電子郵件地址相關聯的流程。

為此，您需要為 Amazon Connect 執行個體設定電子郵件訊息和附件儲存。
+ 電子郵件訊息和附件都會在您自己的 Amazon SES S3 儲存貯體中儲存和存取。
+ 其餘的電子郵件聯絡屬性，例如收件者、副本、主旨和其他屬性，都會儲存在電子郵件聯絡中；請參閱 [Amazon Connect 聯絡人記錄的資料模型](ctr-data-model.md)。

下圖說明從客戶到 Amazon SES 再到 Amazon Connect 的電子郵件訊息流程。它會顯示儲存在 S3 儲存貯體中的電子郵件訊息內容，然後從該儲存貯體取得資料，將其顯示給客服人員。

![\[顯示儲存在 S3 儲存貯體中電子郵件訊息內容的圖表。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/email-concepts-translated.png)


## 每封電子郵件訊息都是唯一的電子郵件聯絡
<a name="email-capabilities-howmanaged"></a>

Amazon Connect 電子郵件與語音、聊天和任務不同。
+ 每個傳入或傳出自 Amazon Connect 的電子郵件訊息，都是自己的唯一電子郵件聯絡。
+ 每個電子郵件聯絡都包含該電子郵件訊息的特定詳細資訊，例如寄件者地址、收件者地址、副本地址、主旨、relatedContactId、電子郵件內文和附件儲存位置的連結，以及與個別電子郵件聯絡相關的其他詳細資訊。

 不過，如同 Amazon Connect 中的其他管道，電子郵件聯絡具有類似的啟動方法，例如 `INBOUND`、`OUTBOUND`、`TRANSFER`、`API`、`QUEUE_TRANSFER` 和 `END/DISCONNECT`。它也有類似的狀態，例如 `CREATED`、`QUEUED`、`CONNECTING`、`CONNECTED`、`MISSED`、`TRANSFERRED`、`ERROR`、`ENDED/DISCONNECTED`、`REJECTED`。

如需如何將電子郵件聯絡資訊填入電子郵件聯絡的詳細資訊，請參閱 [Amazon Connect 聯絡人記錄的資料模型](ctr-data-model.md)。

## 電子郵件討論串
<a name="email-capabilities-howthreadsmanaged"></a>

電子郵件討論串可確保與客戶查詢相關的傳出電子郵件和傳入回應以時間順序和有條不紊的方式相互關聯。

為了維持整個電子郵件對話，Amazon Connect 會使用電子郵件聯絡上的幾個欄位將電子郵件聯絡連結在一起，例如 relatedContactId 和遵循傳統電子郵件用戶端標準 (RFC 5256) 的電子郵件標頭清單。

大多數電子郵件用戶端，例如 Gmail、Apple Mail 和 Outlook，都支援電子郵件討論串。不過請記住，有些不支援。

如果您的客戶在討論串中回覆最新的電子郵件訊息，討論串會遵循直接的模式，如下圖所示：

![\[直接模式中的電子郵件討論串。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/email-threading.png)


如果客戶回覆電子郵件討論串中的舊訊息，則會形成電子郵件討論串樹狀結構，而電子郵件討論串模式看起來類似下圖中的範例：

![\[樹狀結構模式中的電子郵件討論串。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/email-threading-tree.png)


在這兩種情況下，Amazon Connect 都會保留與討論串相關的每個電子郵件訊息的記錄。每則電子郵件訊息都可以由成功的電子郵件存取。

## 傳送電子郵件
<a name="email-capabilities-howemailssent"></a>

來自 Amazon Connect 的所有電子郵件訊息都會直接從 Amazon SES 傳送給您的客戶。無論您是使用 Amazon Connect 執行個體隨附的電子郵件網域 (例如，@*instance-alias*.email.connect.aws) 還是自訂已驗證網域 (例如，@*customer*.com)，Amazon SES 都會透過驗證網域身分來授權，以直接傳送電子郵件給您的客戶。

下圖顯示 [StartOutboundEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartOutboundEmailContact.html) API 會傳送電子郵件給 Amazon SES，而 Amazon SES 會將其傳送給您的客戶。

![\[圖表顯示從 StartOutboundEmailContact API 透過 SES 傳送給客戶的電子郵件流程。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/email-concepts-sent.png)


[StartOutboundEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartOutboundEmailContact.html) API 是傳出電子郵件聯絡的所有整合方法的主要 API，包括客服人員回覆傳入聯絡和客服人員啟動的傳出電子郵件聯絡。
+ 它的運作方式類似於 [StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html) API，但它是反向的，因為它是傳出。
+  它需要在收件者或副本電子郵件地址屬性中至少有一個電子郵件地址，而且需要傳出低語流程來處理傳出聯絡。

# 為您的 Amazon Connect 執行個體啟用電子郵件
<a name="enable-email1"></a>

本主題適用於有權存取 Amazon Connect 主控台的管理員。它說明如何使用 Amazon Connect 管理網站為您的執行個體啟用電子郵件。如需以程式設計方式啟用電子郵件的 API 清單，請參閱 [用以啟用電子郵件的 API](#apis-email-setup2)。

啟用電子郵件時，您會取得自動產生的電子郵件網域。或者，您也可以使用自訂網域。
+ **Amazon Connect 電子郵件網域**。電子郵件網域是 **instance-alias*.email.connect.aws*。
  +  您可以使用此網域進行測試。
  + 或者，您可以使用此電子郵件網域與 Amazon Connect 整合，並開始在 Amazon Connect 中接收電子郵件。舉例來說，如果您有電子郵件地址，例如 *support@example.com*，您可以使用 *support@example.email.connect.aws* 將電子郵件轉送到 Amazon Connect。
+ **自訂網域**。您可以指定最多 5 個已[加入 Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-domain-proc) 的自訂網域。

## 步驟 1：將 Amazon SES 移至生產模式
<a name="move-ses-production"></a>

Amazon Connect 使用 Amazon SES 來傳送和接收電子郵件。如果您有新的 Amazon SES 執行個體，您需要將其移出沙盒模式。如需指示，請參閱《Amazon SES 開發人員指南》**中的[請求生產存取權 (移出 Amazon SES 沙盒)](https://docs.aws.amazon.com/ses/latest/dg/request-production-access.html)。

將 Amazon SES 移至生產模式之後，如果您在建立 Amazon Connect 執行個體時已啟用電子郵件，請跳到下列主題：
+ [(選用) 步驟 3：使用您自己的自訂電子郵件網域](#use-custom-email)
+ [步驟 5：在您的附件儲存貯體上設定 CORS 政策](#config-email-attachments-cors1)

## 步驟 2：取得預設 Amazon Connect 電子郵件網域
<a name="get-email-domain"></a>

這些步驟僅適用於您已建立 Amazon Connect 執行個體但未啟用電子郵件的情況。請完成以下步驟，從 Amazon Connect 取得預設電子郵件網域。

1. 在 Amazon Connect 主控台的左側導覽功能表中，選擇**電子郵件**，然後選擇**建立服務角色**。您只需要為帳戶建立此角色一次。它允許 Amazon SES 將電子郵件轉接到 Amazon Connect。

1.  選擇**新增網域**，如下圖所示。  
![\[管理電子郵件頁面，新增網域按鈕。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/email-aws-console1.png)

1. 在**新增電子郵件網域**方塊中，選擇 **Amazon Connect 電子郵件網域**，如下圖所示。當您選擇此選項時，網域的名稱會自動產生：**instance-alias*.email.connect.aws*。您無法變更此電子郵件地址。  
![\[新增電子郵件網域方塊，Amazon Connect 電子郵件網域選項。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/email-add-email-domain.png)

## (選用) 步驟 3：使用您自己的自訂電子郵件網域
<a name="use-custom-email"></a>

您可以匯入最多 5 個已[加入 Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-domain-proc) 的自訂網域。

1. 在 Amazon Connect 主控台的左側導覽功能表中，選擇**電子郵件**，然後選擇**新增網域**，如下圖所示。  
![\[Amazon Connect 主控台上的電子郵件管道。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/email-aws-console.png)

1. 選擇**使用自訂電子郵件網域**。使用下拉式方塊選擇已[由 Amazon SES 驗證](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-domain-proc)的自訂網域。  
![\[使用自訂電子郵件網域選項。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/email-add-custom-domain.png)

## 步驟 4：啟用電子郵件並建立用來儲存電子郵件和附件的 Amazon S3 儲存貯體
<a name="enable-email-buckets"></a>

只有在您已建立 Amazon Connect 執行個體，但尚未啟用電子郵件時，才適用這些步驟。

您需要更新**資料儲存**設定，以啟用電子郵件管道，並指定要儲存電子郵件訊息和附件的 Amazon S3 儲存貯體。電子郵件需要兩個 Amazon S3 儲存貯體指標。它們可以位於相同的 Amazon S3 儲存貯體或兩個不同的儲存貯體。

**重要**  
如果您選擇為執行個體**啟用附件共用**，則必須建立 Amazon S3 儲存貯體，並[在附件儲存貯體上設定 CORS 政策](#config-email-attachments-cors1)，如本主題所述。若未執行此動作，**電子郵件管道將無法用於您的執行個體**。

1. 在 [https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/) 開啟 Amazon Connect 主控台。

1. 在執行個體頁面上，選擇執行個體別名。執行個體別名也是您的**執行個體名稱**，它會出現在您的 Amazon Connect URL 中。下圖顯示 **Amazon Connect 虛擬聯絡中心執行個體**頁面，其中包含執行個體別名周圍的方塊。  
![\[Amazon Connect 虛擬聯絡中心執行個體頁面，即執行個體別名。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/instance.png)

1. 在左側導覽功能表中，選擇**資料儲存**、**電子郵件訊息**、**編輯**、**啟用將電子郵件訊息匯出至 S3**，然後選擇**儲存**。

1. 完成**電子郵件訊息**頁面，以建立或選取儲存電子郵件訊息的 S3 儲存貯體。下圖顯示完成頁面的範例。  
![\[資料儲存功能表選項，電子郵件訊息頁面。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/email-messages-export-to-s3.png)

1.  如果您想要允許電子郵件附件，也請選擇**附件**。下圖顯示這些選項。

**資料儲存**頁面的下圖顯示電子郵件訊息和附件的 Amazon S3 儲存貯體。

![\[用來儲存電子郵件和附件的 Amazon S3 儲存貯體。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/email-s3-bucket.png)


## 步驟 5：在您的附件儲存貯體上設定 CORS 政策
<a name="config-email-attachments-cors1"></a>

若要允許客戶和客服人員上傳和下載檔案，請更新跨來源資源共用 (CORS) 政策，以允許在用於附件的 Amazon S3 儲存貯體上提出 `PUT` 和 `GET` 請求。相較之下，在 Amazon S3 儲存貯體上啟用公開讀取/寫入較危險。

**若要在附件儲存貯體上設定 CORS**

1. 尋找用於存放附件的 Amazon S3 儲存貯體名稱：

   1. 在 [https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/) 開啟 Amazon Connect 主控台。

   1. 在 Amazon Connect 主控台中，選擇**資料儲存**，然後找出 Amazon S3 儲存貯體名稱。

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 在 Amazon S3 主控台，選擇您的 Amazon S3 儲存貯體。

1. 選擇**許可**索引標籤，然後向下捲動至**跨來源資源共用 (CORS)** 區段。

1. 新增在附件儲存貯體上具有以下規則之一的 CORS 政策。例如 CORS 政策，請參閱 *Amazon S3 開發人員指南*中的[跨來源資源共用：使用案例情境](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html#example-scenarios-cors)。
   + 選項 1：列出將從中傳送和接收附件的端點，例如您的企業網站名稱。此規則允許來自您網站的跨來源 PUT 和 GET 請求 (例如 http://www.example1.com)。

     您的 CORS 政策可能類似於下列範例：

     ```
     [
         {
             "AllowedHeaders": [
                 "*"
             ],
             "AllowedMethods": [
                 "PUT",
                 "GET"
             ],
             "AllowedOrigins": [
                 "*.my.connect.aws",
                 "*.awsapps.com"
             ],
             "ExposeHeaders": []
         }
     ]
     ```
   + 選項 2：將 `*` 萬用字元新增至 `AllowedOrigin`。此規則允許來自所有來源的跨來源 PUT 和 GET 請求，因此您不必列出端點。

     您的 CORS 政策可能類似於下列範例：

     ```
     [
         {                               
             "AllowedMethods": [
                 "PUT",
                 "GET"            
             ],
             "AllowedOrigins": [   
                 "*" 
                 ],
            "AllowedHeaders": [
                 "*"
                 ]
         }    
     ]
     ```

## 後續步驟
<a name="next-steps-email-setup3"></a>
+ [在 Amazon Connect 中設定附件掃描](setup-attachment-scanning.md)：本主題適用於熟悉 Lambda 的開發人員。您可以使用偏好的掃描應用程式來設定 Amazon Connect 掃描電子郵件附件。

## 用以啟用電子郵件的 API
<a name="apis-email-setup2"></a>

使用下列 API 以程式設計方式啟用電子郵件：
+ [CreateIntegrationAssociation](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateIntegrationAssociation.html)
+ [AssociateInstanceStorageConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_AssociateInstanceStorageConfig.html)
+ [DescribeInstanceStorageConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeInstanceStorageConfig.html)

# 建立電子郵件地址
<a name="create-email-address1"></a>

本主題說明如何使用 Amazon Connect 管理員網站建立電子郵件地址。您可以建立客戶可回覆的電子郵件地址，以及僅限傳出 (無回覆) 電子郵件地址。

如需用於以程式設計方式建立和管理電子郵件地址的 API 清單，請參閱 [用於建立和管理電子郵件地址的 API](#apis-manage-email-addresses1)。

您最多可以建立 100 個電子郵件地址。

**建立電子郵件地址**

1. 登入 Amazon Connect 管理網站，網址為 https：//*instance name*.my.connect.aws/。使用管理員帳戶或具有**管道和流程**的帳戶 - **電子郵件地址** - 在安全性設定檔中**建立**許可。

1. 在導覽功能表中，選擇**管道**、**電子郵件地址**。

1. 從下拉式清單中選擇網域。此清單包含您為執行個體啟用電子郵件管道時所建立的自動產生網域。如果您新增自訂網域，它也可能顯示最多五個自訂網域。

1. 在**其他資訊**下，您可以選擇性地新增下列項目：
   + **易記寄件者名稱**
   + **描述**：這供您使用，而非面向客戶。
   + **流程**：選擇已發佈的流程來傳送電子郵件。保留空白，讓電子郵件地址僅用於傳出通訊。客戶將無法回覆。
**提示**  
若要建立**無回覆**電子郵件地址，也就是僅用於傳出郵件且無法接受回覆的地址，請勿選取用於電子郵件地址的流程。

1. 在**標籤**下，選擇性地新增[標籤](tagging.md)，以管理誰可以在 Amazon Connect 和客服人員工作區中檢視和存取電子郵件地址。

1. 選擇**建立**。

## 用於建立和管理電子郵件地址的 API
<a name="apis-manage-email-addresses1"></a>

如需所有電子郵件地址 API 的清單，請參閱《Amazon Connect API 參考指南》**中的[電子郵件動作](https://docs.aws.amazon.com/connect/latest/APIReference/email-api.html)。

使用下列 API 以程式設計方式建立地址：
+ [CreateEmailAddress](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateEmailAddress.html)
+ [DescribeEmailAddress](https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeEmailAddress.html)
+ [UpdateEmailAddressMetadata](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateEmailAddressMetadata.html)

# 建立訊息範本
<a name="create-message-templates1"></a>

如果您經常設計和傳送特定類型的訊息，例如每週電子郵件或約會提醒，您可以建立該訊息並將其儲存為訊息範本。然後，您可以在每次需要傳送該類訊息時使用範本做為起點，而不必再次設計及撰寫訊息。

本主題適用於想要使用 管理員網站建立訊息範本的 Amazon Connect 管理員和聯絡中心管理員。

**提示**  
即使訊息範本使用 Connect AI 代理器 APIs，訊息範本也不會產生額外的帳單。您只需支付聊天訊息價格或電子郵件價格。如需詳細資訊，請參閱 [Amazon Connect 定價](https://aws.amazon.com/connect/pricing/)。

## 什麼是訊息範本？
<a name="what-message-templates"></a>

「訊息範本」**是一組您可以建立、儲存，然後在所傳送訊息中重複使用的內容和設定。在某些企業中，它們稱為「電子郵件範本」**和「SMS 範本」**。建立訊息範本時，您會指定要在以範本為基礎的訊息的各種元件中重複使用的內容。

當您建立訊息時，您可以選擇要用於訊息的範本。如果您選擇了一個範本，Amazon Connect 會將範本中的內容和設定填入訊息。

您可以在 Amazon Connect 中設計以下類型的訊息範本：
+ 電子郵件訊息的**電子郵件範本**，您會將這些電子郵件訊息傳送至您的聯絡人，以回覆客戶電子郵件，或者客服可以將其用於常見問答集。電子郵件範本可以定義客服的電子郵件結構，例如簽章，或者其也可以是完整回應。
+ **SMS 範本**，您從行銷活動中傳送的 SMS 文字訊息，或以直接或測試訊息傳送給受限對象的 SMS 文字訊息。
+ 您從行銷活動或有限對象傳送**的 WhatsApp 訊息的 WhatsApp 範本**，做為直接訊息或測試訊息。 WhatsApp 

您可以建立具有下列特徵的範本：
+ RTF 格式 (粗體、斜體、底線、刪除線、上標、下標)、RTF 字型樣式 (顏色、反白、大小、標題、系列、區塊引號、程式碼區塊)、特殊字元、表情符號、清單 (項目符號、編號)、對齊和縮排、資料表、超連結和嵌入影像
+ 電子郵件範本內定義個人化詳細資訊的屬性，例如客戶名稱、客戶電子郵件、客戶帳戶號碼、客戶電話號碼、客戶地址，以及客服名稱。
+ 最多 1 MB 的附件。如需支援的附件類型清單，請參閱 [Amazon Connect 功能規格](feature-limits.md)。

當您根據範本建立電子郵件訊息時，Amazon Connect 會在訊息中填入您於該範本中定義的內容及設定。

## 如何建立訊息範本
<a name="howto-message-templates"></a>

1. 使用 Amazon Connect 管理員帳戶或具有**內容管理** - **訊息範本** - 在其安全性設定檔中**建立**的使用者帳戶登入管理員網站。

1. 在導覽窗格中，選擇 **Message templates (訊息範本)**。

1. 如果這是您第一次建立範本，則會提示您建立存放範本的知識庫。

   您的企業可以具有數個知識庫，但其中只有一個可以與範本相關聯。

1. 選擇**建立範本**。

1. 在**頻道**下，選擇頻道。

1. 針對**名稱**輸入範本的名稱。名稱必須以字母或數字開頭。最多可包含 128 個字元。

1. 針對**描述 - *選用***，輸入範本的簡短描述。描述最多可包含 255 個字元。

1. 對於**轉接設定檔 - *選用***，輸入客服人員的轉接設定檔，以便能夠從客服人員工作區使用此範本。

1. 根據您是否正在建立**電子郵件**、**SMS** 或 **WhatsApp** 範本，請執行下列其中一項操作：

   針對電子郵件範本：

   1. 在 **Email details (電子郵件詳細資訊)** 中，使用以下選項指定使用範本的訊息內容：
      + 針對 **Subject (主旨)**，輸入您要在訊息主旨列中顯示的文字。
      + 針對**內文**，輸入您要在訊息內文中顯示的內容。
        + **編輯器**：使用 RTF 編輯器輸入內容。使用格式工具列以套用格式、新增連結及其他內容至訊息。若要新增附件，您的 IT 管理員需要啟用此選項的附件特徵。
        + **程式碼**：手動輸入 HTML 內容，包括格式、連結，以及您想要在訊息中包括的其他特徵。

        您也可以使用屬性，在範本的主旨和內文中包括個人化內容。若要執行此操作，請新增訊息變數，其會參考您或 Amazon Connect 建立的特定屬性，例如存放使用者名字的屬性。藉由使用訊息變數，您就能針對使用該範本之訊息的每個收件人顯示不同內容。

        若要使用訊息變數，請從**屬性尋找工具**中，選擇現有屬性的名稱。Amazon Connect 將其放入您的訊息中。您可以複製並將其貼到您想要的位置。如需詳細資訊，請參閱[將個人化內容新增至訊息範本](personalize-templates.md)。  
![\[訊息範本頁面上的屬性搜尋工具。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/message-template-attribute-finder.png)

   1. 在**標頭 - *選用***下，您可以將兩個靜態標頭新增至電子郵件訊息。例如，若要將一鍵式取消訂閱連結新增至促銷電子郵件，請新增下列兩個標頭：
      + **List-Unsubscribe**：設定為您組織的取消訂閱連結。連結必須支援 HTTP POST 請求，才能處理收件人取消訂閱請求。
      + **List-Unsubscribe-Post**：設定為 `List-Unsubscribe=One-Click`。

      在電子郵件中加入取消訂閱連結是最佳做法，在某些國家/地區也是法律規定。如果您的範本包括一個具有此屬性的連結，您必須具有準備妥當的系統，用於處理選擇退出請求。

   1. 當您完成了輸入範本的內容和設定時，請選擇**儲存**。

   1. 在將範本提供給使用者之前，建議您傳送測試電子郵件訊息，以確保範本如預期般運作。

   1. 當您準備好將範本用於流程、活動，以及供使用客服人員工作區的客服人員使用時，請完成[啟用](#create-message-templates1)該範本的步驟。

**針對 SMS 範本：**

1. 在**內文**中的 **SMS 詳細資訊**下撰寫訊息。使用上述指示，視需要新增屬性來個人化訊息。

1. 輸入範本的內容和設定後，請選擇 **Create (建立)**。

1. 在將範本提供給使用者之前，建議您傳送測試訊息，以確保範本如預期般運作。

1. 當您準備好將 SMS 範本用於**傳送訊息**區塊，或準備好將電子郵件範本用於電子郵件活動時，請完成[啟用](#create-message-templates1)該範本的步驟。

**針對 WhatsApp 範本：**

1. 在 **WhatsApp 詳細資訊**下，從下拉式清單中選取範本。請注意，只有中繼核准範本可用於建立訊息範本。在繼續之前，請確保您匯入的範本已在 Meta Business WhatsApp Manager 中核准。

1. 定義範本的名稱，並視需要新增描述。

1. 選取中繼核准範本後，您會看到以**內文**和**範本中繼資料 (JSON)** 格式顯示的詳細資訊。

1. **屬性映射：**若要在 Amazon Connect 中啟用個人化訊息傳遞，您需要將匯入的中繼屬性映射至自訂文字。透過將現有的 Connect 屬性與純文字結合，您可以為客戶建立自訂訊息。例如，您可能會在**內文**中看到 Hello \$1\$11\$1\$1，而且您可以從 `Attributes.Customer.FirstName` Connect 屬性清單中選擇要相符的 。

1. 有多種按鈕類型可以新增至內容範本。如果您選取的範本包含按鈕，例如包含屬性的網站 URL，您可以選取要映射或輸入靜態文字的 Connect 屬性。

1. 當您完成屬性映射時，請選擇**儲存**。

1. 在將範本提供給使用者之前，建議您傳送測試訊息，以確保範本如預期般運作。

# 啟用訊息範本
<a name="activate-message-templates"></a>

為了協助您管理個別訊息範本的開發和使用，Amazon Connect 支援所有訊息範本類型的版本控制。版本控制提供了一種方法，讓您建立範本變更的歷史記錄，每個版本都是範本在特定時間點的快照。版本控制也提供一種方法，讓您控制使用範本之訊息的內容和設定。

您只能啟用**已儲存為新版本**的訊息範本。這是為了防止意外啟用還是草稿的範本。

當範本版本**啟用**時，它可以新增至 [Amazon Connect 中的流程區塊：傳送訊息](send-message.md)，並且可以透過客服人員工作區供客服人員使用。

**啟用訊息範本**

使用 Amazon Connect 管理員帳戶或具有**內容管理** - **訊息範本** - 在其安全性設定檔中**建立**的使用者帳戶登入管理員網站。

1. 在左側導覽功能表上，選擇**傳訊範本**。

1. 在**傳訊範本**頁面上，使用**儲存為新版本**選項儲存範本。

1. 在**傳訊範本**頁面上，重新開啟您剛儲存的範本。

1. 使用下拉式功能表選擇要啟用的範本版本。  
![\[範本的版本號碼。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/message-template-version.png)

1. 選擇 **Activate (啟用)**。  
![\[訊息範本頁面上的啟用按鈕。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/message-template-version-activate.png)

# 關於版本控制訊息範本
<a name="about-version-message-templates"></a>

每次變更範本時，您都可以指定是要將變更儲存為範本的新草稿，還是將變更儲存為範本最新、現有草稿的更新。當您設計、開發和改良範本時，每個版本都會作為快照，可協助您追蹤範本的進度和狀態。也就是說，您可以使用版本控制，在範本隨著時間的推移而變化時來存放，追蹤和管理範本。您可以：
+ 追蹤範本的歷程記錄 - 針對每個範本，Amazon Connect 都會提供範本版本的清單。此清單會顯示每個版本的名稱。清單會以遞減時間順序排序，最新版本會列在最前面。
+ 檢視和比較範本的版本 – 使用版本清單，可以瀏覽範本之前的版本。如果您從清單中選擇版本，Amazon Connect 會顯示該版本中存放的內容和設定。
+ 還原至舊版範本 - 如果在最新版本的範本中發現問題，您可以還原未包含該問題的舊版本。然後，您可以將該先前版本儲存為新的範本版本。接著，新版本會變成範本的最新版本。

您也可以使用版本控制來控制可以在訊息中使用哪個版本的範本。您可以將特定版本指定為範本的作用中版本來執行此操作。作用中版本通常是最近經過審閱和核准，可在訊息中使用的版本，視您組織開發和管理範本的工作流程而定。

當您將版本指定為作用中版本時，您可以啟用該版本以在訊息中使用。隨著範本經過一段時間的變更，您可以將其他版本指定為作用中版本，並且可以多次變更該指定。

# 將個人化內容新增至訊息範本
<a name="personalize-templates"></a>

若要在使用範本的訊息中提供動態、個人化的內容，請將*訊息變數*新增至訊息範本。*訊息變數*是預留位置，指的是您或 Amazon Connect 建立的特定屬性，用於存放有關您使用者的資訊。每個屬性通常對應於使用者的特性，例如使用者的名字或他們居住的城市。在範本中新增訊息變數後，您就能使用這些屬性來將自訂內容傳遞給使用該範本之訊息的每個收件人。

如果範本包含訊息變數，Amazon Connect 會以每個收件人的目前對應屬性值取代每個變數。它會在每次傳送使用範本的訊息時執行此動作。這表示您可以傳送個人化內容給每位收件者，而無需建立多個自訂版本的訊息或訊息範本。您也可以確認訊息中包含您提供給收件者的最新資訊。

例如，如果您的專案是為跑步者提供的健身應用程式，且其中包含每個使用者名字、偏好活動和個人記錄的屬性，您就可以在範本中使用下列文字和訊息變數：

`Hi {{Attributes.Customer.FirstName}}, attached is information about the insurance plans we discussed.`

當您傳送一則使用範本的訊息時，Amazon Connect 會為每個收件人將變數取代為每個屬性的目前值。下列範例將顯示此情況。

**範例 1**  
`Hi Sofia, attached is information about the insurance plans we discussed.`

**範例 2**  
`Hi Alejandro, attached is information about the insurance plans we discussed.`

## 新增訊息變數
<a name="message-templates-add-variables"></a>

您可以在建立的新範本或現有範本中，加入訊息屬性。如果您將變數新增至現有範本，Amazon Connect 不一定會將變更套用到使用了該範本且尚未傳送的訊息。這取決於您新增變數的範本版本，以及使用該範本之訊息的設定方式。

**新增訊息變數至訊息範本**

1. 在導覽窗格中，選擇 **Message templates (訊息範本)**。

1. 在 **Message templates (訊息範本)** 頁面中，執行以下其中一項操作：
   + 若要建立新範本並新增訊息變數至其中，請選擇 **Create template (建立範本)**。然後，在範本頁面中輸入範本的名稱，並輸入範本的描述 (非必要)。
   + 若要將訊息變數新增至現有範本，請選擇您要新增變數的範本。然後，在範本頁面中選擇 **Edit (編輯)**。在 **Template details (範本詳細資訊)** 下，使用版本選取器來選擇您要做為起點使用的範本版本。如果您選擇的是最新版本，則可將變更直接儲存至該範本版本。或者，您可以將變更儲存為新的範本版本。

1. 在訊息詳細資料區段中，決定您要新增訊息變數的位置。對於電子郵件範本，您可以將變數新增至訊息主旨或內文。對於 SMS 範本，您可以將變數新增至內文。

1. 將游標放在訊息中您想要屬性位於其中的位置。按一下或點選**屬性搜尋工具**，然後捲動至您要為其新增訊息變數的屬性類型。  
![\[訊息範本頁面上的屬性搜尋工具。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/message-template-attribute-finder.png)

   您可以從下列屬性類型中進行選擇：
   + **系統屬性**：
     + **CustomerEndpointAddress**：啟動聯絡人的客戶電子郵件地址。
     + **SystemEmailAddress**：客戶將電子郵件傳送至其中的電子郵件地址。
     + **名稱**：客戶傳送至聯絡中心的電子郵件中的顯示名稱。
   + **客服屬性**：
     + **FirstName**
     + **LastName**
   + **客戶設定檔屬性**。如需完整清單和描述，請參閱[客戶設定檔屬性](connect-attrib-list.md#customer-profiles-attributes)。
     + **建議屬性**：將 Predictive Insights 與對外行銷活動搭配使用時，您可以在訊息範本中包含個人化產品建議。當您在事件觸發的行銷活動中設定建議時，即可使用這些屬性。

       每個建議都是使用索引來存取，例如`{{Attributes.Customer.Recommendations.[0].CatalogItem.Name}}`用於第一個建議、`{{Attributes.Customer.Recommendations.[1].CatalogItem.Name}}`用於第二個建議等。  
![\[電子郵件範本編輯器顯示屬性搜尋工具中的建議屬性，以及訊息內文中的個人化產品建議。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/RecommendationAttributesInTemplate.png)

       如需在行銷活動中設定建議的詳細資訊，請參閱 [使用事件觸發程序建立對外行銷活動](how-to-create-campaigns-using-event-triggers.md)。

1. 當您按一下屬性搜尋工具中的屬性時，它會自動放置在您的訊息中。您可以複製該屬性並將其貼到另一個位置。

   在您貼上屬性之後，Amazon Connect 會顯示該屬性，其以兩組大括弧括住，例如 `{{Attributes.Agent.FirstName}}`。下圖顯示具有三個屬性的電子郵件訊息：客戶的名字和姓氏，以及客服的名字。  
![\[具有訊息屬性的電子郵件訊息。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/message-template-email-attributes.png)

1. 完成後，請執行下列其中一項操作：
   + 如果您已將訊息變數新增至新範本，請選擇**儲存**。
   + 如果您已將訊息變數新增至現有範本，而且您想將變更儲存為新的範本版本，請選擇 **Save as new version (儲存為新版本)**。
   + 如果您已將訊息變數新增至現有範本，而且您想要將變更儲存為範本最新草稿的更新，請選擇**儲存**。如果您想要更新草稿並從草稿建立新版本，請選擇**儲存為新版本**。

# 使用訊息範本協助程式
<a name="message-template-helpers"></a>

使用 Amazon Connect 訊息範本，客戶可以根據 Handlebars.js 語言，建立可重複使用的訊息範本。協助程式提供多種功能，包括可以將價格轉換成特定區域的貨幣，或是依時區新增地點。協助程式可以針對值或特定的 Amazon Connect 訊息變數使用特定字串或整數。

這些是協助程式的類別，下列幾節會描述這些類別：

## 預設協助程式
<a name="defaulthelpers"></a>

本節介紹 Handlebars 提供的**內建**協助程式。

**重要**  
不支援 Handlebars 提供的內建 `with` 協助程式。不過，完全支援所有其他 Handlebars 協助程式。如需完整清單，請參閱 [handlebarsjs.com](https://handlebarsjs.com) 上的[內建協助程式](https://handlebarsjs.com/guide/builtin-helpers.html)。

 這些是內建協助程式：
+ `each` – 迭代清單。
**注意**  
清單大小上限是 15 個項目。
+ `if` – 評估陳述式。

*each*  
迭代清單。這個協助程式只使用區塊陳述式。您可以選擇性地：  
+ 傳遞請求中的 `@index`，以引用目前循環索引。
+ 使用 `this` 協助程式，引用目前正在逐一查看的元素。
+ 使用 `<li>` 標籤，傳回清單中的協助程式回應。
**用途**  
`{{#each value}}`  
位置 `{{@index}}` 的值是 `{{this}}`。  
`{{else}}`  
條件為 false。  
`{{/each}}`  
在區塊陳述式中，`each` 必須以井字號 (`#`) 開頭，並以 `{{/each}}` 結尾。  
**範例**  
就本範例而言，`each` 用於傳回使用者最喜歡的顏色的清單。若是 `false`，將傳回 `else` 陳述式。如果請求是這個：  
`{{#each User.UserAttributes.FavoriteColors}}`  
`<li>{{this}}</li>`  
`{{else}}`  
*您沒有喜歡的顏色。*  
`{{/each}}` 傳回  
+ *r*ed
+ *藍色*
+ *黃色*
true 陳述式。

*如*  
評估某件事是否是 true，並根據評估傳回回應。  
**用途**  
`{{#if value}}`  
值未定義  
`{{else}}`  
值未定義  
`{{/if}}`  
在區塊陳述式中，`if` 必須以井字號 (`#`) 開頭，並以 `{{/if}}` 結尾。  
**範例**  
就本範例而言，`if` 協助程式用於評估是否是使用者的名字。如果找到名稱，會傳回問候語，並在回應中傳遞使用者的名字。否則 `else` 陳述式會傳回替代問候語。  
`{{#if User.UserAttributes.FirstName.[0]}}`  
`Hello {{User.UserAttributes.FirstName.[0]}},`  
`{{else}}`  
*您好，*  
`{{/if}}`  
如果 `if` 協助程式是 true，則傳回*您好，簡*。

## 條件式協助程式
<a name="conditionhelpers"></a>

本節介紹**條件式**協助程式。

條件式協助程式可以在單行或區塊陳述式中使用。不論使用哪種協助程式，都可以自訂回應。您可以在單行和區塊陳述式中傳遞額外的條件式協助程式。以下條件式協助程式先顯示單行的使用方法，然後顯示使用了選用 `else` 子句的區塊陳述式。這些是條件式協助程式：
+ `and` – 比較所有傳遞的元素是否相等。
+ `eq` – 測試兩個元素是否相等。
+ `gt` – 測試某個元素是否大於另一個。
+ `gte` – 測試某個元素是否大於或等於另一個。
+ `if` – 評估某個條件是否為 true。
+ `lt` – 測試一個元素是否小於另一個元素。
+ `lte` – 測試一個元素是否小於或等於另一個元素。
+ `neq` – 評估兩個元素是否不相等。
+ `not` – 反轉布林值運算的回應。
+ `or` – 比較引數中的任何元素是否相等。

*及*  
比較引數中傳遞的*所有*元素是否相等，然後根據結果傳回回應。這個協助程式可用於非布林值。您必須為條件傳遞至少兩個元素。  
**用途**  
+ `{{and valuea valueb valuec valued yes='y' no='n'}}`

  您可以將 *y* 和 *n* 取代為其他值，例如 *yes* 和 *no*，或者您想傳回的任何其他字串，視條件而定。
+ `{{#and valuea valueb}}`

  條件為 true。

  `{{else}}`

  條件為 false。

  `{{/and}}`

  在區塊陳述式中，`and` 必須以井字號 (`#`) 開頭，並以 `{{/and}}` 結尾。
**範例**  
就本範例而言，`and` 區塊陳述式使用 `eq`，判斷傳遞給 `Location.City ` 和 `Location.Country` 屬性的兩個字串，是否為 true。如果兩個條件相等，將傳回 true 陳述式。如果其中一個屬性是 false，將傳回 `else` 陳述式。  
`{{#and (eq Location.City "Los Angeles") (eq Location.Country "US")}}`  
*您住在美國洛杉磯。*  
`{{else}}`  
*您不住在美國洛杉磯。*  
`{{/and}}`

*eq*  
測試兩個元素是否相等，或者一個元素的值是否等於傳遞的字串。  
**用途**  
+ `{{eq valuea valueb yes='y' no='n'}}`

  您可以將 *y* 和 *n* 取代為其他值，例如 *yes* 和 *no*，或者您想傳回的任何其他字串，視條件而定。
+ `{{#eq valuea valueb}}`

  條件為 true。

  `{{else}}`

  條件為 false。

  `{{/eq}}`

  在區塊陳述式中，`eq` 必須以井字號 (`#`) 開頭，並以 `{{/eq}}` 結尾。
**範例**  
就本範例而言，`eq` 用於評估 `User.UserAttributes.FavoriteColors.[0]` 的值是否是*紅色*。如果回應是 `true`，將傳回 true 陳述式。如果回應是 `false`，將傳回 `else` 陳述式。  
`{{#eq User.UserAttributes.FavoriteColors.[0] "red"}}`  
*您最喜歡的顏色是紅色。*  
`{{else}}`  
*您不喜歡紅色。*  
`{{/eq}}`

*gt*  
測試某個元素的值是否大於另一個。  
**用途**  
+ `{{gt valuea valueb yes='y' no='n'}}`

  您可以將 *y* 和 *n* 取代為其他值，例如 *yes* 和 *no*，或者您想傳回的任何其他字串，視條件而定。
+ `{{#gt valuea valueb}}`

  條件為 true。

  `{{else}}`

  條件為 false。

  `{{/gt}}`

  在區塊陳述式中，`gt` 必須以井字號 (`#`) 開頭，並以 `{{/gt}}` 結尾。
**範例**  
在本範例中，協助程式會將 `User.UserAttributes.UserAge.[0]` 屬性值與字串 *17* 進行比較，以驗證使用者的年齡是否大於 17 歲。如果回應是 `true`，將傳回 true 陳述式。如果回應是 `false`，將傳回 `else` 陳述式。  
`{{#gt User.UserAttributes.UserAge.[0] "17"}}`  
*您已滿租車年齡。*  
`{{else}}`  
*您未到租車年齡。*  
`{{/gt}}`

*gte*  
測試某元素的值是否大於或等於另一個。  
`Usage`  
+ `{{gte valuea valueb yes='y' no='n'}}`

  您可以將 *y* 和 *n* 取代為其他值，例如 *yes* 和 *no*，或者您想傳回的任何其他字串，視條件而定。
+ `{{#gte valuea valueb}}`

  條件為 true。

  `{{else}}`

  條件為 false。

  `{{/gte}}`

  在區塊陳述式中，`get` 必須以井字號 (`#`) 開頭，並以 `{{/gte}}` 結尾。
**範例**  
在本範例中，協助程式會將 `User.UserAttributes.UserAge.[0]` 屬性與字串 *18* 進行比較，以驗證使用者的年齡是否大於或等於 18 歲。如果回應是 `true`，將傳回 true 陳述式。如果回應是 `false`，將傳回 `else` 陳述式。  
`{{#gte User.UserAttributes.UserAge.[0] "18"}}`  
*您已滿租車年齡。*  
`{{else}}`  
*您未到租車年齡。*  
`{{/gte}}`

*如*  
評估某件事是否是 true，並根據評估傳回回應。  
**用途**  
+ `{{#if value}}`

  您可以將 *y* 和 *n* 取代為其他值，例如 *yes* 和 *no*，或者您想傳回的任何其他字串，視條件而定。
+ `{{#if value}}`

  條件為 true。

  `{{else}}`

  條件為 false。

  `{{/if}}`

  在區塊陳述式中，`if` 必須以井字號 (`#`) 開頭，並以 `{{/if}}` 結尾。
**範例**  
就本範例而言， 協助程式用於評估是否是使用者的名字。如果找到名稱，會傳回問候語，並在回應中傳遞使用者的名字。否則 else 陳述式會傳回替代問候語。  
`{{#if User.UserAttributes.FirstName.[0]}}`  
*您好* `{{User.UserAttributes.FirstName.[0]}}` *，*  
`{{else}}`  
*您好，*  
`{{/if}}`  
如果協助程式為 true，傳回 *Hello Jane,*。

*lt*  
測試某元素的值是否小於另一個元素的值。  
**用途**  
+ `{{lt valuea valueb yes='y' no='n'}}`

  您可以將 *y* 和 *n* 取代為其他值，例如 *yes* 和 *no*，或者您想傳回的任何其他字串，視條件而定。
+ `{{#lt valuea valueb}}`

  條件為 true。

  `{{else}}`

  條件為 false。

  `{{/lt}}`

  在區塊陳述式中，`lt` 必須以井字號 (`#`) 開頭，並以 `{{/lt}}` 結尾。
**範例**  
在本範例中，協助程式會將 `User.UserAttributes.UserAge.[0]` 屬性與字串 *18* 進行比較，以驗證使用者的年齡是否小於 18 歲。如果回應是 `true`，將傳回 true 陳述式。如果回應是 `false`，將傳回 `else` 陳述式。  
`{{#lt User.UserAttributes.UserAge.[0] "18"}}`  
*您未到租車年齡。*  
`{{else}}`  
*您已滿租車年齡。*  
`{{/lt}}`

*lte*  
測試某元素的值是否小於或等於另一個。  
**用途**  
+ `{{lte valuea valueb yes='y' no='n'}}`

  您可以將 *y* 和 *n* 取代為其他值，例如 *yes* 和 *no*，或者您想傳回的任何其他字串，視條件而定。
+ `{{#lte valuea valueb}}`

  條件為 true。

  `{{else}}`

  條件為 false。

  `{{/lte}}`

  在區塊陳述式中，`lte` 必須以井字號 (`#`) 開頭，並以 `{{/lte}}` 結尾。
**範例**  
在本區塊陳述式中，協助程式會將 `User.UserAttributes.UserAge.[0]` 屬性與字串 *17* 進行比較，以驗證使用者的年齡是否等於或小於 17 歲。如果回應是 `true`，將傳回 true 陳述式。如果回應是 `false`，將傳回 `else` 陳述式。  
`{{#lte User.UserAttributes.Age.[0] "17"}}`  
*您未到租車年齡。*  
`{{else}}`  
*您已滿租車年齡。*  
`{{/lte}}`

*neq*  
測試兩個元素是否*不*相等。  
**用途**  
+ `{{neq valuea valueb yes='y' no='n'}}`

  您可以將 *y* 和 *n* 取代為其他值，例如 *yes* 和 *no*，或者您想傳回的任何其他字串，視條件而定。
+ `{{#neq valuea valueb}}`

  條件為 true。

  `{{else}}`

  條件為 false。

  `{{/neq}}`

  在區塊陳述式中，`neq` 必須以井字號 (`#`) 開頭，並以 `{{/neq}}` 結尾。
**範例**  
在本區塊陳述式中，對照字串 `Red` 檢查 `User.UserAttributes.FavoriteColors.[0]` 屬性。如果回應是 `true`，將傳回 true 陳述式。如果回應是 `false`，將傳回 `else` 陳述式。  
`{{#neq User.UserAttributes.Favorite.Colors.[0] "red"}}`  
*您不喜歡紅色。*  
`{{else}}`  
*您喜歡紅色。*  
`{{/neq}}`

*非*  
反轉布林值運算的回應，如果 `not` 是正比較，則傳回 `true` 陳述式。如果回應是 false，將傳回 else 陳述式。  
**用途**  
+ `{{not value yes='y' no='n'}}`

  您可以將 *y* 和 *n* 取代為其他值，例如 *yes* 和 *no*，或者您想傳回的任何其他字串，視條件而定。
+ `{{#not value}}`

  條件為 true。

  `{{else}}`

  條件為 false。

  `{{/not}}`

  在區塊陳述式中，`not` 必須以井字號 (`#`) 開頭，並以 `{{/not}}` 結尾。
**範例**  
在本區塊陳述式中，使用 `eq` 協助程式對照字串 *red* 檢查 `User.UerAttributes.FavoriteColors.[0]` 屬性。然後 `not` 協助程式傳回與 `eq` 協助程式相反的內容。如果回應傳回*紅色*以外的顏色，將傳回 `true` 陳述式。如果回應傳回*紅色*，則會傳回表示 false 陳述式的 `else` 陳述式。  
`{{#not (eq User.UserAttributes.Favorite.Colors.[0] "red")}}`  
*您不喜歡紅色。*  
`{{else}}`  
*您喜歡紅色。*  
`{{/not}}`  
**範例**  
就本範例而言，  
`{{not (eq User.UserAttributes.FavoriteColors.[0] "red")}}`  
如果 `User.UserAttributes.FavoriteColors.[0]` 是*紅色*，傳回 false。

*或*  
比較引數中的*任何*元素是否相等，然後根據結果傳回回應。這個協助程式可用於非布林值。  
**用途**  
+ `{{or valuea valueb valuec valued yes='y' no='n'}}`

  您可以將 *y* 和 *n* 取代為其他值，例如 *yes* 和 *no*，或者您想傳回的任何其他字串，視條件而定。您必須為條件傳遞至少兩個元素。
+ `{{#or valuea valueb}}`

  條件為 true。

  `{{else}}`

  條件為 false。

  `{{/or}}`

  在區塊陳述式中，`or` 必須以井字號 (`#`) 開頭，並以 `{{/or}}` 結尾。
**範例**  
就本 `or` 區塊陳述式而言，將使用 `eq` 協助程式，另外比較 `Location.City` 屬性的兩個字串。如果其中一個屬性是 `true`，將傳回 true 陳述式。如果一個或多個回應是 `false`，將傳回 `else` 陳述式。  
`{{#or (eq Location.City "Los Angeles") (eq Location.City "Seattle")}}`  
*您居住在美國西岸。*  
`{{else}}`  
*您不居住在美國西岸。*  
`{{/or}}`

## 字串協助程式
<a name="stringhelpers"></a>

本節介紹以下**字串**協助程式：
+ `abbreviate` – 截斷值。
+ `capitalize` – 將空白字元之間的每個單字變成大寫。
+ `capitalizeFirst` – 將值的第一個字元變成大寫。
+ `center` – 將值置中。
+ `cut` – 削減值。
+ `dateFormat` – 設定日期樣式。
+ `inflect` – 根據計數傳回單數或複數字串。
+ `join` – 連接陣列、迭代器或可迭代物件。
+ `ljust` – 將值調整成對齊左邊界。
+ `lower` – 將值轉換為小寫。
+ `now` – 列印目前日期。
+ `ordinalize` – 將數值序數化。
+ `replace` – 將一個字串替換成另一個字串。
+ `rjust` – 將值調整成右邊界。
+ `slugify` – 將值轉換為小寫並移除非單字字元、將空白字元轉換為連字號，並移除尾項空白字元。
+ `stripTags` – 從值刪除 [X]HTML 標籤。
+ `substring` – 將傳遞值的子字串作為新字串傳回。
+ `upper` – 將傳遞值轉換為大寫。
+ `yesno` – 將 true、false 和 no 替換成 Yes、No 和 Maybe。

*縮寫*  
如果值超過指定的數目，將截斷值。長度計數中包含空白字元。回應中的省略符號，表示截斷值。省略符號會計入回應中的截斷值。如果您的資料表很大，空間卻很小，這類協助程式很有用。截斷儲存格中的值，可以讓資料表看起來更一致。  
**用途**  
 `{{abbreviate value X}}`，將 *X* 替換成要保留的字元數。不支援負數。  
**範例**  
就本範例而言，`abbreviate` 用於將 `User.UserAttributes.LastName.[0]` 截斷成六 (6) 個字元。回應包含省略符號，共計為六個字元數。  
`{{abbreviate User.UserAttributes.LastName.[0] 6}}` 傳回  
*Ale...* 如果 `[0]` 的值是 *Alejandro*。

*大寫*  
將空白字元之間的每個單字變成大寫。  
**用途**  
 `{{capitalize value}}`  
**範例**  
就本範例而言，`Attributes.description.[0]` 項目每個字的開頭字母大寫。  
`{{capitalize Attributes.description.[0]}}`  
如果 `Attributes.description.[0]` 傳回   
 *我的第一篇文章*，如果 `Attributes.description.[0]` 的值是*我的第一篇文章*。

*capitalizeFirst*  
將值的第一個字元變成大寫。  
**用途**  
`{{capitalizeFirst value}}`  
**範例**  
就本範例而言，`Attributes.description.[0]` 項目第一個字的第一個字元大寫。  
`{{capitalizeFirst Attributes.description.[0]}}` 傳回  
 *我的第一篇文章*，如果 `Attributes.description.[0]` 的值是*我的第一篇文章*。  
**範例**

*center*  
將指定寬度欄位中的值，依指定的數字置中。您可以傳遞要顯示的填補字元，或將欄位留空 (選用)。如果沒有傳遞任何字元，則使用空白字元。  
**用途**  
 `{{center value size=X [pad=" "}}`，將 *X* 替換成一個數值。  
如果將 `pad` 留空，會在回應中使用空白字元當作填補。如果您傳遞一個字元，該字元會顯示在填補的每個空間中。不支援負數。  
**範例**  
就本範例而言，`Location.City ` 的值是尺寸 *19*。  
`{{center Location.City size=19}}` 傳回   
如果 `Location.City` 是*洛杉磯*，傳回 *"    Los Angeles    "*。請注意，範例輸出中顯示的引號，只是用來表示強調。

*剪下*  
從字串移除指定的值。  
**用途**  
 `{{cut value [" "]}}`，將引號參數中的空格，替換成要剪下的值。如果沒有傳遞任何參數值，會使用空白字元。  
**範例**  
此範例從 `Location.City` 屬性刪除字母 *e*。  
`{{cut Location.City "e"}}` 傳回  
如果 `[Location.City` 是*洛杉磯*，傳回 *Los Angls*。

*dateFormat*  
設定任何回應中日期的預設日期樣式。如需時區 ID 的清單，請參閱 [https://en.wikipedia.org/wiki/List_of_tz_database_time_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)。  
**用途**  
`{{dateFormat date [inputFormat="format1"] [outputFormat="format2"] [tz=timeZoneId] [locale=localeID]}}`  
`format` 參數必須是以下其中一個：  
+ 「`full`」：完整日期格式。例如：*Tuesday, September 19, 2020*
+ 「`long`」：長日期格式。例如：*September 19, 2020*
+ 「`medium`」：中等日期格式。例如：*Sept 19, 2020*
+ 「`short`」：短日期格式。例如：*9/19/20*
+ 「`pattern`」：使用自訂日期模式格式。如需日期模式的詳細資訊，請參閱 [https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)。
「`locale`」：使用當地的日期格式。如需地區設定的詳細資訊，請參閱 [https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-](https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-)。  
如果未傳遞格式，預設將使用 `medium`。  
**範例**  
就本範例而言，`User.UserAttributes.StartDate.[0]` 的 `[0]` 項目是 **09/19/2020**，且使用了 *America/Los\$1Angeles* 時區的 `full` 日期格式，向使用者傳送了一則訊息。  
`We can meet with you any time on ``{{dateFormat User.UserAttributes.StartDate.[0] inputFormat="MM/dd/yyyy" outputFormat="full" tz=America/Los_Angeles}}.` 傳回  
*我們可以在 2020 年 9 月 19 日星期二的任何時段與您見面。*

*inflect*  
根據計數值傳回單數或複數字串。  
**用途**  
 `{{inflect count singular plural [includeCount=false]}}`  
+ 輸入要在引數中傳遞的字串的單數和複數形式。
+ 若將 `includeCount` 設為 `false`，回應中不會傳回任何計數。如果設為 `true`，回應中將包含 `count`。
**範例**  
以下範例說明購買蘋果的過程 (有和沒有 `includeCount`)。  
`Thank you for your purchase of {{inflect 3 apple apples includeCount=false}}.` 傳回：  
*感謝您購買蘋果。*  
如果 `includeCount` 設為 `true`，回應是  
*感謝您購買 3 顆蘋果。*

*join*  
連接陣列、迭代器或可迭代物件。回應傳回一個清單，清單中的每個值都由您在 `join` 中傳遞的字元連接起來。例如您可以使用逗號 (`,`) 分隔值。這個協助程式中的值，必須是沒有屬性位置索引的清單。例如這可能是 `Attributes.custom_attribute`。  
**用途**  
`{{join value " // " [prefix=""] [suffix=""]}}`  
**範例**  
就本範例而言，會傳回色彩清單，並以逗號和空格 (`", "`) 分隔清單：  
`{{join Attributes.favorite_colors ", "}}` 傳回   
*藍色、紅色、綠色*如果 `Attributes.favorite_colors` 是清單*藍色、紅色、綠色*。

*ljust*  
將值調整成對齊左邊界，並在右邊增加空格，讓值的長度與號碼相符。不支援負數。  
您可以傳遞要顯示的 `pad` 字元，或將欄位留空 (選用)。如果將 `pad` 值留空，預設值是空白字元。  
**用途**  
`{{ljust value size=X [pad=" "]}}`，*X* 是值的總長度，包括空白字元。  
**範例**  
就本範例而言，對 Location.City 套用向左對齊值 *15*。  
`{{ljust Location.City size=15}}` 傳回  
如果 `Location.City` 的值是*洛杉磯*，傳回 *"Los Angeles    "*。請注意，範例輸出中顯示的引號，只是用來表示強調。

*小寫*  
將值轉換為全部小寫。  
**用途**  
`{{lower value}}`  
**範例**  
在本範例中，`User.UserAttributes.LastName.[0]` 的 `[0]` 項目已改為小寫。  
`{{lower User.UserAttributes.LastName.[0]}}` 傳回  
*santos* 如果 *Santos* 是 `[0]` 的值。

*立即*  
根據傳遞的時區 ID，印出目前的日期。如需時區 ID 的清單，請參閱 [https://en.wikipedia.org/wiki/List_of_tz_database_time_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)。  
**用途**  
`{{now ["format"] [tz=timeZoneId] [locale=localeID]}}`  
`format` 參數必須是以下其中一個：  
+ 「`full`」：完整日期格式。例如：*Tuesday, September 19, 2020*
+ 「`long`」：長日期格式。例如：*September 19, 2020*
+ 「`medium`」：中等日期格式。例如：Sept 19, 2020
+ 「`short`」：短日期格式。例如：9/19/20
+ 「`pattern`」：日期模式。如需日期模式的詳細資訊，請參閱 [https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)。
「`locale`」：使用當地的日期格式。如需地區設定的詳細資訊，請參閱 [https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-](https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-)。  
如果未傳遞格式，預設將使用 `medium`。  
**範例**  
就本範例而言，依 `medium` 格式傳回洛杉磯目前的日期。  
`{{now "medium" tz=America/Los_Angeles}}` 傳回   
*2020 年 9 月 19 日*。

*序數化*  
將引數中傳遞的數值序數化。例如，*1* 的序數是 *1st*，而 *2* 的序數是 *2nd*。只支援數值。  
**用途**  
`{{ordinalize [number]}} `  
**範例**  
就本範例而言，已將 `User.UserAttributes.UserAge` 的 `[0]` 項目序數化，並連同訊息一起傳回。  
`Congratulations on your {{ordinalize User.UserAttributes.UserAge.[0]}} birthday!` 傳回 *22* 的序數 *22nd*。  
*祝您 22 歲生日快樂！*

*取代*  
將一個字串替換成另一個字串。字串或數值必須是常值。不支援萬用字元。  
**用途**  
`{{replace stringToReplace replacementValue}}`  
**範例**  
就本範例而言，底線 (\$1) 將取代空白字元。  
`{{replace Location.City " " "_"}}` 傳回  
如果 `Location.City ` 是*洛杉磯*，傳回 *Los\$1Angeles*。

*rjust*  
將值與右邊界對齊，並在左邊增加空格，讓值的長度與號碼相符。不支援負數。  
您可以傳遞要顯示的 `pad` 字元，或將欄位留空 (選用)。如果將 `pad` 值留空，預設值是空白字元。  
**用途**  
`{{rjust value size=X [pad=" "]}}`，*X* 是值的總長度，包括空白字元。  
**範例**  
就本範例而言，對 `Location.City` 屬性套用向右對齊值 *15*。  
`{{rjust Location.City size=15}}` 傳回  
如果 `Location.City` 是*洛杉磯*，傳回 *"    Los Angeles"*。請注意，輸出中顯示的引號，只是用來表示強調。

*slugify*  
將傳遞的值替換成小寫，移除非單字字元 (英數字元和底線)，將空白字元轉替換成連字號，並移除任何前置或後置空白字元。  
**用途**  
`{{slugify value}}`  
**範例**  
就本範例而言，對 `Location.City` 屬性執行 slugify。  
`{{slugify Location.City}}` 傳回  
如果 `Location.City` 是*洛杉磯*，傳回 *los-angeles*。

*stripTags*  
從值刪除 [X]HTML 標籤。  
**用途**  
 `{{stripTags value}}`  
**範例**  
就本範例而言，移除 User.UserAttributes.interest.[0] 的 HTML 標籤。  
`{{stripTags User.UserAttributes.interests.[0]}}` 傳回  
如果 `User.UserAttributes.interests.[0]` 是 `<h1>Art</h1>`，傳回 *Art*。

*substring*  
傳回新字串，當作傳遞值的子字串。長度和位置由 `startOffset` 和 `endOffset` 參數決定，這些參數必須是整數。不支援負數。如果未傳遞 `endOffset`，子字串會使用字串的原始結尾值。  
**用途**  
`{{substring value startOffset [endOffset]}}`  
**範例**  
就本範例而言，為 Location.City 屬性套用偏移量 4 和 endOffset 9。  
`{{substring Location.City 4 9}} `傳回  
如果洛杉磯是 `Location.City` 的值，`Angel` 就是*洛杉磯*。

*大寫*  
將傳遞值轉換為大寫。  
**用途**  
`{{upper value}}`  
**範例**  
就本範例而言，`User.UserAttributes.LastName` 屬性的 `[0] ` 項目會轉換為全部大寫。  
`{{upper User.UserAttributes.LastName.[0]}}`傳回  
如果 `User.UserAttributes.LastName.[0]` 值是 *Roe*，傳回 *ROE*。

*yesno*  
將 `true`、`false` 和 `NULL` 替換成 `Yes`、`No` 和 `Maybe`。  
**用途**  
`{{yesno value [yes="yes"] [no="no"] maybe=["maybe"]}}`  
**範例**  
就本範例而言，`IsUserSubscribed` 屬性會傳回使用者是否已訂閱特定清單。  
`{{yesno Attributes.IsUserSubscribed}}` 傳回   
如果 `Attributes.IsUserSubscribed` 是 *true*，傳回 *yes*。

## 數學和編碼協助程式
<a name="mathhelpers"></a>

本節介紹**數學和編碼**協助程式。
+ `add` – 傳回兩個數字的總和。
+ `ceiling` – 將整數向上取整。
+ `decode64` – 將 base64 編碼值解碼為字串。
+ `divide` – 傳回兩個數字的商數。
+ `encode64` – 使用 base64 編碼字串。
+ `floor` – 將整數四捨五入，向下取整。
+ `md5` – 使用 MD5 演算法對傳遞的字串進行雜湊處理。
+ `modulo` – 使用浮點數傳回兩個數字的餘數。
+ `multiply` – 傳回兩個數字的乘積。
+ `round` – 將小數四捨五入到最接近的整數。
+ `sha256` – 使用 SHA-256 對傳遞的字串進行雜湊處理。
+ `sha512` – 使用 SHA-512 對傳遞的字串進行雜湊處理。
+ `subtract` – 傳回兩個數字的差值。
+ `uuid` – 隨機產生 128 位元格式的 UUID。

*add*  
傳回兩個數字的總和及浮點數。  
**用途**  
`{{add arg1 arg2}}`  
**範例**  
`{{add 5 2.3}} `傳回  
*7.3*

*向上取整*  
將整數向上取整，也就是最接近傳遞值的最高整數。  
**用途**  
`{{ceiling value}}`  
**範例**  
`{{ceiling 5.23}}` 傳回  
*6*

*decode64*  
將 base64 編碼值解碼為字串。  
**用途**  
`{{decode64 "string"}}`  
**範例**  
`{{decode64 "SGVsbG8gd29ybGQ="}}` 傳回  
*Hello World*

*除*  
傳回兩個數字的商數，包括浮點數。  
**用途**  
 `{{divide arg1 arg2}}`  
**範例**  
`{{divide 5 2.3}}` 傳回  
*2.17391304*

*encode64*  
使用 base64 編碼引數中傳遞的字串。  
**用途**  
`{{encode64 "string"}}`  
**範例**  
`{{encode64 "Hello World"}}`  
*SGVsbG8gd29ybGQ=*

*向下取整*  
將整數四捨五入，向下取整，也就是最接近傳遞值的最低整數。  
**用途**  
`{{floor value}}`  
**範例**  
`{{floor 5.23}}` 傳回  
*5*

*md5*  
使用 MD5 演算法對傳遞的字串進行雜湊處理。  
**用途**  
`{{md5 "string"}}`  
**範例**  
`{{md5 "Hello World"}}`  
*3e25960a79dbc69b674cd4ec67a72c62*

*模數*  
使用浮點數傳回兩個數字的餘數。  
**用途**  
`{{modulo arg1 arg2}}`  
**範例**  
`{{modulo 7 2}}` 傳回  
*1*

*乘*  
傳回兩個數字的總和及浮點數。  
**用途**  
`{{multiply arg1 arg2}}`  
**範例**  
`{{multiply 5 2.3}}` 傳回  
*11.5*

*四捨五入*  
將小數位向上或向下捨入到最接近的整數。  
**用途**  
`{{round value}}`  
**範例**  
`You spent an average of {{round 19.21}} minutes on our website each day.` 傳回：  
*您每天平均在我們的網站上花費 19 分鐘。*

*sha256*  
使用 SHA-256 密碼編譯安全性，對傳遞的字串進行雜湊處理。  
**用途**  
`{{sha256 "string"}}`  
**範例**  
`{{sha256 "Hello World"}}` 傳回  
*a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e*

*sha512*  
使用 SHA-512 密碼編譯安全性，對傳遞的字串進行雜湊處理。  
**用途**  
`{{sha512 "string"}}`  
**範例**  
`{{sha512 "Hello World"}}` 傳回  
*2c74fd17edafd80e8447b0d46741ee243b7eb74dd2149a0ab1b9246fb30382f27e853d8585719e0e67cbda0daa8f51671064615d645ae27acb15bfb1447f459b*

*減*  
傳回兩個數字的差值及浮點數。  
**用途**  
`{{subtract arg1 arg2}}`  
**範例**  
`{{subtract 5 2.3}} ` 傳回  
*2.7*

*uuid*  
隨機產生標準 128 位元格式的 UUID。引數中不需要傳遞任何值。  
**用途**  
`{{uuid}}`  
**範例**  
`{{uuid}} ` 傳回  
**95f36680-152c-4052-99ec-cc3cdf7ca594**

## 內嵌部分
<a name="inlinepartials"></a>

就技術而言，內嵌部分不是協助程式，而是 Handlebars 方式，簡化包含了重複字串的範本，使其更好地重複使用。如需詳細資訊，請參閱 [handlebarsjs.com](https://handlebarsjs.com/guide/partials.html#inline-partials) 上的[內嵌部分](https://handlebarsjs.com)。

**用途**

`{{#* inline "inlineName"}}Content to reuse{{/inline}}`

若要在其他地方引用內嵌部分的內容，請使用：

` {{> inlineName}}`

**範例**

以下範例在範本開頭加入以下程式碼，藉此建立一個內嵌部分，包含了收件人的名字和姓氏 (如果有的話)：

`{{#* inline "fullName"}}`

`{{User.UserAttributes.FirstName.[0]}} {{#if User.UserAttributes.LastName.[0]}} {{User.UserAttributes.LastName.[0]}} {{/if}}`

`{{/inline}}`

建立 `fullName` 部分後，只要在部分名稱前加上一個 `>` (大於) 符號，後面空格，就可以將其放入範本的任一位置，如下例所示：`{{> fullName}}`。

*` Hello {{> fullName}}`*

如果是 true，傳回使用者的名字和姓氏 – 例如*蔡小英，您好*。如果找不到姓氏，則傳回*小英，您好*。

Handlebars 另含這裡未記載的其他特徵。詳情請參閱 [handlebarsjs.com](https://handlebarsjs.com/)。

## 使用變數搭配訊息範本協助程式
<a name="template-helpers-variables"></a>

Amazon Connect 自訂屬性名稱支援空格。若要具有名稱為 `"Last Name"` 的自訂屬性，您必須將屬性格式化為 `Attributes.[Last Name]`。

## 使用巢狀協助程式
<a name="template-helpers-nesting"></a>

 您可以將多個訊息範本協助程式套疊在一起。以下範例說明如何格式化兩個協助程式：`{{ first helper (second helper)}}`。先處理第二個協助程式，再處理第一個協助程式。請記住，一律由第一個協助程式決定輸出。後一個協助程式必須套疊在前一個協助程式內，如下所示：`{{ first helper (second helper (third helper) )}}`。

以下範例說明如何套疊兩個協助程式，將 **JANE** 變成 **Jane**: `{{capitalizeFirst (lower "JANE")}}`。`lower` 先將 **JANE** 轉換為 **jane**。然後 `capitalizeFirst` 將 **jane** 轉換為 **Jane**。

# 安全性設定檔不會影響客服人員檢視電子郵件討論串的授權
<a name="email-security-profiles1"></a>

在其安全性設定檔中具有下列許可的任何使用者都可以讀取他們處理的電子郵件，或屬於他們身為參與者所在討論串的電子郵件：**聯絡人控制台 (CCP)** - **存取聯絡人控制台** - **存取**。

![\[安全性設定檔頁面上的存取聯絡人控制台選項。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/access-ccp-perm.png)


預設會啟用此授權行為。它不需要設定任何其他許可或組態。

此行為由下列內容索引鍵驅動：

1. `connect:UserArn`：代表可存取個別聯絡的使用者。

1. `connect:ContactAssociationId`：代表使用者可存取的聯絡關聯。對於電子郵件管道，聯絡關聯一律代表電子郵件討論串。

1. `connect:Channel`：代表使用者可存取的聯絡管道。對於電子郵件管道，此 contextKey 一律為 `EMAIL`。

我們不建議在與 `connect:UserArn` 相同的政策中使用 `connect:ContactAssociationId`，因為它可能會導致無操作。由於 `connect:UserArn` 條件索引鍵較嚴格，因此無論使用者對電子郵件討論串的存取權為何，它都會針對未由對應使用者處理的所有聯絡 `Deny` 存取。

您可以單獨使用 `connect:Channel` 來限制對特定管道的存取。接受值為：`VOICE`、`CHAT`、`TASK` 或 `EMAIL`。請參閱[聯絡](https://docs.aws.amazon.com/connect/latest/APIReference/API_Contact.html) API。

以下是支援這些內容索引鍵的聯絡相關 API：

1. [DescribeContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeContact.html)

1. [UpdateContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateContact.html)

1. [ListContactReferences](https://docs.aws.amazon.com/connect/latest/APIReference/API_ListContactReferences.html)

1. [TagContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_TagContact.html)

1. [UntagContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_UntagContact.html)

1. [UpdateContactRoutingData](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateContactRoutingData.html)

1. [GetContactAttributes](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetContactAttributes.html) 

1. [UpdateContactAttributes](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateContactAttributes.html) 

1.  [StopContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StopContact.html) 

1. [StartContactRecording](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartContactRecording.html) 

1.  [StopContactRecording](https://docs.aws.amazon.com/connect/latest/APIReference/API_StopContactRecording.html) 

1. [ResumeContactRecording](https://docs.aws.amazon.com/connect/latest/APIReference/API_ResumeContactRecording.html) 

1. [SuspendContactRecording](https://docs.aws.amazon.com/connect/latest/APIReference/API_SuspendContactRecording.html) 

1. [UpdateContactSchedule](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateContactSchedule.html) 

1. [TransferContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_TransferContact.html) 

1. [StartScreenSharing](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartScreenSharing.html) 