

**支援結束通知：**2026 年 10 月 30 日， AWS 將結束對 Amazon Pinpoint 的支援。2026 年 10 月 30 日之後，您將無法再存取 Amazon Pinpoint 主控台或 Amazon Pinpoint 資源 (端點、區段、行銷活動、旅程和分析)。如需詳細資訊，請參閱 [Amazon Pinpoint 終止支援](https://docs.aws.amazon.com/console/pinpoint/migration-guide)。**注意：**與 SMS、語音、行動推播、OTP 和電話號碼驗證相關的 APIs 不受此變更影響，並受 AWS 最終使用者傳訊支援。

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

# Amazon Pinpoint 訊息範本
<a name="messages-templates"></a>

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

*訊息範本*是您可在訊息中定義、儲存和重複使用的內容和設定，方便您將訊息傳送到任何 Amazon Pinpoint 專案。建立範本時，您可根據該範本指定要在不同訊息元件中重複使用的內容。

這些元件稱為*範本組件*。視範本類型而定，這些組件可以包含靜態文字、個人化內容、圖片和其他設計元素。範本部件也可以包含頻道特定的設定。例如，推送通知範本中的範本部件可以指定當收件者收到以範本為基礎的推送通知時，要播放的自訂音效，或要顯示的影像。

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

您可以在 Amazon Pinpoint 中設計以下類型的訊息範本：
+ **電子郵件範本**，您從行銷活動或行程傳送的電子郵件範本，或以直接或測試訊息傳送給受限對象的電子郵件範本。
+ **推送通知範本**，適用於您從行銷活動傳送的推播通知範本，或以直接或測試訊息傳送給受限對象的推播通知範本。
+ **SMS 範本**，您從行銷活動中傳送的 SMS 文字訊息，或以直接或測試訊息傳送給受限對象的 SMS 文字訊息。
+ **語音範本**，您以直接或測試訊息傳送的語音訊息。

除了支援多種訊息範本外，Amazon Pinpoint 也支援訊息範本的版本控制。版本控制提供了一種方法，讓您隨著時間的推移設計和變更範本，同時建立和維護範本的歷程記錄。版本控制還提供了一種方法，讓您指定在訊息中可以使用哪個版本的範本。若要進一步了解範本版本，請參閱 [管理訊息範本的版本](message-templates-versioning.md)。

本章的主題說明如何為您的 Amazon Pinpoint 帳戶，建立並管理訊息範本。

**Topics**
+ [建立電子郵件範本](message-templates-creating-email.md)
+ [建立應用程式內範本](message-templates-creating-inapp.md)
+ [建立推送通知範本](message-templates-creating-push.md)
+ [建立簡訊範本](message-templates-creating-sms.md)
+ [建立語音範本](message-templates-creating-voice.md)
+ [將個人化內容新增至訊息範本](message-templates-personalizing.md)
+ [使用訊息範本協助程式](message-template-helpers.md)
+ [管理訊息範本](message-templates-managing.md)
+ [管理訊息範本的版本](message-templates-versioning.md)

# 建立電子郵件範本
<a name="message-templates-creating-email"></a>

*電子郵件範本*是一種訊息範本，包含了您要在電子郵件訊息中建立、儲存和重複使用的內容和設定，方便您傳送到任何 Amazon Pinpoint 專案。您使用 Amazon Pinpoint 建立和傳送的所有電子郵件訊息，都可以使用電子郵件範本。

建立電子郵件範本時，您可以指定根據範本，要在多種電子郵件訊息元件中重複使用的內容和設定。這些元件 (稱為「範本部分」**) 可以是郵件主旨、郵件內文或兩者皆是。內容可以是靜態文字、個人化內容、影像或其他設計元素。範本部分也可以是設定，例如：收件人的電子郵件應用程式如果沒有顯示 HTML 內容時所要使用的訊息內文。

若您利用範本建立電子郵件訊息，Amazon Pinpoint 會使用您在範本中定義的內容和設定，填入訊息。

**建立電子郵件範本**

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

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

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

1. 在 **Channel (管道)** 下，選擇 **Email (電子郵件)**。

1. 針對 **Template details (範本詳細資訊)** 下的 **Template name (範本名稱)**，輸入範本的名稱。名稱必須以字母或數字開頭。最多可包含 128 個字元。字元可以是字母、數字、底線 (\$1) 或連字號 (‐)。

1. (選擇性) 如為 **Version description (版本描述)**，請輸入範本的簡短描述。描述最多可包含 500 個字元。

1. 在 **Email details (電子郵件詳細資訊)** 中，使用以下選項指定使用範本的訊息內容：
   + 針對 **Subject (主旨)**，輸入您要在訊息主旨列中顯示的文字。
   + 針對 **Message (訊息)**，輸入您要在訊息內文中顯示的內容。
**提示**  
如為訊息內容，您可以使用 HTML 或 Design (設計) 檢視來輸入內容。在 HTML 檢視中，您可以手動輸入 HTML 內容，包括格式、連結和您想在訊息中加入的其他功能。在「Design」(設計) 檢視中，您可以使用 RTF 文字編輯器輸入內容。使用格式工具列以套用格式，並在內容中加入連結和其他功能。若要切換檢視，請從訊息編輯器上方的檢視選擇器中選擇 **HTML** 或**設計**。  
您也可以在範本的主旨和內文中，加入個人化內容。若要執行此操作，請新增引用了您或 Amazon Pinpoint 建立的特定屬性的訊息變數，例如儲存使用者名字的屬性。藉由使用訊息變數，您就能針對使用該範本之訊息的每個收件人顯示不同內容。若要使用訊息變數，請從**屬性尋找工具**中，選擇現有屬性的名稱。Amazon Pinpoint 為該屬性建立訊息變數，並複製到剪貼簿。將變數貼到您想要的位置。如需詳細資訊，請參閱[將個人化內容新增至訊息範本](message-templates-personalizing.md)。

1. 
**注意**  
您必須設定電子郵件協同運作傳送角色，才能使用電子郵件標頭。如需詳細資訊，請參閱[在 Amazon Pinpoint 中建立電子郵件協同運作傳送角色](channels-email-orchestration-sending-role.md)。

   在**標頭**下，選擇**新增標頭**，為電子郵件訊息新增最多 15 個標頭。如需支援的標頭清單，請參閱[《Amazon SES Simple Email Service 開發人員指南》中的 Amazon SES 標頭欄位](https://docs.aws.amazon.com/ses/latest/dg/header-fields.html)。 [https://docs.aws.amazon.com//ses/latest/dg/Welcome.html](https://docs.aws.amazon.com//ses/latest/dg/Welcome.html)
   + 在**名稱**中，輸入標頭的名稱。
   + 針對**值**，輸入 標頭的值。

   （選用） 若要將一鍵式取消訂閱連結新增至促銷電子郵件，請新增下列兩個標頭：

   1. 使用 `List-Unsubscribe` for **Name** 建立標頭，並將**值**設定為取消訂閱連結。連結必須支援 HTTP POST 請求，才能處理收件人取消訂閱請求。

   1. 使用 `List-Unsubscribe-Post` for **Name** 建立標頭，並將**值**設定為 `List-Unsubscribe=One-Click`。

1. (選用) 在 **Plain text version (純文字版本)** 下，輸入您想要在使用範本之郵件本文中顯示的內容，傳送給電子郵件應用程式不顯示 HTML 內容的收件者。

1. 如果您使用訊息變數，將個人化內容新增到範本，請針對每個變數指定預設值。如果您執行此操作，收件人沒有對應值時，Amazon Pinpoint 會將變數替換成您指定的值。我們建議您針對範本中的每個變數執行此作業。

   若要指定變數的預設值，請展開 **Default attribute values (預設屬性值)** 區段。之後，輸入您希望針對每個變數使用的預設值。如果您沒有指定預設值，且收件人沒有值，Amazon Pinpoint 不會傳送訊息。

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

若要在傳送給使用者的電子郵件中使用範本之前進行測試，您可以[傳送使用該範本的測試訊息](messages-email.md)。如果您這樣做，請務必先完成步驟 9，為範本中的所有變數指定預設值。否則，訊息可能無法傳送，或可能無法正確呈現。

## 在訊息範本中包含取消訂閱連結
<a name="message-templates-creating-email-optout"></a>

在電子郵件中加入取消訂閱連結是最佳做法，在某些國家/地區也是法律規定。您可以在取消訂閱連結中，包含特殊屬性 `ses:tags="unsubscribeLinkTag:value"`，*值*是您定義的任何值。如果收件人點選包含此特殊屬性的連結，Amazon Pinpoint 會將其計為選擇不接收事件，以供分析 (例如[分析概述頁面](analytics-overview.md)上的選擇不接收率指標中)。以下範例說明這類連結的語法：

```
<a ses:tags="unsubscribeLinkTag:optout" href="https://www.example.com/preferences">Unsubscribe</a>
```

如果您的範本包含具有此屬性的連結，您仍然必須開發處理選擇退出請求的系統。如需處理選擇退出請求的系統範例，請參閱 [解決方案程式庫中的 Amazon Pinpoint 偏好設定中心](https://aws.amazon.com/solutions/implementations/amazon-pinpoint-preference-center/) AWS 解決方案。

**注意**  
Amazon Pinpoint 偏好設定中心解決方案現在是指引。解決方案無法再部署，但已保留架構圖和程式碼做為參考。

# 建立應用程式內範本
<a name="message-templates-creating-inapp"></a>

*應用程式內範本*是您從 Amazon Pinpoint 傳送給應用程式使用者的訊息的範本。使用應用程式內範本建立、儲存和重複使用應用程式內訊息的設定和內容。

建立應用程式內範本時，可以指定要在使用了範本的應用程式內訊息內文中，重複使用的設定和內容。若您利用範本建立訊息，Amazon Pinpoint 會使用您定義的設定和內容，填入訊息。

應用程式內訊息可自由自訂。應用程式內訊息可以包含開啟網站的按鈕，或是將使用者帶到應用程式特定部分的按鈕。您可以設定背景和文字顏色、決定文字的位置，並在通知中加入影像。您可以傳送單一訊息，或建立最多含五則不重複訊息的*浮動切換*，讓使用者捲動瀏覽。

**若要建立應用程式內範本**

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

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

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

1. 在**管道**下，選擇**應用程式內傳訊**。

1. 針對 **Template details (範本詳細資訊)** 下的 **Template name (範本名稱)**，輸入範本的名稱。名稱必須以字母或數字開頭。最多可包含 128 個字元。字元可以是字母、數字、底線 (\$1) 或連字號 (‐)。

1. (選擇性) 如為 **Version description (版本描述)**，請輸入範本的簡短描述。描述最多可包含 500 個字元。

1. 在**應用程式內訊息詳細資訊**部分的**配置**下，選擇訊息範本的配置類型。您可以從下列選項來選擇：
   + **頂部橫幅** – 出現在頁面頂部的橫幅訊息。
   + **底部橫幅** – 顯示在頁面底部的橫幅訊息。
   + **中間橫幅** – 顯示在頁面中間的通知訊息。
   + **全螢幕** – 涵蓋整個螢幕的訊息。
   + **模態** – 在頁面前方視窗中顯示的訊息。
   + **浮動切換** – 最多含五則不重複訊息的可捲動版面配置。

1. 在**標題**下，設定出現在訊息開頭的標題。如果您建立了浮動切換訊息，就必須為浮動切換建立第一個訊息，而且要含標頭。

   1. 用於橫幅中顯示的**標頭文字**。最多可輸入 128 個字元。

   1. 在**標頭文字顏色**中，選擇標頭的文字顏色。您可以輸入 RGB 值或十六進位顏色代碼 (選用)。

   1. 在**標頭對齊**中，選擇要讓文字**靠左**、**置中**或**靠右**對齊。

1. 在**訊息**下，設定訊息內文。

   1. 在**訊息**中，輸入訊息內文。訊息最多可包含 150 個字元。

   1. 在**文字顏色**中，選擇訊息內文的文字顏色。您可以輸入 RGB 值或十六進位顏色代碼 (選用)。

   1. 在**文字對齊**中，選擇要讓文字**靠左**、**置中**或**靠右**對齊。

1. (選用) 變更訊息的背景顏色。在**背景**下，選擇訊息的背景顏色。您可以輸入 RGB 值或十六進位顏色代碼 (選用)。

1. (選用) 將影像加入訊息。在**影像 URL** 下，輸入您要在訊息中顯示的影像的URL。只接受 .jpg 和 .png 檔案。影像尺寸視訊息類型而定：
   + **橫幅**的影像應為 100 像素 x 100 像素，或 1:1 長寬比。
   + **浮動切換**的影像應為 300 像素 x 200 像素，或 3:2 長寬比。
   + **全螢幕**訊息的影像應為 300 像素 x 200 像素，或 3:2 長寬比。

1. (選用) 將按鈕加入訊息。在**主要按鈕**下，執行以下操作：

   1. 選擇**新增主要按鈕**。

   1. 在**按鈕文字**中，輸入要在按鈕上顯示的文字。最多可輸入 128 個字元。

   1. (選用) 在**按鈕文字顏色**中，選擇按鈕文字的顏色。您可以輸入 RGB 值或十六進位顏色代碼 (選用)。

   1. (選用) 在**背景顏色**中，選擇按鈕的背景顏色。您可以輸入 RGB 值或十六進位顏色代碼 (選用)。

   1. (選用) 在**邊界半徑**中，輸入半徑值。值越低，轉角越銳利，數字越高，圓角程度越高。

   1. 在**動作**下，選擇使用者點選按鈕時發生的事件：
      + **關閉** – 關閉訊息。
      + **移至 URL** – 開啟網站。
      + **移至深層連結** – 開啟應用程式，或開啟應用程式的特定位置。

      如果您希望不同的裝置類型有不同的按鈕行為，可以覆寫預設動作。在**動作**下，使用索引標籤，選擇要修改按鈕行為的裝置類型。例如選擇 **iOS**，修改 iOS 裝置的按鈕行為。接著選擇**覆寫預設動作**。最後指定一個動作。

1. (選用) 將次要按鈕加入訊息。在**次要按鈕**下，選擇**新增次要按鈕**。請依照上一個步驟的程序，設定次要按鈕。

1. (選用) 將自訂資料加入訊息。自訂資料是隨訊息一起交付的金鑰/值對。例如您或許想要將促銷代碼與訊息一起傳遞。若要傳送浮動切換訊息，可以在每個浮動切換訊息中新增自訂資料。若要新增自訂資料，請執行以下操作：

   1. 在**自訂資料**下方，選擇**新增項目**。

   1. 輸入**金鑰**。例如這可能是 *PromoCode*。

   1. 為該金鑰，輸入一個**值**。您的 *PromoCode* 可能是 *12345*。

   1. 傳送訊息時，訊息會加上代碼 *12345*。

   1. 若要新增更多金鑰/值對，請選擇**新增新項目**。您最多可以為訊息新增 10 個金鑰/值對。新增自訂資料後，繼續下一個步驟。

1. 如果您的訊息是浮動切換，您最多可以新增四則不重複訊息。若要將訊息加入浮動切換，請展開**浮動切換概觀**部分。接著選擇**新增訊息**。重複上述步驟，設定訊息。

   當您將訊息新增至浮動切換時，**預覽**頁面會透過在頁面底部顯示圖示來更新，顯示浮動切換中包含的訊息數量。

   下圖顯示的浮動切換有兩個訊息：  
![\[\]](http://docs.aws.amazon.com/zh_tw/pinpoint/latest/userguide/images/channels-inapp-carousel.png)

1. 當您完成時，請選擇**建立**。

# 建立推送通知範本
<a name="message-templates-creating-push"></a>

*推播通知範本*是一種訊息範本，包含了可與 Amazon Pinpoint 專案搭配使用的內容和設定。您使用範本傳送推播通知時，Amazon Pinpoint 會使用您在範本中定義的內容和設定填入通知。

建立推送通知範本時，您可根據該範本指定要在不同推送通知元件中重複使用的內容和設定。這些元件 (稱為「範本部分」**) 可以包含文字 (例如通知的標題或內文)，或是設定 (例如收件人收到通知時播放的自訂音效)。

若要為特定推播通知管道自訂範本，您可以在每個範本中建立多套範本組件：一套預設組件，以及一套或多套服務專用的組件 (選用)。預設集包含您想要預設用於任何推送通知通路的內容和設定。特定服務集包含您要用於特定通知服務 (例如 Apple 推播通知服務或 Firebase Cloud Messaging) 的任何內容和設定。在範本中加入服務專用設定，可以自訂通知，讓每種收件人裝置類型，都能顯示獨有的內容。

您也可以[建立包含原始訊息資料的範本](#message-templates-creating-push-raw)。這是進階選項，但如果您要針對標準 Amazon Pinpoint 推播通知範本中不存在的特定管道指定設定，這個選項很有用。

## 建立標準推播通知範本
<a name="message-templates-creating-push-standard"></a>

完成此程序以指定基本訊息內容，例如標題、訊息內文、影像和動作。若要指定原始訊息內容，請[建立含原始訊息資料的推播通知範本](#message-templates-creating-push-raw)改為完成 中的程序。

**建立推送通知範本**

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

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

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

1. 在 **Channel (通道)** 下，選擇 **Push notifications (推送通知)**。

1. 針對 **Template details (範本詳細資訊)** 下的 **Template name (範本名稱)**，輸入範本的名稱。名稱必須以字母或數字開頭。最多可包含 128 個字元。字元可以是字母、數字、底線 (\$1) 或連字號 (‐)。

1. (選擇性) 如為 **Version description (版本描述)**，請輸入範本的簡短描述。描述最多可包含 500 個字元。

1. 在**推播通知詳細資訊**下，執行以下操作：
   + 在**通知類型**下，選擇**標準訊息**。
   + 在**標題**中，輸入您要在訊息內文上方顯示的標題。
   + 針對 **Body (內文)**，輸入您想要在通知訊息內文中顯示的文字。
**提示**  
您可以在範本的標題和內文中加入個人化內容。若要執行此操作，請新增引用了特定屬性的訊息變數，例如儲存使用者名字的屬性。藉由使用訊息變數，您就能針對使用該範本之推送通知的每個收件人顯示不同內容。  
若要使用訊息變數，請從**屬性尋找工具**中，選擇現有屬性的名稱。Amazon Pinpoint 為該屬性建立訊息變數，並複製到剪貼簿。將變數貼到您想要的位置。如需詳細資訊，請參閱[將個人化內容新增至訊息範本](message-templates-personalizing.md)。
   + 針對 **Custom alert sound (自訂警示音效)**，輸入包含自訂音效的音訊檔案名稱，這是您希望收件者收到推播通知時播放的自訂音效。此名稱必須符合收件人裝置上的音訊檔案名稱。
   + 針對 **Action (動作)**，選擇當收件者點選推送通知時，您希望收件者裝置執行的動作：
     + **開啟您的應用程式** – 開啟您的應用程式，或將其帶到前景 (如果已傳送到背景的話)。
     + **前往 URL** – 開啟收件人裝置上的預設瀏覽器，載入特定網頁。如果您選擇此選項，請在 **Destination URL (目標 URL)** 方塊中輸入網頁的 URL。
     + **開啟深層連結** – 開啟您的應用程式，並在應用程式中顯示特定的使用者介面。如果選擇此選項，請在 **Destination URL (目標 URL)** 方塊中輸入界面的 URL。

1. (選用) 若要自訂特定推播通知服務的範本，請在**自訂各個推播服務的內容**下，選擇適當的服務索引標籤。然後選擇您要在該服務中使用的選項。

   如果您在服務的索引標籤上，勾選**覆寫預設推播內容**核取方塊，Amazon Pinpoint 會自動將您在上一個步驟中選擇的預設內容和設定，替換成您在索引標籤上選擇的選項。如果您想要保留預設內容和設定，並只自訂範本以使用其他頻道特定的設定，請不要選取此核取方塊。  
**Apple**  
使用這些選項，為推播通知指定自訂的內容和設定；推播通知會透過 Apple 推播通知服務 (APN) 管道傳送到 iOS 應用程式。  
除了標準內容和設定之外，您還可以在使用範本的推送通知中加入自訂影像或影片。若要執行此作業，請在 **iOS media (iOS 媒體)** 方塊中輸入影像或影片檔案的 URL。URL 必須為可公開存取。否則，收件者裝置將無法顯示影像或影片。  
**Google**  
使用這些選項，為推播通知指定自訂的內容和設定；推播通知會透過 Google Firebase Cloud Messaging (FCM) 管道傳送到 Android 應用程式。  
除了標準內容和設定之外，您還可以選擇下列選項，在使用範本的推送通知中顯示自訂影像：  
   + **Android 影像** – 輸入要在推播通知內文中顯示的圖片的 URL。
   + **Android 圖示** – 輸入要在推播通知的內容檢視中顯示的大圖示影像的 URL。
   + **Android 小圖示** – 輸入要在狀態列和推播通知的內容檢視中顯示的小圖示影像的 URL。  
**Amazon**  
使用這些選項，為推送通知指定自訂的內容和設定，這些通知會透過 Amazon Device Messaging (ADM) 通路傳送至在 Amazon 裝置上執行的應用程式，例如 Kindle Fire 平板電腦。  
除了標準內容和設定之外，您還可以選擇下列選項，在使用範本的推送通知中顯示自訂影像：  
   + **Android 影像** – 輸入要在推播通知內文中顯示的圖片的 URL。
   + **Android 圖示** – 輸入要在推播通知的內容檢視中顯示的大圖示影像的 URL。
   + **Android 小圖示** – 輸入要在狀態列和推播通知的內容檢視中顯示的小圖示影像的 URL。  
**百度**  
使用這些選項，為推送通知指定自訂的內容和設定，這些通知會透過百度通路傳送至使用百度雲推送的應用程式。  
除了標準內容和設定之外，您還可以選擇下列選項，在使用範本的推送通知中顯示自訂影像：  
   + **Android 影像** – 輸入要在推播通知內文中顯示的圖片的 URL。
   + **Android 圖示** – 輸入要在推播通知的內容檢視中顯示的大圖示影像的 URL。
   + **Android 小圖示** – 輸入要在狀態列和推播通知的內容檢視中顯示的小圖示影像的 URL。

1. 如果您使用訊息變數，將個人化內容新增到範本，請針對每個變數指定預設值。如果您執行此操作，收件人沒有對應值時，Amazon Pinpoint 會將變數替換成您指定的值。我們建議您針對範本中的每個變數執行此作業。

   若要指定變數的預設值，請展開 **Default attribute values (預設屬性值)** 區段。之後，輸入您希望針對每個變數使用的預設值。如果您沒有指定預設值，且收件人沒有值，Amazon Pinpoint 不會傳送訊息。

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

## 建立含原始訊息資料的推播通知範本
<a name="message-templates-creating-push-raw"></a>

完成此程序以手動指定原始訊息承載。只有在需要使用 Amazon Pinpoint 不允許您設定的特定推播通知服務的功能時，才需要指定原始訊息承載。如果您不必指定原始訊息內容，建議完成 [建立標準推播通知範本](#message-templates-creating-push-standard) 中的程序。

若要傳送訊息到桌上型 Safari 網頁瀏覽器的使用者，請參考這個要求您使用原始訊息範本的使用案例範例。在此情況下，您必須在原始訊息承載中包含特定屬性。如需詳細資訊，請參閱*AWS 《最終使用者傳訊推送使用者指南*》中的[傳送訊息](https://docs.aws.amazon.com/push-notifications/latest/userguide/reference-send-message.html)。

**建立推送通知範本**

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

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

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

1. 在 **Channel (通道)** 下，選擇 **Push notifications (推送通知)**。

1. 針對 **Template details (範本詳細資訊)** 下的 **Template name (範本名稱)**，輸入範本的名稱。名稱必須以字母或數字開頭。最多可包含 128 個字元。字元可以是字母、數字、底線 (\$1) 或連字號 (‐)。

1. (選擇性) 如為 **Version description (版本描述)**，請輸入範本的簡短描述。描述最多可包含 500 個字元。

1. 在**推播通知詳細資訊**下，為**通知類型**選擇**原始訊息**。訊息編輯器顯示用於範本的程式碼大綱。在訊息編輯器中，輸入每個推播通知服務要使用的設定，包括要為範本指定的任何選用設定，例如影像、音效和動作。如需更多資訊，請參閱您使用的推送通知服務文件。

1. 輸入原始訊息內文後，請選擇**建立**。

若要在傳送給使用者的推送通知中使用範本之前進行測試，您可以[傳送使用該範本的測試通知](messages-mobile.md)。如果您這樣做，請務必先完成步驟 10，為範本中的所有變數指定預設值。否則，推播通知可能無法傳送，或可能無法正確呈現。

# 建立簡訊範本
<a name="message-templates-creating-sms"></a>

*SMS 範本*是一種訊息範本，包含了您要在 SMS 文字訊息中建立、儲存和重複使用的內容和設定，方便您傳送到任何 Amazon Pinpoint 專案。您可以使用從行銷活動中傳送的文字訊息簡訊範本，或者也可以傳送給有限的對象做為直接或測試訊息。

建立簡訊範本時，您可根據該範本指定要在文字訊息內文中重複使用的設定和內容。若您利用範本建立訊息，Amazon Pinpoint 會使用您在範本中定義的設定和內容，填入訊息。

**建立簡訊範本**

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

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

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

1. 在 **Channel (管道)** 下，選擇 **SMS**。

1. 針對 **Template details (範本詳細資訊)** 下的 **Template name (範本名稱)**，輸入範本的名稱。名稱必須以字母或數字開頭。最多可包含 128 個字元。字元可以是字母、數字、底線 (\$1) 或連字號 (‐)。

1. (選擇性) 如為 **Version description (版本描述)**，請輸入範本的簡短描述。描述最多可包含 500 個字元。

1. 針對 **SMS details (簡訊詳細資料)** 下的 **Message (訊息)**，輸入您想要在使用範本之訊息內文中顯示的內容。訊息內文最多可包含 1,600 個字元。
**提示**  
您可以在範本內文中加入個人化內容。若要執行此操作，請新增引用了您或 Amazon Pinpoint 建立的特定屬性的訊息變數，例如儲存使用者名字的屬性。藉由使用訊息變數，您就能針對使用該範本之訊息的每個收件人顯示不同內容。  
若要使用訊息變數，請從**屬性尋找工具**中，選擇現有屬性的名稱。Amazon Pinpoint 為該屬性建立訊息變數，並複製到剪貼簿。將變數貼到您想要的位置。如需詳細資訊，請參閱[將個人化內容新增至訊息範本](message-templates-personalizing.md)。

1. 如果您使用訊息變數，將個人化內容新增到範本，請針對每個變數指定預設值。如果您執行此操作，收件人沒有對應值時，Amazon Pinpoint 會將變數替換成您指定的值。我們建議您針對範本中的每個變數執行此作業。

   若要指定變數的預設值，請展開 **Default attribute values (預設屬性值)** 區段。之後，輸入您希望針對每個變數使用的預設值。如果您沒有指定預設值，且收件人沒有值，Amazon Pinpoint 不會傳送訊息。

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

若要在傳送給使用者的訊息中使用範本之前進行測試，您可以[傳送使用該範本的測試訊息](messages-sms.md)。如果您這樣做，請務必先完成步驟 8，為範本中的所有變數指定預設值。否則，訊息可能無法傳送，或可能無法正確呈現。

# 建立語音範本
<a name="message-templates-creating-voice"></a>

*語音範本*是一種訊息範本，包含了您要在語音訊息中建立、儲存和重複使用的內容和設定，方便您傳送到任何 Amazon Pinpoint 專案。您可以使用傳送為直接或測試訊息的語音訊息中的語音範本。

建立語音範本時，您可根據該範本指定要在不同語音訊息元件中重複使用的內容和設定。這些元件稱為*範本組件*。這些組件可以包含訊息指令碼或設定的文字，例如：傳送訊息時要使用的語音。訊息指令碼可以包含靜態文字，以及您定義的個人化內容 (選擇性)。

若您利用範本建立語音訊息，Amazon Pinpoint 會使用您在範本中定義的內容和設定，填入訊息。

**建立語音範本**

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

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

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

1. 在 **Channel (管道)** 下，選擇 **Voice (語音)**。

1. 針對 **Template details (範本詳細資訊)** 下的 **Template name (範本名稱)**，輸入範本的名稱。名稱必須以字母或數字開頭。最多可包含 128 個字元。字元可以是字母、數字、底線 (\$1) 或連字號 (‐)。

1. (選擇性) 如為 **Version description (版本描述)**，請輸入範本的簡短描述。描述最多可包含 500 個字元。

1. 在 **Voice message details (語音訊息詳細資訊)** 中，在 **Message (訊息)** 的部分輸入您要針對使用範本的訊息做為訊息指令碼使用的文字。指令碼最多可包含 10,000 個字元，且必須是純文字格式。
**提示**  
您可以在訊息指令碼中加入個人化內容。若要執行此操作，請新增引用了您或 Amazon Pinpoint 建立的特定屬性的訊息變數，例如儲存使用者名字的屬性。藉由使用訊息變數，您就能針對使用該範本之訊息的每個收件人播放不同內容。  
若要使用訊息變數，請從**屬性尋找工具**中，選擇現有屬性的名稱。Amazon Pinpoint 為該屬性建立訊息變數，並複製到剪貼簿。將變數貼到您想要的位置。如需詳細資訊，請參閱[將個人化內容新增至訊息範本](message-templates-personalizing.md)。

1. 在**語言和地區**中，選擇編寫訊息指令碼要使用的語言。Amazon Pinpoint 使用此設定，決定將指令碼轉換為語音時，要使用的音素和其他語言專用設定。

1. 在 **Voice (語音)** 部分中，選擇要向收件者說出訊息使用的語音。每一個語音都是透過說母語的使用者建立的，所以每個語音之間都會有變化，即使是相同語言內的語音也一樣。因此，建議您使用自己的指令碼測試每一種語音。

   語音清單會根據您在步驟 8 中選擇的語言而變更。在大多數情況下，清單中會包括至少一種男性和一種女性語音。在某些情況下，只有一個語音可用。我們會持續增加其他語言支援，並為支援的語言建立語音。

1. 選擇 **Play message (播放訊息)** 即可測試傳送給收件人時訊息的音質。調整內容和設定，直到範本的設計符合您的要求為止。

1. 如果您使用訊息變數，將個人化內容新增到範本，請針對每個變數指定預設值。如果您執行此操作，收件人沒有對應值時，Amazon Pinpoint 會將變數替換成您指定的值。我們建議您針對範本中的每個變數執行此作業。

   若要指定變數的預設值，請展開 **Default attribute values (預設屬性值)** 區段。之後，輸入您希望針對每個變數使用的預設值。如果您沒有指定預設值，且收件人沒有值，Amazon Pinpoint 不會傳送訊息。

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

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

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

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

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

`Hi {{User.UserAttributes.FirstName}}, congratulations on your new {{User.UserAttributes.Activity}} record of {{User.UserAttributes.PersonalRecord}}!`

您傳送使用了範本的訊息時，Amazon Pinpoint 會為每個收件人將變數替換成目前對應的屬性值。下列範例將顯示此情況。

**範例 1**  
`Hi Sofia, congratulations on your new half marathon record of 1:42:17!`

**範例 2**  
`Hi Alejandro, congratulations on your new 5K record of 20:52!`

如果收件人沒有對應值，Amazon Pinpoint 可以將變數替換成您為變數指定的預設值。例如，如果您的健身應用程式使用者尚未選擇他們偏好的活動，您可以將 `running` 做為 `{{User.UserAttributes.Activity}}` 變數的預設值。在這種情況下，Amazon Pinpoint 會替換變數，如以下範例所示：

**範例 1**  
`Hi Jane, congratulations on your new running record of 1:42:17!`

**範例 2**  
`Hi John, congratulations on your new running record of 20:52!`

如果您沒有指定預設值，且收件人沒有值，Amazon Pinpoint 向該收件人傳送訊息時，會省略變數的所有文字。例如：

`Hi Mary, congratulations on your new record of 20:52!`

最佳實務是，建議您為範本中包含的每個變數指定預設值。

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

您可以在建立的新範本或現有範本中，加入訊息屬性。如果您將變數加入現有範本，Amazon Pinpoint 不一定會將變更套用到使用了該範本且尚未傳送的訊息，例如排定在稍後傳送的行銷活動訊息。這取決於您新增變數的範本版本，以及使用該範本之訊息的設定方式。如需詳細資訊，請參閱[管理訊息範本的版本](message-templates-versioning.md)。

**注意**  
應用程式內傳訊範本不支援使用訊息變數。

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

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

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

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

1. 在訊息詳細資料區段中，決定您要新增訊息變數的位置。您可以將變數新增至任何類型範本的內文。如為電子郵件和推送通知範本，您也可以將變數新增至訊息主旨或標題。

1. 在 **Attribute finder (屬性搜尋工具)** 中，展開您要為其新增訊息變數之屬性類型區段。您可以從下列屬性類型中進行選擇：  
**標準屬性**  
這些是 Amazon Pinpoint 為任何專案自動建立的屬性。這意味著您可以在為任何專案傳送的訊息中使用它們。如需這些屬性的詳細資訊，請參閱 [支援的屬性](#message-templates-variables)。  
若要為標準屬性新增變數，請從清單中選擇屬性。  
**自訂屬性**  
這些是您可以選擇性地為個別專案建立的屬性。由於某些專案可能無法使用這些屬性，因此 Amazon Pinpoint 可能無法將變數取代為使用範本之訊息的每個收件人的值。為了避免這個問題，Amazon Pinpoint 提供一些選項，幫助您選擇特定專案或所有專案都有的屬性。  
若要新增自訂屬性：  

   1. 選擇**自訂屬性**，然後選擇**載入自訂屬性**。Amazon Pinpoint 會在出現的視窗中，列出了您建立的所有專案。選擇各專案時，所選專案的通用屬性將顯示在右側導覽面板。如果沒有顯示任何屬性，表示這些專案之間沒有共同的屬性。

   1. 執行以下任意一項：
      + 若要使用所選專案共同的所有屬性，請選擇**載入自訂屬性**。
      + 若要使用清單中的特定屬性，請在搜尋欄位中輸入屬性名稱的任何部分。與輸入文字相符的屬性。您要使用的屬性顯示時，選擇**載入自訂屬性**。**屬性尋找工具**顯示新增的自訂屬性。
**注意**  
您無法從不同的專案集新增常見屬性，或修改**屬性搜尋工具**的**自訂屬性**區段。若要變更自訂屬性，請選擇 **X** 以清除**屬性搜尋工具，**然後重新開始。

   1. 在 **Attribute finder (屬性搜尋工具)** 中，選擇要新增變數的屬性。  
**建議的屬性**  
這些屬性是您將 Amazon Pinpoint 設成要從推薦者模型擷取個人化推薦時，為帳戶建立的 (選用)。如需使用建議者模型的相關資訊，請參閱[機器學習模型](ml-models.md)。您可以將此類屬性的變數新增至電子郵件範本、推送通知範本和 SMS 範本。您無法將它們新增至語音範本。  
若要為建議的屬性新增變數，請從清單中選擇該屬性。如果**屬性搜尋工具**未列出任何建議的屬性，您必須先將範本連接到推薦模型。  
若要新增建議的屬性：  

   1. 然後選擇**連線模型**。

   1. 選取當您傳送使用了該範本的訊息時，要擷取建議的模型。

   1. 然後選擇**連線模型**。


1. 若您從**屬性搜尋工具**選擇屬性，Amazon Pinpoint 會建立屬性的訊息變數，並複製到剪貼簿。將變數貼到您想要的位置。如果屬性清單很長，請輸入搜尋文字，縮小清單的搜尋範圍。選擇 **X**，清除搜尋欄位。

   您貼上變數之後，Amazon Pinpoint 會以相關聯的屬性名稱顯示變數，並用兩組大括弧括起來，例如 `{{User.UserAttributes.FirstName}}`。

1. 針對您要新增的每個訊息變數重複步驟 4-6。

1. 若要指定訊息變數的預設值，請展開 **Default attribute values (預設屬性值)** 區段。然後，在變數清單中輸入您要用於變數的預設值。
**注意**  
我們建議您針對範本中的每個變數執行此作業。否則 Amazon Pinpoint 可能無法傳送使用了範本的訊息，或者該訊息不能依預期的方式正常顯示。

1. 完成後，請執行下列其中一項操作：
   + 如果您已將訊息變數新增至新範本，請選擇 **Create (建立)**。
   + 如果您已將訊息變數新增至現有範本，而且您想將變更儲存為新的範本版本，請選擇 **Save as new version (儲存為新版本)**。
   + 如果您已將訊息變數新增至現有範本，而且您想將變更儲存為最新版本的範本更新，請選擇 **Update version (更新版本)**。只有當您在步驟 3 中開啟的是最新版範本時，才可以使用此選項。

## 支援的屬性
<a name="message-templates-variables"></a>

每個專案都可以有標準屬性和自訂屬性。標準屬性是 Amazon Pinpoint 為任何專案自動建立的屬性。自訂屬性則是您選擇為專案建立的屬性。有三種自訂屬性類型：
+ **使用者屬性** – 這些屬性描述使用者，例如使用者的名字、姓氏和出生日期。*使用者*是獨立個體，具有專案特定的使用者 ID。
+ **端點屬性** – 這些屬性描述使用者的特定端點。*端點*是訊息的目的地，例如使用者的電子郵件地址、電話號碼或行動裝置。每個使用者可以與一或多個端點建立關聯。假設您透過電子郵件、SMS 和電話與使用者通訊，使用者可能與三個端點建立關聯，一個是使用者的電子郵件地址，另一個是使用者的行動電話號碼，還有一個是使用者的住家電話號碼 (市話)。
+ **指標屬性** – 這些屬性是您的應用程式向 Amazon Pinpoint 回報各端點的數值指標，例如行動應用程式的工作階段數或購物車商品棄置數。
+ **Pinpoint 屬性** – 這些屬性是應用程式、行銷活動或旅程的唯一識別符。

除了您或 Amazon Pinpoint 為專案建立的自訂和標準屬性之外，Amazon Pinpoint 還支援*建議的屬性*。*建議的屬性*可為使用者或端點暫時儲存個人化建議。Amazon Pinpoint 會從您指定要使用的推薦者模型，擷取這些建議。建議的屬性與特定的專案沒有相關聯。而是與您的 Amazon Pinpoint 帳戶建立關聯。如需使用建議者模型的相關資訊，請參閱[機器學習模型](ml-models.md)。

您可以使用訊息變數中的任何標準、自訂或建議屬性。下表指出每個支援屬性的訊息變數中出現的文字，並說明每個屬性。在表格中，*custom\$1attribute* 指出在自訂屬性變數中出現的文字。在這些情況下，請以自訂屬性名稱取代 *custom\$1attribute*。例如，如果您的專案將使用者的名字儲存在名為 `FirstName` 的自訂使用者屬性中，且您為該屬性新增變數，則變數的文字為 `{{User.UserAttributes.FirstName}}`。


| 屬性 | Description | 
| --- | --- | 
| Address | 您傳送到端點的訊息或推播通知的目的地地址，例如電子郵件地址、電話號碼或裝置權杖。 | 
| Pinpoint.ApplicationId | 應用程式的唯一識別符。 | 
| Attributes.custom\$1attribute | 描述端點的自訂端點屬性。 | 
| Pinpoint.CampaignId | 行銷活動的唯一識別碼。 | 
| ChannelType | 傳送訊息或推送通知至端點時所使用的通道。例如：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/pinpoint/latest/userguide/message-templates-personalizing.html) | 
| CreationDate | 將端點新增至專案的日期和時間 [(ISO 8601 格式](https://en.wikipedia.org/wiki/ISO_8601))。例如，2019-06-30T11:45:25.220Z 即為 2019 年 6 月 30 日上午 11 點 45 分 (UTC)。 | 
| Demographic.AppVersion | 與端點相關聯的應用程式版本編號。 | 
| Demographic.Locale | 端點的地區設定，格式如下：[ISO 639-1 α-2](https://en.wikipedia.org/wiki/ISO_639-1) 碼，後接下劃線 (\$1)，然後是 [ISO 3166-1 α-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) 值。例如，en\$1US 是美國的英文語言地區設定。 | 
| Demographic.Make | 端點裝置的製造商，例如 apple 或 samsung。 | 
| Demographic.Model | 端點裝置的型號名稱或號碼，例如：iPhone 或 SM-G900F。 | 
| Demographic.ModelVersion | 端點裝置的型號版本。 | 
| Demographic.Platform | 端點裝置的作業系統，例如：ios 或 android。 | 
| Demographic.PlatformVersion | 端點裝置上的作業系統版本。 | 
| Demographic.Timezone | 端點的時區，做為 [tz 資料庫](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)值。例如：America/Los\$1Angeles 適用於太平洋時間 (北美洲)。 | 
| EffectiveDate | 端點上次更新的日期和時間 ([ISO 8601 格式](https://en.wikipedia.org/wiki/ISO_8601))。例如，2019-08-23T10:54:35.220Z 即為 2019 年 8 月 23 日上午 10 點 54 分 (UTC)。 | 
| EndpointId | 端點的唯一識別碼。 | 
| EndpointStatus | 是否要傳送訊息或推送通知至端點：ACTIVE、傳送訊息至端點，或 INACTIVE，請勿傳送訊息至端點。 | 
| Id | 端點的唯一識別碼。 | 
| Pinpoint.JourneyId | 旅程的唯一識別符。 | 
| Location.City | 端點所在的城市。 | 
| Location.Country | 端點所在國家或區域的兩字元代碼 ([ISO 3166-1 alpha-2 格式](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))。例如：US (美國)。 | 
| Location.Latitude | 端點位置的緯度 (四捨五入到一位小數)。 | 
| Location.Longitude | 端點位置的經度 (四捨五入到一位小數)。 | 
| Location.PostalCode | 端點所在地區的郵遞區號。 | 
| Location.Region | 端點所在的區域名稱，例如州或省。 | 
| Metrics.custom\$1attribute | 您的應用程式向 Amazon Pinpoint 回報端點的自訂數值指標。 | 
| OptOut | 無論使用者選擇不接收來自您的訊息和推送通知：ALL、使用者選擇不接收任何訊息或推送通知，還是 NONE，使用者尚未選擇不接收所有訊息和推送通知。 | 
| RecommendationItems | 標準建議屬性，此會存放端點或使用者的一個建議。此屬性包含由建議者模型直接提供的文字。 | 
| RecommendationItems.[\$1] |  標準建議屬性，會儲存要給端點或使用者的 2-5 個建議排序清單。此屬性包含由建議者模型直接提供的文字。 數字預留位置 (. [\$1]) 表示屬性包含多個值。此屬性的訊息變數可指向清單中的特定值。  | 
| Recommendations.custom\$1attribute | 自訂建議屬性，此會存放端點或使用者的一個建議。此屬性包含由推薦者模型提供並由 AWS Lambda 函數增強的內容。 | 
| Recommendations.custom\$1attribute.[\$1] |  自訂建議屬性，此會存放端點或使用者的多個建議。此屬性包含由建議者模型所提供，並由 AWS Lambda 函數增強的內容。 數字預留位置 (. [\$1]) 表示屬性包含多個值。此屬性的訊息變數可以特別指向其中一個值。  | 
| RequestId | 更新端點的最新請求唯一識別碼。 | 
| User.UserAttributes.custom\$1attribute | 描述使用者的自訂使用者屬性。 | 
| User.UserId | 使用者的唯一識別符 | 

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

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

這些是協助程式的類別，下節將有詳細描述：

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

本節介紹 Handlebars 提供的**內建**協助程式。如需完整清單，請參閱[位於 https：// 的內建協助程式](https://handlebarsjs.com/guide/builtin-helpers.html)。 [handlebarsjs.com](https://handlebarsjs.com) 這些是內建協助程式：
+ `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="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 Pinpoint 自訂屬性 (例如 `User.UserAttributes.LastName`) 儲存為清單，無論是單一項目或是多個項目。在需要字串的協助程式中傳遞清單時，必須指定屬性索引值和屬性名稱。此屬性索引值表示屬性清單中值的位置：`.[0]` 表示清單中的第一個項目，`.[1]` 表示第二個項目，`.[2]` 表示第三個項目，依此類推。假設您使用 `upper` 協助程式將 `User.UserAttributes.LastName` 的第一個 (`[0]`) 項目轉換為全部大寫。協助程式用法是 `{{upper value}}`，屬性的格式是 `User.UserAttributes.LastName`。將 *value* 替換成屬性名稱和屬性索引值 `.[0]`，如下所示：`{{upper User.UserAttributes.LastName.[0]}}`。然後回應傳回清單中的 `[0]` 項目，格式是全部大寫。假設 `[0]` 的值是 *Santos*，回應傳回 *SANTOS*。

Amazon Pinpoint 自訂屬性名稱支援空格。若要擁有名為 的自訂屬性`"Last Name"`，您必須將屬性格式化為 `User.UserAttributes.[Last Name]`。若要存取屬性索引清單中的第一個項目，格式為 `User.UserAttributes.[Last Name].[0]`。

自訂屬性名稱最多可包含 50 個字元。屬性值最多可包含 100 個字元。定義自訂屬性的名稱時，請避免使用以下字元：數字符號 (\$1)、冒號 (:)、問號 (?)、反斜線 (\$1) 和斜線 (/)。Amazon Pinpoint 主控台不能顯示包含這些字元的屬性名稱。此限制不適用於屬性值。

## 使用巢狀協助程式
<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="message-templates-managing"></a>

Amazon Pinpoint 主控台上的**訊息範本**頁面提供單一位置，供您建立、檢視和管理目前 AWS 區域中 Amazon Pinpoint 帳戶的所有訊息範本。透過使用此頁面，您可以將您的訊息範本做為單一集合管理。這有助您設計一致的訊息，並能更輕鬆、更有效率地重複使用內容。您可以使用此頁面來執行管理任務，例如檢視和編輯範本，以及複製、刪除和建立範本。

**Topics**
+ [檢視訊息範本集合](message-templates-managing-view-all.md)
+ [開啟訊息範本](message-templates-managing-open.md)
+ [編輯訊息範本](message-templates-managing-edit.md)
+ [複製訊息範本](message-templates-managing-copy.md)
+ [刪除訊息範本](message-templates-managing-delete.md)
+ [在範本中加入標籤](message-templates-managing-add-tag.md)
+ [從範本移除標籤](message-templates-managing-remove-tag.md)

如需建立訊息範本的相關資訊，請參閱[建立電子郵件範本](message-templates-creating-email.md)、[建立推送通知範本](message-templates-creating-push.md)、[建立簡訊範本](message-templates-creating-sms.md)或[建立語音範本](message-templates-creating-voice.md)，視您要建立的範本類型而定。

如需檢視和管理範本版本的相關資訊，請參閱[管理訊息範本的版本](message-templates-versioning.md)。

# 檢視訊息範本集合
<a name="message-templates-managing-view-all"></a>

**訊息範本**頁面會顯示目前 Amazon Pinpoint 帳戶的所有訊息範本清單 AWS 區域。若要快速瀏覽清單或尋找特定範本，您可以排序和篩選清單、選擇要顯示的欄，以及變更清單的其他顯示設定。

**檢視您的訊息範本集合**

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

1. 在導覽窗格中，選擇 **Message templates (訊息範本)**。**Message templates (訊息範本)** 頁面隨即開啟，並顯示您集合中的範本數目及這些範本的清單。

1. 若要快速自訂清單或尋找特定範本，請選擇下列任一選項：
   + 若要依特定類型的值排序清單，請選取該值的資料欄標題。若要將排序順序從遞增變更為遞減或反之，請再次選取欄標題。
   + 若要套用只顯示特定範本類型的篩選條件，請使用頁面頂端的通路選擇器來選擇通路。若要移除篩選條件，請從通路選擇器中選擇 **All message channels (所有訊息通路)**。
   + 若要套用僅顯示名稱包含特定文字的範本篩選條件，請在清單上方的 **Search (搜尋)** 方塊中輸入文字。若要移除篩選條件，請在**搜尋**方塊中選擇 **X**。
   + 若要變更清單中顯示的範本數目，請選擇頁面頂端的設定圖示。然後，針對 **Page size (頁面大小)**，選擇您希望顯示的範本數，然後選擇 **Save changes (儲存變更)**。
   + 若要新增或移除清單中的欄位，請選擇頁面頂端的設定圖示。然後，針對 **Choose visible columns (選擇可見欄位)**，開啟或關閉每一欄，然後選擇 **Save changes (儲存變更)**。

# 開啟訊息範本
<a name="message-templates-managing-open"></a>

藉由使用 **Message templates (訊息範本)** 頁面，您可以快速尋找並開啟特定的訊息範本，檢視範本內容及範本資訊。例如，您可以檢視目前和先前的範本版本，並判斷上次更新範本的時間。開啟範本後，您還可以[編輯範本](message-templates-managing-edit.md)。

**開啟訊息範本**

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

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

1. 在 **Message templates (訊息範本)** 頁面中，選擇您要開啟的範本。範本頁面隨即開啟，並顯示範本的相關資訊。該頁面也會顯示作用中範本版本的內容。

1. 若要檢視不同版本的範本，請使用 **Template details (範本詳細資訊)** 下的版本選擇器來選擇您要檢視的版本。

# 編輯訊息範本
<a name="message-templates-managing-edit"></a>

您可以使用兩種方式開啟訊息範本以供編輯：當您撰寫使用範本的訊息時，以及使用 **Message templates (訊息範本)** 頁面。本主題說明如何使用 **Message templates (訊息範本)** 頁面來開啟與編輯範本。

如果您編輯某個範本，Amazon Pinpoint 可能會將變更套用到使用了該範本且尚未傳送的現有訊息，例如排定在稍後傳送的行銷活動訊息。這取決於您編輯的是否為作用中範本版本，以及使用該範本之訊息的設定方式。如需詳細資訊，請參閱[管理訊息範本的版本](message-templates-versioning.md)。

**編輯訊息範本**

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

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

1. 在 **Message templates (訊息範本)** 頁面中，選擇您要編輯的範本。範本頁面隨即開啟，並顯示範本的相關資訊。該頁面也會顯示作用中範本版本的內容及設定。

1. 選擇**編輯**。

1. 在 **Template details (範本詳細資訊)** 下，使用版本選擇器來選擇您要做為變更起點使用的範本版本。如果您是選擇最新版的範本，則可將變更直接儲存至該範本版本。或者，您可以將變更儲存為新的範本版本。

1. 依照您想要的進行變更。除了範本名稱以外，您可以變更任何範本的內容或設定。若要變更範本的名稱，則可在[建立範本複本](message-templates-managing-copy.md)後，以您想要的名稱來儲存該複本，然後選擇性地刪除原始範本。

1. 完成變更後，請執行下列其中一項操作：
   + 若要將變更儲存為新的範本版本，請選擇 **Save as new version (儲存為新版本)**。為了協助確保您的變更不會影響任何現有訊息，建議您選擇此選項。
   + 若要將變更儲存為最新版本的範本更新，請選擇 **Update version (更新版本)**。只有當您在步驟 5 中選擇的是最新版範本時，才可以使用此選項。如果您選擇此選項，您所做的變更可能會影響使用該範本的現有訊息。

# 複製訊息範本
<a name="message-templates-managing-copy"></a>

若要快速建立類似現有範本的新訊息範本，您可以建立範本的複本。然後，您可以編輯範本複本，不變更原始範本。

**複製訊息範本**

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

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

1. 在 **Message templates (訊息範本)** 頁面中，選取所要複製範本旁的核取方塊。

1. 在 **Actions (動作)** 選單上，選擇 **Duplicate (複製)**。

1. 針對 **Template name (範本名稱)**，輸入範本複本的名稱。名稱必須以字母或數字開頭。最多可包含 128 個字元。字元可以是字母、數字、底線 (\$1) 或連字號 (‐)。

1. 輸入完名稱後，請選擇 **Duplicate template (複製範本)**。範本頁面隨即開啟，並顯示所複製作用中範本版本的所有內容及設定。

1. (選用) 若要變更範本複本，則可在選擇 **Edit (編輯)** 後，視需要進行變更，然後選擇 **Save as new version (儲存為新版本)**。

# 刪除訊息範本
<a name="message-templates-managing-delete"></a>

若要從 Amazon Pinpoint 完全移除訊息範本，可以刪除範本。如果刪除某個範本，並不會影響使用該範本的任何現有訊息，例如排程在稍後傳送的行銷活動訊息。

**警告**  
若您刪除某個範本，Amazon Pinpoint 會刪除該範本的所有版本、內容及設定。而且，未來所有訊息都將無法使用該範本。範本刪除後無法復原。

**刪除訊息範本**

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

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

1. 在 **Message templates (訊息範本)** 頁面上，選取您想要刪除之每個範本旁的核取方塊。

1.  在**操作**功能表上，選擇**刪除**。

# 在範本中加入標籤
<a name="message-templates-managing-add-tag"></a>

標籤是您可以定義並與 AWS 資源建立關聯的標籤，包括特定類型的 Amazon Pinpoint 資源。

在範本中新增標籤，可以幫助您依不同方法 (例如依用途、擁有者、環境或其他條件)，對範本進行分類和管理。您可以使用標籤快速尋找現有範本，或控制哪些使用者可以存取特定範本。您最多可以新增 50 個金鑰/值對，每個索引鍵都沒有重複。

**新增標籤**

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

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

1. 在**訊息範本**頁面中，選擇要新增標籤的範本。

1. 在 **Tags (標籤)** 下，選擇 **Manage tags (管理標籤)**。

1. 選擇 **Add new tag (新增標籤)**。

1. 輸入您要新增的標籤索引鍵和值對。

1. (選用) 若要新增其他標籤，請選擇**新增標籤**。

1. 完成後，選擇**標籤**。

# 從範本移除標籤
<a name="message-templates-managing-remove-tag"></a>

如果您不再需要將標籤套用到範本，可以透過主控台將其刪除。

**若要移除標籤**

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

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

1. 在**訊息範本**頁面中，選擇要移除標籤的範本。

1. 在 **Tags (標籤)** 下，選擇 **Manage tags (管理標籤)**。

1. 在您要移除的標籤旁邊，選擇**移除**。

1. 選擇**儲存標籤**。

如需了解如何在 IAM 政策中使用標籤，請參閱[管理標籤](https://docs.aws.amazon.com/pinpoint/latest/developerguide/tagging-resources.html)。

# 管理訊息範本的版本
<a name="message-templates-versioning"></a>

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

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

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

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

**注意**  
如果您需要編輯正在使用的範本，我們建議您建立新的範本版本。

**Topics**
+ [版本控制的運作方式](#message-templates-versioning-overview)
+ [檢視訊息範本的版本](#message-templates-versioning-view-versions)
+ [檢視訊息範本的作用中版本](#message-templates-versioning-view-active)
+ [指定訊息範本的作用中版本](#message-templates-versioning-set-active)
+ [編輯訊息範本的作用中版本](#message-templates-versioning-edit-active)

## 版本控制的運作方式
<a name="message-templates-versioning-overview"></a>

在典型的開發工作流程中，訊息範本有許多版本。這些版本從設計和開發的一開始延伸到測試、檢閱以及最終同意在訊息中使用的核准。在某些情況下，在您改良和更新範本時，您可能會在初始核准之後建立和核准其他版本。例如，您可能會新增連結或變更範本的版面配置，以回應使用該範本之行銷活動的分析資料。

### 版本編號
<a name="message-templates-versioning-overview-numbering"></a>

建立範本時，範本只有一個版本：*第 1 版*。後續每次變更範本時，您都可以指定是要將變更儲存為範本的新版本，還是將變更儲存為最新版本的範本更新。

如果您將變更儲存為新版本，Amazon Pinpoint 會自動將版本編號加 1，並將該版本編號指派給該版本，第一個版本為*第 1 版*，第二個版本為*第 2 版*，第三個版本為*第 3 版*，依此類推。版本編號絕不會重複使用。您可以儲存多達 5,000 個範本版本。

如果您將變更儲存為最新版本的更新，Amazon Pinpoint 會覆寫最新版本，將您的變更涵蓋在內。為了確保您能夠準確檢視範本的歷史記錄，您可以使用 Amazon Pinpoint 主控台僅覆寫範本的最新版本。您無法透過使用主控台覆寫任何較早版本的範本。

### 最新和作用中版本
<a name="message-templates-versioning-overview-version-types"></a>

為了支援長期、持續的範本開發，目前可同時有兩個範本版本。它們是：*最新版本*，這是最近變更的版本，而*作用中*版本是可用於訊息的版本。

視您組織的工作流程而定，作用中版本通常是最近經過審閱和核准，可在訊息中使用的版本。此版本不一定是最新的範本版本。此外，非作用中版本以外的任何版本都會被視為範本的草稿或封存版本。這表示您只能在使用 Amazon Pinpoint 主控台建立的訊息中，使用範本的作用中版本。

例如，您可能在設計和開發範本時建立多個範本的版本。當最新範本版本完成並獲得核准，可用於訊息中時，您可以將該版本指定為範本的作用中版本。然後，您可以在訊息中使用該範本的作用中版本。如果您稍後決定變更該範本，您可以為這些變更建立其他版本，而不會影響範本的作用中版本或是使用該範本的任何現有訊息。

在範本的所有版本中，您必須將一個版本指定為範本的作用中版本。隨著範本經過一段時間的變更，您可以將其他版本指定為作用中版本，並且可以多次變更該指定。

### 訊息的版本設定
<a name="message-templates-versioning-overview-versions-messages"></a>

若要在訊息中使用範本的特定版本，版本必須是您建立訊息或 Amazon Pinpoint 傳送訊息時作用中的版本。這取決於您如何設定訊息以使用範本。當您建立訊息並為其選擇範本時，您有兩個選項：
+ **使用目前作用中的版本** – 如果選擇此選項，Amazon Pinpoint 傳送的訊息內容和設定，永遠都會是您在建立訊息時，於作用中狀態的範本版本中指定的訊息內容和設定。這表示不論您稍後對範本進行的任何變更，訊息都會保持不變。
+ **傳送訊息時使用作用中的版本** – 如果您選擇此選項，Amazon Pinpoint 會自動更新訊息內容和設定，以使用傳送訊息時作用中的範本版本。這表示如果您在建立訊息後，指定不同的版本作為作用中的版本，訊息就會變更。

例如，如果您執行下列動作：

1. 建立範本的*版本 1*。

1. 將*版本 1* 指定為範本的作用中版本。

1. 建立使用範本的訊息，並將訊息排在稍後傳送。

1. 多次變更範本。

1. 將新版本 (*版本 5*) 指定為範本的作用中版本。

Amazon Pinpoint 在傳送訊息時，會針對各選項執行以下操作：
+ **使用目前作用中的版本** – 如果您為訊息選擇此選項，Amazon Pinpoint 會使用範本*版本 1* 所指定的內容和設定。這樣做是因為在建立訊息時，*版本 1* 是範本的作用中版本。
+ **使用傳送訊息時作用中的版本** – 如果您為訊息選擇此選項，Amazon Pinpoint 會自動更新訊息，以使用範本*版本 5* 指定的內容和設定。這樣做是因為，傳送訊息時*版本 5* 是範本的作用中版本。

如果您想要確保範本的變更不會影響您尚未傳送的任何現有訊息，建議您將訊息設定為使用建立訊息時作用中的範本版本，而不是傳送。或者，如果您想要在訊息中開始使用範本後繼續開發該範本，您可以[建立範本的複本](message-templates-managing-copy.md)，然後在新訊息中編輯並使用範本複本。

## 檢視訊息範本的版本
<a name="message-templates-versioning-view-versions"></a>

藉由使用 **Message templates (訊息範本)** 頁面，您可以快速尋找並開啟特定訊息範本。然後，您可以檢視該範本存在的版本清單。從該清單中，您可以選擇特定版本來檢視該範本版本的內容和設定。

**檢視訊息範本的版本**

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

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

1. 在 **Message templates (訊息範本)** 頁面上，選擇您要檢視其版本的範本。範本頁面隨即開啟，並顯示範本的相關資訊。該頁面也會顯示作用中範本版本的內容及設定。

1. 在 **Template details (範本詳細資訊)**下，開啟版本選取器以顯示範本的版本清單。

1. 若要檢視特定版本的內容和設定，請使用版本選取器來選擇版本。選擇版本後，Amazon Pinpoint 會顯示該範本版本的內容和設定。

## 檢視訊息範本的作用中版本
<a name="message-templates-versioning-view-active"></a>

您可以使用兩種方式檢視訊息範本的作用中版本：在您建立使用該範本的訊息時，以及透過使用 **Message templates (訊息範本)** 頁面。若要在建立訊息時檢視範本的作用中版本，請為訊息選擇範本。Amazon Pinpoint 會自動顯示範本的作用中版本預覽。

若要使用 **Message templates (訊息範本)** 頁面檢視範本的作用中版本，請遵循本主題中的步驟。

**檢視訊息範本的作用中版本**

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

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

1. 在 **Message templates (訊息範本)** 頁面上，選擇您要檢視其作用中版本的範本。範本頁面隨即開啟，並顯示範本的相關資訊。該頁面也會顯示作用中範本版本的內容及設定。在 **Template details (範本詳細資訊)** 下，請注意 **ACTIVE VERSION (作用中版本)** 會出現在版本選取器中的版本名稱旁邊 (以綠色顯示)。

1. 若要檢視不同的範本版本，請使用 **Template details (範本詳細資訊)** 下的版本選擇器來選擇您想要的版本。若要再次檢視作用中的版本，請使用版本選取器，選擇該版本名稱旁邊顯示 **ACTIVE VERSION (作用中版本)** (以綠色顯示) 的版本。

## 指定訊息範本的作用中版本
<a name="message-templates-versioning-set-active"></a>

您建立訊息範本時，Amazon Pinpoint 會將範本的第一個版本，自動指定為範本的作用中版本。建立和開發範本的後續版本時，您可以指定不同的版本作為範本的作用中版本，並且可以多次變更該指定。

將版本指定為範本的作用中版本之前，最好先確認提議的作用中版本中的所有內容和設定都已完成並可供使用。

我們也建議您確認目前和提議之作用中版本之間的差異，是否會以意外或不想要的方式影響現有的訊息。如果您將其他版本指定為作用中版本，Amazon Pinpoint 可能會將您的變更套用到使用了該範本且尚未傳送的現有訊息。這取決於您如何設定使用範本的訊息。如需詳細資訊，請參閱[訊息的版本設定](#message-templates-versioning-overview-versions-messages)。

如果在尚未傳送的訊息中使用該範本，請將目前作用中的版本與您想要設為作用中的版本進行比較。此外，請檢閱使用此範本的任何行程活動和行銷活動。然後，在將不同版本指定為作用中版本之前，視需要編輯範本以解決您發現的任何問題。

如果您擔心將不同版本指定為作用中版本的影響，可以改為[建立範本的複本](message-templates-managing-copy.md)。然後，您就可以在新訊息中編輯並使用範本複本。

**指定訊息範本的作用中版本**

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

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

1. 在 **Message templates (訊息範本)** 頁面上，選擇指定作用中版本的目標範本。範本頁面隨即開啟，並顯示範本的相關資訊。其中也會顯示目前為範本之作用中版本之版本的內容和設定。

1. 在 **Template details (範本詳細資訊)** 下，使用版本選取器來選擇您要指定為作用中版本的版本。選擇版本後，Amazon Pinpoint 會顯示該範本版本的內容和設定。

1. 選擇 **Make active version (設定為作用中版本)**。

範本的全新作用中版本現在可用於新訊息中。此外，此版本會用於尚未傳送，且設定為在傳送訊息時使用該範本之作用中版本的任何現有訊息。

## 編輯訊息範本的作用中版本
<a name="message-templates-versioning-edit-active"></a>

編輯範本的作用中版本之前，請務必記住，只有範本的作用中版本，才能在您使用 Amazon Pinpoint 主控台建立的訊息中使用。因此，建議您先確認變更是完整的且可供使用。

確認變更之後不會影響現有訊息的顯示方式，也是個好方法。Amazon Pinpoint 可能會將您的變更套用到使用了該範本、但尚未傳送的現有訊息。這取決於您如何設定使用範本的訊息。如需詳細資訊，請參閱[訊息的版本設定](#message-templates-versioning-overview-versions-messages)。

若要判斷變更如何影響現有訊息，請檢閱範本目前作用中之版本的內容和設定。此外，請檢閱使用此範本的任何行程活動和行銷活動。然後，考慮您計劃進行的變更，並確保您的變更與使用範本的現有訊息的目標保持一致。

最後，如果您擔心對範本的作用中版本進行編輯的影響，您可以改為[建立範本的複本](message-templates-managing-copy.md)。然後，您就可以在後續建立的訊息中編輯並使用範本複本。

**編輯訊息範本的作用中版本**

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

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

1. 在 **Message templates (訊息範本)** 頁面上，選擇您要編輯其作用中版本的範本。範本頁面隨即開啟，並顯示範本的相關資訊。其中也會顯示目前指定為範本之作用中版本的版本內容和設定。

1. 選擇**編輯**。

1. 在**範本詳細資訊**下，使用版本選擇器來確定您正在編輯範本的作用中版本。**ACTIVE VERSION (作用中版本)** 會出現 (以綠色顯示) 在作用中版本的名稱旁邊。

1. 進行您需要的變更，然後選擇 **Save as new version (儲存為新版本)**。

1. 在 **Template details (範本詳細資訊)** 下，使用版本選擇器來選擇您在先前步驟中建立的範本版本。

1. 選擇 **Make active version (設定為作用中版本)**。

範本的全新作用中版本現在可用於新訊息中。此外，此版本會用於尚未傳送，且設定為在傳送訊息時使用該範本之作用中版本的任何現有訊息。