

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exemples de mappages de types d’objets dans Profils des clients Amazon Connect
<a name="examples-object-type-mappings"></a>

## Un mappage de type d’objet qui génère un profil
<a name="profile-generating-example"></a>

L’exemple suivant montre les données qui renseignent le profil standard.

Voici l’objet entrant :

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

Le code suivant montre que l’objet entrant est mappé dans un objet de profil standard et indexe `PersonalEmailAddress`, `fullName` et `accountId`, qui est une clé unique.

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

Notez que `email` et `fullname` sont indexés, mais ils ne sont pas utilisés pour rechercher le profil. Le compte est la clé unique. Il est nécessaire de spécifier l’objet. Chaque fois qu’un objet avec le même ID de compte est ingéré, il remplace l’objet précédent avec le même ID de compte.

Plusieurs champs sont renseignés dans l’objet de profil standard (consultez les champs avec une `Target` définie).

## Un mappage de type d’objet qui ne renseigne pas le profil standard
<a name="ticket-issue-example"></a>

Cet exemple montre un cas d’utilisation plus complexe. Il ingère les données relatives à un profil mais ne renseigne pas nécessairement l’objet de profil standard.

Voici l’objet entrant :

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

Voici un moyen de mapper ces données :

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

Cet exemple ingère les données et, lors de la première recherche, il ingère l’adresse e-mail. 
+ Si l’adresse e-mail correspond à un seul profil, elle est utilisée pour joindre les données à ce profil spécifique. L’identifiant unique du ticket est composé de l’adresse e-mail et de l’horodatage puisqu’il n’existe aucun autre identifiant unique.
+ Si aucun profil n’existe avec l’adresse e-mail spécifiée, un nouveau profil est créé avec le seul champ `EmailAddress` renseigné. L’objet ingéré est attaché à ce nouveau **profil déduit**. Les deux clés consultables permettant de trouver le profil sont `_email` et `uniqueTicket`.
+ Si plusieurs profils existent avec l’adresse e-mail spécifiée, un nouveau profil est créé avec le seul champ `EmailAddress` renseigné et l’objet est attaché à ce nouveau profil. Ce profil est créé avec la clé `ticketEmail` définie, en plus de `_email` et `uniqueTicket`. Tous les tickets suivants provenant de cette adresse e-mail sont affectés à ce nouveau **profil déduit**. La raison en est que la clé ` _email` fait référence à trois profils et est donc supprimée, mais la clé `ticketEmail` ne fait référence qu’à un seul profil (le nouveau profil déduit) et est toujours valide.
+ Dans les cas où un nouveau **profil déduit** est créé, le champ `EmailAddress` est renseigné à partir du premier objet qui l’a créé.