

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Permitir que os clientes retomem conversas de chat no Amazon Connect
<a name="chat-persistence"></a>

Os clientes geralmente iniciam um chat, depois saem da conversa e retornam mais tarde para continuar conversando. Isso pode acontecer muitas vezes ao longo de vários dias, meses ou até anos. Para oferecer suporte a chats de longa duração como esses, habilite o chat persistente. 

Com o chat persistente, os clientes podem retomar conversas anteriores com o contexto, os metadados e as transcrições transferidos. Eles não precisam se repetir quando retornam ao chat, e os atendentes têm acesso a todo o histórico de conversas. 

## Reidratação do chat
<a name="rehydration"></a>

O chat persistente é obtido por meio de um processo chamado reidratação do chat. Esse processo permite que as transcrições de chat sejam recuperadas de contatos de chat anteriores e exibidas. Ele permite que clientes e atendentes continuem as conversas de onde pararam com facilidade.

**Importante**  
Somente as sessões de chat que terminaram podem ser reidratadas em uma nova sessão de chat, pois a geração da transcrição ocorre de forma assíncrona.   
Os usuários devem esperar de 30 a 60 segundos antes de tentar se reidratar de um chat encerrado anteriormente.

Amazon Connect suporta dois tipos de reidratação:
+ `ENTIRE_PAST_SESSION`: inicia uma nova sessão de chat e reidrata todos os segmentos de chat de sessões anteriores.
+ `FROM_SEGMENT`: inicia uma nova sessão e se reidrata a partir do segmento de chat anterior especificado.

