

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á.

# Personalizar experiências de fluxo de chat do Amazon Connect integrando participantes personalizados
<a name="chat-customize-flow"></a>

Você pode integrar outras soluções, como bots, ao chat do Amazon Connect para criar experiências personalizadas de fluxo de chat.

Veja a seguir uma visão geral de como você pode personalizar a experiência de fluxo de chat. Implemente essas etapas para cada segmento de chat após o início da conversa. Recomendamos adicionar um [Função AWS Lambda ](invoke-lambda-function-block.md) bloco para ligar para o APIs em seu fluxo de bate-papo. 

**Importante**  
Adicione um bloco [Play prompt (Reproduzir aviso)](play.md) antes de um bloco [Função AWS Lambda ](invoke-lambda-function-block.md). Isso é necessário somente quando um bloco **Invoke AWS Lambda** é o primeiro bloco em seu fluxo de bate-papo de entrada.

1.  [Ative a transmissão em tempo real de mensagens de chat](chat-message-streaming.md). 

1. Ligue para a [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)API do Amazon Connect para adicionar um participante personalizado (`ParticipantRole`=`CUSTOM_BOT`) ao contato do chat.

   1. Para obter informações sobre como criar o cliente SDK para chamar o Amazon Connect APIs, consulte os seguintes tópicos:
      + [Classe AmazonConnectClientBuilder](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/connect/AmazonConnectClientBuilder.html)
      + [Criar clientes de serviço](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/creating-clients.html)

   1. Guarde o `ParticipantToken` que foi obtido de [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)para ligar [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html). `CreateParticipantConnection`retorna um`ConnectionToken`, que você pode usar para ligar para outro participante do Amazon Connect APIs. 

      Ao ligar [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)para criar uma conexão para um participante personalizado:
      + Defina `ConnectParticipant` como `True` para marcar o participante personalizado como conectado para transmissão de mensagens.
      + Entre `Type` em contato `CONNECTION_CREDENTIALS` com o Amazon Connect Participant Service subsequente APIs.
      + `CreateParticipantConnection` deve ser chamado dentro de 15 segundos após a chamada de `CreateParticipant`.

1. Depois que o participante é adicionado ao contato, ele pode trocar mensagens com o cliente usando o Amazon Connect Participant Service APIs.

1. Para desconectar o participante, chame a [ DisconnectParticipant](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_DisconnectParticipant.html)API. 

**nota**  
Um participante personalizado não pode ser adicionado a um chat quando um atendente ou bot do Amazon Lex já está presente no contato. 
Um participante personalizado será desconectado quando um atendente ou bot do Amazon Lex entrar em um contato.
Somente um participante personalizado pode estar presente em um contato.
Um participante personalizado não tem permissão para acessar os anexos que um cliente possa carregar.

Recomendamos configurar por quanto tempo um participante personalizado pode conversar com um contato:
+ Defina a propriedade **Tempo limite** no bloco [Aguardar](wait.md) para `ParticipantRole` = `CUSTOM_BOT`.
+ Se o participante do bot personalizado não for desconectado antes do tempo limite, o contato será encaminhado para a ramificação **Tempo expirado**. Isso permite que você decida qual bloco executar em seguida para resolver a consulta do cliente.

**nota**  
Se um contato for encaminhado pela ramificação **Tempo expirado**, ele não será desconectado do contato. Você deve chamar a [ DisconnectParticipant](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_DisconnectParticipant.html)API para desconectar o participante.

## Ativar temporizadores para clientes que estão associados a um participante personalizado
<a name="integrate-bot-extension-client"></a>

Você pode ativar temporizadores em clientes que estão associados a participantes personalizados, como bots personalizados. Isso permite que você detecte quando um cliente para de responder para que você possa encerrar a conversa do bot e realizar a próxima etapa do fluxo. Ao encerrar participantes inativos, é possível reduzir o número de chats abertos em que há um cliente não responsivo interagindo com um participante personalizado.

Execute as etapas a seguir para integrar uma extensão de bot personalizada de participante inativo e, opcionalmente, definir valores de temporizador personalizados. Essas etapas partem do pressuposto de que você já usa o recurso de participantes personalizados no chat. 

1. Antes de o participante personalizado entrar no chat, invoque a [UpdateParticipantRoleConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateParticipantRoleConfig.html)API para o cliente.

   1. Os temporizadores são ativados somente para o cliente. Os participantes personalizados não têm temporizadores de participante inativo ou de desconexão automática. 

   1. Você pode escolher o método para invocar a API. 

   1. Os valores do temporizador configurados nesta etapa permanecem ativos pela duração do chat. Se você quiser valores de temporizador diferentes para a **interação entre o cliente e o atendente**, consulte a Etapa 2. 

   1. Se o cliente já estiver configurado dessa forma, você não precisa realizar nenhuma outra ação adicional para integrar o participante personalizado. 

1. (Opcional) Para configurar temporizadores e valores de temporizador que sejam diferentes durante a **interação entre o cliente e o atendente** e durante a **interação entre o cliente e o participante personalizado**:
   + Antes de o agente entrar no chat, invoque a [UpdateParticipantRoleConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateParticipantRoleConfig.html)API novamente com as configurações desejadas.

Para obter mais informações sobre os temporizadores de chat, consulte [Configurar tempos limite de chat para participantes do chat](setup-chat-timeouts.md).

### Iniciar os temporizadores
<a name="starting-timers"></a>

Um cronômetro começa para o cliente depois que o participante personalizado estabelece uma conexão com ele usando a [CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html)API.

### O que acontece quando participantes não compatíveis entram em um chat com um participante personalizado
<a name="non-compatible-participants"></a>

A seguir, explicamos o que acontece quando um atendente ou participante do bot Lex entra em um chat com um participante personalizado, mas não ele não é um participante compatível: 

1. O participante personalizado é automaticamente desconectado do chat. 

1. Todos os temporizadores anteriormente ativos são encerrados e novos temporizadores são criados para os participantes conectados (se os temporizadores estiverem configurados).

1. Cada novo temporizador também é atualizado com a configuração mais recente (se necessário). Isso efetivamente estabelece uma nova “sessão ociosa” para o novo conjunto de participantes ativos no chat.

### Interação com o temporizador do bloco de espera
<a name="interaction-wait-block-timer"></a>

O temporizador de tempo ocioso não afeta o funcionamento do bloco [Aguardar](wait.md). 

O temporizador do bloco de **Espera** que começa quando o contato do chat entra em um bloco de **Espera** continua funcionando. Se o temporizador do bloco de **Espera** expirar, o contato retoma o fluxo e é encaminhado para a ramificação **Tempo expirado**, independentemente se há um temporizador de participante ocioso ativo ou não.

## Dicas de solução de problemas
<a name="ts-chat-custom-bot"></a>
+ `ResourceNotFoundException`: 

  Se você receber uma `ResourceNotFoundException` para o participante personalizado ao chamar a API `CreateParticipantConnection`, verifique se a API `CreateParticipantConnection` foi chamada dentro de 15 segundos após a API `CreateParticipant`.
+ `AccessDeniedException`: 

  Se você receber um erro `AccessDeniedException` e o perfil do participante for CUSTOM\$1BOT, isso indica que o bot está tentando acessar os anexos. O perfil de participante CUSTOM\$1BOT não tem permissão para acessar os anexos que os clientes carregam.