

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Connect で E メールを設定する
<a name="setup-email-channel"></a>

以下は、コンタクトセンターの E メールチャネルを設定する手順の概要です。
+ [Amazon Connect インスタンスの E メールを有効にする](enable-email1.md)。このプロセス中に、自動生成された E メールアドレスを取得します。また、5 つのカスタムアドレスを追加することもできます。
+ [E メールアドレスを作成する](create-email-address1.md).
+ E メール[のキューを作成または更新](create-queue.md)する: **アウトバウンド E メール設定**セクション:
  + **デフォルトの E メールアドレス**: エージェントが E メールに返信または開始するときに事前に選択されるアウトバウンド E メールアドレスを指定します。
    + これは、Amazon Connect 内の検証済み E メールアドレス (Amazon SES 検証済みドメインで Amazon Connect で作成された E メールアドレス) である必要があります。
    + これは、このキューで最も一般的に使用される E メールアドレスである必要があります。
    + エージェントが開始したアウトバウンド E メールの場合、エージェントはルーティングプロファイルで設定されたデフォルトのアウトバウンドキューからデフォルトの E メールアドレスを使用して E メールを送信できます。エージェントは、キューに設定されている**追加の E メールアドレス**から選択することもできます。これにより、エージェントがロールまたはチームに基づいて使用できる E メールアドレスを柔軟に制御できます。
    + このモデルは、キューごとにアウトバウンド発信者 ID とフローを指定し、エージェントがルーティングプロファイルからデフォルトのアウトバウンドキューを使用するアウトバウンド音声問い合わせに似ています。
  + **アウトバウンド E メールフロー**: このキューから送信されたアウトバウンド E メールに対して実行するフローを選択します。[Amazon Connect のデフォルトのアウトバウンドフロー:「このコールは録音されていません」](default-outbound.md) または Outbound タイプの別のフローを選択できます。
    + ここで設定したアウトバウンド E メールフローは、このキューで受信したインバウンド E メールコンタクトへのエージェントの返信と、このキューがエージェントのルーティングプロファイルでデフォルトのアウトバウンドキューとして選択されたときにエージェントが開始したアウトバウンド E メールに適用されます。
    + アウトバウンド E メールフローを指定しない場合、 [Amazon Connect のデフォルトのアウトバウンドフロー:「このコールは録音されていません」](default-outbound.md)はこのキューからのすべてのアウトバウンド E メールに自動的に使用されます。
    + アウトバウンド音声問い合わせと同様に、キューごとに異なるアウトバウンド E メールフローを設定すると、キューに基づいて異なる問い合わせフローを柔軟に実行できます。これにより、さまざまなチーム、ブランド、またはビジネスユニットのアウトバウンド E メールエクスペリエンスをカスタマイズできます。

  **「追加の E メールアドレス**」セクションで、次の操作を行います。
  + **E メールアドレスの検索**: エージェントが E メールに返信または開始するときに使用できる追加の E メールアドレスを最大 49 個選択します。エージェントは、ワークスペースのドロップダウンリストを使用して、設定されたすべての E メールアドレス (デフォルトと追加) から選択できます (「」を参照)[E メールアドレスから を選択する](agent-select-from-email.md)。キューごとに最大 50 個の E メールアドレスを設定できます (デフォルト 1 個 \$1 追加 49 個）。

  使用可能な E メールアドレスのリストは、[タグベースのアクセスコントロール (TBAC)](https://docs.aws.amazon.com/connect/latest/adminguide/tag-based-access-control.html) を尊重します。エージェントには、割り当てられたタグに基づいて を使用するアクセス許可を持つ E メールアドレスのみが表示されます。
+  [ルーティングプロファイルを作成または更新](routing-profiles.md)して、エージェントが E メールコンタクトを処理できるように指定します。
**重要**  
ルーティングプロファイルで、次の操作を行います。  
**デフォルトのアウトバウンドキュー**は、エージェントが開始したアウトバウンド E メールで使用できる E メールアドレスのリストを定義します。エージェントは、このキューに設定されている E メールアドレスから選択できます。
**[エージェントあたりの最大コンタクト数]** で、エージェントが受信できる E メールの数を定義します。その数の 2 倍が、エージェントが開始できるアウトバウンド E メールの数になります。例えば、**[エージェントあたりの最大コンタクト数]** を 5 に設定すると、エージェントは最大 5 通の E メールを受信し、エージェントが開始できるアウトバウンド E メールを最大 10 件作成できます。
+  [メッセージテンプレートを作成](create-message-templates1.md)します。E メールテンプレートは、署名や免責事項など、エージェントの E メールの構造を定義したり、フルレスポンスにしたりできます。
+ [メッセージを送信](send-message.md) ブロックを使用してフローを設定します。このブロックを使用して、テンプレートまたはカスタムメッセージに基づいて顧客にメッセージを送信します。さらに、以下を指定できます。
  + 送信先と送信元の E メールアドレスと表示名。これらは、次のような[システム属性](connect-attrib-list.md#attribs-system-table)を使用して、手動で、または動的に指定できます。
    + **顧客のエンドポイントアドレス**: これは、コンタクトを開始した顧客の E メールアドレスです。
    + **システム E メールアドレス**: これは、顧客が送信した E メールの送信先の E メールアドレスです。
    + **顧客の表示名**: これは、顧客がユーザーに送信した E メールからキャプチャされます。
    + **システムの表示名**: 顧客が送信した E メールの表示名。
    + **CC の E メールアドレスリスト**: 顧客の E メールに記載されている CC の E メールアドレスの完全なリスト。
    + **To の E メールアドレスリスト**: 顧客の E メールに記載されている To の E メールアドレスの完全なリスト。

    例えば、顧客が E メールで自動返信を送信するには、**[E メールアドレス]** を **[顧客のエンドポイントアドレス]** に動的に設定し、**[表示名]** を **[顧客の表示名]** に動的に設定します。
  + **メッセージ**: テンプレートを指定するか、プレーンテキストを入力します。
    + **[セグメント属性]** - **[E メールの件名]** を使用して、**[件名]** を動的に指定できます。
    + **[メッセージ]** は、**[ユーザー定義]** 属性を選択して動的に指定できます。
  + **[コンタクトへのリンク]**: インバウンドコンタクト E メールをアウトバウンドコンタクト E メールにリンクするかどうかを選択します。自動返信 E メールの場合は、このオプションを選択しないでください。
+ [コンタクト属性を確認する](check-contact-attributes.md)ブロックの属性を使用して、コンタクトのチャネルを確認します。E メールの場合は、以下の[セグメント属性](connect-attrib-list.md#attribs-segment-attributes)を使用して確認できます。
  + **E メールの件名**: 例えば、特定のキーワードの件名を確認できます。
  + **Amazon SES Spam Verdict** と **Amazon SES Virus Verdict**: 顧客の E メールを受信すると、Amazon SES はスパムとウイルスをスキャンします。例えば、条件が FAILED と等しい場合 (つまり、E メールがチェックに失敗した場合)、コンタクトを切断するか、マネージャーが確認できるように E メールを特別なキューに送信できます。
+ アウトバウンド E メールを開始する必要があるエージェントに、次のセキュリティプロファイルアクセス許可を割り当てます。
  + **コンタクトコントロールパネル (CCP)** - **E メール会話を開始する**

# Amazon Connect Email の仕組み
<a name="email-capabilities"></a>

Amazon Connect Email には、カスタマーサービス E メールの解決の優先順位付け、割り当て、自動化を容易にする組み込み機能が用意されており、顧客満足度とエージェントの生産性を向上させることができます。ユーザーが[設定した E メールアドレス](create-email-address1.md)に顧客が送信した E メールや、[StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html) API を使用してユーザーのウェブサイトまたはモバイルアプリのウェブフォームを使用して送信した E メールに対して、受信と返信ができます。

Amazon Connect Email は [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)に関する E メールを送信、受信、モニタリングします。

 このトピックでは、Amazon Connect Email と Amazon SES がシームレスなカスタマーエクスペリエンスを実現する仕組みについて説明します。

**Topics**
+ [E メールを受信する](#email-capabilities-howreceived)
+ [E メールコンタクト](#email-capabilities-howtranslated)
+ [すべての E メールメッセージは一意の E メールコンタクトです](#email-capabilities-howmanaged)
+ [E メールスレッド](#email-capabilities-howthreadsmanaged)
+ [E メールの送信](#email-capabilities-howemailssent)

## E メールを受信する
<a name="email-capabilities-howreceived"></a>

Amazon Connect が E メールを受信するには、主に次の 3 つの方法があります。
+ **方法 1**: Amazon Connect インスタンスに用意されている E メールドメイン (@*instance-alias*.email.connect.aws など) や、所有している、または会社から提供されているカスタム検証済みドメイン (@*customer-domain*.com など) など、[Amazon SES からの検証済み E メールドメイン](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-domain-proc)を使用して、Amazon Connect で定義された [E メールアドレス](create-email-address1.md) (support@*customer-domain*.com など) を使用する。カスタム E メールドメインのオンボードの詳細については、「[インスタンスの E メールを有効にする](enable-email1.md)」の「[ステップ 3: 独自のカスタム E メールドメインを使用する](enable-email1.md#use-custom-email)」を参照してください。
+ **方法 2**: E メールサーバー ([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 にオンボードされた検証済み E メールドメイン (*customer-domain*.com など) を使用して、[Amazon SES の SMTP エンドポイント](https://docs.aws.amazon.com/general/latest/gr/ses.html)のいずれかに受信 E メールを送信します。
+ **方法 3**: [StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html) API を使用して、ウェブサイトまたはモバイルアプリのウェブフォームを使用して E メールコンタクトを開始します。これにより、E メールアドレスに E メールを送信する顧客と同様のインバウンド E メールコンタクトが開始されます。

次の図は、上記の各メソッドで [StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html) API を使用して Amazon Connect で送信された E メールがどのように受信されるかを示しています。

![\[StartEmailContact API にメッセージがウェブフォームまたは E メールとして送信される方法を示す図。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/email-ses-diagram.png)


方法 1 または方法 2 を統合するには、Amazon Connect で E メールドメインを使用する前に Amazon SES で E メールドメインを検証する必要があります。手順については、「[DNS プロバイダーを使用した DKIM ドメイン ID の検証](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 を使用します。これは、インバウンド E メールコンタクトのすべての統合方法において主要な API です。[StartTaskContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartTaskContact.html) の機能と類似しています。これには、次のいずれかの手順を実行する必要があります。
+ インバウンド E メールコンタクトの To 属性または CC 属性のいずれかに、Amazon Connect インスタンスから少なくとも 1 つの E メールアドレスを含めます。

—OR—
+ Amazon Connect インスタンスからのインバウンドフローを定義して、作成されたインバウンド E メールコンタクトをルーティングします。

両方が定義されている場合、デフォルトの動作は Amazon Connect インスタンスからのインバウンドフローを優先して、作成されたインバウンド E メールコンタクトを処理します。Amazon Connect インスタンスの複数の E メールアドレスが To または CC の E メールアドレス属性に含まれている場合、Amazon Connect インスタンスに複数のインバウンド E メールコンタクトが作成されます。

## E メールメッセージを E メールコンタクトにする方法
<a name="email-capabilities-howtranslated"></a>

ウェブフォームベースの E メールを含む、Amazon Connect での一般的な E メール受信の場合、[StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html) API はリクエストオブジェクトの基本的な E メールフィールドを公開します。このオブジェクトは、Amazon Connect で E メール情報を入力し、E メールコンタクトを開始するために使用されます。次のフィールドを含めることができます。
+ 送信元 E メールアドレス
+ 送信先 E メールアドレス
+  CC E メールアドレス
+ 件名
+ プレーンまたは HTML メッセージ本文
+ 添付ファイル

E メールコンタクト情報を E メールコンタクトに入力する方法の詳細については、Amazon Connect の E メールコンタクトデータモデル」を参照してください。

[StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html) API がリクエストパラメータの検証を実行し、少なくとも 1 つの To または CC の E メールアドレスが有効であり、Amazon Connect インスタンスに存在することを確認したら、次のようになります。

1. コンタクト ID が生成され、API レスポンス本文の一部として返されます。

1. 非同期ワークフローがトリガーされ、追加の E メールメッセージ処理が実行されます。

1. フローが開始されます。これは、Amazon Connect インスタンスにある E メールアドレスに関連付けられているフローです。

その一環として、Amazon Connect インスタンスの E メールメッセージと添付ファイルのストレージを設定する必要があります。
+ E メールメッセージと添付ファイルはどちらも、独自の Amazon SES S3 バケットに保存され、アクセスされます。
+ To、CC、件名、その他の属性などの残りの E メールコンタクト属性は、E メールコンタクトに保存されます (「[Amazon Connect の問い合わせレコードのデータモデル](ctr-data-model.md)」を参照)。

次の図は、顧客から Amazon SES および Amazon Connect への E メールメッセージのフローを示しています。図に示すように、E メールメッセージコンテンツが S3 バケットに保存され、そのバケットからデータを取得してエージェントに表示します。

![\[S3 バケットに保存されている E メールメッセージコンテンツを示す図。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/email-concepts-translated.png)


## すべての E メールメッセージは一意の E メールコンタクトです
<a name="email-capabilities-howmanaged"></a>

Amazon Connect の E メールは、音声、チャット、タスクとは異なります。
+ Amazon Connect への E メールメッセージ (インバウンド) または Amazon Connect からの E メールメッセージ (アウトバウンド) は、すべて独自の E メールコンタクトです。
+ 各 E メールコンタクトには、送信元アドレス、宛先アドレス、CC アドレス、件名、relatedContactId、E メール本文と添付ファイルの保存場所へのリンクや、個々の E メールメッセージ関連するその他の詳細など、その E メールメッセージに固有の詳細が含まれます。

 ただし、Amazon Connect の他のチャネルと同様に、E メールコンタクトには `INBOUND`、`OUTBOUND`、`TRANSFER`、`API`、`QUEUE_TRANSFER`、`END/DISCONNECT` などの同様の開始メソッドがあります。また、`CREATED`、`QUEUED`、`CONNECTING`、`CONNECTED`、`MISSED`、`TRANSFERRED`、`ERROR`、`ENDED/DISCONNECTED`、`REJECTED` などの同様の状態もあります。

E メールコンタクト情報を E メールコンタクトに入力する方法については、「[Amazon Connect の問い合わせレコードのデータモデル](ctr-data-model.md)」を参照してください。

## E メールスレッド
<a name="email-capabilities-howthreadsmanaged"></a>

E メールのスレッディングにより、顧客の問い合わせに関連する送信した E メールと着信した応答が、時系列的かつ整理された方法で相互に関連付けられます。

E メールの会話全体を維持するために、Amazon Connect はrelatedContactId などの E メールコンタクトのいくつかのフィールドと、従来の E メールクライアント標準 (RFC 5256) に従う E メールヘッダーのリストを使用して、E メールコンタクトをリンクさせます。

Gmail、Apple Mail、Outlook などのほとんどの E メールクライアントは、E メールスレッドをサポートしています。ただし、サポートされていないものもありますのでご注意ください。

顧客がスレッド内の最新の E メールメッセージに返信した場合、次の図に示すように、スレッドはわかりやすいパターンに従います。

![\[わかりやすいパターンの E メールスレッド。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/email-threading.png)


顧客が E メールスレッドの古いメッセージに返信すると、E メールスレッドツリーが形成され、E メールスレッドパターンは次の図の例のようになります。

![\[ツリーパターンの E メールスレッド。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/email-threading-tree.png)


どちらのシナリオでも、Amazon Connect はスレッドに関連する各 E メールメッセージを記録します。各 E メールメッセージには、それに成功した E メールからアクセスできます。

## E メールの送信
<a name="email-capabilities-howemailssent"></a>

Amazon Connect からのすべての E メールメッセージは、Amazon SES から顧客に直接送信されます。Amazon Connect インスタンスで提供されている E メールドメイン (*instance-alias*.email.connect.aws など) を使用している場合でも、カスタム検証済みドメイン (@*customer*.com など) を使用している場合でも、Amazon SES は、ドメイン ID を検証することで、顧客に直接 E メールを送信することが承認されます。

次の図は、[StartOutboundEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartOutboundEmailContact.html) API が Amazon SES に E メールを送信し、Amazon SES がそれを顧客に送信することを示しています。

![\[StartOutboundEmailContact API から SES 経由で顧客に送信される E メールフローを示す図。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/email-concepts-sent.png)


[StartOutboundEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartOutboundEmailContact.html) API は、インバウンドコンタクトへのエージェントの返信や、エージェントが開始したアウトバウンド E メールコンタクトなど、アウトバウンド E メールコンタクトのすべての統合方法において主要な API です。
+ [StartEmailContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartEmailContact.html) API と同様に機能しますが、アウトバウンドであるため逆です。
+  To または CC の E メールアドレス属性には少なくとも 1 つの E メールアドレスが必要であり、アウトバウンドコンタクトを処理するにはアウトバウンドウィスパーフローが必要です。

# Amazon Connect インスタンスの E メールを有効にする
<a name="enable-email1"></a>

このトピックは、Amazon Connect コンソールにアクセスできる管理者を対象としています。 Amazon Connect 管理者ウェブサイトを使用してインスタンスの E メールを有効にする方法について説明します。プログラムで E メールを有効にする API のリストについては、「[E メールを有効にする API](#apis-email-setup2)」を参照してください。

E メールを有効にすると、自動生成された E メールドメインが表示されます。必要に応じて、カスタムドメインを使用することもできます。
+ **Amazon Connect E メールドメイン**。E メールドメインは **instance-alias*.email.connect.aws* です。
  +  このドメインはテストに使用できます。
  + または、この E メールドメインを使用して Amazon Connect と統合し、Amazon Connect での E メールの受信を開始することもできます。例えば、*support@example.com* などの E メールアドレスがある場合は、*support@example.email.connect.aws* を使用して Amazon Connect に E メールを転送できます。
+ **カスタムドメイン**。[Amazon SES にオンボードされているカスタムドメインを最大 5 ](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 を使用して E メールの送受信を行います。新しい Amazon SES インスタンスがある場合は、サンドボックスモードから移行する必要があります。手順については、[Amazon SES デベロッパーガイド」の「Request production access (Moving out of the Amazon SES sandbox)](https://docs.aws.amazon.com/ses/latest/dg/request-production-access.html)」を参照してください。 *Amazon SES * 

Amazon SES を本稼働モードに移行した後、Amazon Connect インスタンスの作成時に E メールを既に有効にしている場合は、次のトピックに進みます。
+ [(オプション) ステップ 3: 独自のカスタム E メールドメインを使用する](#use-custom-email)
+ [ステップ 5: アタッチメントバケットに CORS ポリシーを設定する](#config-email-attachments-cors1)

## ステップ 2: デフォルトの Amazon Connect E メールドメインを取得する
<a name="get-email-domain"></a>

これらのステップは、Amazon Connect インスタンスを既に作成しているが、E メールを有効にしていない場合にのみ適用されます。Amazon Connect からデフォルトの E メールドメインを取得するには、以下の手順を実行します。

1. Amazon Connect コンソールの左側のナビゲーションメニューで、**[E メール]**、**[サービスロールを作成]** の順に選択します。このロールは、アカウントに一度だけ作成する必要があります。これにより、Amazon SES は Amazon Connect に E メールをルーティングできます。

1.  次の図に示すように、**[ドメインを追加]** を選択します。  
![\[[E メールの管理] ページ、[ドメインを追加] ボタン。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/email-aws-console1.png)

1. **[E メールドメインの追加]** ボックスで、次の図に示すように **[Amazon Connect の E メールドメイン]** を選択します。このオプションを選択すると、ドメインの名前 **instance-alias*.email.connect.aws* が自動生成されます。この E メールアドレスは変更できません。  
![\[[E メールドメインの追加] ボックス、[Amazon Connect の E メールドメイン] オプション。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/email-add-email-domain.png)

## (オプション) ステップ 3: 独自のカスタム E メールドメインを使用する
<a name="use-custom-email"></a>

[Amazon SES にオンボード](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-domain-proc)されているカスタムドメインを最大 5 つインポートできます。

1. Amazon Connect コンソールの左側のナビゲーションメニューで、**[E メール]** を選択し、次の図に示すように **[ドメインを追加]** を選択します。  
![\[Amazon Connect コンソールの E メールチャネル。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/email-aws-console.png)

1. **[カスタム E メールドメインを使用]** を選択します。ドロップダウンボックスを使用して、[Amazon SES によって検証](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-domain-proc)されたカスタムドメインを選択します。  
![\[[カスタム E メールドメインを使用] オプション。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/email-add-custom-domain.png)

## ステップ 4: E メールを有効にし、E メールと添付ファイルを保存するための Amazon S3 バケットを作成する
<a name="enable-email-buckets"></a>

これらのステップは、Amazon Connect インスタンスを既に作成しているが、E メールを有効にしていない場合にのみ適用されます。

**[データストレージ]** の設定を更新して E メールチャネルを有効にし、E メールメッセージと添付ファイルを保存する Amazon S3 バケットを指定する必要があります。E メールには 2 つの Amazon S3 バケットポインタが必要です。同じ Amazon S3 バケットにすることも、2 つの異なるバケットにすることもできます。

**重要**  
インスタンスの **[添付ファイルの共有を有効化]** を選択した場合は、このトピックで説明されているように、Amazon S3 バケットを作成し、[添付ファイルバケットに CORS ポリシーを設定](#config-email-attachments-cors1)する必要があります。これを行わないと、**E メールチャネルはインスタンスで機能しません**。

1. Amazon Connect コンソール ([https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/)) を開きます。

1. インスタンスページで、インスタンスエイリアスを選択します。インスタンスエイリアスは、**インスタンス名**として Amazon Connect URL にも表示されます。次の画像は、**[Amazon Connect 仮想コンタクトセンターのインスタンス]** ページを示しています。インスタンスエイリアスがボックスで囲まれています。  
![\[[Amazon Connect 仮想コンタクトセンターのインスタンス] ページ、インスタンスのエイリアス。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/instance.png)

1. 左側のナビゲーションメニューで、**[データストレージ]**、**[E メールメッセージ]**、**[編集]**、**[S3 への E メールメッセージのエクスポートの有効化]** を選択し、**[保存]** を選択します。

1. **[E メールメッセージ]** ページで E メールメッセージが保存されている S3 バケットを作成または選択します。次の図は、完成したページの例を示しています。  
![\[[データストレージ] メニューオプション、[E メールメッセージ] ページ。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/email-messages-export-to-s3.png)

1.  E メールの添付ファイルを許可する場合は、**[添付ファイル]** も選択します。次の図は、これらのオプションを示しています。

**[データストレージ]** ページの次の画像は、E メールメッセージと添付ファイルの Amazon S3 バケットを示しています。

![\[E メールと添付ファイルを保存する Amazon S3 バケット。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/email-s3-bucket.png)


## ステップ 5: アタッチメントバケットに CORS ポリシーを設定する
<a name="config-email-attachments-cors1"></a>

顧客とエージェントにファイルのアップロードとダウンロードができるようにするには、添付ファイルに使用している Amazon S3 バケットの `PUT` および `GET` リクエストが可能になるように Cross-Origin Resource Sharing (CORS) ポリシーを更新します。これは、Amazon S3 バケットでパブリック読み取り/書き込みを有効にする (非推奨) よりも安全です。

**添付ファイルバケットで CORS を設定する**

1. 添付ファイルを保存する Amazon S3 バケットの名前を検索します。

   1. Amazon Connect コンソール ([https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/)) を開きます。

   1. Amazon Connect コンソールで、[**Data storage**] (データストレージ) をクリックし、Amazon S3 バケット名を見つけます。

1. Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. Amazon S3 コンソールで、Amazon S3 バケットを選択します。

1. [**アクセス許可**] タブをクリックし、[**Cross-Origin Resource Sharing (CORS)**] セクションまで下方へスクロールします。

1. 添付ファイルバケットに次のいずれかのルールを持つ CORS ポリシーを追加します。CORS ポリシーの例については、*Amazon S3 デベロッパーガイド*の「[Cross-Origin Resource Sharing: ユースケースのシナリオ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html#example-scenarios-cors)」を参照して下さい。
   + オプション 1: ビジネスウェブサイトの名前など、添付ファイルの送受信元となるエンドポイントを一覧表示する。このルールは、ウェブサイト (例 :http://www.example1.com) からのクロスオリジン PUT リクエストと GET リクエストを許可します。

     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 に精通している開発者を対象としています。顧客が優先するスキャンアプリケーションを使用して E メールの添付ファイルをスキャンするように、Amazon Connect を設定できます。

## E メールを有効にする 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)

# E メールアドレスを作成する
<a name="create-email-address1"></a>

このトピックでは、 Amazon Connect 管理ウェブサイトを使用して E メールアドレスを作成する方法について説明します。顧客が返信できる E メールアドレスと、アウトバウンドのみ (返信なし) の E メールアドレスを作成できます。

プログラムで E メールアドレスを作成および管理するために使用する API のリストについては、「[E メールアドレスを作成および管理するための API](#apis-manage-email-addresses1)」を参照してください。

最大 100 個の E メールアドレスを作成できます。

**E メールアドレスを作成するには**

1. https://*instance name*.my.connect.aws/ で Amazon Connect 管理者ウェブサイトにログインします。管理者アカウント、またはセキュリティプロファイルで **[チャネルとフロー]** - **[E メールアドレス]** - **[作成]** アクセス許可を持つアカウントを使用します。

1. ナビゲーションメニューで、**[チャネル]**、**[E メールアドレス]** を選択します。

1. ドロップダウンリストからドメインを選択します。リストには、インスタンスの E メールチャネルを有効にしたときに作成された、自動生成されたドメインが含まれます。追加した場合は、最大 5 つのカスタムドメインを表示することもできます。

1. **[追加情報]** では、オプションで以下の情報を追加できます。
   + **わかりやすい送信者名**
   + **説明**: これは顧客向けではなく、ユーザー用です。
   + **フロー**: E メールを送信するための公開済みフローを選択します。E メールアドレスをアウトバウンド通信にのみ使用する場合は、空白のままにします。顧客はそれに返信できません。
**ヒント**  
**返信なし** E メールアドレス (アウトバウンドメールにのみ使用され、返信を受け入れることができないアドレス) を作成するには、 E メールアドレスに使用するフローを選択しません。

1. **[タグ]** で、オプションで[タグ](tagging.md)を追加して、Amazon Connect とエージェントワークスペースで E メールアドレスを表示およびアクセスできるユーザーを管理します。

1. **[作成]** を選択します。

## E メールアドレスを作成および管理するための API
<a name="apis-manage-email-addresses1"></a>

すべての E メールアドレス API のリストについては、「*Amazon Connect API リファレンスガイド*」の「[E メールアクション](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>

週次 E メールや予定のアラームなど、特定の種類のメッセージを頻繁にデザインして送信する場合は、メッセージを作成してメッセージテンプレートとして保存できます。その後、メッセージをデザインして書き直す代わりに、その種類のメッセージを送信する必要があるたびに、テンプレートを開始点として使用できます。

このトピックは、 管理者ウェブサイトを使用してメッセージテンプレートを作成する管理者とコンタクトセンター Amazon Connect のマネージャーを対象としています。

**ヒント**  
メッセージテンプレートは Connect AI エージェント APIs を使用していますが、メッセージテンプレートは追加の請求につながることはありません。チャットメッセージ料金または E メール料金みをお支払いいただきます。詳細については、「[Amazon Connect の料金](https://aws.amazon.com/connect/pricing/)」を参照してください。

## メッセージテンプレートとは
<a name="what-message-templates"></a>

*メッセージテンプレート*とは、送信するメッセージで再利用できるように作成、保存しておく、コンテンツと設定のセットです。一部の企業では、*E メールテンプレート*や *SMS テンプレート*とも呼ばれています。メッセージテンプレートを作成するときは、テンプレートに基づくメッセージの複数のコンポーネント内で再利用するコンテンツを指定します。

メッセージを作成するときに、メッセージに使用するテンプレートを選択できます。テンプレートを選択すると、Amazon Connect がテンプレート内のコンテンツと設定を取り込んでメッセージを生成します。

Amazon Connect では、以下のタイプのメッセージテンプレートをデザインできます。
+ **E メールテンプレート**: 顧客からの E メールへの返信としてユーザーが送信する E メールメッセージ、またはよくある質問に対してエージェントが使う E メールメッセージに使用します。E メールテンプレートでは、エージェント用に E メールの構造を定義したり (署名など)、完全な応答を作成したりできます。
+ **SMS テンプレート**: キャンペーンから送信する SMS テキストメッセージ、またはダイレクトメッセージやテストメッセージとして限られたユーザーに送信する SMS テキストメッセージに使用します。
+ キャンペーンから、またはダイレクトメッセージまたはテストメッセージとして限られた対象者に送信する WhatsApp メッセージ用の WhatsApp **WhatsApp テンプレート**。

次の機能を持つテンプレートを作成できます。
+ リッチテキスト書式 (太字、斜体、下線、取り消し線、上付き文字、下付き文字)、リッチテキストフォントスタイル (色、ハイライト、サイズ、見出し、ファミリー、ブロック引用、コードブロック)、特殊文字、絵文字、リスト (箇条書き、番号付き)、整列とインデント、テーブル、ハイパーリンク、埋め込みイメージ
+ 顧客名、顧客の E メール、顧客のアカウント番号、顧客の電話番号、顧客の住所、エージェント名など、パーソナライズの詳細を定義するための E メールテンプレート内の属性。
+ 最大 1 MB の添付ファイル。サポートされている添付ファイルの種類については、「[Amazon Connect 機能の仕様](feature-limits.md)」を参照してください。

テンプレートに基づく E メールメッセージを作成すると、テンプレートで定義されたコンテンツと設定を Amazon Connect が取り込んでメッセージを生成します。

## メッセージテンプレートの作成方法
<a name="howto-message-templates"></a>

1.  Amazon Connect 管理者アカウントまたは**コンテンツ管理** - **メッセージテンプレート** - セキュリティプロファイルで**作成する**ユーザーアカウントを使用して、管理者ウェブサイトにログインします。

1. ナビゲーションペインで、[**Message templates**] を選択します。

1. テンプレートを初めて作成する場合は、テンプレートを保存するためのナレッジベースを作成するように求められます。

   ナレッジベースは複数作成できますが、テンプレートに関連付けることができるナレッジベースは 1 つだけです。

1. **[テンプレートを作成]** をクリックします。

1. **Channel** で、チャネルを選択します。

1. **[名前]** にテンプレートの名前を入力します。名前は、文字または数字で始まる必要があります。最大 128 文字を含めることができます。

1. **[説明 - *オプション*]** に、テンプレートの簡単な説明を入力します。説明には最大 255 文字を含めることができます。

1. **[ルーティングプロファイル - *オプション*]** で、エージェントがエージェントワークスペースからこのテンプレートを使用できるように、ルーティングプロファイルを入力します。

1. E **メール**、**SMS**、または **WhatsApp** テンプレートを作成するかどうかに応じて、次のいずれかを実行します。

   E メールテンプレートの場合

   1. [**Email details**] で、以下のオプションにより、テンプレートを使用するメッセージのコンテンツを指定します。
      + [**Subject**] に、メッセージの件名行に表示するテキストを入力します。
      + **[本文]** に、メッセージの本文に表示するコンテンツを入力します。
        + **エディタ**: リッチテキストエディタを使用してコンテンツを入力します。書式設定ツールバーを使用してメッセージに書式を適用し、リンクやその他のコンテンツを追加します。添付ファイルを追加するには、IT 管理者がこのオプションで添付ファイル機能を有効にする必要があります。
        + **コード**: フォーマット、リンク、およびメッセージに含めるその他の機能など、HTML コンテンツを手動で入力することができます。

        テンプレートの件名と本文にも、属性を使用してパーソナライズされたコンテンツを含めることができます。これを実行するには、ユーザーまたは Amazon Connect が作成した特定の属性 (例えば、ユーザーの名を保存する属性) を参照するメッセージ変数を追加します。メッセージ変数を使用することで、そのテンプレートを使用するメッセージの各受信者にさまざまなコンテンツを表示できます。

        メッセージ変数を使用するには、[**Attribute finder**] から既存の属性名を選択します。それを Amazon Connect がメッセージに挿入します。ユーザーは、変数をコピーして必要な場所に貼り付けることができます。詳細については、「[メッセージテンプレートにパーソナライズされたコンテンツを追加する](personalize-templates.md)」を参照してください。  
![\[メッセージテンプレートページの属性ファインダー。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/message-template-attribute-finder.png)

   1. **[ヘッダー - *オプション*]** で、E メールメッセージに 2 つの静的ヘッダーを追加できます。例えば、プロモーション E メールにワンクリックサブスクリプション解除リンクを追加するには、次の 2 つのヘッダーを追加します。
      + **List-Unsubscribe**: 組織のサブスクリプション解除リンクに設定します。リンクは、受信者のサブスクリプション解除リクエストを処理するための HTTP POST リクエストをサポートしている必要があります。
      + **List-Unsubscribe-Post**: `List-Unsubscribe=One-Click` に設定します。

      E メールに登録解除リンクを含めることはベストプラクティスであり、一部の国ではそれが法的要件となっています。テンプレートにこの属性を含むリンクが含まれている場合、オプトアウトリクエストを処理するシステムが必要になります。

   1. テンプレートのコンテンツと設定の入力が完了したら、**[保存]** を選択します。

   1. テンプレートをユーザーが使用できるようにする前に、テスト E メールメッセージを送信して、テンプレートが意図したとおりに動作することを確認することをお勧めします。

   1. テンプレートをエージェントに提供してエージェントワークスペースを使ってフローやキャンペーンで使用する準備が整ったら、テンプレートを[アクティブ化](#create-message-templates1)する手順を行います。

**SMS テンプレートの場合**

1. **[SMS の詳細]** で、**[本文]** の下にメッセージを書き込みます。上記の手順を使用して必要に応じて属性を追加し、メッセージをパーソナライズします。

1. テンプレートのコンテンツと設定の入力が完了したら、[**Create**] を選択します。

1. テンプレートをユーザーが使用できるようにする前に、テストメッセージを送信して、テンプレートが意図したとおりに動作することを確認することをお勧めします。

1. SMS テンプレートを **[メッセージを送信]** ブロックで、または E メールテンプレートを E メールキャンペーンで使用する準備が整ったら、テンプレートを[アクティブ化](#create-message-templates1)する手順を行います。

**WhatsApp テンプレートの場合:**

1. **WhatsApp の詳細**で、ドロップダウンからテンプレートを選択します。メッセージテンプレートの作成に使用できるのは、Meta 承認済みテンプレートのみです。続行する前に、インポートしたテンプレートが Meta Business WhatsApp Manager で承認されていることを確認します。

1. テンプレートの名前を定義し、必要に応じて説明を追加します。

1. メタデータ承認済みテンプレートを選択すると、**本文**と**テンプレートメタデータ (JSON) **形式で詳細が表示されます。

1. **属性マッピング:** Amazon Connect でパーソナライズされたメッセージ配信を有効にするには、インポートした Meta 属性をカスタムテキストにマッピングする必要があります。既存の 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/ja_jp/connect/latest/adminguide/images/message-template-version.png)

1. [**アクティブ化**] を選択します。  
![\[メッセージテンプレートページの [アクティブ化] ボタン。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/message-template-version-activate.png)

# バージョニングメッセージテンプレートについて
<a name="about-version-message-templates"></a>

テンプレートを変更するたびに、変更をテンプレートの新しいドラフトとして保存するか、テンプレートの最新の既存ドラフトへの更新として保存するかを指定できます。テンプレートを設計、開発、改良する際、これらの各バージョンはスナップショットとして機能し、テンプレートの進行状況やステータスを追跡するのに役立ちます。つまり、バージョニングを使用して、時間の経過とともに変化するテンプレートを保存、追跡、管理することができます。以下の操作を実行できます。
+ テンプレートの履歴を追跡する – テンプレートごとにバージョンのリストが提供されます。このリストには、各バージョンの名前が表示されます。リストは日時の降順でソートされ、最新バージョンが先頭にリストされます。
+ [テンプレートのバージョンを表示および比較する] – バージョンリストを使用すると、テンプレートの以前のバージョンを参照できます。リストからバージョンを選択すると、そのバージョンに保存されているコンテンツと設定が Amazon Connect に表示されます。
+ 以前のバージョンのテンプレートを復元する – テンプレートの最新バージョンで問題が見つかった場合は、問題のない以前のバージョンを復元できます。その後、以前のバージョンをテンプレートの新しいバージョンとして保存できます。その新しいバージョンが、テンプレートの最新バージョンになります。

バージョニングを使用して、メッセージで使用できるテンプレートのバージョンを制御することもできます。これには、特定のバージョンをテンプレートのアクティブなバージョンとして指定します。アクティブなバージョンは通常、組織のテンプレートの開発と管理のワークフローに応じて、メッセージでの使用が最後にレビューおよび承認されたバージョンです。

バージョンをアクティブなバージョンとして指定すると、そのバージョンをメッセージで使用できるようになります。テンプレートは時間の経過とともに変化するため、別のバージョンをアクティブなバージョンとして指定し、その指定を複数回変更することができます。

# メッセージテンプレートにパーソナライズされたコンテンツを追加する
<a name="personalize-templates"></a>

テンプレートを使用するメッセージで動的なパーソナライズされたコンテンツを配信するには、メッセージテンプレートに*メッセージ変数*を追加します。*メッセージ変数*は、管理者または Amazon Connect がユーザーに関する情報の保存用に作成した特定の属性を参照する、プレースホルダーです。各属性は通常、ユーザーの名前や住んでいる都市など、ユーザーの特性に対応します。メッセージ変数をテンプレートに追加することで、これらの属性を使用して、テンプレートを使用するメッセージの各受信者にカスタムコンテンツを配信できます。

テンプレートにメッセージ変数が含まれている場合、各変数は各受取人の現在の対応する属性値に置き換えられます。テンプレートを使用するメッセージを送信するたびに、この処理を行います。つまり、メッセージまたはメッセージテンプレートのカスタマイズされたバージョンを複数作成することなく、各受信者にパーソナライズされたコンテンツを送信できます。また確実に、メッセージに受信者に関する最新情報を含めることができます。

例えば、プロジェクトがランナー向けのフィットネスアプリケーションであり、各ユーザーの名、優先アクティビティ、個人記録の属性が含まれている場合、テンプレートで以下のテキスト変数とメッセージ変数を使用できます。

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

テンプレートを使用するメッセージを送信するときに、変数は各受取人の現在の各属性値で置き換えられます。これを以下の例に示します。

**例 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>

メッセージ属性は、テンプレートの作成時に新しいテンプレートに追加することも、既存のテンプレートに追加することもできます。既存のテンプレートに変数を追加した場合、そのテンプレートを使用する未送信のメッセージには、必ずしも変更が適用されるとは限りません。これは、変数を追加するテンプレートのバージョンと、テンプレートを使用するメッセージの設定方法によって異なります。

**メッセージ変数をメッセージテンプレートに追加するには**

1. ナビゲーションペインで、[**Message templates**] を選択します。

1. [**Message templates**] ページで、以下のいずれかを実行します。
   + 新しいテンプレートを作成してメッセージ変数を追加するには、[**Create template**] を選択します。次に、テンプレートページで、テンプレートの名前と、オプションでテンプレートの説明を入力します。
   + メッセージ変数を既存のテンプレートに追加するには、変数を追加するテンプレートを選択します。次に、テンプレートページで [**Edit**] を選択します。[**Template details**] で、バージョンセレクタを使用して、開始点として使用するテンプレートのバージョンを選択します。最新バージョンを選択した場合は、そのバージョンのテンプレートに変更を直接保存できます。それ以外の場合は、変更を新しいバージョンのテンプレートとして保存できます。

1. メッセージの詳細セクションで、メッセージ変数を追加する場所を決定します。E メールテンプレートでは、メッセージの件名または本文に変数を追加できます。SMS テンプレートでは、本文に変数を追加できます。

1. メッセージ内の属性を含める場所にカーソルを置きます。**[属性ファインダー]** をクリックまたはタップし、メッセージ変数を追加する属性のタイプまでスクロールします。  
![\[メッセージテンプレートページの属性ファインダー。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/message-template-attribute-finder.png)

   次のタイプの属性から選択できます。
   + **システム属性**
     + **CustomerEndpointAddress**: コンタクトを開始した顧客の E メールアドレス。
     + **SystemEmailAddress**: 顧客が E メールを送信した E メールアドレス。
     + **Name**: 顧客がコンタクトセンターに送信した E メール内の表示名。
   + **エージェント属性**
     + **FirstName**
     + **LastName**
   + **顧客プロファイル属性**。完全なリストと説明については、「[Customer Profiles の属性](connect-attrib-list.md#customer-profiles-attributes)」を参照してください。
     + **レコメンデーション属性**: アウトバウンドキャンペーンで Predictive Insights を使用する場合、メッセージテンプレートにパーソナライズされた製品のレコメンデーションを含めることができます。これらの属性は、イベントトリガーキャンペーンでレコメンデーションを設定するときに使用できます。

       各レコメンデーションには、最初のレコメンデーション`{{Attributes.Customer.Recommendations.[0].CatalogItem.Name}}`の場合は 、2 番目のレコメンデーション`{{Attributes.Customer.Recommendations.[1].CatalogItem.Name}}`の場合は などのインデックスを使用してアクセスします。  
![\[属性ファインダーのレコメンデーション属性と、メッセージ本文のパーソナライズされた製品のレコメンデーションを示す E メールテンプレートエディタ。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/RecommendationAttributesInTemplate.png)

       キャンペーンでのレコメンデーションの設定の詳細については、「」を参照してください[イベントトリガーを使用してアウトバウンドキャンペーンを作成する](how-to-create-campaigns-using-event-triggers.md)。

1. 属性ファインダーで属性をクリックすると、自動的にメッセージに配置されます。属性はコピーして別の場所に貼り付けることができます。

   属性を貼り付けると、`{{Attributes.Agent.FirstName}}` のように属性が 2 組の中括弧で囲まれて表示されます。次の図は、顧客の姓と名、およびエージェントの名という 3 つの属性を含む E メールメッセージを示しています。  
![\[メッセージ属性を含む E メールメッセージ。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/message-template-email-attributes.png)

1. 完了したら、次のいずれかの操作を行います。
   + 新しいテンプレートにメッセージ変数を追加した場合は、**[保存]** を選択します。
   + メッセージ変数を既存のテンプレートに追加し、変更を新しいバージョンのテンプレートとして保存する場合は、[**新しいバージョンとして保存**] を選択します。
   + メッセージ変数を既存のテンプレートに追加し、変更をテンプレートの最新のドラフトへの更新として保存する場合は、**[保存]** を選択します。ドラフトを更新し、ドラフトから新しいバージョンを作成する場合は、**[新しいバージョンとして保存]** を選択します。

# メッセージテンプレートヘルパーを使用する
<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) の「[Built-in Helpers](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}}` が返す  
+ *赤色*
+ *青色*
+ *黄色*
true 文のために。

*if*  
true であるかどうかを評価し、その評価に基づいた応答を返します。  
**使用方法**  
`{{#if value}}`  
値は未定義ではない  
`{{else}}`  
値は未定義である  
`{{/if}}`  
`if` は、ブロック文の前にポンド記号（`#`）をつけ、最後に `{{/if}}` を閉じなければなりません。  
**例**  
この例では、`if` ヘルパーを使用して、ユーザーのファーストネームがあるかどうかを評価します。名前が見つかった場合は、ユーザーのファーストネームを渡す挨拶文がレスポンスとして返されます。そうでない場合、`else` 文は、代替えの挨拶文を返します。  
`{{#if User.UserAttributes.FirstName.[0]}}`  
`Hello {{User.UserAttributes.FirstName.[0]}},`  
`{{else}}`  
*ようこそ*  
`{{/if}}`  
`if` ヘルパーが true のとき、*Hello, Jane* を返します。

## 条件付きヘルパー
<a name="conditionhelpers"></a>

このセクションでは**条件付き**ヘルパーについて説明します。

条件付きヘルパーは、1 行またはブロック文で使用できます。どのヘルパーメソッドを使用しても、レスポンスをカスタマイズすることができます。一行文とブロック文の両方で、追加の条件付きヘルパーを渡すことができます。以下の条件付きヘルパーは、まず 1 行で使用し、次にオプションの `else` 句を使用したブロック文での使用法を示しています。条件付きヘルパーは次のとおりです。
+ `and` — 渡されたすべての要素が等しいかどうか比較します。
+ `eq` — 2 つの要素が等しいかどうかをテストします。
+ `gt` — ある要素が別の要素よりも大きいかどうかをテストします。
+ `gte` — ある要素が別の要素よりも大きいかどうかまたは等しいかどうかをテストします。
+ `if` — ある事象が true かどうかを評価します。
+ `lt` — ある要素が別の要素よりも小さいかどうかをテストします。
+ `lte` — ある要素が別の要素よりも小さいかどうかまたは等しいかどうかをテストします。
+ `neq` — 2 つの要素が等しいかどうかを評価します。
+ `not` — ブール演算の応答を反転します。
+ `or` — 引数内の要素のいずれかが等しいかどうかを比較します。

*と*  
引数で渡された*すべて*の要素が等しいかどうかを比較し、その結果に基 づいて応答を返す。このヘルパーは、ブール値以外の値に対して使用することができます。条件として、少なくとも 2 つの要素を渡す必要があります。  
**使用方法**  
+ `{{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*  
2 つの要素が等しいかどうか、または、1 つの要素の値が、渡された文字列と等しいかどうかをテストします。  
**使用方法**  
+ `{{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}}`

*if*  
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*  
2 つの要素が等しく*ない*かどうかをテストします。  
**使用方法**  
+ `{{neq valuea valueb yes='y' no='n'}}`

  *y* と *n* は、条件によって、*yes* や *no* など他の値や、戻り値にしたい文字列に置き換えることができます。
+ `{{#neq valuea valueb}}`

  条件が true です。

  `{{else}}`

  条件が false です。

  `{{/neq}}`

  `neq` は、ブロック文の前にポンド記号（`#`）をつけ、最後に `{{/neq}}` を閉じなければなりません。
**例**  
このブロック文では、`User.UserAttributes.FavoriteColors.[0]` 属性が文字列 `Red` と照合されます。応答が `true` の場合は、true 文が返されます。応答が `false` の場合は、`else` 文が返されます。  
`{{#neq User.UserAttributes.Favorite.Colors.[0] "red"}}`  
*赤色が嫌いです。*  
`{{else}}`  
*赤色が好きです。*  
`{{/neq}}`

*not*  
ブール演算の応答を反転させ、`not` が正比較の場合、`true` 文を返します。応答が false の場合、else 文が返されます。  
**使用方法**  
+ `{{not value yes='y' no='n'}}`

  *y* と *n* は、条件によって、*yes* や *no* など他の値や、戻り値にしたい文字列に置き換えることができます。
+ `{{#not value}}`

  条件が true です。

  `{{else}}`

  条件が false です。

  `{{/not}}`

  `not` は、ブロック文の前にポンド記号（`#`）をつけ、最後に `{{/not}}` を閉じなければなりません。
**例**  
このブロック文では、`User.UerAttributes.FavoriteColors.[0]` 属性と文字列の*赤色*を `eq` ヘルパーで照合しています。`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* など他の値や、戻り値にしたい文字列に置き換えることができます。条件として、少なくとも 2 つの要素を渡す必要があります。
+ `{{#or valuea valueb}}`

  条件が true です。

  `{{else}}`

  条件が false です。

  `{{/or}}`

  `or` は、ブロック文の前にポンド記号（`#`）をつけ、最後に `{{/or}}` を閉じなければなりません。
**例**  
加えて、この `or` ブロック文では、`Location.City` 属性の 2 つの文字列を `eq` ヘルパーを使って比較します。いずれかの属性が `true` の場合、true 文が返されます。1 つ以上の回答が `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桁に切り捨てます。応答には省略記号が含まれ、そのドットには 6 文字の合計にカウントされます。  
`{{abbreviate User.UserAttributes.LastName.[0] 6}}` が返す  
*Ale...**Alejandro* が `[0]` の値の場合。

*大文字にする*  
空白の間にある各単語を大文字にします。  
**使用方法**  
 `{{capitalize value}}`  
**例**  
この例では、`Attributes.description.[0]` エントリーの各単語の先頭文字を大文字にします。  
`{{capitalize Attributes.description.[0]}}`  
`Attributes.description.[0]` が返す場合   
 *My First Post*、`Attributes.description.[0]`の値が *my first post* の場合。

*capitalizeFirst*  
値の先頭の文字を大文字にします。  
**使用方法**  
`{{capitalizeFirst value}}`  
**例**  
この例では、`Attributes.description.[0]` エントリーの最初の単語の先頭の文字を大文字にします。  
`{{capitalizeFirst Attributes.description.[0]}}` が返す  
 *My First Post*、`Attributes.description.[0]`の値が *my first post* の場合。  
**例**

*center*  
指定された幅のフィールドの値を、指定された数だけ中央揃えします。オプションで、パディングに表示する文字を渡すか、フィールドを空白にすることができます。文字が渡されない場合、空白が使用されます。  
**使用方法**  
 `{{center value size=X [pad=" "}}`で、*X* を数値で置き換えます。  
`pad` を空白にした場合、空白がレスポンスのパディングとして使用されます。文字を渡すと、その文字がパディングの各空間に表示されます。負の数は対応していません。  
**例**  
この例では、`Location.City ` をサイズ *19* で中央揃えします。  
`{{center Location.City size=19}}` が返す   
*「    Los Angeles    」*、`Location.City` が *Los Angeles* の場合。出力例で表示される引用符は強調のためにのみ提供されます。

*切り取る*  
指定された値を文字列から削除します。  
**使用方法**  
 `{{cut value [" "]}}`で、引用符パラメータ内のスペースを切り取る値で置き換えます。パラメータ値が渡されない場合は、空白が使用されます。  
**例**  
この例では、`Location.City` 属性から文字 *e* を削除します。  
`{{cut Location.City "e"}}` が返す  
*Los Angls*、`[Location.City` が *Los Angeles* の場合。

*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 count singular plural [includeCount=false]}}`  
+ 引数に渡す文字列の単数形および複数形を入力します。
+ `includeCount` を `false` に設定した場合、応答ではカウントを返しません。`true`に 設定すると、`count` が応答に含まれます。
**例**  
次の例では、リンゴを購入する際の編曲を、`includeCount` 有るか無いかで表示します。  
`Thank you for your purchase of {{inflect 3 apple apples includeCount=false}}.` を返す。  
*りんごをご購入いただきありがとうございました。*  
`includeCount` が `true` に設定されている場合、応答は  
*りんごを ３ つご購入いただきありがとうございました。*

*結合*  
配列、イテレーター、または反復可能なオブジェクトを結合します。応答はリストを返し、リストの各値は `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}}` が返す  
*「Los Angeles    」*、`Location.City` の値が *Los Angeles* の場合。出力例に表示される引用符は、強調のためにのみ提供されます。

*lower*  
値を小文字に変換します。  
**使用方法**  
`{{lower value}}`  
**例**  
この例では、`User.UserAttributes.LastName.[0]` の `[0]` エントリーを小文字に変更します。  
`{{lower User.UserAttributes.LastName.[0]}}` が返す  
*santos*、*Santos* が `[0]` の値の場合。

*now*  
渡されたタイムゾーン 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` を使用します。  
**例**  
この例では、Los Angeles の現在の日付を `medium` の形式で返します。  
`{{now "medium" tz=America/Los_Angeles}}` が返す   
*Sept 19, 2020*。

*順序付け*  
引数に渡される数値を順序付けします。例えば、*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 " " "_"}}` が返す  
*Los\$1Angeles*、 `Location.City ` が *Los Angeles* の場合。

*rjust*  
値を右余白に揃え、値の長さが数値と一致するように、左に余白を追加します。負の数は対応していません。  
オプションで `pad` に表示する文字を渡すか、フィールドを空白にできます。`pad` の値を空白にした場合、デフォルト値は空白になります。  
**使用方法**  
`{{rjust value size=X [pad=" "]}}`、*X* は空白を含む値の全長です。  
**例**  
この例では、`Location.City` 属性を *15* で右揃えします。  
`{{rjust Location.City size=15}}` が返す  
*「Los Angeles」*、`Location.City` が *Los Angeles* の場合。出力に表示される引用文は、強調のためにのみ提供されます。

*slugify*  
渡された値を小文字に変換し、単語以外の文字 (英数字とアンダースコア) を削除し、空白をハイフンに変換し、先頭または末尾の空白を削除します。  
**使用方法**  
`{{slugify value}}`  
**例**  
この例では、`Location.City` 属性に対して slugify を実行します。  
`{{slugify Location.City}}` が返す  
*los\$1angeles*、 `Location.City` が *Los Angeles* の場合。

*stripTags*  
値から [X] HTML タグを除去します。  
**使用方法**  
 `{{stripTags value}}`  
**例**  
この例では、user.userAttributes.interest.[0] の HTML タグを削除します。  
`{{stripTags User.UserAttributes.interests.[0]}}` が返す  
*Art*、`User.UserAttributes.interests.[0]` が `<h1>Art</h1>` の場合。

*substring*  
新しい文字列を、渡された値の部分文字列として返します。長さと位置は整数値の `startOffset` と `endOffset` のパラメータで決定します。負の数は対応していません。`endOffset` が渡されない場合、部分文字列は元の文字列の最後の文字を使用します。  
**使用方法**  
`{{substring value startOffset [endOffset]}}`  
**例**  
この例では、Location.City 属性にオフセットを 4、EndOFFset を 9 に設定します。  
`{{substring Location.City 4 9}} ` が返す  
`Angel`、Los Angeles が `Location.City` の値 である「*Los Angeles*」の場合。

*UPPER*  
渡された値を大文字に変換します。  
**使用方法**  
`{{upper value}}`  
**例**  
この例では、`User.UserAttributes.LastName` 属性の `[0] ` のエントリをすべて大文字に変換します。  
`{{upper User.UserAttributes.LastName.[0]}}` が返す  
*ROE*、`User.UserAttributes.LastName.[0]` 値が *Roe* の場合。

*yesno*  
`true`、`false`、および `NULL` を `Yes`、`No`、および`Maybe` と置き換えます。  
**使用方法**  
`{{yesno value [yes="yes"] [no="no"] maybe=["maybe"]}}`  
**例**  
この例では、`IsUserSubscribed` 属性が、あるユーザーが特定のリストに登録されているかどうかを返します。  
`{{yesno Attributes.IsUserSubscribed}}` が返す   
*yes*、`Attributes.IsUserSubscribed` が *true* の場合。

## 数学およびエンコーディングのヘルパー
<a name="mathhelpers"></a>

このセクションでは**数学およびエンコーディング**のヘルパーについて説明します。
+ `add` — 2 つの数の加算結果を返します。
+ `ceiling` — 最も近い整数に切り上げます。
+ `decode64` – base64 でエンコードされた値を文字列にデコードします。
+ `divide` — 2 つの数の除算結果を返します。
+ `encode64` — base64 を使用して文字列をエンコードします。
+ `floor` — 最も近い整数に切り下げます。
+ `md5` — MD5 アルゴリズムを使用して、渡された文字列をハッシュ化します。
+ `modulo` — 浮動小数点を使用して 2 つの数値の余りを返します。
+ `multiply` — 2 つの数の乗算結果を返します。
+ `round` — 10 進数を四捨五入して、最も近い整数にします。
+ `sha256` — SHA-256 を使用して、渡された文字列をハッシュ化します。
+ `sha512` — SHA-512 を使用して、渡された文字列をハッシュ化します。
+ `subtract` — 2 つの数値の減算結果を返します。
+ `uuid` — 128 ビット形式の UUID をランダムで生成します。

*追加*  
浮動小数点数とともに 2 つの数値の加算結果を返します。  
**使用方法**  
`{{add arg1 arg2}}`  
**例**  
`{{add 5 2.3}} ` が返す  
*7.3*

*ceiling*  
渡された整数値を最も近い整数に切り上げます。  
**使用方法**  
`{{ceiling value}}`  
**例**  
`{{ceiling 5.23}}` が返す  
*6*

*decode64*  
base64 でエンコードされた値を文字列にデコードします。  
**使用方法**  
`{{decode64 "string"}}`  
**例**  
`{{decode64 "SGVsbG8gd29ybGQ="}}` が返す  
*Hello World*

*除算*  
浮動小数点を含む 2 つの数値の除算結果を返します。  
**使用方法**  
 `{{divide arg1 arg2}}`  
**例**  
`{{divide 5 2.3}}` が返す  
*2.17391304*

*encode64*  
base64 を使用して、引数で渡された文字列をエンコードします。  
**使用方法**  
`{{encode64 "string"}}`  
**例**  
`{{encode64 "Hello World"}}`  
*sgvsbg8gd29ybgq=*

*floor*  
渡された整数値を最も近い整数に切り下げます。  
**使用方法**  
`{{floor value}}`  
**例**  
`{{floor 5.23}}` が返す  
*5*

*md5*  
MD5 アルゴリズムを使用して、渡された文字列をハッシュ化します。  
**使用方法**  
`{{md5 "string"}}`  
**例**  
`{{md5 "Hello World"}}`  
*3e25960a79dbc69b674cd4ec67a72c62*

*モジュロ*  
浮動小数点を使用して 2 つの数値の余りを返します。  
**使用方法**  
`{{modulo arg1 arg2}}`  
**例**  
`{{modulo 7 2}}` が返す  
*1*

*multiply*  
浮動小数点数とともに 2 つの数値の乗算結果を返します。  
**使用方法**  
`{{multiply arg1 arg2}}`  
**例**  
`{{multiply 5 2.3}}` が返す  
*11.5*

*round*  
小数点以下を四捨五入して、最も近い整数にします。  
**使用方法**  
`{{round value}}`  
**例**  
`You spent an average of {{round 19.21}} minutes on our website each day.` を返す。  
*毎日平均 19 分をウェブサイトを閲覧しています。*

*sha256*  
SHA-512 暗号化セキュリティを使用して、渡された文字列をハッシュ化します。  
**使用方法**  
`{{sha256 "string"}}`  
**例**  
`{{sha256 "Hello World"}}` が返す  
*a591a6d40bf420404a011733cfb7b190d62c65bf0bda32b57b277d9ad9d9f146e*

*sha512*  
SHA-512 暗号化セキュリティを使用して、渡された文字列をハッシュ化します。  
**使用方法**  
`{{sha512 "string"}}`  
**例**  
`{{sha512 "Hello World"}}` が返す  
*2c74fd17edafd80e8447b0d467b0d461e243b7eb74d2149a0ab1b74d2149a0ab1b9246f30382f27e857e85719ee67cbda0da8f51671064615d6d6b459b*

*減算*  
浮動小数点数とともに 2 つの数値の減算結果を返します。  
**使用方法**  
`{{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)」の「[Inline partials](https://handlebarsjs.com/guide/partials.html#inline-partials)」を参照してください。

**使用方法**

`{{#* 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 の場合、ユーザーの名前と名字を返します。例: *Hello Jane Doe*。それ以外の場合、苗字が見つからなければ、*Hello Jane* が返されます。

ここに記載されている機能の他にも、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>

 複数のメッセージテンプレートヘルパーを互いにネストすることができます。次に、2 つの `{{ first helper (second helper)}}` ヘルパーをフォーマットする例を示します。2 番目のヘルパーが最初に処理され、その後に 1 番目のヘルパーが処理されます。最初のヘルパーが常に出力を決定することを留意してください。後続のヘルパーは、`{{ first helper (second helper (third helper) )}}` のように、最初のヘルパー内にネストする必要があります。

次の例 `{{capitalizeFirst (lower "JANE")}}` は、**JANE** を **Jane** に変更するために 2 つのヘルパーをネストさせる方法を示しています。`lower` はまず **JANE** を **jane** に変換します。その後、`capitalizeFirst` は **jane** を **Jane** に変換します。

# セキュリティプロファイルは、E メールスレッドを表示するためのエージェント認可には影響しません
<a name="email-security-profiles1"></a>

セキュリティプロファイルに次のアクセス許可を持つユーザーは、自分が処理する E メール、または自分が参加者であるスレッドの一部である E メールを読み取ることができます。**[コンタクトコントロールパネル (CCP)]** - **[コンタクトコントロールパネルにアクセス]** - **[アクセス]**。

![\[[セキュリティプロファイル] ページの [コンタクトコントロールパネルにアクセス] オプション。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/access-ccp-perm.png)


認可動作はデフォルトで有効になっています。追加のアクセス許可や設定のセットアップは必要はありません。

この動作は、次のコンテキストキーによって駆動されます。

1. `connect:UserArn`: 個々のコンタクトにアクセスできるユーザーを表します。

1. `connect:ContactAssociationId`: ユーザーがアクセスできるコンタクトの関連付けを表します。E メールチャネルの場合、コンタクトの関連付けは常に E メールスレッドを表します。

1. `connect:Channel`: ユーザーがアクセスできるコンタクトチャネルを表します。E メールチャネルの場合、この contextKey は常に `EMAIL` です。

no-op (ノーオペレーション) になる可能性があるため、`connect:UserArn` と同じポリシーで `connect:ContactAssociationId` を使用することはお勧めしません。`connect:UserArn` 条件キーはより制限が多いため、対応するユーザーに処理されないすべてのコンタクトへのアクセスを拒否 (`Deny`) します。そのユーザーが E メールスレッドにアクセスできるかには関係ありません。

`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) 