Por exemplo, casos de uso que mostram esses diferentes modos de reidratação, consulte [Exemplo de casos de uso](#persistentchatscenario).

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

Um novo contato pode ter uma associação com um contato existente por meio do `RelatedContactId`. Esse novo contato contém uma cópia das [propriedades do contato](connect-attrib-list.md) relacionado.

Para obter mais informações sobre como o `RelatedContactId` é modelado em registros de contato, consulte [Modelo de dados para registros de contato do Amazon Connect](ctr-data-model.md).

Para um chat persistente, `RelatedContactId` mostra o `contactId` usado para reidratar o chat.

## Como habilitar o chat persistente
<a name="enable-persistent-chat"></a>

É possível habilitar o chat persistente de duas maneiras:
+ Especifique um ID de contato anterior ao criar um chat. Para instruções, consulte [Habilitar o chat persistente ao criar um contato de chat](#enable-persistent-chat-creating-new-chat-contact).
+ Adicione o bloco [Criar associação de contato persistente](create-persistent-contact-association-block.md) a um fluxo. Para instruções, consulte [Habilitar o chat persistente em um fluxo](#enable-persistent-chat-within-contact-flow).

**nota**  
Você pode escolher qualquer um dos métodos para manter os chats, mas não os dois. Ou seja, você só pode habilitar a persistência de um `SourceContactID` em um novo chat uma vez.

Para oferecer experiências de chat persistentes, você precisa fornecer um ID de contato anterior ao iniciar um novo chat ou ao usar o bloco de fluxo [Criar uma associação de contato persistente](create-persistent-contact-association-block.md). Isso não é feito automaticamente para você. Recomendamos que você crie um repositório para armazenar dados de registros de contatos. O repositório permite a recuperação desses dados para cada cliente. 

 Há duas maneiras de criar entradas em um repositório: 
+ Use a [transmissão de mensagens de chat](https://docs.aws.amazon.com/connect/latest/adminguide/chat-message-streaming.html) para criar uma entrada quando um chat terminar.
+ Inspecione os [eventos de contato](https://docs.aws.amazon.com/connect/latest/adminguide/contact-events.html#contact-events-data-model) e use a [função do AWS Lambda](https://docs.aws.amazon.com/connect/latest/adminguide/connect-lambda-functions.html) para criar entradas em seu repositório. 

Depois que um repositório é configurado, você pode recuperar o ID de contato anterior do cliente e fornecê-lo ao iniciar um novo chat ou dentro do bloco de fluxo [Criar uma associação de contato persistente](create-persistent-contact-association-block.md).

Além disso, verifique se as transcrições de chat anteriores podem ser recuperadas do bucket do Amazon S3 da instância. Os dois seguintes pontos impedem que o Amazon Connect recupere as transcrições e não permitem a persistência de chat:
+ O uso vários buckets de transcrição de chat.
+ A alteração do nome do arquivo de transcrição do chat que é gerado pelo Amazon Connect.

### Habilitar o chat persistente ao criar um contato de chat
<a name="enable-persistent-chat-creating-new-chat-contact"></a>

Para configurar experiências de bate-papo persistentes ao criar um novo contato de bate-papo, forneça o anterior `contactId` no `SourceContactId` parâmetro da [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API. Isso permite que as transcrições de chat de contatos anteriores sejam reidratadas. As transcrições são exibidas no chat tanto para o cliente quanto para o atendente. Para ver um exemplo, consulte [Exemplo de casos de uso](#persistentchatscenario).

### Habilitar o chat persistente em um fluxo
<a name="enable-persistent-chat-within-contact-flow"></a>

Como configurar experiências de chat persistente em um fluxo:

1. Depois de criar um contato de chat, adicione o bloco [Criar associação de contato persistente](create-persistent-contact-association-block.md) ao fluxo.

1. Use um atributo definido pelo usuário para especificar um ID de contato de origem.

Como alternativa, você pode usar a [CreatePersistentContactAssociation](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreatePersistentContactAssociation.html)API para fornecer uma ID de contato de origem para tornar o bate-papo atual persistente.

A reidratação é iniciada após o início do chat, ao usar o bloco de fluxo ou a API. Um evento de reidratação é emitido para notificar você quando a reidratação for concluída.

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

Por exemplo, um cliente inicia uma sessão de chat:

1. O atendente a1 aceita o chat e a conversa começa entre o cliente e o atendente a1. Esse é o primeiro contato criado na sessão de chat atual. Por exemplo, o `contactId` **C1** pode ser 11111111-aaaa-bbbb-1111-1111111111111. 

1. O atendente a1 então transfere o chat para o atendente a2. Isso cria outro contato. Por exemplo, `contactId` **C2** pode ser 2222222-aaaa-bbbb-2222-222222222222222. 

1. O atendente a2 encerra o chat.

1. O cliente é encaminhado para o fluxo de desconexão para uma pesquisa pós-chat que cria outro contato. Por exemplo, `contactId` **C3** pode ser 33333333-aaaa-bbbb-3333-3333333333333.

1. A pesquisa pós-chat é exibida e a sessão de chat termina. 

1. Posteriormente, o cliente retorna e deseja retomar a sessão de chat anterior.

Neste momento, há possivelmente dois casos de uso diferentes para o cliente. A seguir estão os casos de uso de chat persistente que o cliente pode ter e como você configura o Amazon Connect para fornecê-los.

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

O cliente quer continuar a última sessão de chat, mas quer ocultar a pesquisa pós-chat. Você usa a configuração a seguir para fornecer essa experiência. 

**Solicitação:**

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

#### Configuração
<a name="usecase1-configuration"></a>
+ SourceContactId = 2222222-aaaa-bbbb-2222-222222222222222 (o ContactID para C2)
+ RehydrationType = "`FROM_SEGMENT`"

#### Comportamento esperado
<a name="usecase1-behavior"></a>
+ Essa configuração inicia uma sessão de chat persistente a partir do contato final anterior especificado C2 (por exemplo, 2222222-aaaa-bbbb-2222222222222222222). 

  As transcrições das sessões de chat anteriores C2 (2222222-aaaa-bbbb-2222-2222222222222) e C1 (11111111-aaaa-bbbb-1111-1111111111111) estão acessíveis na sessão de chat persistente atual. Observe que o segmento de chat C3 (33333333-aaaa-bbbb-3333-33333333333) foi removido da sessão de chat persistente.
+ Nesse caso, a [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)resposta retorna C2 (2222222-aaaa-bbbb-2222-222222222222222) como "”. ContinuedFromContactId
+ O `RelatedContactId` desta sessão de chat persistente é 2222222-aaaa-bbbb-2222-222222222222222 (C2).

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

O cliente quer continuar a sessão de chat anterior e ver a transcrição de todo o engajamento anterior (e não quer ocultar a pesquisa pós-chat). Você usa a configuração a seguir para fornecer essa experiência. 

**nota**  
 Para o tipo de reidratação `ENTIRE_PAST_SESSION`, especifique o primeiro contato (`contactId` inicial) da última sessão de chat como o atributo `SourceContactId`.

**Solicitação:**

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

#### Configuração
<a name="usecase2-configuration"></a>
+ SourceContactId = `11111111-aaaa-bbbb-1111-1111111111111` (C1)
+ RehydrationType = “E`NTIRE_PAST_SESSION`”

#### Comportamento esperado
<a name="usecase2-behavior"></a>
+ Isso inicia uma sessão de chat persistente a partir do contato de chat encerrado mais recentemente (C3). As transcrições das sessões de chat anteriores C3, C2 e C1 estão acessíveis na sessão de chat persistente atual.
+ Nesse caso, a [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)resposta retorna 33333333-aaaa-bbbb-3333-3333333333333 (C3) como "”. ContinuedFromContactId
+ O `RelatedContactId` desta sessão de chat persistente é 33333333-aaaa-bbbb-3333-3333333333333 (C3)

**nota**  
Os links de chat são cumulativos. Depois que as sessões de chat são vinculadas, elas são transferidas.  
Por exemplo, se um contato (`contactId` C2) que pertence a uma sessão de chat anterior foi vinculado a um contato (`contactId` C1) de outra sessão de chat anterior, uma nova sessão de chat persistente criada pela vinculação de C2 também resultará na vinculação implícita de C1. A nova sessão de chat persistente terá o seguinte link: C3 → C2 → C1  
O contactiD anterior, a partir do qual a sessão de bate-papo persistente é continuada, é exposto no campo na `ContinuedFromContactId` [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)resposta da API. Também está no campo RelatedContactId no [registro de contato](ctr-data-model.md#ctr-ContactTraceRecord).

## Como acessar a transcrição de contatos de chat anteriores para um chat persistente
<a name="access-past-chat-transcript"></a>

O acesso à transcrição do chat anterior para chat persistente usa o modelo de paginação `NextToken` existente. A chamada inicial para [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)uma sessão de bate-papo persistente recém-iniciada contém um `NextToken` na resposta, se existirem mensagens de bate-papo anteriores. `NextToken`deve ser usado para acessar a transcrição do bate-papo anterior, além de definir o “`ScanDirection`to” `BACKWARD` na [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)chamada subsequente para buscar mensagens de bate-papo anteriores. 

Se houver várias mensagens de bate-papo anteriores, [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)retornará uma nova `NextToken` e o mesmo processo poderá ser repetido para obter mais transcrições de conversas anteriores.

## Não suportado: usar filtros `StartPosition` e `contactId` para chat persistente
<a name="startposition"></a>

Amazon Connect não suporta o uso `StartPosition` e `contactId` os filtros na [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)chamada de atributos do item de transcrição que são do bate-papo anterior. 