

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.

# Permiso para que los clientes reanuden las conversaciones de chat en Amazon Connect
<a name="chat-persistence"></a>

A menudo, los clientes inician un chat, abandonan la conversación y vuelven más tarde para seguir charlando. Esto puede ocurrir muchas veces en el transcurso de varios días, meses o incluso años. Para soportar chats de larga duración como estos, se habilita el chat persistente. 

Con el chat persistente, los clientes pueden reanudar conversaciones anteriores manteniendo el contexto, los metadatos y las transcripciones. No es necesario que repitan lo que han dicho cuando vuelven a un chat y los agentes tienen acceso a todo el historial de la conversación. 

## Rehidratación del chat
<a name="rehydration"></a>

El chat persistente se logra mediante un proceso denominado rehidratación del chat. Este proceso permite recuperar y mostrar las transcripciones del chat de contactos anteriores. Permite a los clientes y agentes continuar fácilmente las conversaciones en el punto donde las dejaron.

**importante**  
Solo las sesiones de chat que hayan finalizado pueden rehidratarse en una nueva sesión de chat, ya que la generación de transcripciones se produce de forma asíncrona.   
Los usuarios deben esperar entre 30 y 60 segundos antes de intentar la rehidratación desde un chat finalizado anteriormente.

Amazon Connect admite dos tipos de rehidratación:
+ `ENTIRE_PAST_SESSION`: inicia una nueva sesión de chat y rehidrata todos los segmentos de chat de sesiones de chat anteriores.
+ `FROM_SEGMENT`: inicia una nueva sesión y se rehidrata a partir del segmento de chat anterior especificado.

