Amazon Connect Customer Profiles의 객체 유형 매핑 예제
프로필을 생성하는 객체 유형 매핑
다음 예제는 표준 프로필을 채우는 데이터를 보여 줍니다.
수신 객체는 다음과 같습니다.
{ "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이 정의된 필드 참조).
표준 프로필을 채우지 않는 객체 유형 매핑
이 예에서는 좀 더 복잡한 사용 사례를 보여 줍니다. 프로필과 관련된 데이터를 수집하지만 반드시 표준 프로필 객체를 채우지는 않습니다.
수신 객체는 다음과 같습니다.
{ "email": "john@examplecorp.com", "timestamp": "2010-01-01T12:34:56Z", "subject": "Whatever this is about", "body": "Body of ticket" }
다음은 이 데이터를 매핑하는 한 가지 방법입니다.
{ "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"] } ] } }
이 예제에서는 데이터를 수집한 다음 처음 조회할 때 이메일 주소를 수집합니다.
-
이메일 주소가 단일 프로필과 매칭되면 해당 특정 프로필에 데이터를 연결하는 데 사용됩니다. 다른 고유 식별자가 없으므로 티켓의 고유 식별자는 이메일과 타임스탬프로 구성됩니다.
-
지정된 이메일에 프로필이 없는 경우
EmailAddress필드 하나가 채워진 새 프로필이 생성됩니다. 수집된 객체는 이 새로운 추론된 프로필에 연결됩니다. 프로필을 찾을 수 있는 두 개의 검색 가능한 키는_email및uniqueTicket입니다. -
지정된 이메일 주소를 가진 프로필이 두 개 이상 있는 경우
EmailAddress필드 하나가 채워진 새 프로필이 생성되고 객체가 이 새 프로필에 연결됩니다. 이 프로필은_email및uniqueTicket외에 정의된ticketEmail키를 사용하여 생성됩니다. 해당 이메일의 모든 후속 티켓은 이 새로운 추론된 프로필에 할당됩니다. 그 이유는_email키가 세 개의 프로필을 참조하므로 삭제되지만ticketEmail키는 단일 프로필(새로 추론된 프로필)만 참조하고 여전히 유효하기 때문입니다. -
추론된 프로필이 새로 생성되는 경우 해당 프로필을 생성한 첫 번째 객체부터
EmailAddress필드가 채워집니다.