Exemplos de mapeamentos de tipos de objetos - Amazon Connect

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplos de mapeamentos de tipos de objetos

Um mapeamento de tipo de objeto que gera um perfil

O exemplo a seguir mostra dados que preenchem o perfil padrão.

Este é o objeto de entrada:

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

O código a seguir mostra o mapeamento de objetos de entrada em um objeto de perfil padrão e a indexação PersonalEmailAddress, fullName e accountId, que é uma chave exclusiva.

{ "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"] } ] } }

Observe que email e fullname estão indexados, mas não são usados para pesquisar o perfil. A conta é a chave exclusiva. É necessário especificar o objeto. Sempre que um objeto com o mesmo ID de conta é ingerido, ele substitui o objeto anterior pelo mesmo ID de conta.

Vários campos são preenchidos no objeto de perfil padrão (veja os campos que têm Target definido).

Um mapeamento de tipo de objeto que não preenche o perfil padrão

Este exemplo mostra um caso de uso mais complicado. Ele ingere dados relacionados a um perfil, mas não necessariamente preenche o objeto de perfil padrão.

Este é o objeto de entrada:

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

Veja a seguir uma forma de mapear esses dados:

{ "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"] } ] } }

Esse exemplo ingere os dados e, na primeira consulta, ingere o endereço de e-mail.

  • Se o endereço de e-mail corresponder a um único perfil, ele será usado para anexar os dados a esse perfil específico. O identificador exclusivo do tíquete é composto pelo e-mail e pelo carimbo de data/hora, já que não existe outro identificador exclusivo.

  • Se não existir nenhum perfil com o e-mail especificado, um novo perfil será criado com o único campo EmailAddress preenchido. O objeto ingerido é anexado a esse novo perfil inferido. As duas teclas pesquisáveis que podem encontrar o perfil são _email e uniqueTicket.

  • Se mais de um perfil existir com o endereço de e-mail especificado, um novo perfil será criado com o único campo de EmailAddress preenchido e o objeto anexado a esse novo perfil. Esse perfil é criado com a chave ticketEmail definida, além de _email e uniqueTicket. Todos os tíquetes subsequentes desse e-mail são atribuídos a esse novo perfil inferido. A razão disso é que a chave _email se refere a três perfis e, portanto, é descartada; no entanto, a chave ticketEmail se refere apenas a um único perfil (o novo inferido) e ainda é válida.

  • Nos casos em que um novo perfil inferido é criado, o EmailAddress campo é preenchido a partir do primeiro objeto que o criou.