

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.

# Configuration des attributs calculés dans Profils des clients Amazon Connect
<a name="customerprofiles-calculated-attributes"></a>

Les *attributs calculés* sont des valeurs dérivées d’autres attributs à l’aide de formules. Vous pouvez les utiliser pour identifier les comportements agrégés des utilisateurs.

Vous pouvez créer des attributs calculés pour définir votre propre logique métier afin de transformer les données de votre profil client en points de données exploitables. Cela vous permet de personnaliser les expériences automatisées telles que les réponses vocales interactives.

En utilisant des attributs calculés, vous pouvez identifier les principaux attributs relatifs au comportement passé de vos clients. Par exemple : 
+ Le dernier site Web visité ou le dernier agent consulté
+ Modèles de comportement, tels que le canal préféré et la fréquence des contacts
+ Valeur client, telle que le nouveau client et le montant moyen des tickets

Vous pouvez utiliser l’API d’attributs calculés pour créer un nouvel attribut à l’aide d’opérations d’agrégation courantes telles que la moyenne, le nombre, le minimum, le maximum et la somme.

Les attributs calculés transforment automatiquement les données brutes en temps réel en points de données et en indicateurs exploitables. Les administrateurs du centre de contact sont en mesure de définir et de configurer des calculs en fonction des données brutes disponibles dans les profils des clients. Ces attributs calculés vous permettent de créer plus facilement des expériences automatisées telles que la réponse vocale interactive (IVR) ou les chatbots. Vous pouvez créer des expériences personnalisées et aider les agents à comprendre le contexte client plus rapidement.