Para ver ejemplos de casos de uso que muestran estos distintos modos de rehidratación, consulte [Ejemplos de casos de uso](#persistentchatscenario).

## RelatedContactId
<a name="relatedcontactid"></a>

Un nuevo contacto puede tener una asociación con un contacto existente a través de `RelatedContactId`. Este nuevo contacto contiene una copia de las [propiedades](connect-attrib-list.md) del contacto relacionado.

Para obtener más información sobre cómo se modela `RelatedContactId` en los registros de contacto, consulte [Modelo de datos para los registros de contactos de Amazon Connect](ctr-data-model.md).

En el caso de chat persistente, `RelatedContactId` muestra lo que `contactId` utiliza para generar la rehidratación del chat.

## Habilitación del chat persistente
<a name="enable-persistent-chat"></a>

Es posible activar el chat persistente de dos formas:
+ Especificar un ID de contacto anterior al crear un nuevo chat. Para obtener instrucciones, consulte [Habilitación del chat persistente al crear un nuevo contacto de chat](#enable-persistent-chat-creating-new-chat-contact).
+ Agregar el bloque [Crear una asociación de contactos persistente](create-persistent-contact-association-block.md) a un flujo. Para obtener instrucciones, consulte [Habilitación del chat persistente dentro de un flujo de contactos](#enable-persistent-chat-within-contact-flow).

**nota**  
Puede elegir uno de estos dos métodos para que los chats sean persistentes, pero no ambos. Es decir, solo puede habilitar la persistencia de un `SourceContactID` en un chat nuevo cada vez.

Para ofrecer experiencias de chat persistente, debe proporcionar un ID de contacto anterior al iniciar un chat nuevo o al usar el bloque de flujo [Crear una asociación de contactos persistente](create-persistent-contact-association-block.md). Esto no se hace de forma automática. Le recomendamos que cree un repositorio para almacenar los datos de registro de contacto. El repositorio le permite recuperar esos datos para cada uno de sus clientes. 

 Hay dos formas de crear entradas en un repositorio: 
+ Utilizar la [transmisión de mensajes de chat](https://docs.aws.amazon.com/connect/latest/adminguide/chat-message-streaming.html) para crear una entrada cuando el chat haya terminado.
+ Inspeccionar los [eventos de contacto](https://docs.aws.amazon.com/connect/latest/adminguide/contact-events.html#contact-events-data-model) y utilizar la [función de AWS Lambda](https://docs.aws.amazon.com/connect/latest/adminguide/connect-lambda-functions.html) para crear entradas en su repositorio. 

Una vez configurado el repositorio, puede recuperar el ID de contacto anterior del cliente y proporcionarlo al iniciar un nuevo chat o dentro del bloque de flujo [Crear una asociación de contactos persistente](create-persistent-contact-association-block.md).

Además, asegúrese de que las transcripciones de los chats anteriores se puedan recuperar del bucket de Amazon S3 de su instancia. Los dos factores siguientes impiden que Amazon Connect recupere las transcripciones y no permiten que los chats persistan:
+ Usar varios buckets de transcripciones de chat.
+ Cambiar el nombre del archivo de transcripción de chat que genera Amazon Connect.

### Habilitación del chat persistente al crear un nuevo contacto de chat
<a name="enable-persistent-chat-creating-new-chat-contact"></a>

Para configurar experiencias de chat persistentes al crear un nuevo contacto de chat, introduce lo anterior `contactId` en el `SourceContactId` parámetro de la [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API. Esto permite rehidratar las transcripciones de chat de contactos anteriores. Tanto el cliente como el agente pueden ver las transcripciones en el chat. Para ver un ejemplo, consulta [Ejemplos de casos de uso](#persistentchatscenario).

### Habilitación del chat persistente dentro de un flujo de contactos
<a name="enable-persistent-chat-within-contact-flow"></a>

Para configurar experiencias de chat persistentes en un flujo:

1. Una vez creado un contacto de chat, añada el bloque [Crear una asociación de contactos persistente](create-persistent-contact-association-block.md) al flujo.

1. Utilice un atributo definido por el usuario para especificar un ID de contacto de origen.

Como alternativa, puedes usar la [CreatePersistentContactAssociation](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreatePersistentContactAssociation.html)API para proporcionar un identificador de contacto de origen y hacer que el chat actual sea persistente.

La rehidratación se inicia una vez iniciado el chat, cuando se utiliza el bloque de flujo o la API. Se emite un evento de rehidratación para avisarle cuando se ha completado la rehidratación.

## Ejemplos de casos de uso
<a name="persistentchatscenario"></a>

Por ejemplo, un cliente inicia una sesión de chat:

1. El agente a1 acepta el chat y comienza la conversación entre el cliente y el agente a1. Este es el primer contacto creado en la sesión de chat actual. Por ejemplo, `contactId` **C1** podría ser 11111111-aaaa-bbbb-1111-1111111111111. 

1. A continuación, el agente a1 transfiere el chat al agente a2. Esto crea otro contacto. Por ejemplo, `contactId` **C2** podría ser 2222222-aaaa-bbbb-2222-222222222222222. 

1. El agente a2 finaliza el chat.

1. El cliente se reenvía al flujo de desconexión para una encuesta posterior al chat que crea otro contacto. Por ejemplo, `contactId` **C3** podría ser 33333333-aaaa-bbbb-3333-3333333333333.

1. Aparece la encuesta posterior al chat y finaliza la sesión de chat. 

1. Más tarde, el cliente regresa y desea reanudar su sesión de chat anterior.

En este punto, existen dos posibles casos de uso diferentes para el cliente. A continuación, se exponen los casos de uso del chat persistente que puede tener el cliente y cómo configurar Amazon Connect para proporcionárselos.

### Caso de uso 1
<a name="persistentchatscenario-usecase1"></a>

El cliente desea continuar con su sesión de chat anterior, pero desea ocultar la encuesta posterior al chat. Utilice la siguiente configuración para proporcionar esta experiencia. 

**Solicitud:**

```
PUT /contact/chat HTTP/1.1
Content-type: application/json
{
   "Attributes": { 
      "string" : "string" 
   },
   "ContactFlowId": "string",
   "InitialMessage": { 
      "Content": "string",
      "ContentType": "string"
   },
   "InstanceId": "string",
   ... // other chat fields
     
   // NEW Attribute for persistent chat 
   "PersistentChat" : {
       "SourceContactId":"2222222-aaaa-bbbb-2222-222222222222222" 
       "RehydrationType":"FROM_SEGMENT"
   }
}
```

#### Configuración
<a name="usecase1-configuration"></a>
+ SourceContactId = 2222222-aaaa-bbbb-222222222222222 (el ContactiD de C2)
+ RehydrationType = "`FROM_SEGMENT`"

#### Comportamiento esperado
<a name="usecase1-behavior"></a>
+ Esta configuración inicia una sesión de chat persistente a partir del contacto C2 finalizado especificado (por ejemplo, 2222222-aaaa-bbbb-2222-222222222222222). 

  Las transcripciones de las sesiones de chat anteriores C2 (2222222-aaaa-bbbb-2222-222222222222222) y C1 (11111111-aaaa-bbbb-1111-1111111111111) son accesibles en la sesión de chat persistente actual. Tenga en cuenta que el segmento de chat C3 (33333333-aaaa-bbbb-3333-3333333333333) se elimina de la sesión de chat persistente.
+ En este caso, la respuesta devuelve C2 (2222222-aaaa-bbbb-2222-222222222222222) como "». [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)ContinuedFromContactId
+ El `RelatedContactId` de esta sesión de chat persistente es 2222222-aaaa-bbbb-2222-222222222222222 (C2).

### Caso de uso 2
<a name="persistentchatscenario-usecase2"></a>

El cliente desea continuar la sesión de chat anterior y ver la transcripción de toda la interacción pasada (y no desea ocultar la encuesta posterior al chat). Utilice la siguiente configuración para proporcionar esta experiencia. 

**nota**  
 Para el tipo de rehidratación `ENTIRE_PAST_SESSION`, especifique como atributo `SourceContactId` el primer contacto (`contactId` inicial) de la última sesión de chat.

**Solicitud:**

```
PUT /contact/chat HTTP/1.1
Content-type: application/json
{
   "Attributes": { 
      "string" : "string" 
   },
   "ContactFlowId": "string",
   "InitialMessage": { 
      "Content": "string",
      "ContentType": "string"
   },
   "InstanceId": "string",
   ... // other chat fields
     
   // NEW Attribute for persistent chat 
   "PersistentChat":{
        "SourceContactId":"11111111-aaaa-bbbb-1111-1111111111111" // (first contactId C1)
        "RehydrationType":"ENTIRE_PAST_SESSION"
   }
}
```

#### Configuración
<a name="usecase2-configuration"></a>
+ SourceContactId = (C1) `11111111-aaaa-bbbb-1111-1111111111111`
+ RehydrationType = «E`NTIRE_PAST_SESSION`»

#### Comportamiento esperado
<a name="usecase2-behavior"></a>
+ Esto inicia una sesión de chat persistente a partir del último contacto de chat finalizado (C3). Las transcripciones de las sesiones de chat anteriores C3, C2 y C1 son accesibles en la sesión de chat persistente actual.
+ En este caso, la [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)respuesta devuelve 33333333-aaaa-bbbb-3333-3333333333333 (C3) como "». ContinuedFromContactId
+ El `RelatedContactId` de esta sesión de chat persistente es 33333333-aaaa-bbbb-3333-3333333333333 (C3)

**nota**  
Los vínculos de chat son acumulativos. Una vez vinculadas, las sesiones de chat se transfieren.  
Por ejemplo, si un contacto (`contactId` C2) que pertenece a una sesión de chat pasada estaba vinculado a un contacto (`contactId` C1) de una sesión de chat pasada diferente, una nueva sesión de chat persistente creada mediante la vinculación de C2 da lugar también a la vinculación implícita de C1. La nueva sesión de chat persistente tendrá la siguiente vinculación: C3 → C2 → C1  
El ContactiD anterior, desde el que continúa la sesión de chat persistente, se expone en `ContinuedFromContactId` el campo de la respuesta de la API. [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html) También está en el campo RelatedContactId del [registro](ctr-data-model.md#ctr-ContactTraceRecord) del contacto

## Cómo acceder a la transcripción de los contactos anteriores de un chat persistente
<a name="access-past-chat-transcript"></a>

El acceso a la transcripción del chat anterior para el chat persistente utiliza el modelo de paginación `NextToken` existente. La llamada inicial a una [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)sesión de chat persistente recién iniciada contiene un `NextToken` en la respuesta, si existen mensajes de chat anteriores. `NextToken`debe usarse para acceder a la transcripción del chat anterior y configurarlo `BACKWARD` en la siguiente [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)llamada `ScanDirection` para buscar los mensajes de chat anteriores. 

Si hay varios mensajes de chat anteriores, [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)devuelve uno nuevo `NextToken` y se puede repetir el mismo proceso para recuperar más transcripciones de chat anteriores.

## No se admite: el uso de filtros `StartPosition` y `contactId` para el chat persistente
<a name="startposition"></a>

Amazon Connect no admite el uso de atributos de `StartPosition` los elementos de la transcripción que provienen del [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)chat anterior ni los `contactId` filtra en función de los atributos de los elementos de la transcripción. 