

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

# Amazon Connect Customer Profiles のオブジェクトタイプマッピングの例
<a name="examples-object-type-mappings"></a>

## プロファイルを生成するオブジェクトタイプマッピング
<a name="profile-generating-example"></a>

次の例は、標準プロファイルに入力するデータを示しています。

以下は、入力オブジェクトです。

```
{
  "account": 1234,
  "email": "john@examplecorp.com",
  "address": {
     "address1": "Street",
     "zip": "Zip",
     "city": "City"
  },
  "firstName": "John",
  "lastName": "Doe"
}
```

次のコードは、入力オブジェクトの標準プロファイルオブジェクトへのマッピングと `PersonalEmailAddress`、`fullName`、および `accountId` (一意のキー) のインデックス作成を示しています。

```
{
    "Fields": {
        "accountId": {
            "Source": "_source.account",
            "Target": "_profile.AccountNumber",
            "ContentType": "NUMBER"
        },
        "shippingAddress.address1": {
            "Source": "_source.address.address1",
            "Target": "_profile.ShippingAddress.Address1"
        },
        "shippingAddress.postalCode": {
            "Source": "_source.address.zip",
            "Target": "_profile.ShippingAddress.PostalCode"
        },
        "shippingAddress.city": {
            "Source": "_source.address.city",
            "Target": "_profile.ShippingAddress.City"
        },
        "personalEmailAddress": {
            "Source": "_source.email",
            "Target": "_profile.PersonalEmailAddress",
            "ContentType": "EMAIL_ADDRESS"
        },
        "fullName": {
            "Source": "{{_source.firstName}} {{_source.lastName}}"
        },
        "firstName": {
            "Source": "_source.firstName",
            "Target": "_profile.FirstName"
        },
        "lastName": {
            "Source": "_source.lastName",
            "Target": "_profile.LastName"
        }
    },
    "Keys": {
        "_email": [
            {
                "FieldNames": ["personalEmailAddress"]
            }
        ],
        "_fullName": [
            {
                "FieldNames": ["fullName"]
            }
        ],
        "_account": [
            {
                "StandardIdentifiers": ["PROFILE","UNIQUE"],
                "FieldNames": ["accountId"]
            }
        ]
    }
}
```

なお、`email` と `fullname` はインデックス付けされますが、プロファイルの検索には使用されません。アカウントは一意のキーです。オブジェクトを指定する必要があります。同じアカウント ID を持つオブジェクトが取り込まれるたびに、同じアカウント ID の以前のオブジェクトは上書きされます。

標準プロファイルオブジェクトには、複数のフィールドが入力されます (`Target` を定義したフィールドを参照してください)。

## 標準プロファイルに入力されないオブジェクトタイプマッピング
<a name="ticket-issue-example"></a>

この例は、より複雑なユースケースを示しています。プロファイルに関連するデータを取り込みますが、必ずしも標準プロファイルオブジェクトに入力されるとは限りません。

以下は、入力オブジェクトです。

```
{
  "email": "john@examplecorp.com",
  "timestamp": "2010-01-01T12:34:56Z",
  "subject": "Whatever this is about",
  "body": "Body of ticket"
}
```

次に、このデータをマッピングする方法の 1 つを示します。

```
{
    "Fields": {
        "email": {
            "Source": "_source.email",
            "ContentType": "EMAIL_ADDRESS"
        },
        "timestamp": {
            "Source": "_source.timestamp"
        }
    },
    "Keys": {
        "_email": [
            {
                "StandardIdentifiers": ["PROFILE","LOOKUP_ONLY"],
                "FieldNames": ["email"]
            }
        ],
        "ticketEmail": [
            {
                "StandardIdentifiers": ["PROFILE","SECONDARY","NEW_ONLY"],
                "FieldNames": ["email"]
            }
        ],
        "uniqueTicket": [
            {
                "StandardIdentifiers": ["UNIQUE"],
                "FieldNames": ["email","timestamp"]
            }
        ]
    }
}
```

この例では、データを取り込み、最初の検索時に E メールアドレスを取り込みます。
+ E メールアドレスが単一のプロファイルに一致する場合、その E メールアドレスはその特定のプロファイルにデータをアタッチするために使用されます。チケットの一意の識別子は、E メールとタイムスタンプで構成されます。これは、他の一意の識別子は存在しないためです。
+ 指定された E メールでプロファイルが存在しない場合、`EmailAddress` のフィールドだけが設定されている新しいプロファイルが作成されます。取り込まれたオブジェクトは、この新しい**推定プロファイル**に添付されます。プロファイルを見つけることができる 2 つの検索可能なキーは `_email` と `uniqueTicket` です。
+ 指定された電子メールアドレスで複数のプロファイルが存在する場合、`EmailAddress` フィールドだけが設定された新しいプロファイルが作成され、オブジェクトはこの新しいプロファイルに添付されます。このプロファイルは、`_email` および `uniqueTicket` に加えて、`ticketEmail` キーが定義されて作成されます。その E メールからその後に送られるチケットは、この新しい**推定プロファイル**に割り当てられます。その理由は、` _email` キーが 3 つのプロファイルを参照しているため、破棄されますが、`ticketEmail` キーは単一のプロファイル (新しい推定プロファイル) のみを参照しているので、引き続き有効だからです。
+ 新しい**推定プロファイル**が作成された場合、`EmailAddress` フィールドには、そのプロファイルを作成した最初のオブジェクトから入力されます。