

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.

# Transferencia de atributos de contacto a un agente en el Panel de control de contacto (CCP) cuando se inicia un chat
<a name="pass-contact-attributes-chat"></a>

Puede utilizar [atributos de contacto](what-is-a-contact-attribute.md) para capturar información sobre el contacto que utiliza el widget de comunicaciones. A continuación, puede mostrar esa información al agente a través del Panel de control de contacto (CCP) o utilizarla en cualquier otra parte del flujo.

Por ejemplo, puede personalizar su flujo para que diga el nombre del cliente en su mensaje de bienvenida. O bien, puedes usar atributos específicos de tu empresa, como identificadores de clientes account/member IDs, como nombres y correos electrónicos, u otros metadatos asociados a un contacto.

## Cómo transferir los atributos de contacto al widget de comunicaciones
<a name="how-to-contact-attributes-chatwidget"></a>

1. Habilite la seguridad en el widget de comunicaciones, tal como se describe en [Adición de una interfaz de usuario de chat al sitio web alojado en Amazon Connect](add-chat-to-website.md), si aún no lo ha hecho:

   1. En el paso 2, en **Agregar seguridad para su widget de chat**, elija **Sí**.

   1. En el paso 3, utilice la clave de seguridad para generar los tokens web JSON.

1. Agregue los atributos de contacto a la carga de su JWT como solicitud `attributes`.

   A continuación, se muestra un ejemplo de cómo podría generar un JWT con atributos de contacto en Python:
**nota**  
Es un requisito previo que JWT esté instalado. Para instalarlo, ejecute `pip install PyJWT` en su terminal.

   ```
   import jwt 
   import datetime 
   CONNECT_SECRET = "{{your-securely-stored-jwt-secret}}" 
   WIDGET_ID = "widget-id" 
   JWT_EXP_DELTA_SECONDS = 500
   
   payload = { 
   'sub': WIDGET_ID, 
   'iat': datetime.datetime.utcnow(), 
   'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=JWT_EXP_DELTA_SECONDS), 
   'segmentAttributes': {"connect:Subtype": {"ValueString" : "connect:Guide"}}, 'attributes': {"name": "Jane", "memberID": "123456789", "email": "Jane@example.com", "isPremiumUser": "true", "age": "45"} } 
   header = { 'typ': "JWT", 'alg': 'HS256' } 
   encoded_token = jwt.encode((payload), CONNECT_SECRET, algorithm="HS256", headers=header) // CONNECT_SECRET is the security key provided by Amazon Connect
   ```

   En la carga, debe crear una clave de cadena `attributes` (tal cual, todo en minúsculas), con un objeto como valor. Ese objeto debe tener pares string-to-string clave-valor. Si se pasa algo distinto a una cadena en cualquiera de los atributos, el chat no se iniciará. 

   Los atributos de contacto deben seguir las limitaciones establecidas por la [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html#connect-StartChatContact-request-Attributes)API: 
   + Las claves deben tener una longitud mínima de 1
   + Los valores pueden tener una longitud mínima de 0

Si lo desea, puede añadir la cadena SegmentAttributes al mapa de [SegmentAttributeValue](https://docs.aws.amazon.com/connect/latest/APIReference/API_SegmentAttributeValue.html)objetos, en la carga útil. Los atributos son atributos estándar. Connect Customer Se puede acceder a ellos en los flujos. Los atributos de contacto deben seguir las limitaciones establecidas por la [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html#connect-StartChatContact-request-SegmentAttributes)API.

## Método alternativo: pasar los atributos de contacto directamente desde un fragmento de código
<a name="pass-attributes-directly"></a>

**nota**  
El código del fragmento añade `HostedWidget-` al principio de todas las claves de atributos de contacto que transfiere. En el siguiente ejemplo, el agente verá el par clave-valor `HostedWidget-foo: 'bar'`.
Aunque estos atributos están definidos con el prefijo `HostedWidget-`, se pueden modificar en el sitio del cliente. Utilice la configuración JWT si necesita información confidencial o datos no modificables en el flujo. 

En el ejemplo siguiente, se muestra cómo transferir atributos de contacto directamente desde el código del fragmento sin activar la seguridad del widget. 

```
<script type="text/javascript">
  (function(w, d, x, id){ /* ... */ })(window, document, 'amazon_connect', '{{widgetId}}');
  amazon_connect('snippetId', '{{snippetId}}');
  amazon_connect('styles', /* ... */);
  // ...

  amazon_connect('contactAttributes', {
   {{foo}}: '{{bar}}'
  })
<script/>
```

### Uso de los atributos en los flujos
<a name="contact-flow-usage-chat"></a>

El bloque de flujo [Comprobar atributos de contacto](check-contact-attributes.md) proporciona acceso a estos atributos a través del espacio de nombres **Definido por el usuario**, como se muestra en la siguiente imagen. Puede utilizar el bloque de flujo para añadir una lógica de ramificación. La ruta completa es `$.Attributes.HostedWidget-{{attributeName}}`.

![Imagen que muestra un bloque de flujo que se deriva a las peticiones Válido y No válido.](http://docs.aws.amazon.com/es_es/connect/latest/adminguide/images/flow-check-contact-attrib.png)


## Qué debe saber
<a name="contact-attributes-chatwidget-important-notes"></a>
+ El widget de comunicaciones tiene un límite de 6144 bytes para todo el token codificado. Como JavaScript utiliza la codificación UTF-16, se utilizan 2 bytes por carácter, por lo que el tamaño máximo `encoded_token` debe ser de unos 3000 caracteres.
+ Se debe transferir el encoded\_token a `callback(data)`. El fragmento `authenticate` no necesita ningún cambio adicional. Por ejemplo:

  ```
  amazon_connect('authenticate', function(callback) {
    window.fetch('/token').then(res => {
      res.json().then(data => {
        callback(data.data);
      });
    });
  });
  ```
+ El uso de un JWT para transferir los atributos de contacto garantiza la integridad de los datos. Si protege el secreto compartido y sigue las prácticas de seguridad adecuadas, puede contribuir a garantizar que una persona malintencionada no pueda manipular los datos.
+ Los atributos de contacto solo están codificados en el JWT, no cifrados, por lo que es posible descodificarlos y leerlos.
+ Si desea probar la experiencia de chat con la [experiencia de chat simulada](chat-testing.md#test-chat) e incluir atributos de contacto, asegúrese de encerrar tanto la clave como el valor entre comillas, como se muestra en la siguiente imagen.  
![La página de configuración de la prueba, una clave de atributo de contacto entre comillas, un valor entre comillas.](http://docs.aws.amazon.com/es_es/connect/latest/adminguide/images/test-chat-contact-attributes.png)