

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación de una definición de atributo calculado personalizada para Perfiles de clientes de Amazon Connect
<a name="customerprofiles-calculated-attributes-creating-definition"></a>

Con la [CreateCalculatedAttributeDefinition](https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateCalculatedAttributeDefinition.html)API de perfiles de clientes, puede crear mediante programación su propio atributo calculado a partir de un tipo de objeto personalizado.

En este tema mostramos cómo crear un atributo calculado mediante un archivo JSON personalizado.

## Paso 1: crear un archivo JSON
<a name="step1-calculate-attribute-api"></a>

Cree un archivo JSON con el siguiente contenido:

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

Para personalizar el código JSON con sus propios valores, siga estas indicaciones:
+ **Attributes**: debe contener el nombre del campo del tipo de objeto que desea utilizar para el atributo calculado. Se admiten dos atributos a los que se haga referencia en esta lista.
+ **Expression**: se admiten expresiones matemáticas básicas para realizarlas entre atributos. Si solo tiene un atributo, este campo debería ser `{ObjectTypeName.AttributeName}`; de lo contrario, si tiene en mente una expresión matemática, este campo debe contener ambos atributos.
+ **Estadística**: es la operación que se realiza cuando se llama a uno de los cálculos APIs que realmente realizan la operación de agregación. La mayoría se explican por sí mismas, pero hemos agregado explicaciones para las que no lo son. 

  **Estadísticas admitidas**
  + `FIRST_OCCURRENCE` devuelve el atributo especificado en la expresión del primer objeto ingerido.
  + `LAST_OCCURRENCE` devuelve el atributo especificado en la expresión del último objeto ingerido.
  + `COUNT` devuelve el recuento de los datos seleccionados.
  + `SUM` devuelve la suma de los datos seleccionados.
  + `MINIMUM` devuelve el mínimo de los datos seleccionados.
  + `MAXIMUM` devuelve el máximo de los datos seleccionados.
  + `AVERAGE` devuelve el promedio de los datos seleccionados.
  + `MAX_OCCURRENCE` devuelve el valor que aparece con más frecuencia especificado en la expresión.
+ **Rango**:
  + Units: actualmente solo admiten unidades DIARIAS.
  + ValueRange: especifique números positivos en los campos ValueRange de inicio o fin para indicar desde cuántos días empezará y números negativos para indicar cuántos días en el futuro empezará.
  + TimestampSource: una expresión que especifica el campo del objeto JSON a partir del cual se debe analizar la fecha. La expresión debe seguir la estructura de\$1 "\$1ObjectTypeName. <Location of timestamp field in JSON pointer format>\$1\$1». Por ejemplo, si tu tipo de objeto es JSON MyType y la fuente es JSON`{"generatedAt": {"timestamp": "1737587945945"}}`, entonces TimestampSource debería serlo`"{MyType.generatedAt.timestamp}"`.
+ **ObjectCount**: Indica en cuántos objetos debe basarse el cálculo del atributo calculado.
+ **Threshold**: si en lugar del valor exacto del atributo calculado quiere saber si, por ejemplo, es mayor que un valor determinado, puede utilizar un umbral.

  El valor de umbral puede ser cualquier cadena y se admiten los siguientes operadores de umbral.
  + `GREATER_THAN`
  + `LESS_THAN`
  + `EQUAL_TO`
  + `NOT_EQUAL_TO`
+ UseHistoricalData: Si los datos históricos ingeridos antes de crear el atributo calculado deben incluirse en los cálculos.

## Paso 2: Llama a la API CreateCalculatedAttributeDefinition
<a name="step2-calculated-attribute-api"></a>

Una vez que haya creado y personalizado el archivo JSON con sus valores, llame a la [CreateCalculatedAttributeDefinition](https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateCalculatedAttributeDefinition.html)API, como se muestra en el siguiente ejemplo:

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

También puede utilizar el siguiente punto de conexión:

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