Pour obtenir la liste des AWS régions dans lesquelles les attributs calculés APIs sont disponibles, voir[Disponibilité de l’API d’attributs calculés Profils des clients par région](regions.md#customerprofiles_calculatedattributesregion). 

**Topics**
+ [Démarrer avec les attributs calculés](customerprofiles-calculated-attributes-admin-website.md)
+ [Attributs calculés APIs](customerprofiles-calculated-attributes-apis.md)
+ [Création d’une définition d’attribut calculée personnalisée](customerprofiles-calculated-attributes-creating-definition.md)
+ [Validation des valeurs d’attributs calculés](customerprofiles-calculated-attributes-validating-values.md)
+ [Attributs calculés par défaut](customerprofiles-default-calculated-attributes.md)
+ [Résolutions et messages d’erreur](customerprofiles-calculated-attributes-troubleshooting.md)

# Commencer à utiliser les attributs calculés dans les profils Amazon Connect clients
<a name="customerprofiles-calculated-attributes-admin-website"></a>

Utilisez des attributs calculés pour définir votre propre logique métier afin de transformer vos données de profil client en points de données exploitables pour personnaliser les expériences automatisées, telles que les réponses vocales interactives.

En utilisant des attributs calculés, vous pouvez identifier les attributs clés relatifs au comportement passé de vos clients, à leurs habitudes comportementales et à leur valeur client.

Les rubriques de cette section vous montrent comment créer, afficher, modifier et supprimer des attributs calculés.

**Topics**
+ [Création d’attributs calculés](calculated-attributes-admin-website-create.md)
+ [Configuration des filtres d’événement](calculated-attributes-admin-website-event-filters.md)
+ [Affichage des attributs calculés](calculated-attributes-admin-website-view.md)
+ [Modification des attributs calculés](calculated-attributes-admin-website-edit.md)
+ [Suppression d’attributs calculés](calculated-attributes-admin-website-delete.md)

# Création d’attributs calculés dans Amazon Connect
<a name="calculated-attributes-admin-website-create"></a>

1. Conditions préalables : Assurez-vous de disposer des autorisations de profil de sécurité nécessaires. Pour de plus amples informations, veuillez consulter [Mise à jour des autorisations pour les attributs calculés dans Profils des clients Amazon Connect](security-profile-customer-profile-calc-attribs.md).

1. Sur le site Web de l' Amazon Connect administration, accédez à **Profils clients**, **Attributs calculés**, choisissez **Créer un attribut** dans la vue du tableau **des attributs calculés**.  
![\[L’onglet Profils des clients dans l’espace de travail de l’agent, le bouton Associer.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/calculated-attributes-admin-website-create-1.png)

1. Pour créer un attribut calculé, attribuez un nom descriptif, ajoutez une description (facultative) avec des détails sur l’attribut et configurez les champs obligatoires :
   + **Calcul :** définit le mode de calcul des attributs (average/count/sum/minimum/first occurrence/last occurrence/maxoccurrence).
   + **Attribut :** point de données issu de vos données de profil client.
**Note**  
Si vous sélectionnez un attribut à partir d'un type d'objet standard (`_asset``_case`,,`_order`), les attributs doivent être inclus PascalCase. Cela signifie que la première lettre de chaque mot du nom de l’attribut est en majuscule, par exemple `_case.CreatedBy` ou `_order.TotalPrice`.  
![\[L’onglet Profils des clients dans l’espace de travail de l’agent, le bouton Associer.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/calculated-attributes-admin-website-create-2.png)

1. De plus, vous pouvez ajouter un autre attribut en sélectionnant l’icône *plus*. Vous pouvez choisir jusqu’à deux attributs pour les calculer et les combiner par un opérateur. Spécifiez un opérateur tel que *plus* ou *moins* pour combiner les valeurs d’attribut.  
![\[L’onglet Profils des clients dans l’espace de travail de l’agent, le bouton Associer.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/calculated-attributes-admin-website-create-3.png)

1. Une fois le calcul sélectionné, vous pouvez éventuellement configurer le nombre d’événements, la période et l’horodatage de la source. Par défaut, les attributs calculés sont configurés pour utiliser un nombre illimité d’événements, une période illimitée et un horodatage basé sur la date d’ingestion.

   Une sortie est renvoyée lorsqu’il y aura au moins un événement pendant la période spécifiée.
   + **Nombre d’événements :** configurez la limite ou utilisez un nombre illimité (par défaut)
   + **Période :** définissez une période spécifique ou utilisez une durée illimitée (par défaut)
   + **Horodatage de la source :** choisissez entre un champ d’horodatage spécifique ou une date d’ingestion (par défaut)
**Note**  
Bien qu’il n’y ait pas de limite d’événements, il existe une limite de taille des données, les données les plus anciennes étant remplacées par les plus récentes. L’horodatage de la source ne peut pas être modifié après la création.  
![\[L’onglet Profils des clients dans l’espace de travail de l’agent, le bouton Associer.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/calculated-attributes-admin-website-create-4.png)

1. Vous avez la possibilité de définir des critères afin de n’inclure que les événements pertinents dans les calculs. Pour plus d’informations, consultez [Configuration des filtres d’événement](calculated-attributes-admin-website-event-filters.md).

1. Choisissez **Créer** pour créer l’attribut calculé.

1. Une fois qu’un attribut calculé a été créé avec succès, une bannière s’affiche dans la vue tableau pour utiliser l’attribut calculé dans un segment ou un flux. Vous pourrez également consulter le statut des attributs calculés en fonction de leur état de préparation.  
![\[Une bannière indiquant que l’attribut calculé a été créé.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/calculated-attributes-admin-website-create-5.png)

# Configuration des filtres d’événement
<a name="calculated-attributes-admin-website-event-filters"></a>

Les filtres d’événements vous permettent de filtrer les objets de profil à utiliser dans l’attribut calculé. Par exemple, un filtre d’événements peut filtrer les objets d’actifs standard du client afin que seuls les actifs dont le **Statut est installé OU enregistré** soient inclus dans le calcul.

**Note**  
Vous ne pouvez pas modifier les filtres d’événements après avoir créé une définition d’attribut calculée.

Lorsque vous créez un attribut calculé, vous pouvez créer un ou plusieurs filtres d’événement. Un filtre d’événement se compose des éléments suivants :

![\[Composants du filtre d’événements.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/calculated-attributes-admin-website-event-filters-1.png)

+  **Groupes de filtres** : groupe de filtres que vous appliquez aux objets du profil. Vous pouvez ajouter plusieurs groupes de filtres connectés par des relations OU. 
+  **Filtres** : filtre les objets de profil inclus dans le calcul de l’attribut calculé en spécifiant des attributs, des opérateurs et des valeurs. Vous pouvez ajouter autant de filtres que vous le souhaitez pour votre cas d’utilisation. 
+  **Attribut** : attribut de l’objet à filtrer. Vous pouvez sélectionner des attributs à partir d’objets stockés dans le domaine Profils des clients ou utiliser les noms de champs définis dans la définition du type d’objet. Pour plus d’informations sur les mappages de types d’objets, consultez [Détails de la définition du mappage de type d’objet dans Profils des clients Amazon Connect](object-type-mapping-definition-details.md).
**Note**  
 Sur le site Web de l' Amazon Connect administrateur, la liste déroulante des attributs indique l'horodatage de la dernière fois qu'un objet de profil a été enregistré ou mis à jour avec l'attribut. 
 S’il existe à la fois un attribut d’un objet de profil et un champ d’un type d’objet portant le même nom, le filtre d’événements donne la priorité au nom du champ du type d’objet dans son filtrage. Par exemple, si un objet de profil possède un attribut nommé **Status** et qu’il existe également un champ de type d’objet nommé **Status**, le filtre utilisera le champ de type d’objet **Status** pour le filtrage. 
+  **Opérateur** — L’opérateur détermine la relation entre l’attribut et la valeur que vous saisissez. Pour plus d'informations, voir [Opérateurs de filtre](#calculated-attributes-admin-website-event-filter-operators)
+  **Valeur** — Valeur à utiliser pour filtrer les objets. Vous pouvez spécifier plusieurs valeurs connectées par des relations OR. Par exemple, *Le statut de la ressource est installé ou enregistré*. Notez que les valeurs sont sensibles à la casse. Par exemple, *Le statut de la ressource est installé* renvoie des résultats différents de ceux de *Le statut de la ressource est installé*. Pour consulter les objets de profil, utilisez l'[ListProfileObjects](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-customer-profiles_ListProfileObjects.html)API Amazon Connect Customer Profiles.

 Vous pouvez éventuellement créer jusqu'à deux filtres d'événements et créer une relation (AND/OR/EXCLUDE) entre eux. Pour plus de détails sur la relation, voir[Relation entre les filtres d’événements](#calculated-attributes-admin-website-relationship-between-event-filters). 

 

## Opérateurs de filtre
<a name="calculated-attributes-admin-website-event-filter-operators"></a>

Les opérateurs déterminent la relation entre l’attribut et une valeur que vous entrez. Le tableau suivant présente les opérateurs disponibles.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/calculated-attributes-admin-website-event-filters.html)

**Note**  
 Les attributs calculés sur le site Web Amazon Connect d'administration utilisent le fuseau horaire UTC et l'heure par défaut de 00:00:00 UTC pour tous les filtres basés sur le temps. Vous pouvez filtrer par date, mais les heures sont enregistrées avec la même valeur. Si vous entrez la date du 01/01/2024, la console transmet l’heure au format 2024-01-01T00:00:00Z. 

**Note**  
Par défaut, les filtres d’événements sont évalués lorsqu’un objet de profil est enregistré ou mis à jour. Par exemple, si vous filtrez des objets de ressources standards dont la date `PurchaseDate` se situe dans la semaine écoulée, le temps relatif est calculé comme étant *la semaine écoulée à compter du moment où l’objet de ressource a été enregistré ou mis à jour*. Cela signifie que les résultats du filtrage peuvent varier en fonction du moment où l’objet est enregistré ou mis à jour.

## Relation entre les filtres d’événements
<a name="calculated-attributes-admin-website-relationship-between-event-filters"></a>

 Vous pouvez éventuellement ajouter le deuxième filtre d’événements et définir une relation avec le premier filtre d’événements. Lorsque vous créez un attribut calculé sur le site Web d’administration Amazon Connect , vous pouvez avoir un maximum de deux filtres d’événements par attribut calculé. Si vous ajoutez le deuxième filtre d’événement à votre attribut calculé, vous pouvez choisir l’une des deux façons de spécifier la manière dont les deux filtres d’événements sont connectés : 
+  **Relation ET** : si vous utilisez la relation ET pour connecter deux filtres d’événements, les objets répondant à la fois au premier et au deuxième filtre d’événement seront inclus dans le calcul. 
+  **Relation OU** : si vous utilisez la relation OU pour connecter deux filtres d’événements, les objets répondant au premier ou au deuxième filtre d’événement seront inclus dans le calcul. 
+  **Relation EXCLURE** : si vous utilisez la relation EXCLURE pour connecter deux filtres d’événements, les objets répondant au premier filtre d’événement mais non au second seront inclus dans le calcul. 

## Étapes suivantes
<a name="calculated-attributes-admin-website-event-filter-next-steps"></a>
+  [Utilisez votre attribut calculé dans votre centre de contact via l’éditeur Flow](https://docs.aws.amazon.com/connect/latest/adminguide/customer-profiles-block.html#customer-profiles-block-properties-get-calculated-attributes) 
+  [Utilisez votre attribut calculé pour définir un segment client](https://docs.aws.amazon.com/connect/latest/adminguide/segmentation-admin-website)
+  [Affichage des attributs calculés dans Amazon Connect](https://docs.aws.amazon.com/connect/latest/adminguide/calculated-attributes-admin-website-view.html) 
+  [Modification des attributs calculés dans Amazon Connect](https://docs.aws.amazon.com/connect/latest/adminguide/calculated-attributes-admin-website-edit.html) 
+  [Suppression d’attributs calculés dans Amazon Connect](https://docs.aws.amazon.com/connect/latest/adminguide/calculated-attributes-admin-website-delete.html) 

# Affichage des attributs calculés dans Amazon Connect
<a name="calculated-attributes-admin-website-view"></a>

1. Connectez-vous au site Web d' Amazon Connect administration à l'adresse https ://*instance name*.my.connect.aws/. Utilisez un compte d’administration ou un compte attribué à un profil de sécurité disposant de l’autorisation **Profils des clients - Attributs calculés**. 

1. Dans Amazon Connect, dans le volet de navigation de gauche, choisissez **Profils des clients**, **Attributs calculés**.

1. Sur la page **Attributs calculés**, choisissez un attribut calculé dans la colonne **Nom** du tableau. 

   L’image suivante illustre un exemple d’attributs calculés répertoriés dans la colonne **Nom**.  
![\[Tableau répertoriant les attributs calculés.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/calculated-attributes-admin-website-view-1.png)

1. Vous êtes maintenant en mesure d’afficher les détails de l’attribut que vous avez sélectionné. L’image suivante présente une page de détails pour un attribut calculé.  
![\[Vue détaillée d’un attribut calculé.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/calculated-attributes-admin-website-view-2.png)

# Modification des attributs calculés dans Amazon Connect
<a name="calculated-attributes-admin-website-edit"></a>

1. Pour modifier un attribut calculé, choisissez un attribut dans la vue de la table en sélectionnant la case d’option, qui active le bouton **Modifier**. Choisissez **Modifier**.  
![\[modifier un attribut calculé\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/calculated-attributes-admin-website-edit-1.png)

1. Vous pouvez modifier la **Description**, la **Période** et le **Nombre d’événements**. Choisissez **Save (Enregistrer)** lorsque vous avez terminé.  
![\[Modifiez un attribut calculé.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/calculated-attributes-admin-website-edit-2.png)

# Suppression d’attributs calculés dans Amazon Connect
<a name="calculated-attributes-admin-website-delete"></a>

1. Pour supprimer un attribut calculé, choisissez un attribut dans la table en sélectionnant la case d’option située à côté de l’attribut que vous souhaitez supprimer.

1. Une fois sélectionné, choisissez **Supprimer**.

1. Dans la fenêtre contextuelle **Supprimer l’attribut**, vérifiez les détails et entrez *confirmer* pour activer le bouton **Supprimer**.  
![\[Supprimez un attribut calculé.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/calculated-attributes-admin-website-delete-1.png)

1. Sélectionnez **Delete (Supprimer)**.

# Attributs calculés des profils clients Amazon Connect APIs
<a name="customerprofiles-calculated-attributes-apis"></a>

Vous pouvez utiliser l'attribut calculé des profils clients suivant APIs

------
#### [ CreateCalculatedAttributeDefinition ]

**CreateCalculatedAttributeDefinition**

Créez un nouvel attribut calculé. Cela nécessite un type d’objet existant dans le domaine. Vous pouvez définir les attributs que vous souhaitez extraire d’un seul objet source et les opérations mathématiques à leur appliquer de manière agrégée, ainsi que la plage de temps et le nombre d’objets.

Après la création, les nouvelles données d’objet ingérées dans Profils des clients seront incluses dans l’attribut calculé, qui peut être récupéré pour un profil à l’aide de l’API `GetCalculatedAttributeForProfile`. Pour utiliser également les données historiques, spécifiez `UseHistoricalData` comme étant vrai. Les champs `Readiness` et `Status` de la réponse de l’API fourniront des informations concernant le statut de l’inclusion des données historiques dans l’attribut calculé. 

La définition d’un attribut calculé le rend disponible pour tous les profils d’un domaine. Chaque attribut calculé ne peut référencer qu'un seul champ ObjectType et au plus deux à partir de celui-ci ObjectType.

**Demande**

```
POST /domains/DomainName/calculated-attributes/CalculatedAttributeName
```

```
{
    "CalculatedAttributeName": "string",
    "DisplayName": "string",
    "Description": "string",
    "AttributeDetails": {
       "Attributes": [
           {
               "Name": "string"
           }
           ...
       ],
       "Expression": "string",
    },
    "Statistic": "AVERAGE" | "COUNT" | "SUM" | "FIRST_OCCURRENCE" | "LAST_OCCURRENCE" | "MINIMUM" | "MAXIMUM" | "MAX_OCCURRENCE",
    "Conditions": {
        "Range": {
             "Value": "number",
             "Units": "string"
        },
        "ObjectCount": "number",
        "Threshold": {
            "Value": "string",
            "Operator": "EQUAL_TO" | "GREATER_THAN" | "LESS_THAN" | "NOT_EQUAL_TO"
        }
     },
     "Tags": {}
}
```

**Réponse**

```
{
    "CalculatedAttributeName": "string",
    "DisplayName": "string",
    "Description": "string",
    "AttributeDetails": {
       "Attributes": [
           {
               "Name": "string"
           }
           ...
       ],
       "Expression": "string",
    },
    "Statistic": "AVERAGE" | "COUNT" | "SUM" | "FIRST_OCCURRENCE" | "LAST_OCCURRENCE" | "MINIMUM" | "MAXIMUM" | "MAX_OCCURRENCE"
    "Conditions": {
        "Range": {
             "Value": "number",
             "Units": "string"
        },
        "ObjectCount": "number",
        "Threshold": {
            "Value": "string",
            "Operator": "EQUAL_TO" | "GREATER_THAN" | "LESS_THAN" | "NOT_EQUAL_TO"
        }
    },
    "CreatedAt": number,
    "LastUpdatedAt": number,
    "Tags": {}
}
```

**Corps de la demande**
+ **CalculatedAttributeName**

  Le nom unique (par domaine) de l’attribut calculé.
  + Type : String
  + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 64 caractères.
  + Modèle : `^[a-zA-Z0-9_-]+$`
  + Obligatoire : oui
+ **DisplayName**

  Le nom d’affichage de l’attribut calculé.
  + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 64 caractères.
  + Modèle : `^[a-zA-Z_][a-zA-Z_0-9-\s]*$`
  + Obligatoire : non
+ **Description**

  La description de l’attribut calculé.
  + Type : String
  + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 1 000 caractères.
  + Obligatoire : non
+ **UseHistoricalData**

  Si les données historiques ingérées avant la création de l’attribut calculé doivent être incluses dans les calculs.
  + Type : Boolean
  + Obligatoire : non
+ **AttributeDetails**

  Les détails des attributs utilisés dans la définition et des opérations mathématiques impliquées entre les attributs. Consultez les composants suivants :
  + **Attributs**

    Une liste des éléments d’attribut spécifiés dans l’expression mathématique.
    + **AttributeItem**

      Les détails d’un élément d’attribut unique spécifié dans l’expression mathématique.
      + Nom
        + Le nom d’un attribut défini dans un type d’objet de profil.
        + Type : String
  + **Expression**

    L’expression mathématique exécutée sur les éléments d’attribut fournis dans la liste d’attributs. Chaque élément de l'expression doit suivre la structure de \$1 "\$1ObjectTypeName. AttributeName\$1 \$1 ».
    + Exemple : `{ObjA.AttributeA} - {ObjA.AttributeB}`
    + Type : String
    + Nous prenons uniquement en charge les opérations mathématiques suivantes : `+ - * /`
    + Vous ne pouvez pas modifier l’expression une fois qu’une définition d’attribut calculée est créée
+ **Conditions**

  Définit les critères et seuils d’agrégation d’attributs calculés.
  + Type : objet Conditions
    + Range
    + ObjectCount
    + Threshold
+ **Range**

  La période relative pendant laquelle les données sont incluses dans l’agrégation.
  + Type : objet Range
    + Valeur : durée des unités spécifiées. `ValueRange` écrase Value.
      + Type : Integer
      + Obligatoire : non
    + ValueRange: structure permettant aux clients de spécifier une fenêtre temporelle relative sur laquelle les données sont incluses dans l'attribut calculé. Utilisez des nombres positifs pour indiquer que le point final est dans le passé, et des nombres négatifs pour indiquer qu'il se trouve dans le futur. ValueRangeremplace la valeur.
      + Type : ValueRange
      + Obligatoire : non
        + Démarrer
          + Heure de début à laquelle les objets doivent être inclus. Utilisez des nombres positifs pour indiquer que le point de départ est dans le passé, et des nombres négatifs pour indiquer qu’il se trouve dans le futur.
          + Type : Integer
          + Obligatoire : oui 
        + Fin
          + Heure finale à laquelle les objets doivent être inclus. Utilisez des nombres positifs pour indiquer que le point de départ est dans le passé, et des nombres négatifs pour indiquer qu’il se trouve dans le futur.
          + Type : Integer
          + Obligatoire : oui 
    + TimestampSource: expression spécifiant le champ de votre objet JSON à partir duquel la date doit être analysée. L'expression doit suivre la structure de \$1 "\$1ObjectTypeName. <Location of timestamp field in JSON pointer format>\$1 \$1 ». Par exemple, si votre type d'objet est MyType et que la source JSON l'est`{"generatedAt": {"timestamp": "1737587945945"}}`, cela TimestampSource devrait être le cas`"{MyType.generatedAt.timestamp}"`.
      + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 255 caractères.
      + Obligatoire : non
    + TimestampFormat: le format du champ d'horodatage de votre objet JSON est spécifié. Cette valeur doit être EPOCHMILLI (pour les horodatages d'époque Unix avec précision de second/millisecond niveau) ou ISO\$18601 (suivant le format ISO\$18601 avec précision de niveau, avec un décalage facultatif de Z ou au format second/millisecond HH:MM ou HHMM.). Par exemple, si votre type d'objet est MyType et que la source JSON l'est`{"generatedAt": {"timestamp": "2001-07-04T12:08:56.235-0700"}},`, alors cela TimestampFormat devrait être le cas`"ISO_8601"`.
    + Unité : unité de temps
      + Valeurs valides : jours
      + Obligatoire : oui
  + Obligatoire : oui
  + Portée initiale : 366 jours maximum
+ **ObjectCount**

  Le nombre d’objets de profil utilisés pour l’attribut calculé.
  + Type : Number
  + Plage : 1 à 100
  + Obligatoire : non
+ **Threshold**

  La logique de comparaison pour générer un attribut true/false calculé.
  + Type : objet Threshold
    + Value
      + La valeur du seuil
      + Type : String
      + Obligatoire : non
    + Opérateur
      + L’opérateur du seuil
      + Type : ENUM
      + Valeurs valides :
        + GREATER\$1THAN
        + LESS\$1THAN
        + EQUAL\$1TO
        + NOT\$1EQUAL\$1TO
  + Obligatoire : non
+ **Statistique**

  L’opération d’agrégation à effectuer pour l’attribut calculé.
  + Type : ENUM
  + Valeurs valides :
    + FIRST\$1OCCURRENCE
    + LAST\$1OCCURRENCE
    + COUNT
    + SUM
    + MINIMUM
    + MAXIMUM
    + AVERAGE
    + MAX\$1OCCURRENCE

------
#### [ UpdateCalculatedAttributeDefinition ]

**UpdateCalculatedAttributeDefinition**

Mettez à jour une définition d’attribut calculée. Les mises à jour sont limitées au nom d’affichage, à la description, à la plage de temps, au nombre d’objets et au seuil. Cette API prend en charge les mises à jour partielles, de sorte que seuls les paramètres nécessitant une mise à jour doivent être inclus.

**Note**  
Lors de la mise à jour des conditions :  
L’augmentation de la plage de dates d’un attribut calculé ne déclenchera pas l’inclusion de données historiques supérieures à la plage de dates actuelle.
TimestampSource et TimestampFormat ne peut pas être mis à jour une fois qu'une définition d'attribut calculée a été créée.

**Demande**

```
PUT /domains/DomainName/calculated-attributes/CalculatedAttributeName
```

```
{
    "DisplayName": "string",
    "Description": "string",
    "Conditions": {
        "Range": {
             "Value": "number",
             "Units": "string"
        },
        "ObjectCount": "number",
        "Threshold": {
            "Value": "string",
            "Operator": "EQUAL_TO" | "GREATER_THAN" | "LESS_THAN" | "NOT_EQUAL_TO"
        }
   }
}
```

**Réponse**

```
{
    "CalculatedAttributeName": "string",
    "DisplayName": "string",
    "Description": "string",
    "AttributeDetails": {
       "Attributes": [
           {
               "Name": "string"
           }
           ...
       ],
       "Expression": "string",
    },
    "Statistic": "AVERAGE" | "COUNT" | "SUM" | "FIRST_OCCURRENCE" | "LAST_OCCURRENCE" | "MINIMUM" | "MAXIMUM" | "MAX_OCCURRENCE"
    "Conditions": {
        "Range": {
             "Value": "number",
             "Units": "string"
        },
        "ObjectCount": "number",
        "Threshold": {
            "Value": "string",
            "Operator": "EQUAL_TO" | "GREATER_THAN" | "LESS_THAN" | "NOT_EQUAL_TO"
        }
    },
    "CreatedAt": number,
    "LastUpdatedAt": number,
    "Tags": {}
}
```

**Corps de la demande**
+ **DisplayName**

  Le nom d’affichage de l’attribut calculé.
  + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 64 caractères.
  + Modèle : `^[a-zA-Z_][a-zA-Z_0-9-\s]*$`
  + Obligatoire : non
+ **Description**

  La description de l’attribut calculé.
  + Type : String
  + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 1 000 caractères.
  + Obligatoire : non
+ **Conditions**

  Définit les critères et seuils d’agrégation d’attributs calculés.
  + Type : objet Conditions
    + Range
    + ObjectCount
    + Threshold
+ **Range**

  La période relative pendant laquelle les données sont incluses dans l’agrégation.
  + Type : objet Range
    + Valeur : durée des unités spécifiées
      + Type : Integer
      + Obligatoire : non
    + ValueRange: structure permettant aux clients de spécifier une fenêtre temporelle relative sur laquelle les données sont incluses dans l'attribut calculé. Utilisez des nombres positifs pour indiquer que le point final est dans le passé, et des nombres négatifs pour indiquer qu'il se trouve dans le futur. ValueRangeremplace la valeur.
      + Type : ValueRange
      + Obligatoire : non
        + Démarrer
          + Heure de début à laquelle les objets doivent être inclus. Utilisez des nombres positifs pour indiquer que le point de départ est dans le passé, et des nombres négatifs pour indiquer qu’il se trouve dans le futur.
          + Type : Integer
          + Obligatoire : oui 
        + Fin
          + Heure finale à laquelle les objets doivent être inclus. Utilisez des nombres positifs pour indiquer que le point de départ est dans le passé, et des nombres négatifs pour indiquer qu’il se trouve dans le futur.
          + Type : Integer
          + Obligatoire : oui 
    + Unité : unité de temps
      + Valeurs valides : jours
      + Obligatoire : oui
  + Obligatoire : oui
  + Portée initiale : 366 jours maximum
+ **ObjectCount**

  Le nombre d’objets de profil utilisés pour l’attribut calculé.
  + Type : Number
  + Plage : 1 à 100
  + Obligatoire : non
+ **Threshold**

  La logique de comparaison pour générer un attribut true/false calculé.
  + Type : objet Threshold
    + Value
      + La valeur du seuil
      + Type : String
      + Obligatoire : non
    + Opérateur
      + L’opérateur du seuil
      + Type : ENUM
      + Valeurs valides :
        + GREATER\$1THAN
        + LESS\$1THAN
        + EQUAL\$1TO
        + NOT\$1EQUAL\$1TO
  + Obligatoire : non

------
#### [ GetCalculatedAttributeDefinition ]

**GetCalculatedAttributeDefinition**

Récupérez une définition d’attribut calculée.

**Demande**

```
GET /domains/DomainName/calculated-attributes/CalculatedAttributeName
```

**Corps de la demande**

```
The request does not have a request body.
```

**Réponse**

```
{
"CalculatedAttributeName": "string",
    "DisplayName": "string",
    "Description": "string",
    "AttributeDetails": {
"Attributes": [
           {
"Name": "string"
           }
           ...
       ],
       "Expression": "string",
    },
    "Statistic": "AVERAGE" | "COUNT" | "SUM" | "FIRST_OCCURRENCE" | "LAST_OCCURRENCE" | "MINIMUM" | "MAXIMUM" | "MAX_OCCURRENCE"
"Conditions": {
"Range": {
      "Unit": "string",
      "Value": number
      "ValueRange"
        {
            "Start": number 
            "End": number 
        },
      "TimestampFormat": "string", 
      "TimestampSource": "string"
    },
        "ObjectCount": "number",
        "Threshold": {
"Value": "string",
            "Operator": "EQUAL_TO" | "GREATER_THAN" | "LESS_THAN" | "NOT_EQUAL_TO"
        }
    },
    "UseHistoricalData" boolean,
  "Status": "PREPARING" | "IN_PROGRESS" | "COMPLETED" | "FAILED",
  "Readiness": {
        "ProgressPercentage": number, 
        "Message": "string", 
        },
    "CreatedAt": number,
    "LastUpdatedAt": number,
    "Tags": {}
}
```

**Paramètres de demande URI**
+ **DomainName**

  Nom unique du domaine.
  + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 64 caractères.
  + Modèle : `^[a-zA-Z0-9_-]+$`
  + Obligatoire : oui
+ **CalculatedAttributeName**

  Le nom unique (par domaine) de l’attribut calculé.
  + Type : String
  + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 64 caractères.
  + Modèle : `^[a-zA-Z0-9_-]+$`
  + Obligatoire : oui

------
#### [ DeleteCalculatedAttributeDefinition ]

**DeleteCalculatedAttributeDefinition**

Supprimez une définition d’attribut calculé existante. Notez que la suppression d’un attribut calculé par défaut est possible, mais une fois supprimé, vous ne pourrez plus annuler cette action et vous devrez le recréer vous-même à l’aide de l’API `CreateCalculatedAttributeDefinition` si vous souhaitez le récupérer.

**Demande**

```
DELETE /domains/DomainName/calculated-attributes/CalculatedAttributeName
```

**Corps de la demande**

```
The request does not have a request body.
```

**Réponse**

```
The response does not have a response body.
```

**Paramètres de demande URI**
+ **DomainName**

  Nom unique du domaine.
  + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 64 caractères.
  + Modèle : `^[a-zA-Z0-9_-]+$`
  + Obligatoire : oui
+ **CalculatedAttributeName**

  Le nom unique (par domaine) de l’attribut calculé.
  + Type : String
  + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 64 caractères.
  + Modèle : `^[a-zA-Z0-9_-]+$`
  + Obligatoire : oui

------
#### [ ListCalculatedAttributeDefinitions ]

**ListCalculatedAttributeDefinitions**

Récupérez toutes les définitions d’attributs calculées pour un domaine.

**Demande**

```
GET /domains/DomainName/calculated-attributes?max-results=MaxResults&next-token=NextToken
```

**Corps de la demande**

```
The request does not have a request body.
```

**Réponse**

```
{ 
    "Items": [
        {
            "UseHistoricalData": boolean,
            "ReadinessStatus": PREPARING | IN_PROGRESS | COMPLETED | FAILED,
            "CalculatedAttributeName": "string", 
            "CreatedAt": number, 
            "Description": "string", 
            "DisplayName": "string", 
            "LastUpdatedAt": number, 
            "Tags": { 
                "string" : "string" 
            }
        } 
    ], 
    "NextToken": "string"
}
```

**Paramètres de demande URI**
+ **DomainName**

  Nom unique du domaine.
  + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 64 caractères.
  + Modèle : `^[a-zA-Z0-9_-]+$`
  + Obligatoire : oui
+ **MaxResults**

  Le nombre maximum d’objets renvoyés par page.
  + Plage valide : valeur minimum de 1. Valeur maximale de 100
+ **NextToken**

  Le jeton de pagination issu de l'appel ListCalculatedAttributeDefinition d'API précédent.
  + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 1 024 caractères

------
#### [ GetCalculatedAttributeForProfile ]

**GetCalculatedAttributeForProfile**

Lance le calcul et récupère le résultat d’un seul attribut calculé pour un seul profil.

**Demande**

```
GET /domains/DomainName/profile/ProfileId/calculated-attributes/CalculatedAttributeName
```

**Corps de la demande**

```
The request does not have a request body.
```

**Réponse**

```
{
"Name": "string",
    "DisplayName": "string",
    "Value": "string",
    "IsDataPartial": "string",
    "LastObjectTimestamp" : number
}
```

**Paramètres de demande URI**
+ **DomainName**

  Nom unique du domaine.
  + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 64 caractères.
  + Modèle : `^[a-zA-Z0-9_-]+$`
  + Obligatoire : oui
+ **CalculatedAttributeName**

  Le nom unique (par domaine) de l’attribut calculé.
  + Type : String
  + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 64 caractères.
  + Modèle : `^[a-zA-Z0-9_-]+$`
  + Obligatoire : oui

------
#### [ ListCalculatedAttributesForProfile ]

**ListCalculatedAttributesForProfile**

Lance le calcul et récupère les résultats de tous les attributs calculés pour un seul profil.

**Demande**

```
GET /domains/DomainName/profile/ProfileId/calculated-attributes?max-results=MaxResults&next-token=NextToken
```

**Corps de la demande**

```
The request does not have a request body.
```

**Réponse**

```
{
"Items": [
        {
"CalculatedAttributeName": "string",
            "DisplayName": "string",
            "Value": "string",
            "IsDataPartial" : "string",
            "LastObjectTimestamp" : number
        },
        ...
    ],
    "NextToken": "string"
}
```

**Paramètres de demande URI**
+ **DomainName**

  Nom unique du domaine.
  + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 64 caractères.
  + Modèle : `^[a-zA-Z0-9_-]+$`
  + Obligatoire : oui
+ **ProfileId**
  + Modèle : `[a-f0-9]{32}`
  + Obligatoire : oui
+ **MaxResults**

  Le nombre maximum d’objets renvoyés par page.
  + Plage valide : valeur minimum de 1. Valeur maximale de 100
+ **NextToken**

  Le jeton de pagination issu de l'appel ListCalculatedAttributeDefinition d'API précédent.
  + Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 1 024 caractères

------

# Création d’une définition d’attribut calculée personnalisée pour Profils des clients Amazon Connect
<a name="customerprofiles-calculated-attributes-creating-definition"></a>

À l'aide de l'[CreateCalculatedAttributeDefinition](https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateCalculatedAttributeDefinition.html)API Customer Profiles, vous pouvez créer par programmation votre propre attribut calculé en fonction d'un type d'objet personnalisé.

Dans cette rubrique, nous expliquons comment créer un attribut calculé à l’aide d’un fichier JSON personnalisé.

## Étape 1 : créer un fichier JSON
<a name="step1-calculate-attribute-api"></a>

Créez un fichier JSON avec le contenu suivant :

```
{
"DomainName": "your-domain-name", 
   "CalculatedAttributeName": "your-calculated-attribute-name",
   "UseHistoricalData": true,
   "DisplayName": "your-display-name",
   "Description": "your-description",
   "AttributeDetails": {
"Attributes": [
         {
            "Name": "your-attribute-name"
         }
       ],
       "Expression": "{your-object-type.your-attribute-name}"
   },
    "Statistic": "your-statistic",
    "Conditions": {
       "Range": {
        "ValueRange"
        {
            "Start": your-range-start
            "End": your-range-end
        },
        "TimestampSource": "{your-object-type.your-timestamp-source}",          
        "Unit": "days"
        },
        "ObjectCount":  your-object-count,
        "Threshold": {
           "Value": "your-threshold-value",
           "Operator": "your-threshold-operator"
        }
   }  
}
```

Pour personnaliser le fichier JSON avec vos propres valeurs, suivez les instructions suivantes :
+ **Attributes** : il doit contenir le nom du champ de votre type d’objet que vous souhaitez utiliser pour l’attribut calculé. Deux attributs référencés dans cette liste sont pris en charge.
+ **Expression** : les expressions mathématiques de base à exécuter entre les attributs sont prises en charge. Si vous n’avez qu’un seul attribut, ce champ doit être `{ObjectTypeName.AttributeName}`. Sinon, si vous avez une expression mathématique en tête, ce champ doit contenir les deux attributs.
+ **Statistique** : il s'agit de l'opération effectuée lorsque vous appelez l'un des calculateurs APIs qui effectue réellement l'opération d'agrégation. La plupart sont explicites, mais nous avons ajouté des explications pour celles qui ne le sont pas. 

  **Statistiques prises en charge**
  + `FIRST_OCCURRENCE` renvoie l’attribut spécifié dans l’expression du premier objet ingéré.
  + `LAST_OCCURRENCE` renvoie l’attribut spécifié dans l’expression du dernier objet ingéré.
  + `COUNT` renvoie le nombre à partir des données sélectionnées.
  + `SUM` renvoie la somme à partir des données sélectionnées.
  + `MINIMUM` renvoie le minimum à partir des données sélectionnées.
  + `MAXIMUM` renvoie le maximum à partir des données sélectionnées.
  + `AVERAGE` renvoie la moyenne à partir des données sélectionnées.
  + `MAX_OCCURRENCE` renvoie la valeur la plus fréquente spécifiée dans l’expression.
+ **Gamme** :
  + Unités : Actuellement, seules les unités DAYS sont prises en charge.
  + ValueRange: Spécifiez des nombres positifs dans les champs ValueRange de début ou de fin pour indiquer le nombre de jours à partir desquels commencer, et des nombres négatifs pour indiquer le nombre de jours à partir desquels commencer dans le futur.
  + TimestampSource: expression spécifiant le champ de votre objet JSON à partir duquel la date doit être analysée. L'expression doit suivre la structure de \$1 "\$1ObjectTypeName. <Location of timestamp field in JSON pointer format>\$1 \$1 ». Par exemple, si votre type d'objet est MyType et que la source JSON l'est`{"generatedAt": {"timestamp": "1737587945945"}}`, cela TimestampSource devrait être le cas`"{MyType.generatedAt.timestamp}"`.
+ **ObjectCount**: indique le nombre d'objets sur lesquels le calcul de l'attribut calculé doit être basé.
+ **Threshold** : si, au lieu de la valeur d’attribut calculée exacte, vous souhaitez savoir si elle est supérieure à une certaine valeur, par exemple, vous pouvez utiliser un seuil.

  La valeur de seuil peut être n’importe quelle chaîne et les opérateurs de seuil suivants sont pris en charge.
  + `GREATER_THAN`
  + `LESS_THAN`
  + `EQUAL_TO`
  + `NOT_EQUAL_TO`
+ UseHistoricalData: Si les données historiques ingérées avant la création de l'attribut calculé doivent être incluses dans les calculs.

## Étape 2 : appeler l' CreateCalculatedAttributeDefinition API
<a name="step2-calculated-attribute-api"></a>

Après avoir créé et personnalisé le fichier JSON avec vos valeurs, appelez l'[CreateCalculatedAttributeDefinition](https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateCalculatedAttributeDefinition.html)API, comme indiqué dans l'exemple suivant :

```
aws customer-profiles create-calculated-attribute-definition --cli-input-json file:///custom_calculated_attribute_cli.json --region region_name
```

Vous pouvez également utiliser le point de terminaison suivant :

```
https://profile.your-region.amazonaws.com/domains/your-domain-name/calculated-attributes
```

# Validez les valeurs d'attribut calculées dans les profils clients Amazon Connect à l'aide de APIs
<a name="customerprofiles-calculated-attributes-validating-values"></a>

Il y en a deux APIs`ListCalculatedAttributesForProfile`, `GetCalculatedAttributeForProfile` et cela se situe au niveau du profil.
+ **GetCalculatedAttributeForProfile**- récupère un seul attribut calculé pour un seul profil.
+ **ListCalculatedAttributesForProfile**- récupère une liste d'attributs calculés pour un seul profil

Avec un ID de profil valide, vous devriez voir les valeurs de vos attributs calculés :

**Exemple de réponse**

```
{   
    "CalculatedAttributeName": "_average_hold_time",
    "DisplayName": "Average hold time",
    "IsDataPartial": "true",
    "Value": "24144"
}
```

**IsDataPartial**- Ce drapeau signifie que l'intervalle de temps (30 jours) ou le nombre d'objets n'ont pas été atteints et que l'attribut calculé est donc toujours en cours de calcul. Par exemple, si vous souhaitez obtenir une moyenne sur 30 jours, ce n’est qu’au bout de 30 jours que le champ `IsDataPartial` sera défini sur false.

## Récupération d’une liste d’attributs calculés
<a name="calculated-attributes-validating-a-list-of-values"></a>

**Utiliser la AWS CLI**

```
aws customer-profiles list-calculated-attributes-for-profile --region your-region --domain-name your-domain-name --profile-id your-profile-id
```

**Utiliser la AWS CLI avec un fichier JSON personnalisé**

Créez un fichier JSON avec le contenu suivant :

```
{
    "DomainName": "your-domain-name", 
    "ProfileId" "some-profile-id"
}
```

```
aws customer-profiles list-calculated-attributes-for-profile --region your-region --cli-input-json file://list_calculated_attributes_for_profile_cli.json
```

**Point de terminaison :**

```
https://profile.your-region.amazonaws.com/domains/your-domain-name/profile/your-profile-id/calculated-attributes/
```

## Récupération d’un seul attribut calculé
<a name="calculated-attributes-validating-a-single-value"></a>

**Utilisez la AWS CLI** :

```
aws customer-profiles get-calculated-attributes-for-profile --region your-region --domain-name your-domain-name --calculated-attribute-name your-calculated-attribute-name --profile-id your-profile-id
```

**Utilisez la AWS CLI avec un fichier JSON personnalisé** :

Créez un fichier JSON avec le contenu suivant :

```
{   
    "DomainName": "your-domain-name", 
    "CalculatedAttributeName": "your-calculated-attribute-name",
    "ProfileId" "your-profile-id"
}
```

```
aws customer-profiles get-calculated-attributes-for-profile --region your-region --cli-input-json file://list_calculated_attributes_for_profile_cli.json
```

**Point de terminaison :**

```
https://profile.your-region.amazonaws.com/domains/your-domain-name/profile/your-profile-id/calculated-attributes/your-calculated-attribute-name
```

# Attributs calculés par défaut dans Profils des clients Amazon Connect
<a name="customerprofiles-default-calculated-attributes"></a>

## Attributs calculés CTR par défaut
<a name="customerprofiles-default-calculated-attributes-ctr"></a>

Amazon Connect Customer Profiles fournit aux out-of-the boîtes des attributs par défaut basés sur les enregistrements des contacts. Les attributs sont les suivants :

**Canal le plus fréquent**

```
{
   "CalculatedAttributeName": "_most_frequent_channel",
   "DisplayName": "Most frequent channel",
   "Description": "Returns customer's frequently used communication channel. Channels include voice, chat, task.",
   "CreatedAt": null,
   "LastUpdatedAt": null,
   "Statistic": "MAX_OCCURRENCE",
   "Conditions": {
      "Range": {
         "Value": 30,
         "Unit": "DAYS"
       },
       "ObjectCount": null
   },
   "AttributeDetails": {
      "Attributes": [
         {
            "Name": "channel"
         }
      ],
      "Expression": "{CTR.channel}"
   },
   "Tags": {
   }
}
```

**Dernier canal**

```
{
   "CalculatedAttributeName": "_last_channel",
   "DisplayName": "Last channel",
   "Description": "Returns customer's last communication channel. Channels include voice, chat, task.",
   "CreatedAt": null,
   "LastUpdatedAt": null,
   "Statistic": "LAST_OCCURRENCE",
   "Conditions": {
      "ObjectCount": null
   },
   "AttributeDetails": {
      "Attributes": [
         {
            "Name": "channel"
         }
       ],
       "Expression": "{CTR.channel}"
   },
   "Tags": {
   }
}
```

**Identifiant du dernier agent**

```
{
   "CalculatedAttributeName": "_last_agent_id",
   "DisplayName": "Last agent identifier",
   "Description": "Returns identifier of the last agent customer connected with.",
   "CreatedAt": null,
   "LastUpdatedAt": null,
   "Statistic": "LAST_OCCURRENCE",
   "Conditions": {
      "ObjectCount": null
   },
   "AttributeDetails": {
      "Attributes": [
         {
            "Name": "agent.id"
         }
      ],
      "Expression": "{CTR.agent.id}"
   },
   "Tags": {
   }
}
```

**Appelant fréquent**

```
{
   "CalculatedAttributeName": "_frequent_caller",
   "DisplayName": "Frequent caller",
   "Description": "Returns true or false based on the number of times a customer has called.",
   "CreatedAt": null,
   "LastUpdatedAt": null,
   "Statistic": "COUNT",
   "Conditions": {
      "Range": {
         "Value": 30,
         "Unit": "DAYS"
      },
      "ObjectCount": null,
      "Threshold": {
         "Value": "5",
         "Operator": "GREATER_THAN"
      }
   },
   "AttributeDetails": {
      "Attributes": [
         {
            "Name": "contactId"
         }
      ],
      "Expression": "{CTR.contactId}"
   },
   "Tags": {
   }
}
```

**Temps d’attente moyen**

```
{
   "CalculatedAttributeName": "_average_hold_time",
   "DisplayName": "Average hold time",
   "Description": "Returns customer's average hold time for voice calls.",
   "CreatedAt": null,
   "LastUpdatedAt": null,
   "Statistic": "AVERAGE",
   "Conditions": {
      "Range": {
         "Value": 30,
         "Unit": "DAYS"
      },
      "ObjectCount": null
   },
   "AttributeDetails": {
      "Attributes": [
         {
            "Name": "agent.customerHoldDurationMillis"
         },
         {
            "Name": "queue.durationMillis"
         }
      ],
      "Expression": "{CTR.agent.customerHoldDurationMillis} + {CTR.queue.durationMillis}"
   },
   "Tags": {
   }
}
```

**Durée moyenne des appels**

```
{
   "CalculatedAttributeName": "_average_call_duration",
   "DisplayName": "Average call duration",
   "Description": "Returns customer's average call duration for voice calls.",
   "CreatedAt": null,
   "LastUpdatedAt": null,
   "Statistic": "AVERAGE",
   "Conditions": {
      "Range": {
         "Value": 30,
         "Unit": "DAYS"
       },
      "ObjectCount": null
   },
   "AttributeDetails": {
      "Attributes": [
         {
            "Name": "disconnectTimestamp"
         },
         {
            "Name": "initiationTimestamp"
         }
      ],
      "Expression": "{CTR.disconnectTimestamp} - {CTR.initiationTimestamp}"
   },
   "Tags": {
   }
}
```

**Durée d’attente maximale du client**

```
{
    "CalculatedAttributeName": "_maximum_hold_time",
    "DisplayName": "Customer's maximum hold time",
    "Description": "Returns customer's maximum hold time for voice calls in the past month.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "agent.customerHoldDurationMillis"
        },
        {
          "Name": "queue.durationMillis"
        }
      ],
      "Expression": "{CTR.agent.customerHoldDurationMillis} + {CTR.queue.durationMillis}"
    },
    "Statistic": "MAXIMUM",
    "Conditions": {
      "Range": {
        "Value": 30,
        "Unit": "DAYS"
      },
      "ObjectCount": null,
      "Threshold": null
    },
    "Launched": false
  }
```

## Attributs calculés de profils par défaut
<a name="customerprofiles-default-calculated-attributes-profile"></a>

Amazon Connect Customer Profiles fournit un attribut par défaut de out-of-the boîte basé sur un profil. Les attributs sont les suivants :

**Nouveau client**

```
{
   "CalculatedAttributeName": "_new_customer",
   "DisplayName": "New customer",
   "Description": "Returns true or false for new customer profiles created.",
   "CreatedAt": null,
   "LastUpdatedAt": null,
   "Statistic": "TIME_DIFFERENCE_FROM_NOW",
   "Conditions": {
      "ObjectCount": null,
      "Threshold": {
         "Value": "30",
         "Operator": "LESS_THAN"
      }
   },
   "AttributeDetails": {
      "Attributes": [
         {
            "Name": "createdAt"
         }
      ],
      "Expression": "{_profile.createdAt}"
   },
   "Tags": {
   }
}
```

## Attributs calculés de ressources par défaut
<a name="customerprofiles-default-calculated-attributes-asset"></a>

Amazon Connect Customer Profiles fournit des attributs par défaut aux out-of-the boîtes en fonction des actifs. Les attributs sont les suivants :

**Nombre de ressources**

```
{
    "CalculatedAttributeName": "_assets_count",
    "DisplayName": "Count of assets",
    "Description": "Returns the count of assets for a customer.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "AssetId"
        }
      ],
      "Expression": "{_asset.AssetId}"
    },
    "Statistic": "COUNT",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold":null
    },
    "Launched": false
  }
```

**Date d’achat de la première ressource**

```
{
    "CalculatedAttributeName": "_asset_first_occurrence",
    "DisplayName": "First asset purchased date",
    "Description": "Returns purchase date of the customer's first asset.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "PurchaseDate"
        }
      ],
      "Expression": "{_asset.PurchaseDate}"
    },
    "Statistic": "FIRST_OCCURRENCE",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Launched": false
  }
```

**Date d’achat de la dernière ressource**

```
{
    "CalculatedAttributeName": "_asset_last_occurrence",
    "DisplayName": "Last asset purchased date",
    "Description": "Returns purchase date of the customer's last asset.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "PurchaseDate"
        }
      ],
      "Expression": "{_asset.PurchaseDate}"
    },
    "Statistic": "LAST_OCCURRENCE",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Launched": false
  }
```

**Prix total des ressources**

```
{
    "CalculatedAttributeName": "_assets_price_sum",
    "DisplayName": "Total asset price",
    "Description": "Returns customer's total asset price.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "Price"
        }
      ],
      "Expression": "{_asset.Price}"
    },
    "Statistic": "SUM",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Launched": false
  }
```

**Prix moyen des ressources**

```
{
    "CalculatedAttributeName": "_assets_price_average",
    "DisplayName": "Average asset price",
    "Description": "Returns customer's average asset price.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "Price"
        }
      ],
      "Expression": "{_asset.Price}"
    },
    "Statistic": "AVERAGE",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Launched": false
  }
```

**Nom de la première ressource**

```
{
    "CalculatedAttributeName": "_assets_name_first_occurrence",
    "DisplayName": "First asset name",
    "Description": "Returns name of the customer's first asset",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "AssetName"
        }
      ],
      "Expression": "{_asset.AssetName}"
    },
    "Statistic": "FIRST_OCCURRENCE",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Launched": false
  }
```

**Nom de la dernière ressource**

```
{
    "CalculatedAttributeName": "_assets_name_last_occurrence",
    "DisplayName": "Last asset name",
    "Description": "Returns name of the customer's last asset.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "AssetName"
        }
      ],
      "Expression": "{_asset.AssetName}"
    },
    "Statistic": "LAST_OCCURRENCE",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Launched": false
  }
```

## Attributs calculés de cas par défaut
<a name="customerprofiles-default-calculated-attributes-case"></a>

Amazon Connect Customer Profiles fournit des attributs par défaut aux out-of-the boîtes en fonction des cas. Les attributs sont les suivants :

**Nombre de cas**

```
{
    "CalculatedAttributeName": "_cases_count",
    "DisplayName": "Count of cases",
    "Description": "Returns the count of customer's cases for a customer.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "CaseId"
        }
      ],
      "Expression": "{_case.CaseId}"
    },
    "Statistic": "COUNT",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold":null
    },
    "Launched": false
  }
```

**Date de création du premier cas**

```
{
    "CalculatedAttributeName": "_case_first_occurrence",
    "DisplayName": "First case created date",
    "Description": "Returns created date of the customer's first case.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "CreatedDate"
        }
      ],
      "Expression": "{_case.CreatedDate}"
    },
    "Statistic": "FIRST_OCCURRENCE",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Launched": false
  }
```

**Date de création du dernier cas**

```
{
    "CalculatedAttributeName": "_case_last_occurrence",
    "DisplayName": "Last case created date",
    "Description": "Returns created date of the customer's last case.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "CreatedDate"
        }
      ],
      "Expression": "{_case.CreatedDate}"
    },
    "Statistic": "LAST_OCCURRENCE",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Launched": false
  }
```

**Nombre de cas ouverts**

```
{
    "CalculatedAttributeName": "_cases_open_status_count",
    "DisplayName": "Count of open cases",
    "Description": "Returns the count of customer's open cases.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "CaseId"
        }
      ],
      "Expression": "{_case.CaseId}"
    },
    "Statistic": "COUNT",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold":null
    },
    "Filter": {
      "Include": "ALL",
      "Groups": [
        {
          "Type": "ALL",
          "Dimensions": [
            {
              "Attributes": {
                "Status": {
                  "DimensionType": "INCLUSIVE",
                  "Values": ["Open"]
                }
              }
            }
          ]
        }
      ]
    },
    "Launched": false
  }
```

**Nombre de cas clôturés**

```
{
    "CalculatedAttributeName": "_cases_closed_status_count",
    "DisplayName": "Count of closed cases",
    "Description": "Returns the count of customer's closed cases.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "CaseId"
        }
      ],
      "Expression": "{_case.CaseId}"
    },
    "Statistic": "COUNT",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold":null
    },
    "Filter": {
      "Include": "ALL",
      "Groups": [
        {
          "Type": "ALL",
          "Dimensions": [
            {
              "Attributes": {
                "Status": {
                  "DimensionType": "INCLUSIVE",
                  "Values": ["Closed"]
                }
              }
            }
          ]
        }
      ]
    },
    "Launched": false
  }
```

## Attributs calculés d’enregistrements de communication par défaut
<a name="customerprofiles-default-calculated-attributes-communication-record"></a>

Amazon Connect Customer Profiles fournit des attributs par défaut aux out-of-the boîtes en fonction des enregistrements de communication. Les attributs sont les suivants :

**Date d’ouverture du dernier e-mail**

```
{
    "CalculatedAttributeName": "_campaign_email_last_open",
    "DisplayName": "Last email open date",
    "Description": "Returns the last email open date of the customer.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "Events.Open.UpdatedDate"
        }
      ],
      "Expression": "{_communicationRecord.Events.Open.UpdatedDate}"
    },
    "Statistic": "LAST_OCCURRENCE",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Filter": {
      "Include": "ALL",
      "Groups": [
        {
          "Type": "ALL",
          "Dimensions": [
            {
              "Attributes": {
                "Attributes.ChannelSubType": {
                  "DimensionType": "INCLUSIVE",
                  "Values": ["connect:Email"]
                },
                "Events.Open.EventType": {
                  "DimensionType": "INCLUSIVE",
                  "Values": ["Open"]
                }
              }
            }
          ]
        }
      ]
    },
    "Launched": false
  }
```

**Nombre d’e-mails ouverts**

```
{
    "CalculatedAttributeName": "_campaign_email_open_count",
    "DisplayName": "Email open count",
    "Description": "Returns the number of times emails were opened by a customer.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "CommunicationRecordId"
        }
      ],
      "Expression": "{_communicationRecord.CommunicationRecordId}"
    },
    "Statistic": "COUNT",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Filter": {
      "Include": "ALL",
      "Groups": [
        {
          "Type": "ALL",
          "Dimensions": [
            {
              "Attributes": {
                "Attributes.ChannelSubType": {
                  "DimensionType": "INCLUSIVE",
                  "Values": ["connect:Email"]
                },
                "Events.Open.EventType": {
                  "DimensionType": "INCLUSIVE",
                  "Values": ["Open"]
                }
              }
            }
          ]
        }
      ]
    },
    "Launched": false
  }
```

**Nombre d’envois d’e-mails**

```
{
    "CalculatedAttributeName": "_campaign_email_delivery_count",
    "DisplayName": "Email delivery count",
    "Description": "Returns the number of times emails were delivered to a customer.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "CommunicationRecordId"
        }
      ],
      "Expression": "{_communicationRecord.CommunicationRecordId}"
    },
    "Statistic": "COUNT",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Filter": {
      "Include": "ALL",
      "Groups": [
        {
          "Type": "ALL",
          "Dimensions": [
            {
              "Attributes": {
                "Attributes.ChannelSubType": {
                  "DimensionType": "INCLUSIVE",
                  "Values": ["connect:Email"]
                },
                "Events.Delivery.EventType": {
                  "DimensionType": "INCLUSIVE",
                  "Values": ["Delivery"]
                }
              }
            }
          ]
        }
      ]
    },
    "Launched": false
  }
```

**Nombre de SMS envoyés**

```
{
    "CalculatedAttributeName": "_campaign_sms_delivery_count",
    "DisplayName": "SMS delivered count",
    "Description": "Returns the number of times SMS were delivered to a customer.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "CommunicationRecordId"
        }
      ],
      "Expression": "{_communicationRecord.CommunicationRecordId}"
    },
    "Statistic": "COUNT",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Filter": {
      "Include": "ALL",
      "Groups": [
        {
          "Type": "ALL",
          "Dimensions": [
            {
              "Attributes": {
                "Attributes.ChannelSubType": {
                  "DimensionType": "INCLUSIVE",
                  "Values": ["connect:SMS"]
                },
                "Events.TEXT_DELIVERED.EventType": {
                  "DimensionType": "INCLUSIVE",
                  "Values": ["TEXT_DELIVERED"]
                }
              }
            }
          ]
        }
      ]
    },
    "Launched": false
  }
```

**Date du dernier SMS bloqué**

```
  {
    "CalculatedAttributeName": "_campaign_sms_last_stop",
    "DisplayName": "Last SMS blocked date",
    "Description": "Returns the last SMS blocked date of the customer.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "Events.TEXT_BLOCKED.UpdatedDate"
        }
      ],
      "Expression": "{_communicationRecord.Events.TEXT_BLOCKED.UpdatedDate}"
    },
    "Statistic": "LAST_OCCURRENCE",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Filter": {
      "Include": "ANY",
      "Groups": [
        {
          "Type": "ALL",
          "Dimensions": [
            {
              "Attributes": {
                "Attributes.ChannelSubType": {
                  "DimensionType": "INCLUSIVE",
                  "Values": ["connect:SMS"]
                },
                "Events.TEXT_BLOCKED.EventType": {
                  "DimensionType": "INCLUSIVE",
                  "Values": ["TEXT_BLOCKED"]
                }
              }
            }
          ]
        }
      ]
    },
    "Launched": false
  }
```

**Date du dernier opérateur SMS bloqué**

```
{
    "CalculatedAttributeName": "_campaign_sms_last_stop_carrier",
    "DisplayName": "Last SMS carrier blocked date",
    "Description": "Returns the last SMS carrier blocked date of the customer.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "Events.TEXT_CARRIER_BLOCKED.UpdatedDate"
        }
      ],
      "Expression": "{_communicationRecord.Events.TEXT_CARRIER_BLOCKED.UpdatedDate}"
    },
    "Statistic": "LAST_OCCURRENCE",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Filter": {
      "Include": "ANY",
      "Groups": [
        {
          "Type": "ALL",
          "Dimensions": [
            {
              "Attributes": {
                "Attributes.ChannelSubType": {
                  "DimensionType": "INCLUSIVE",
                  "Values": ["connect:SMS"]
                },
                "Events.TEXT_CARRIER_BLOCKED.EventType": {
                  "DimensionType": "INCLUSIVE",
                  "Values": ["TEXT_CARRIER_BLOCKED"]
                }
              }
            }
          ]
        }
      ]
    },
    "Launched": false
  }
```

## Attributs calculés de commandes par défaut
<a name="customerprofiles-default-calculated-attributes-order"></a>

Amazon Connect Customer Profiles fournit des attributs par défaut aux out-of-the boîtes en fonction des commandes. Les attributs sont les suivants :

**Nombre de commandes**

```
{
    "CalculatedAttributeName": "_orders_count",
    "DisplayName": "Count of orders",
    "Description": "Returns the count of orders for a customer.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "OrderId"
        }
      ],
      "Expression": "{_order.OrderId}"
    },
    "Statistic": "COUNT",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold":null
    },
    "Launched": false
  }
```

**Date de création de la première commande**

```
{
    "CalculatedAttributeName": "_order_first_occurrence",
    "DisplayName": "First order created date",
    "Description": "Returns created date of the customer's first order.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "CreatedDate"
        }
      ],
      "Expression": "{_order.CreatedDate}"
    },
    "Statistic": "FIRST_OCCURRENCE",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Launched": false
  }
```

**Date de création de la dernière commande**

```
{
    "CalculatedAttributeName": "_order_last_occurrence",
    "DisplayName": "Last order created date",
    "Description": "Returns created date of the customer's last order.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "CreatedDate"
        }
      ],
      "Expression": "{_order.CreatedDate}"
    },
    "Statistic": "LAST_OCCURRENCE",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Launched": false
  }
```

**Prix total de toutes les commandes**

```
{
    "CalculatedAttributeName": "_orders_total_price_sum",
    "DisplayName": "Total price of all orders",
    "Description": "Returns sum of total price for all customer's orders.",
    "Statistic": "SUM",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "TotalPrice"
        }
      ],
      "Expression": "{_order.TotalPrice}"
    },
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold":null
    },
    "Launched": false
  }
```

**Moyenne des commandes par rapport au prix total**

```
{
    "CalculatedAttributeName": "_orders_total_price_average",
    "DisplayName": "Orders average of total price",
    "Description": "Returns average of total price for all customer's orders.",
    "AttributeDetails": {
      "Attributes": [
        {
          "Name": "TotalPrice"
        }
      ],
      "Expression": "{_order.TotalPrice}"
    },
    "Statistic": "AVERAGE",
    "Conditions": {
      "Range": null,
      "ObjectCount": null,
      "Threshold": null
    },
    "Launched": false
  }
```

# Messages d’erreur et résolutions pour les attributs calculés des Profils des clients Amazon Connect
<a name="customerprofiles-calculated-attributes-troubleshooting"></a>

Le tableau suivant indique les messages d’erreur des attributs calculés, la cause et la résolution de chaque erreur.


| Message d’erreur | Cause | Résolution | 
| --- | --- | --- | 
| La récupération d’un attribut calculé pour un profil affiche une valeur null | Cela est probablement dû au fait que l’attribut calculé ne contient pas de données. Après la création d’un attribut calculé, de nouvelles données doivent être ingérées. | Ingérez de nouvelles données ou réingérez d'anciennes données via les intégrations ou le et. CreateProfile PutProfileObject APIs | 