

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

# Amazon Connect Customer Profiles に定期的な更新を提供するために Shopify の統合を設定する
<a name="integrate-customer-profiles-shopify"></a>

Amazon Connect Customer Profiles を定期的に更新するために、Amazon AppIntegrations を使用して Shopify と統合できます。最初に Amazon Connect と Shopify で接続を設定してから、Shopify の統合を確認します。

## Amazon Connect と Shopify で接続を設定する
<a name="setup-connection-shopify"></a>

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. ナビゲーションペインで、[**お客様プロファイル**] を選択します。

1. **[お客様プロファイルの設定]** ページで **[統合の追加]** を選択します。  
![\[[顧客プロフィール設定] ページ、[統合を追加] ボタン。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/customer-profiles-enable-addintegration.png)

1. **[Select source]** (ソースの選択) ページで、**[Shopify]** を選択します。**[アプリケーションの選択]** ページに記載されているアプリケーションの要件を確認します。  
![\[[ソースの選択] ページ。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/customer-profiles-cp-shopify-source.png)

1. **[接続の確立]** ページで、以下のいずれかを選択します。
   + **既存の接続**を使用する: これにより、 で作成した既存の Amazon EventBridge リソースを再利用できます AWS アカウント。
   + **新しい接続を作成**: 外部アプリケーションで必要な情報を入力します。  
![\[[接続の確立] ページ。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/customer-profiles-enable-shopify-establish-connection.png)
     + **接続名**: 接続の名前を指定します。接続名は、この接続を使用する統合によって参照されます。
     + **接続 URL**: アプリケーション接続 URL を入力します。この URL は、外部アプリケーションで作成されたタスクへのディープリンクに使用されます。接続 URL は、アプリケーションウェブサイトで使用できる Shopify パートナーアプリの URL です。

       Shopify パートナーアプリの URL を見つけるには:
       + partners.shopify.com アカウントにログインします。
       + アプリに移動します。
       + ブラウザから URL をコピーします。
     + **クライアント ID**: アプリケーションクライアント ID を入力します。これは、外部アプリケーションでクライアントを一意に区別する文字列です。このクライアント ID は、アプリケーションウェブサイトで使用できるソース名です。ここで指定した ID を使用して、Customer Profiles でオブジェクトを取り込むクライアントを特定します。クライアント ID は、ソースの設定ステップを実行した後に利用可能になる場合があります。

       ソース名を見つけるには:
       + partners.shopify.com アカウントにログインします。
       + アプリに移動します。
       + Amazon EventBridge イベントソースからソース名をコピーします。

1. **ソース設定**ページで、 AWS アカウント ID をクリップボードにコピーし、「Log **in to Shopify**」を選択します。

1. 次のステップに従って、Shopify を設定します。

   1. partners.shopify.com にログインします。

   1. Amazon EventBridge で、**[Create source]** (ソースの作成) を選択します。

   1.  AWS アカウント ID を貼り付け、 AWS リージョンを選択します。

   1. イベントソースの送信先を設定したら、Customer Profiles に戻ります。Amazon Connect が Shopify に正常に接続されたことを示すアラートが表示されます。

1. [**Integration options**] (統合オプション) ページで、取り込むソースオブジェクトを選択し、そのオブジェクトタイプを選択します。

   オブジェクトタイプには、取り込まれたデータが保存されます。また、統合からオブジェクトが取り込まれたときにプロファイルにマッピングされる方法も定義します。Customer Profiles には、ソースオブジェクトの属性が Customer Profiles の標準オブジェクトにどのようにマッピングされるかを定義できる、デフォルトのオブジェクトタイプテンプレートが用意されています。また、[PutProfileObjectType](https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_PutProfileObjectType.html) から作成したオブジェクトマッピングを使用することもできます。  
![\[[統合オプション] ページ。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/customer-profiles-integration-options-shopify.png)

1. [**Ingestion start date**] (取り込み開始日) の場合、Customer Profiles は統合が追加された日付以降に作成されたレコードの取り込みを開始します。
**注記**  
履歴レコードが必要な場合は、[インポートする統合ソースとして Amazon S3 を使用](customer-profiles-object-type-mappings.md)することができます。

1. **[Review and integrate]** (確認と統合) ページで、**[Connection status]** (接続ステータス) が **[Connected]** (接続済み) であることを確認してから、**[Add integration]** (統合の追加) を選択します。
**注記**  
 この統合を追加したら、次の作業を行う必要があります。[Webhook サブスクリプションを設定](#shopify-webhook-subscriptions)して、イベントがこの統合に流入し始めることを許可します。  
![\[[確認と統合] ページ。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/customer-profiles-enable-shopify-webhook.png)

1. 統合が設定されたら、**[顧客プロファイル設定]** ページに戻ります。**[統合]** セクションに、現在設定されている統合が表示されます。**[Last run]** (最後の実行) および **[Integration health]** (統合ヘルス) は、このタイプの統合では現在使用できません。  
![\[[統合] セクション。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/customer-profiles-enable-shopify-integrations-view-card.png)

   送信されているデータを確認するには、統合を選択してから、**[View objects]** (オブジェクトの表示) を選択します。

1. 次のステップに進み、API を使用して、**[webhook subscriptions]** (Webhook のサブスクリプション) を設定します。これで、イベントがこの統合に流入し始めることができます。

## Webhook サブスクリプションを設定する
<a name="shopify-webhook-subscriptions"></a>

1. 次の URL を使用して、アプリに必要な許可があることを確認します。

   ```
   https://{shop}.myshopify.com/admin/oauth/authorize?client_id={api_key}&scope={scopes}&redirect_uri={redirect_uri}&state={nonce}
   ```

   コードの説明は以下のとおりです。
   + `shop` は、Shopify ストアの名前です。
   + `api_key` は、Shopify アプリの API キーです。これは、Shopify **[App]** 詳細ページ にあります。
   + `scopes` は、値 `read_customers,read_orders,read_draft_orders` が必要です。
   + `redirect_uri` は、アプリの作成時に指定したリダイレクト URI です。私たちの目的では、任意の有効な URL にすることができます。
   + `nonce` は、他の要求からの特定の承認要求を識別するために、任意の一意の値を指定できます。タイムスタンプを使用することをお勧めします。

   URL を作成したら、ブラウザに貼り付けます。次のイメージのようなインストール/承認ページが表示され、ストア所有者に定義済みのスコープに対する許可を付与するよう求められます。  
![\[アプリをインストールして承認するための Shopify ページの例。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/customer-profiles-enable-shopify-webhook-embedded-app.png)

1. **[リストされていないアプリをインストール]** を選択し、ストアに代わってアプリをインストールして承認します。

   クエリパラメータとしてリダイレクト URI に認可コードを追加して入力したリダイレクト URI に移動します。例: 

   ```
   https://example.org/some/redirect/uri?code={authorization_code}&hmac=da9d83c171400a41f8db91a950508985&host={base64_encoded_hostname}&timestamp=1409617544&state={nonce}&shop={shop_origin}&host={host}
   ```

1. この URI から `authorization_code` をコピーします。次のステップで永続的なアクセストークンを取得するために使用します。

1. API コールを行うために使用するツールに移動します。例えば、[CURL](https://curl.se/) または [POSTMAN](https://www.postman.com/) です。

1. 永続的なアクセストークンを取得するには、このエンドポイントへの Shopify `Admin` API リクエストを作成します。

   ```
   https://{shop}.myshopify.com/admin/oauth/access_token
   ```

   以下のリクエストボディを使用します。

   ```
   {
       "code": "authorization_code_received_from_redirect_uri",
       "client_id": "your_app_api_key",
       "client_secret": "your_app_api_secret"
   }
   ```

   このリクエストは次のレスポンスを返します。

   ```
   {
       "access_token": "permanent_access_token",
       "scope": "read_customers,read_orders,read_draft_orders"
   }
   ```

1. `access_token` を書き留めます。これは、前のステップで指定したスコープを持つ永続的なトークンです。これで、Webhook サブスクリプションを作成する準備ができました。

1. 次の API コールでは、必ず HTTP ヘッダーキー `X-Shopify-Access-Token` を、以前の通話の応答から受信した `access_token` に設定します。

1. Webhook サブスクリプションを設定するには、次の手順にリストされている `topic` 値ごとに、次の POST リクエストを実行します。

   エンドポイント: `https://{shop}.myshopify.com/admin/api/2021-04/webhooks.json`

   リクエスト本文:

   ```
   {
       "webhook": {
           "topic": "replace_this_with_one_of_the_topics_in_the_list_below",
           "address": "this_is_the_event_source_arn_generated_when_you_created_the_event_integration",
           "format": "json"
       }
   }
   ```

1. サブスクリプションごとに、`topic` の値を、以下の値に置き換えます。
   + `customers/create`
   + `customers/enable`
   + `customers/update`
   + `draft_orders/create`
   + `draft_orders/update`
   + `orders/cancelled`
   + `orders/create`
   + `orders/fulfilled`
   + `orders/paid`
   + `orders/partially_fulfilled`
   + `orders/updated`

これで、Shopify ストアからイベントを受信する設定が完了しました。次に、Shopify 統合を検証します。

## Shopify 統合を検証します。
<a name="verify-customer-profile-shopify-connection"></a>

1. Shopify ストアに管理者としてサインインします。

1. 左のナビゲーションメニューの **[Customers]** (顧客) を選択します。

1. **[Add Customer]** (顧客の追加) を選択します。

1. 顧客の詳細を入力します。電話番号と E メールアドレスを必ず入力してください。これらは実際の顧客に属している必要はありません。このカスタマーエントリは、統合の検証後に削除されます。

1. 顧客オブジェクトを保存します。

1. イベントの配信はほぼ瞬時に行う必要がありますが、配信して顧客プロファイルを作成するには 1 分ほどかかります。

1. Amazon Connect エージェントエクスペリエンスを開き、Shopify ストアに入力した E メールまたは電話番号でユーザーを検索します。同じ E メールまたは電話番号で顧客プロフィールを表示できます。

1. 顧客プロファイルが表示されない場合は、統合に問題があります。トラブルシューティング：

   1. Amazon EventBridge コンソールに移動します。

   1. EventSource がアクティブで、一致する EventBus が存在し、実行されているかどうかを確認します。

    これらが機能している場合は、問題の調査 サポート について にお問い合わせください。

## Customer Profiles 統合をモニタリングする
<a name="monitor-customer-profile-connection-shopify"></a>

接続が確立されてから動作しなくなったら、統合を削除してから再確立します。

## オブジェクトが送信されていない場合の対処方法
<a name="fix-customer-profile-connection-shopify"></a>

オブジェクトの送信に失敗した場合には、[**フローの詳細**] をクリックして不具合の詳細を表示します。

設定を削除して、外部アプリケーションに再接続する必要がある場合があります。