

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

# Criar bots de IA conversacional no Amazon Connect
<a name="connect-conversational-ai-bots"></a>

Você pode usar o site de Amazon Connect administração para criar, editar e melhorar continuamente os bots conversacionais de IA para respostas de voz interativas (IVR) e experiências de autoatendimento com chatbots. Os bots são alimentados pelo Amazon Lex.

Ao usar o site Amazon Connect administrativo, você pode oferecer experiências de IA dinâmicas e conversacionais para entender a intenção do seu cliente, fazer perguntas complementares e automatizar a resolução de seus problemas. Os tópicos desta seção explicam como habilitar a experiência de criação de bots no site Amazon Connect administrativo e como criar seu bot.

**Topics**
+ [Habilitar bots e analytics no Amazon Connect](enable-bot-building.md)
+ [Crie um bot](work-bot-building-experience.md)
+ [Criar um fluxo e adicionar o bot de IA conversacional](create-bot-flow.md)
+ [Configurar provedores de voz de terceiros](configure-third-party-speech-providers.md)
+ [Crie uma intenção do agente Connect AI](create-qic-intent-connect.md)
+ [Criar versões e aliases de bots](create-bot-version.md)
+ [Avaliar o desempenho do seu bot de IA conversacional](lex-bot-analytics.md)
+ [Métricas e analytics de bots](bot-metrics.md)
+ [Configuração avançada do bot](bot-advanced-config.md)
+ [Adicionar um bot do Amazon Lex](amazon-lex.md)

# Habilitar criação de bots e analytics no Amazon Connect
<a name="enable-bot-building"></a>

Conclua as etapas a seguir para permitir que os usuários criem bots Amazon Lex no site Amazon Connect administrativo e visualizem métricas sobre o desempenho dos bots.

Os usuários não podem editar bots LEX V1 nem bots interregionais no Amazon Connect.

1. Abra o [console do Amazon Connect](https://console.aws.amazon.com/connect/).

1. Selecione a instância do Amazon Connect que você deseja integrar ao bot do Amazon Lex.  
![\[Página Instâncias da central de atendimento virtual do Amazon Connect e o alias da instância.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/instance.png)

1. No menu de navegação, escolha **Fluxos**.

1. Escolha **Habilite o gerenciamento de bots do Lex no Amazon Connect**, **Habilitar analytics e transcrições de bot no Amazon Connect** e, depois, **Salvar**.  
![\[A página Bots do Amazon Lex, as opções para habilitar o gerenciamento e a analytics de bots do Lex no Amazon Connect.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lex-bot-service-linked-role.png)

   
**nota**  
Se você já tem as políticas de controle de serviços (SCP) existentes que bloqueiam o acesso ao Lex, o Amazon Connect respeita essas políticas e não habilita o recurso de gerenciamento e analytics de bots. No entanto, se você implementar essas políticas de SCP depois de já ter habilitado esse recurso, elas não serão respeitadas. Nesse caso, é necessário desabilitar esse recurso.

   O Amazon Connect exibe o perfil de serviço e o nome do perfil vinculado a serviços que usa. Ele usa políticas baseadas em recursos do Amazon Lex para fazer chamadas para o bot do Amazon Lex. Quando você associa um bot do Amazon Lex à instância do Amazon Connect, a política baseada em recursos do bot é atualizada para dar permissão ao Amazon Connect para invocar o bot. 

   Para acessar mais informações sobre as políticas baseadas em recursos do Amazon Lex, consulte [Políticas baseadas em recursos no Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/security_iam_service-with-iam.html#security_iam_service-with-iam-resource-based-policies) no *Guia do desenvolvedor do Amazon Lex V2*.

1. Atribua as seguintes permissões de perfil de segurança aos usuários que precisam criar e gerenciar bots e analytics de bots: 
   + Permissões **Canais e fluxos** - **Bots** - **Visualizar**, **Editar**, **Criar**
   + Permissão **Analytics e otimização** - **Métricas históricas** - **Acessar**

# Crie um bot usando o site Amazon Connect de administração
<a name="work-bot-building-experience"></a>

Você pode criar bots Lex completos no site de Amazon Connect administração sem sair da interface do Amazon Connect. Não há cobrança pela criação ou edição de bots no Amazon Connect. Em vez disso, o uso do Amazon Lex é cobrado. Para acessar informações sobre preço, consulte a página [Preços do Amazon Lex](https://aws.amazon.com/lex/pricing/).

**Para criar um bot**

1. Faça login no site do Amazon Connect administrador em https://*instance name*.my.connect.aws/. Use uma conta de administrador ou uma conta que tenha a permissão **Canais e Fluxos** – ** Bots** - **Criar** em seu perfil de segurança.

1. No menu de navegação esquerdo, escolha **Roteamento**, **Fluxos**.

1. Na página **Fluxos**, selecione **Bots**, **Criar bot**.   
![\[A página Fluxos, a guia Bots e o botão Criar bot.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/flows-bots-tab.png)

1. Na caixa de diálogo **Detalhes**, insira as seguintes informações: 
   + **Nome do bot**: insira um nome exclusivo para o bot.
   + **Descrição do bot**: (opcional) forneça informações adicionais sobre a finalidade do bot.
   + **Lei de Proteção à Privacidade On-line de Crianças (COPPA)**: escolha se o bot está sujeito à Lei de Proteção à Privacidade On-line de Crianças.

   A imagem a seguir mostra a caixa de diálogo **Detalhes** e essas opções.  
![\[Página Detalhes da criação do bot com configurações de nome, descrição e COPPA.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/bot-create.png)

1. Escolha **Criar**. Depois que o bot for criado com êxito, você será direcionado para a página de configuração do bot. A imagem a seguir mostra uma página de exemplo para um bot recém-criado chamado **HotelBookingBot**.  
![\[Um exemplo de página de configuração de um bot não configurado.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/hotelbookingbot.png)

1. Na página de configuração do bot, escolha **Adicionar idioma**. Escolha o idioma principal do seu bot e sua forma preferida de criar esse idioma.   
![\[Um exemplo de página Definir seu bot e a caixa suspensa Adicionar idioma.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/bot-language-create.png)

1. Depois de escolher seu idioma, você será direcionado para a seção **Definir seu bot**. Um exemplo de seção é mostrado na imagem a seguir. Essa seção é onde você adicionará intenções.  
![\[Um exemplo da seção Definir bot.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/define-bot-page.png)

## Adicionar intenções ao bot
<a name="define-bot"></a>

Na seção **Definir seu bot**, você adiciona intenções. As intenções são as metas que seus usuários desejam alcançar, como pedir flores ou reservar um hotel.

Seu bot deve ter pelo menos uma intenção. Há dois tipos de intenção:
+ Intenções personalizadas: crie intenções que representem as ações ou solicitações que seu bot deve processar. Este tópico explica como criar intenções personalizadas. 
+ Intenções embutidas: por padrão, todos os bots contêm uma única intenção embutida, a intenção de fallback. Essa intenção é usada quando o bot não reconhece nenhuma outra intenção. Por exemplo, se um usuário disser “Quero pedir flores” para uma intenção de agendamento de hotel, a intenção de fallback será acionada. A imagem a seguir mostra um exemplo de intenção embutida.  
![\[A caixa de diálogo Usar intenção incorporada, uma intenção incorporada denominada AMAZON. HelpIntent.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/built-in-intent.png)

**Como criar uma intenção personalizada**

1. Escolha **Adicionar intenção** e, depois, **Adicionar intenção vazia**. 

1. Na caixa de diálogo **Adicionar intenção**, insira um nome para sua intenção e uma descrição que seja significativa para você. Escolha **Adicionar**.

1. Insira as seguintes informações para configurar sua intenção:
   + Adicione exemplos de **enunciados**: escolha **Adicionar** e, depois, forneça frases ou perguntas que os usuários possam usar para expressar essa intenção. Escolha **Salvar**. 
   + Configure **slots**: escolha **Adicionar** e defina os slots, ou parâmetros, necessários para cumprir a intenção. Cada slot tem um tipo que define os valores que podem ser inseridos no slot. Escolha **Adicionar** para adicionar o slot. Quando terminar de adicionar slots, escolha **Salvar**.
   + Crie **Prompts**: escolha **Editar** e, depois, você poderá inserir solicitações que o bot usará para solicitar informações ou esclarecer as entradas do usuário. Quando terminar, escolha **Salvar**.
     + **Mensagem de resposta inicial**: a mensagem inicial enviada ao usuário após a invocação da intenção. É possível fornecer respostas, inicializar valores e definir a próxima etapa que o bot executará para responder ao usuário no início da intenção.
     + **Prompt de confirmação e respostas**: são usados para confirmar ou recusar o cumprimento da intenção. O prompt de confirmação solicita que o usuário revise os valores dos slots. Por exemplo, “Reservei um quarto de hotel para sexta-feira. Está certo?” A resposta de recusa é enviada ao usuário quando ele recusa a confirmação. 
     + **Mensagem de resposta de encerramento**: resposta enviada ao usuário após a intenção ser cumprida e todas as outras mensagens serem reproduzidas. Por exemplo, “Obrigado por reservar um quarto de hotel”. 

Para obter mais informações sobre intenções de bots do Amazon Lex e configurações avançadas, consulte [Adicionar intenções](https://docs.aws.amazon.com/lexv2/latest/dg/add-intents.html) no Guia do desenvolvedor do *Amazon Lex* V2.

# Criar um fluxo e adicionar o bot de IA conversacional
<a name="create-bot-flow"></a>

Este tópico explica como adicionar um bot de IA conversacional criado anteriormente a um fluxo. 

1. No menu de navegação do Amazon Connect, escolha **Roteamento**, **Fluxos**, **Criar fluxo** e digite um nome para o fluxo.

1. Em **Interagir**, arraste um bloco [Obter entrada do cliente](get-customer-input.md) até o designer e conecte-o ao bloco **Ponto de entrada**.

1. Escolha o bloco [Obter entrada do cliente](get-customer-input.md) para abri-lo.

1. Na guia Amazon Lex, use os menus suspensos para selecionar o bot que você criou anteriormente e o alias, conforme mostrado na imagem a seguir.  
![\[A página de propriedades do bloco Obter informações dos clientes e a guia Amazon Lex.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/get-customer-input-lextab.png)

1. Em **Solicitação do cliente ou inicialização do bot**, escolha **Text-to-speech ou texto do chat**.

1. Digite uma mensagem que informe os chamadores sobre o que eles podem fazer. Por exemplo, use uma mensagem que corresponda às intenções usadas no bot, como *Para conferir o saldo da conta, pressione ou diga 1. Para falar com um agente, pressione ou diga 2*. A imagem a seguir mostra essa mensagem na página Propriedades do bloco [Obter entrada do cliente](get-customer-input.md).  
![\[A seção Prompt do cliente ou inicialização do bot do bloco Obter informações dos clientes.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/customer-prompt-bot-initialization.png)

1. Em **Intenções**, escolha **Adicionar uma intenção** e, depois, insira ou pesquise as intenções do cliente que devem acionar o bot.   
![\[A seção Intenções, o botão Adicionar uma intenção e o botão Pesquisar.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/add-intent.png)

   Ao pesquisar intenções, você pode filtrar pela localidade. A localidade é usada apenas para filtragem, não está vinculada à localidade quando o bot é acionado. Por exemplo, você pode encontrar a BookHotel intenção usando a localidade em inglês (EUA), mas a intenção pode ser retornada com sucesso em inglês (EUA) e inglês (GB).

   Para acessar mais informações sobre como descobrir intenções, consulte [Como encontrar intenções](#find-notlisted-intents). 

   A imagem a seguir mostra a caixa de diálogo para filtrar intenções por localidade.  
![\[A opção Pesquisar, a caixa de diálogo Filtrar usando localidade para adicionar a intenção.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/filter-intents.png)

1. Escolha **Salvar**.

**Importante**  
Se você estiver usando um bot do Amazon Lex V2, o atributo de idioma no Amazon Connect deve corresponder ao modelo de idioma usado para criar o bot do Lex. Isso é diferente do Amazon Lex (Classic). Use um bloco [Definir voz](set-voice.md#set-voice-lexv2bot) para indicar o modelo de idioma do Amazon Connect ou use um bloco [Set contact attributes (Definir atributos do contato)](set-contact-attributes.md).

## Como encontrar intenções para bots do Amazon Lex V1, bots entre regiões ou bots configurados dinamicamente
<a name="find-notlisted-intents"></a>

A caixa suspensa **Intenções** não lista intenções para bots do Amazon Lex V1, bots entre regiões ou se o ARN do bot estiver definido dinamicamente. Para essas intenções, tente as opções a seguir para encontrá-las.
+ Verifique se a **AmazonConnectEnabled**tag está definida como verdadeira:

  1. Abra o console do Amazon Lex, escolha **Bots**, selecione o bot e escolha **Tags**.

  1.  Se a **AmazonConnectEnabled**tag não estiver presente, adicione **AmazonConnectEnabled = true**.

  1.  Retorne ao site do Amazon Connect administrador. Atualize o designer de fluxo para ver as seleções no bloco **Obter informações dos clientes**.
+ Confira se a versão está associada ao alias: 

  1. No site de Amazon Connect administração, escolha **Routing**, **Flows**, the bot, **Aliases**. Verifique se **Uso no fluxo e nos módulos de fluxo** está habilitado, conforme mostrado na imagem a seguir.  
![\[A guia Aliases, a opção Uso no fluxo e nos módulos de fluxo.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/bot-alias-enabled.png)

  1. Atualize o designer de fluxo para ver as seleções no bloco **Obter informações dos clientes**.

# Configurar provedores de voz terceirizados no Amazon Connect
<a name="configure-third-party-speech-providers"></a>

Você pode configurar provedores terceirizados speech-to-text (STT) e text-to-speech (TTS) no Amazon Connect para expandir a cobertura linguística, melhorar a precisão do reconhecimento e oferecer uma fala sintetizada mais expressiva. Esta seção descreve como configurar provedores de STT de terceiros para bots e provedores de TTS de terceiros para uso em fluxos de contato.

**Topics**
+ [Configurar fornecedores terceirizados speech-to-text (STT)](configure-third-party-stt.md)
+ [Configurar fornecedores terceirizados text-to-speech (TTS)](configure-third-party-tts.md)
+ [Endpoints e regiões para provedores de STT terceirizados](endpoints-regions-third-party-stt.md)
+ [Gerenciando segredos e políticas de recursos](managing-secrets-resource-policies.md)

# Configurar fornecedores terceirizados speech-to-text (STT)
<a name="configure-third-party-stt"></a>

Use as instruções a seguir para configurar um provedor terceirizado speech-to-text (STT).

## Pré-requisitos
<a name="stt-prerequisites"></a>
+ Um bot com uma localidade existente.
+ Uma chave de API de um provedor de STT terceirizado armazenada em AWS Secrets Manager. Para obter mais informações sobre como armazenar chaves de API como segredos no Secrets Manager, consulte [Criar um AWS Secrets Manager segredo](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html).
+ Uma política de recursos do Secrets Manager que permite ao Amazon Connect recuperar o segredo. Para obter mais informações, consulte [Gerenciando segredos e políticas de recursos](managing-secrets-resource-policies.md).
+ AWS KMS key permissões que permitem a decodificação. Para obter mais informações, consulte [Gerenciando segredos e políticas de recursos](managing-secrets-resource-policies.md).
+ Um ID de modelo de provedor e um ARN do Secrets Manager.

## Etapa 1: Abra o painel de configuração do modelo de fala
<a name="stt-step1"></a>

1. Faça login no site de administração do Amazon Connect.

1. Escolha **Bots** e, em seguida, escolha o bot.

1. Escolha a localidade.

1. Na seção **Modelo de fala**, escolha **Editar** para abrir o modal de configuração.  
![\[A página de configuração do seu bot conversacional de IA.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/Lex/01-airlinesbot.png)

## Etapa 2: escolha o tipo de modelo
<a name="stt-step2"></a>

No menu suspenso **Tipo de modelo**, escolha Conversão de **fala em texto (STT).** Isso garante que a localidade seja configurada para transcrição em vez de. speech-to-speech

![\[A caixa de diálogo do modelo de fala.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/Lex/02-speech-model.png)


## Etapa 3: Revise as configurações padrão do modelo de fala
<a name="stt-step3"></a>

Por padrão, a Amazon é selecionada como speech-to-text fornecedora. Revise as configurações atuais antes de mudar para um provedor terceirizado.

![\[A caixa de diálogo do modelo de fala com a Amazon selecionada como provedora de voz.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/Lex/03-speech-model-amazon.png)


## Etapa 4: escolha um provedor de STT terceirizado
<a name="stt-step4"></a>

Abra a lista suspensa do **provedor de voz** e escolha um provedor speech-to-text terceirizado compatível.

![\[A caixa de diálogo do modelo de fala com o Deepgram selecionado como provedor de voz.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/Lex/04-speech-model-deepgram.png)


## Etapa 5: Insira o ID do modelo e o ARN do Secrets Manager
<a name="stt-step5"></a>

1. Em **ID do modelo**, insira o nome do modelo do provedor.
   + Alguns provedores exigem um comprimento mínimo ou máximo.
   +  IDs Os modelos diferenciam maiúsculas de minúsculas e devem corresponder à documentação do fornecedor.

1. Em **Secrets Manager ARN**, insira o ARN do segredo que contém a chave de API do provedor.
   + O segredo deve estar na mesma região da sua instância do Amazon Connect.
   + As políticas de chaves do Secrets Manager e do KMS devem permitir que o Amazon Connect acesse e decifre a chave. Para obter mais informações, consulte [Gerenciando segredos e políticas de recursos](managing-secrets-resource-policies.md).

1. Escolha **Continuar** para salvar suas alterações.

## Crie e ative a localidade
<a name="stt-build-activate"></a>

Se a localidade mostrar **alterações não construídas**, escolha Idioma de **compilação**. As novas configurações de STT se tornam ativas após uma compilação bem-sucedida.

## Comportamento de tempo de execução (STT)
<a name="stt-runtime-behavior"></a>
+ O Amazon Connect encaminha o áudio para o speech-to-text provedor terceirizado escolhido.
+ Nenhuma alteração nos fluxos ou nas funções Lambda é necessária.
+ Erros como credenciais inválidas ou modelo inválido IDs aparecem nos registros.
+ Métricas e análises continuam funcionando normalmente.

## Solução de problemas (STT)
<a name="stt-troubleshooting"></a>
+ **ID do modelo inválido**: confirme o valor com a documentação do fornecedor.
+ **Acesso negado**: verifique as permissões do Secrets Manager e do KMS.
+ **Falha na construção do local**: verifique se os campos obrigatórios são válidos.
+ **Alta latência**: valide a configuração da região do provedor.

# Configurar fornecedores terceirizados text-to-speech (TTS)
<a name="configure-third-party-tts"></a>

Use as instruções a seguir para configurar um provedor terceirizado text-to-speech (TTS).

## Pré-requisitos
<a name="tts-prerequisites"></a>
+ Existe um fluxo de contato (ou você tem permissão para criar um).
+ Uma chave de API de um provedor TTS terceirizado armazenada em AWS Secrets Manager. Para obter mais informações sobre como armazenar chaves de API como segredos no Secrets Manager, consulte [Criar um AWS Secrets Manager segredo](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html).
+ Uma política de recursos do Secrets Manager que permite ao Amazon Connect recuperar a chave. Para obter mais informações, consulte [Gerenciando segredos e políticas de recursos](managing-secrets-resource-policies.md).
+ AWS KMS key permissões que permitem a decodificação. Para obter mais informações, consulte [Gerenciando segredos e políticas de recursos](managing-secrets-resource-policies.md).
+ Modelo e valores de voz específicos do provedor.

## Etapa 1: Abra o fluxo de contato
<a name="tts-step1"></a>

1. Faça login no site de administração do Amazon Connect.

1. Escolha **Fluxos**.

1. Escolha um fluxo existente ou crie um novo.

## Etapa 2: adicionar ou escolher um bloco de voz Definir
<a name="tts-step2"></a>

1. No designer de fluxo, pesquise **Definir voz**.

1. Arraste o bloco para a tela ou escolha um existente.

1. Escolha o bloco para abrir seu painel de configuração.

## Etapa 3: escolha um provedor de TTS terceirizado
<a name="tts-step3"></a>

No menu suspenso **Provedor de voz**, escolha o text-to-speech provedor terceirizado que você deseja usar.

![\[O painel de configuração “Definir voz” mostra uma lista suspensa de provedores de voz.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/Lex/08-set-voice-amazon.png)


## Etapa 4: Especifique o modelo, a voz, o ARN do Secrets Manager e o idioma
<a name="tts-step4"></a>

1. Em **Modelo**, escolha **Definir manualmente** e insira o modelo do provedor.

1. Em **Voz**, escolha **Definir manualmente** e insira a voz do provedor.

1. Em **Secrets Manager ARN**, escolha **Definir manualmente** e insira o ARN do segredo do provedor.
   + O segredo deve estar no mesmo Região da AWS.
   + AWS Secrets Manager e as políticas do KMS devem permitir a recuperação e a descriptografia. Para obter mais informações, consulte [Gerenciando segredos e políticas de recursos](managing-secrets-resource-policies.md).

1. Em **Idioma**, escolha **Definir manualmente** e escolha um idioma compatível com a voz do provedor.  
![\[O painel de configuração do “Provedor de voz” mostrando o provedor de voz terceirizado ElevenLabs.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/Lex/09-voice-provider-elevenlabs.png)

## Etapa 5: salvar e publicar o fluxo
<a name="tts-step5"></a>

1. Escolha **Salvar** no designer de fluxo.

1. Escolha **Publicar** para ativar as configurações de fluxo atualizadas.

## Comportamento de tempo de execução (TTS)
<a name="tts-runtime-behavior"></a>
+ O Amazon Connect envia texto ao provedor de TTS para síntese.
+ O áudio retornado é reproduzido para o cliente.
+ Os registros de execução incluem erros do provedor, como credenciais inválidas ou valores do modelo.

## Solução de problemas (TTS)
<a name="tts-troubleshooting"></a>
+ **Sem saída de áudio**: valide os valores do modelo e da voz.
+ **Erros de autenticação**: verifique as permissões do Secrets Manager e do KMS.
+ **Atributos dinâmicos**: garanta que os valores de tempo de execução sejam resolvidos para parâmetros válidos do provedor.
+ **Alta latência**: valide o alinhamento da região do provedor.

# Endpoints e regiões para provedores de STT terceirizados
<a name="endpoints-regions-third-party-stt"></a>

Por padrão, o Amazon Connect se comunica com os seguintes endpoints:

**Grama profunda**: [https://api.deepgram.com](https://api.deepgram.com)

**ElevenLabs**: [https://api.elevenlabs.io](https://api.elevenlabs.io)

Você pode especificar uma região de provedor diferente junto com sua chave de API como parte do objeto JSON:

```
{
  "apiToken": "XXXXX",
  "apiTokenRegion": "xx"
}
```

As seguintes regiões são suportadas:


| **Provedor** | **apiTokenRegion** | **Endpoint** | 
| --- | --- | --- | 
| Deepgram | eu | [https://api.eu.deepgram.com](https://api.eu.deepgram.com)(suportado apenas para speech-to-text) | 
| Deepgram | \$1SHORT\$1ID\$1. \$1REGION\$1SUBDOMÍNIO\$1 | https://\$1SHORT\$1UID\$1.\$1REGION\$1SUBDOMAIN\$1.api.deepgram.com(Endpoints dedicados Deepgram) | 
| ElevenLabs | us | [https://api.us.elevenlabs.io](https://api.us.elevenlabs.io) | 
| ElevenLabs | eu | [https://api.eu.residency.elevenlabs.io](https://api.eu.residency.elevenlabs.io) | 
| ElevenLabs | in | [https://api.in.residency.elevenlabs.io](https://api.in.residency.elevenlabs.io) | 

# Gerenciando segredos e políticas de recursos
<a name="managing-secrets-resource-policies"></a>

Ao [configurar um provedor de voz terceirizado](configure-third-party-speech-providers.md), você precisará criar um segredo no Secrets Manager que contenha a chave de API do provedor de fala. Criar o segredo é um processo de duas etapas:
+ Crie o segredo contendo a chave da API. Para obter instruções, consulte [Criar um AWS Secrets Manager segredo](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html).
+ Configure as permissões necessárias:
  + Vincule uma política baseada em recursos ao segredo.
  + Anexe uma política baseada em recursos à chave KMS (não à chave de API) associada ao segredo. A chave KMS protege a chave da API em segredo.

  Essas políticas permitem que o Amazon Connect acesse a chave de API dentro do segredo. Observe que você não pode usar a chave `aws/secretsmanager` KMS padrão; você precisará criar uma nova chave ou usar uma chave existente gerenciada pelo cliente. Para obter mais informações sobre como as chaves KMS protegem segredos, consulte [Criptografia e descriptografia secretas no Secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html) Manager.

Certifique-se de que a política baseada em recursos para o segredo inclua as condições `aws:SourceArn` confusas do `aws:SourceAccount` representante (consulte [O problema do delegado confuso](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)) e que a política baseada em recursos da chave KMS inclua a condição. `kms:EncryptionContext:SecretARN` Isso garantirá que o Amazon Connect só possa acessar o segredo da sua chave de API no contexto de uma única instância específica e só possa acessar sua chave do KMS no contexto dessa instância e do segredo específico.

## Exemplo de uma política baseada em recursos para segredos do Secrets Manager
<a name="example-resource-policy-secrets-manager"></a>

Veja a seguir um exemplo de uma política baseada em recursos que você pode anexar ao seu segredo.

```
{
  "Version":"2012-10-17",		 	 	                    
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "connect.amazonaws.com"
        ]
      },
      "Action": "secretsmanager:GetSecretValue",
      "Resource": "*",
      "Condition": {
        "ArnLike": {
          "aws:sourceArn": "///the ARN of your Amazon Connect instance///"
        },
        "StringEquals": {
          "aws:sourceAccount": "///Your account ID///"
        }
      }
    }
  ]
}
```

## Exemplo de uma política baseada em recursos para s AWS KMS key
<a name="example-resource-policy-kms-keys"></a>

Veja a seguir um exemplo de uma política baseada em recursos que você pode anexar à sua chave KMS.

```
{
  "Version":"2012-10-17",		 	 	                    
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "connect.amazonaws.com"
        ]
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "ArnLike": {
          "aws:sourceArn": "///the ARN of your Amazon Connect instance///"
        },
        "StringEquals": {
          "aws:sourceAccount": "///Your account ID///",
          "kms:EncryptionContext:SecretARN": "///the ARN of your secrets manager secret///"
        }
      }
    }
  ]
}
```

## Anexando uma política baseada em recursos ao seu segredo do Secrets Manager
<a name="attaching-resource-policy-secrets-manager"></a>

[Para anexar uma política baseada em recursos ao seu segredo, acesse o console do Secrets Manager no Console de gerenciamento da AWS, navegue até seu segredo, escolha **Editar Permissões ou Permissões****de Recursos** e, em seguida, adicione ou modifique a política de recursos diretamente na página para que fique semelhante ao exemplo.](#example-resource-policy-secrets-manager) Você também pode anexar a política de recursos por meio do `put-resource-policy` comando AWS CLI's ou programaticamente usando a operação da [PutResourcePolicy](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_PutResourcePolicy.html)API.

## Anexar uma política baseada em recursos à sua chave KMS
<a name="attaching-resource-policy-kms-key"></a>

[Para anexar uma política baseada em recursos à sua chave KMS, acesse o AWS Key Management Service console no Console de gerenciamento da AWS, navegue até sua chave KMS e edite sua política de chaves para que se pareça com o exemplo.](#example-resource-policy-kms-keys) Você também pode atualizar a chave por meio do `put-key-policy` comando AWS CLI's ou programaticamente usando a operação da [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)API.

## Chaves de API rotativas
<a name="rotating-api-keys"></a>

Recomendamos alternar as chaves de API pelo menos a cada 90 dias para minimizar o risco de comprometimento e manter um processo de rotação de chaves bem praticado para situações de emergência.

Para rotacionar uma chave de API, você precisa rotacionar o segredo no qual ela está contida. Consulte [Rotate Secrets Manager Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html) no *Guia do Usuário do Secrets Manager* para obter mais informações sobre como alternar segredos. Ao alternar uma chave de API, é recomendável esperar que o uso da chave anterior caia para zero antes de revogar a chave de API antiga para garantir que as solicitações em andamento não sejam afetadas.

# Crie uma intenção de agente do Connect AI a partir de uma instância do Amazon Connect
<a name="create-qic-intent-connect"></a>

Você pode usar os recursos generativos de IA fornecidos pelos agentes do Connect AI para seu bot ativando o [AMAZON. QinConnectIntent](https://docs.aws.amazon.com/lexv2/latest/dg/built-in-intent-qinconnect.html)no seu bot. Essa é uma intenção embutida do Amazon Lex. 

Conclua as etapas a seguir para ativar os agentes do Connect AI.

1. Abra o bot ao qual você deseja adicionar o **AMAZON. QinConnectIntent**intenção.

1. Navegue até a guia **Configuração** na interface do construtor de bots.

1. Habilite o **AMAZON. QinConnectIntent**intenção configurando o botão para ligado. A imagem a seguir mostra a localização do botão de alternância.  
![\[Um exemplo de página de configuração de um bot não configurado.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/enable-qic-bot.png)

   O botão de **intenção dos agentes do Connect AI** só é compatível com bots criados diretamente no Amazon Connect site administrativo. Para adicionar recursos do Amazon Q às intenções de bots criados fora do site de Amazon Connect administração, use o console do Amazon Lex para atualizar a configuração.

1. Na caixa de diálogo **Enable Connect AI agents intent**, use o menu suspenso para escolher o Amazon Resource Name (ARN) da intenção dos agentes do Connect AI.  
![\[Uma caixa de diálogo de intenção dos agentes Enable Connect AI.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/qic-intent-dropdownbox.png)

1. Escolha **Confirmar** para adicionar a **AMAZON. QinConnectIntent**apoio intencional.
**Importante**  
Você não pode usar a **AMAZON. **QInConnectIntent**junto com intenções sem expressões específicas, como **Amazon.qn, AMAZON AIntent**. BedrockAgentIntent**na mesma localidade do bot. Para obter mais informações, consulte [AMAZON. QinConnectIntent](https://docs.aws.amazon.com/lexv2/latest/dg/built-in-intent-qinconnect.html)no *Guia do desenvolvedor do Amazon Lex V2*. 

# Criar versões e aliases de bots no Amazon Connect
<a name="create-bot-version"></a>

Para controlar qual implementação de bot seu cliente usa, você deve criar versões e aliases. 
+ Uma versão funciona como um instantâneo numerado do seu trabalho.
+ Você pode apontar um alias para a versão do seu bot que você deseja que esteja disponível para seus clientes.

Entre a criação de uma versão e outra, você pode continuar atualizando a versão de rascunho do seu bot sem afetar a experiência do cliente. Esse processo é crucial para a implantação de bots em um ambiente de produção. 

## Criar uma versão
<a name="create-bot-version1"></a>

A criação de uma versão preserva o estado atual da configuração do seu bot. Conclua as etapas a seguir para criar uma versão do seu bot do Amazon Lex no Amazon Connect.

1. Abra o bot para o qual você deseja criar uma versão.

1. Escolha a guia **Versões** e, depois, selecione **Criar versão**.  
![\[A guia Versões e o botão Criar versão.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/bot-versionstab.png)

1. Na caixa de diálogo **Criar versão**:

   1. Insira uma descrição da versão (opcional, mas recomendada para acompanhar alterações).

   1. Escolha **Criar**. A imagem a seguir mostra um exemplo de caixa de diálogo **Criar versão**.  
![\[Caixa de diálogo Criar versão.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/create-version-bot.png)

Depois que a versão for criada, você poderá associá-la a aliases ou usá-la para fazer a reversão para um estado anterior do seu bot.

## Criar um alias da
<a name="create-bot-alias-association"></a>

Um alias é um ponteiro para uma versão específica de um bot. Com um alias, você pode atualizar com facilidade a versão que seus aplicativos cliente estão usando. Por exemplo, você pode apontar um alias para a versão 1 do seu bot. Quando estiver pronto para atualizar o bot, você cria a versão 2 e altera o alias para apontar para a nova versão. Como suas aplicações usam o alias ao invés de uma versão específica, todos os seus clientes obtêm a nova funcionalidade sem a necessidade de atualizações. Isso viabiliza lançamentos controlados e fácil gerenciamento de versões. 

**Importante**  
Se você quiser usar o bot em um fluxo, escolha **Habilitar para uso no fluxo e nos módulos de fluxo** ao criar um alias.

Conclua as etapas a seguir para criar um alias para seu bot do Amazon Lex.

1. Abra o bot ao qual você deseja adicionar o alias.

1. Escolha a guia **Aliases** e, depois, selecione **Criar alias**.  
![\[A guia Alias e o botão Criar aliases.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/bot-aliases-button.png)

1. Na caixa de diálogo **Criar alias**:

   1. Insira um nome exclusivo para o alias.

   1. Forneça uma descrição para o alias (opcional, mas recomendado).

   1. Selecione a versão do bot que você deseja associar a esse alias.

   1. (Recomendado) Escolha **Habilitar para uso no fluxo e nos módulos de fluxo**. Isso é necessário caso você queira usar o bot em um fluxo.

   1. Escolha **Criar**. A imagem a seguir mostra um exemplo de caixa de diálogo **Criar alias**.  
![\[Caixa de diálogo Criar alias.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/bot-create-alias.png)

Para acessar mais informações sobre versionamento e aliases no Amazon Lex V2, consulte [Versionamento e aliases com seu bot Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/versions-aliases.html) no *Guia do desenvolvedor do Amazon Lex V2*. 

# Avaliar o desempenho do seu bot de IA conversacional no Amazon Connect
<a name="lex-bot-analytics"></a>

Você pode usar as ferramentas de analytics abrangentes do Amazon Connect para ajudar a avaliar e otimizar o desempenho do seu bot de IA conversacional. Esses insights permitem que você identifique interações bem-sucedidas, bem como pontos de falha, e visualize padrões de conversação para melhorar continuamente a experiência do cliente.

O painel de analytics inclui métricas importantes, como taxa de reconhecimento de enunciados e desempenho de conversas. Essas métricas ajudam você a entender as taxas de êxito e falha das interações do seu bot com os clientes.

**nota**  
A página Analytics de bot mostra dados de conversas acionadas somente por meio de fluxos. Você pode acionar bots externamente usando Lex APIs ou integrações personalizadas, mas os dados dessas conversas não são refletidos nesta página.

**Como visualizar a analytics do seu bot**

1. Faça login no site do Amazon Connect administrador em https://*instance name*.my.connect.aws/. Use uma conta de administrador ou uma conta que tenha as seguintes permissões em seu perfil de segurança:
   + **Canais e fluxos** - **Bots** - **Visualizar**
   + **Canais e fluxos** - **Bots** - **Editar**
   + **Analytics e otimização** - **Métricas históricas** - **Acessar**

1. No menu de navegação esquerdo, escolha **Roteamento**, **Fluxos**.

1. Na página **Fluxos**, escolha **Bots**, selecione o bot cujo desempenho você deseja avaliar e, depois, escolha **Analytics**.  
![\[A página Fluxos e a guia Analytics.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/bot-analytics1.png)

 A imagem a seguir mostra dados de analytics de exemplo.

![\[A guia Analytics com dados de analytics de exemplo para um bot.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/bot-analytics.png)


Use essas analytics para identificar oportunidades de melhoria, refinar as respostas do seu bot e aprimorar a experiência geral do cliente.

Para acessar métricas adicionais e técnicas avançadas de análise específicas do Amazon Lex, consulte [Como monitorar o desempenho do bot no Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/monitoring-bot-performance.html).

# Métricas e analytics de bots do Amazon Connect
<a name="bot-metrics"></a>

As seguintes métricas orientadas por fluxo estão disponíveis na [Painel Fluxos e desempenho de bots conversacionais](flows-performance-dashboard.md) e na [GetMetricDataV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html).

## Tempo médio de conversa de bots
<a name="average-bot-conversation-time-metric"></a>

Essa métrica mede a duração média das conversas concluídas nas quais o recurso de invocação (fluxo ou módulo de fluxo) começou entre os horários de início e término especificados. 

**Tipo de métrica**: string (*hh:mm:ss*)

**Categoria da métrica**: métrica baseada em fluxos

**Como acessar usando a API do Amazon Connect**: 
+ GetMetricDataIdentificador métrico da API [V2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html): `AVG_BOT_CONVERSATION_TIME`

   Ela pode ser filtrada com base em resultados específicos de conversas com o filtro ao nível da métrica `BOT_CONVERSATION_OUTCOME_TYPE`.

**Lógica de cálculo**:
+ Soma [(Hora de início da conversa - Hora de término da conversa) de todas as conversas filtradas] / (Contagem de todas as conversas filtradas).

**Observações:**
+ Os dados dessa métrica foram disponibilizados em 2 de dezembro de 2024 à 0h GMT.

## Média de turnos de conversa do bot
<a name="average-bot-conversation-turns-metric"></a>

Essa métrica fornece o número médio de turnos de conversas concluídas nas quais o recurso de invocação (fluxo ou módulo de fluxo) começou entre os horários de início e término especificados. 

Um turno é representado por uma solicitação da aplicação cliente e uma resposta do bot.

**Tipo de métrica**: duplo

**Categoria da métrica**: métrica baseada em fluxos

**Como acessar usando a API do Amazon Connect**: 
+ GetMetricDataIdentificador métrico da API [V2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html): `AVG_BOT_CONVERSATION_TURNS`

   Ela pode ser filtrada com base em resultados específicos de conversas com o filtro ao nível da métrica `BOT_CONVERSATION_OUTCOME_TYPE`.

**Lógica de cálculo**:
+ Soma (Turnos de todas as conversas filtradas) / (Contagem de todas as conversas filtradas).

**Observações:**
+ Os dados dessa métrica foram disponibilizados em 2 de dezembro de 2024 à 0h GMT.

## Conversas de bot concluídas
<a name="bot-conversations-completed-metric"></a>

Essa métrica fornece o número médio de conversas concluídas nas quais o recurso de invocação (fluxo ou módulo de fluxo) começou entre os horários de início e término especificados. O horário de término da conversa pode estar além do horário de término especificado. 

Por exemplo, se você solicitar essa métrica com horário de início às 9h e horário de término às 10h, o resultado incluirá conversas em que o recurso de invocação (fluxo ou módulo de fluxo):
+ começou às 9h15 e terminou às 9h40
+ começou às 9h50 e terminou às 10h10

Mas excluirá conversas para as quais o recurso de invocação (fluxo ou módulo de fluxo):
+ começou às 8h50 e terminou às 9h10

**Tipo de métrica**: valor inteiro

**Categoria da métrica**: métrica baseada em fluxos

**Como acessar usando a API do Amazon Connect**: 
+ GetMetricDataIdentificador métrico da API [V2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html): `BOT_CONVERSATIONS_COMPLETED`

  Ela pode ser filtrada com base nos resultados de conversa a seguir usando o filtro ao nível da métrica `BOT_CONVERSATION_OUTCOME_TYPE`.
  + SUCCESS: a intenção final da conversa é classificada como *êxito*.
  + FAILED: a intenção final da conversa falhou. A conversa também falhará se o Amazon Lex V2 usar como padrão o. `AMAZON.FallbackIntent`
  + DROPPED: o cliente não respondeu antes que a conversa fosse classificada como *êxito* ou *falha*.

**Lógica de cálculo**:
+ Contagem total de conversas.

**Observações:**
+ Os dados dessa métrica foram disponibilizados em 2 de dezembro de 2024 à 0h GMT.

## Intenções de bot concluídas
<a name="bot-intents-completed-metric"></a>

Essa métrica fornece a contagem de intenções concluídas. Inclui intenções de conversas concluídas em que o recurso de invocação (fluxo ou módulo de fluxo) começou entre os horários de início e término especificados.

**Tipo de métrica**: valor inteiro

**Categoria da métrica**: métrica baseada em fluxos

**Como acessar usando a API do Amazon Connect**: 
+ GetMetricDataIdentificador métrico da API [V2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html): `BOT_INTENTS_COMPLETED`

  Ela pode ser filtrada com base nos resultados de conversa a seguir usando o filtro ao nível da métrica `BOT_CONVERSATION_OUTCOME_TYPE`.

  Ela pode ser filtrada com base nos resultados de intenção a seguir usando o filtro ao nível da métrica `BOT_INTENTS_OUTCOME_TYPE`.
  + SUCCESS: o bot atendeu com êxito à intenção. Um dos valores a seguir é verdadeiro:
    + *O *estado* da intenção é *ReadyForFulfillment*e o tipo de *DialogAction* é Fechar.*
    + `state` da intenção é `Fulfilled` e o tipo de `dialogAction` é `Close`.
  + FAILED: o bot não cumpriu a intenção. O estado da intenção. Um dos valores a seguir é verdadeiro:
    + A intenção `state` é `Failed` e o `type` de `dialogAction` é `Close` (por exemplo, o usuário recusou a solicitação de confirmação).
    + O bot alterna para o `AMAZON.FallbackIntent` antes que a intenção seja concluída.
  + SWITCHED: o bot reconhece uma intenção diferente e alterna para ela, antes que a intenção original seja classificada como *êxito* ou *falha*.
  + DROPPED: o cliente não respondeu antes que a intenção fosse classificada como *êxito* ou *falha*.

**Lógica de cálculo**:
+ Contagem total de intenções.

**Observações:**
+ Os dados dessa métrica foram disponibilizados em 2 de dezembro de 2024 à 0h GMT.

## Porcentagem de resultados de conversas do bot
<a name="percent-bot-conversations-outcome-metric"></a>

Essa métrica fornece a porcentagem do total de conversas que terminaram no tipo de resultado específico determinado no filtro ao nível da métrica (`BOT_CONVERSATION_OUTCOME_TYPE`). Inclui conversas concluídas em que o recurso de invocação (fluxo ou módulo de fluxo) começou entre os horários de início e término especificados. 

**Tipo de métrica**: porcentagem

**Categoria da métrica**: métrica baseada em fluxos

**Como acessar usando a API do Amazon Connect**: 
+ GetMetricDataIdentificador métrico da API [V2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html): `PERCENT_BOT_CONVERSATIONS_OUTCOME`

**Como acessar usando o site Amazon Connect administrativo**: 

**Lógica de cálculo**:
+ (Contagem de conversas com BOT\$1CONVERSATION\$1OUTCOME\$1TYPE) / (Contagem total de conversas) \$1 100

**Observações:**
+ Os dados dessa métrica foram disponibilizados em 2 de dezembro de 2024 à 0h GMT.

## Resultado percentual de intenções do bot
<a name="percent-bot-intents-outcome-metric"></a>

Essa métrica fornece a porcentagem de intenções que terminaram no tipo de resultado específico determinado no filtro ao nível da métrica (`BOT_INTENT_OUTCOME_TYPE`). Inclui intenções de conversas concluídas em que o recurso de invocação (fluxo ou módulo de fluxo) começou entre os horários de início e término especificados.

**Tipo de métrica**: porcentagem

**Categoria da métrica**: métrica baseada em fluxos

**Como acessar usando a API do Amazon Connect**: 
+ GetMetricDataIdentificador métrico da API [V2](https://docs.aws.amazon.com/connect/latest/APIReference/API_GetMetricDataV2.html): `PERCENT_BOT_INTENTS_OUTCOME`

**Como acessar usando o site Amazon Connect administrativo**: 

**Lógica de cálculo**:
+ (Contagem de intenções com BOT\$1INTENT\$1OUTCOME\$1TYPE)/(Contagem total de intenções) \$1 100

# Suporte de configuração avançada do bot do Amazon Connect
<a name="bot-advanced-config"></a>

O recurso de configuração avançada permite que você faça personalizações detalhadas em seu bot sem precisar acessar o console do Amazon Lex.

1. No site do Amazon Connect administrador, no painel de navegação à esquerda, escolha **Flows**. Escolha a guia **Bots** e, depois, selecione o bot com o qual deseja trabalhar.

1. Escolha o botão **Configurações avançadas**, conforme mostrado na imagem a seguir.  
![\[O botão Configurações avançadas na página de detalhes de um bot.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/bot-advanced-config.png)

   Essa ação mudará a visualização para uma interface mais detalhada, na qual você poderá acessar mais recursos para personalizar seu bot. 

1. Para voltar para a interface de usuário simples do bot, escolha **Resumo da configuração**, conforme mostrado na imagem a seguir.  
![\[Página Configuração avançada e o botão Resumo da configuração.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/bot-adv-config2.png)

# Adicionar um bot do Amazon Lex ao Amazon Connect
<a name="amazon-lex"></a>

**Importante**  
**Aviso de fim do suporte**: em 15 de setembro de 2025, o suporte para o Amazon Lex V1 AWS será interrompido. Após 15 de setembro de 2025, você não poderá mais acessar o console do Amazon Lex V1 nem os respectivos recursos. Para saber mais sobre a migração para o Amazon Lex V2, consulte [Migrar um bot](https://docs.aws.amazon.com/lex/latest/dg/migrate.html).

Neste artigo, orientamos você pelas etapas para adicionar um bot do Amazon Lex ao Amazon Connect. 

Com o Amazon Lex, você pode criar interações conversacionais (bots) que pareçam naturais para os clientes. Os bots do Amazon Connect com o Amazon Lex também podem capturar as informações do cliente como dígitos que os clientes inserem no teclado numérico quando usadas em um fluxo do Amazon Connect. Dessa maneira, os clientes podem escolher como desejam inserir informações confidenciais, como números da conta. 

Para acompanhar esta demonstração, é necessário ter o seguinte: 
+ Uma AWS conta ativa. 
+ Uma instância do Amazon Connect. 

**dica**  
Você também pode usar o Amazon Lex para potencializar mensagens interativas para o chat do Amazon Connect. As mensagens interativas são mensagens avançadas que apresentam opções de exibição rápidas e pré-configuradas que o cliente pode escolher. Essas mensagens são fornecidas pelo Amazon Lex e configuradas por meio do Amazon Lex usando um Lambda. Para obter mais informações, consulte [Adicionar mensagens interativas do Amazon Lex para clientes no chat](interactive-messages.md).

## Criar um bot do Amazon Lex
<a name="lex-bot-create"></a>

Nesta etapa, você criará um bot personalizado para demonstrar a integração Pressionar ou Dizer com o Amazon Connect. O bot solicita que os chamadores pressionem ou digam um número que corresponda à opção do menu para que a tarefa seja concluída. Nesse caso, a entrada está verificando o saldo da conta.

------
#### [ Amazon Lex ]

1. Abra o [console do Amazon Lex](https://console.aws.amazon.com/lexv2/home).

1. Escolha **Criar bot**.

1. Na página **Definir configurações do bot**, escolha **Criar - Criar um bot em branco** e forneça as seguintes informações:
   + **Nome do bot** — Para este passo a passo, dê um nome ao bot. **AccountBalance**
   + **Permissões do IAM**: selecione uma função se você tiver uma criada. Caso contrário, escolha **Criar uma função com permissões básicas do Amazon Lex**.
   + **COPPA**: escolha se o bot está sujeito à Child Online Privacy Protection Act (Lei de Proteção à Privacidade Online para Crianças).
   + **Tempo limite da sessão**: escolha por quanto tempo o bot deve aguardar para obter a entrada de um chamador antes de encerrar a sessão.

1. Escolha **Próximo**.

1. Forneça informações específicas de idioma e voz:
   + **Idioma**: selecione o idioma e a localidade na lista de [idiomas e localidades compatíveis com o Amazon Lex](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html). 
   + **Interação de voz**: selecione a voz para o bot usar ao falar com os chamadores. A voz padrão do Amazon Connect é a Joanna.

1. Selecione **Concluído**. O AccountBalance bot é criado e a página **Intent** é exibida.

------
#### [ Amazon Lex (Classic) ]

1. Abra o [console do Amazon Lex](https://console.aws.amazon.com/lex/).

1. Se você estiver criando seu primeiro bot, escolha **Get Started**. Caso contrário, selecione **Bots, Create (Bots, Criar)**.

1. Na página **Create your bot (Criar bot)**, escolha **Custom bot (Bot personalizado)** e forneça as seguintes informações:
   + **Nome do bot** — Para este passo a passo, dê um nome ao bot. **AccountBalance**
   + **Voz de saída**: selecione a voz para o bot usar ao falar com os chamadores. A voz padrão do Amazon Connect é a Joanna.
   + **Tempo limite da sessão**: escolha por quanto tempo o bot deve aguardar para obter a entrada de um chamador antes de encerrar a sessão.
   + **COPPA**: escolha se o bot está sujeito à Child Online Privacy Protection Act (Lei de Proteção à Privacidade Online para Crianças).

1. Escolha **Criar**.

------

## Configurar o bot do Amazon Lex
<a name="lex-bot-configure"></a>

Nesta etapa, você vai determinar como o bot responde aos clientes fornecendo intenções, amostras de enunciados, slots de entrada e tratamento de erros.

Para este exemplo, você vai configurar o bot com duas intenções: uma para pesquisar as informações da conta e outra para falar com um agente.

### Crie uma AccountLookup intenção
<a name="lex-bot-create-account-lookup-intent"></a>

------
#### [ Amazon Lex ]

1. Depois de criar o bot, você está na página **Intenções** do console do Amazon Lex. Se você não estiver lá, você pode chegar lá escolhendo **Bots, **Versões de bots **AccountBalance******, **Versão de rascunho**, **Intents.** Escolha **Adicionar intenção**, **Adicionar intenção vazia**.

1. Na caixa **Nome da intenção**, insira **AccountLookup**.

1. Role a página para baixo até **Amostra de declarações**. Nesta etapa, você insere frases que permitem ao cliente extrair a intenção. AccountLookup Insira as seguintes declarações e escolha **Adicionar declaração** após cada uma. 
   + **Verifique o saldo da minha conta**
   + **Um**: Isso atribui a expressão “um” ou o pressionamento de tecla “1" à intenção. **AccountLookup**

   A imagem a seguir mostra onde adicionar a declaração na seção **Amostra de declarações**.  
![\[A seção Amostra de declarações da página Intenções.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lexv2-enter-utterances.png)

1. Role até a seção **Slots** e escolha **Adicionar slot**. Preencha a caixa da seguinte forma:

   1. **Obrigatório para essa intenção** = selecionado.

   1. **Nome** = **AccountNumber**. 

   1. **Tipo de slot** = **AMAZON.Number**. 

   1. **Prompt** = o texto a ser falado quando a chamada é respondida. Por exemplo, peça para os chamadores inserirem o número da conta usando o teclado numérico: **Usando o teclado numérico, insira o número da conta**. Escolha **Adicionar**.

   A imagem a seguir mostra uma seção **Adicionar slot** preenchida.  
![\[A seção Adicionar slot na página Intenções.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lexv2-add-slots.png)

1. Role até a seção **Respostas de fechamento**. Adicione uma mensagem para o bot dizer aos clientes. Por exemplo: **O saldo da sua conta é de 1.234,56 USD**. (Para este passo a passo, não vamos realmente obter os dados, que é o que você faria na realidade.)

   A imagem a seguir mostra uma seção **Respostas de fechamento** preenchida.  
![\[A seção Respostas de fechamento da página Intenções.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lexv2-response1.png)

1. Selecione **Salvar intenção**.

------
#### [ Amazon Lex (Classic) ]

1. No console do Amazon Lex, selecione o ícone **\$1** ao lado de **Intenções** e escolha **Criar nova intenção**.

1. Nomeie a intenção. **AccountLookup**

1. Adicione uma amostra de enunciado, como *Check my account balance (Verificar o saldo da minha conta)* e selecione o ícone **\$1**.

1. Adicione outro enunciado, como *One (Um)* e selecione o ícone **\$1**. Isso atribui a expressão de “um” ou o pressionamento de tecla “1" à intenção. **AccountLookup**
**dica**  
Você deve adicionar uma expressão de “um” no bot, e não o número “1". Isso ocorre porque o Amazon Lex não oferece suporte à entrada numérica diretamente. Para contornar isso, mais tarde nesta demonstração, você usará a entrada numérica para interagir com um bot do Lex invocado de um fluxo. 

1. Em **Slots**, adicione um slot chamado **AccountNumber**.

   A imagem a seguir mostra a localização da seção **Slots** na página.  
![\[A seção Slot na página Intenções.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lex-slots.png)

1. Em **Slot type (Tipo de slot)**, use o menu suspenso para selecionar **AMAZON.NUMBER**.

1. Em **Prompt (Solicitar)**, adicione o texto a ser falado quando a chamada é respondida. Por exemplo, peça para os chamadores inserirem o número da conta usando o teclado numérico: *Usando o teclado numérico, insira o número da conta*.

1. Escolha o ícone \$1.

1. Certifique-se de que a caixa de seleção **Required (Obrigatório)** esteja marcada.

1. Na seção **Response (Resposta)**, adicione uma mensagem para o bot dizer aos clientes. Por exemplo: **O saldo da sua conta é de 1.234,56 USD**. 

1. Selecione **Save Intent (Salvar intenção)**.

------

### Crie uma SpeakToAgent intenção
<a name="lex-bot-create-speaktoagent-intent"></a>

------
#### [ Amazon Lex ]

1. Navegue até a página **Intenções**: escolha **Voltar à lista de intenções**. 

1. Escolha **Adicionar intenção**, **Adicionar intenção vazia**. 

1. Na caixa **Nome da intenção **SpeakToAgent****, insira e escolha **Adicionar**. 

1. Role para baixo até a seção **Amostra de declarações**. Insira os seguintes enunciados, que permitem ao cliente extrair a intenção: SpeakToAgent 
   + **Falar com um atendente**
   + **Dois**

1. Role para baixo até a seção **Respostas de fechamento**. Adicione uma mensagem para o bot dizer aos clientes. Por exemplo: **OK. Um atendente atenderá você em breve**.

1. Selecione **Salvar intenção**.

------
#### [ Amazon Lex (Classic) ]

1. No console do Amazon Lex, selecione o ícone **\$1** ao lado de **Intenções** e escolha **Criar nova intenção**.

1. Nomeie a intenção. **SpeakToAgent**

1. Selecione **SpeakToAgent**.

1. Adicione uma amostra de enunciado, como *Speak to an agent (Falar com um agente)* e selecione **\$1**.

1. Adicione outro enunciado, como *Two (Dois)*, e selecione **\$1**.

1. Adicione uma mensagem que permita aos chamadores saberem que a chamada está sendo conectada a um atendente. Por exemplo: "OK. Um atendente atenderá você em breve".

1. Selecione **Save Intent (Salvar intenção)**.

------

## Criar e testar o bot do Amazon Lex
<a name="lex-bot-build"></a>

Após criar o bot, verifique se ele está funcionando conforme pretendido.

------
#### [ Amazon Lex ]

1. Na parte inferior da página, escolha **Criar**. Isso pode levar um ou dois minutos. A imagem a seguir mostra onde o botão **Criar** está localizado.  
![\[A localização do botão Criar na página.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lexv2-build-test-intent.png)

1. Quando a criação for concluída, selecione **Testar**.

1. Vamos testar a **AccountLookup**intenção: no painel **Versão do rascunho de teste**, na caixa **Digite uma mensagem**, digite **1** e pressione Enter. Em seguida, digite um número de conta fictício e pressione Enter. A imagem a seguir mostra onde você insere a intenção.  
![\[A caixa em que você digita a intenção a ser testada.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lexv2-test1.png)

   1. Desmarque a caixa de teste.

   1. Digite as intenções que deseja testar.

1. Para confirmar se a **SpeakToAgent**intenção está funcionando, desmarque a caixa de teste, digite **2** e pressione Enter. A imagem a seguir mostra a aparência do teste depois que você a desmarca e insere 2.  
![\[A caixa de teste.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lexv2-test2.png)

1. Feche o painel **Testar versão de rascunho**.

------
#### [ Amazon Lex (Classic) ]

1. Escolha **Criar**. Isso pode levar um ou dois minutos.

1. Quando a criação estiver concluída, escolha **Testar chatbot**, conforme mostrado na imagem a seguir.  
![\[O botão Testar chatbot, no lado direito da página.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lex-test-chatbot.png)

1. **Vamos testar a **AccountLookup**intenção: no painel **Testar o Chatbot**, na caixa **Converse com seu** bot, digite 1.** Em seguida, digite um número de conta fictício. Na imagem a seguir, a seta aponta para a caixa onde você digita 1.  
![\[O bot de teste, a caixa para digitar sua mensagem.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lex-test-run.png)

1. Selecione **Clear chat history (Limpar histórico do chat)**. 

1. Para confirmar se a **SpeakToAgent**intenção está funcionando, digite **2**.

------

## Criar uma versão de bot (opcional)
<a name="lex-bot-create-bot-version"></a>

Nesta etapa, você cria uma nova versão do bot para usar em um alias. É assim que você cria um alias que pode ser usado em um ambiente de produção. Os aliases de teste estão sujeitos a limites menores de controle de utilização. Embora esse seja um passo a passo de teste, criar uma versão é uma prática recomendada.

------
#### [ Amazon Lex ]

1. Se estiver na página **Intenções**, escolha **Voltar à lista de intenções**.

1. No menu à esquerda, escolha **Versões do bot**.

1. Escolha **Criar versão**.

1. Revise os detalhes do **AccountBalance**bot e escolha **Criar**.

   Isso cria uma versão do seu bot (Versão 1). Você pode alternar versões em um alias que não seja de teste sem precisar rastrear qual versão está sendo publicada.  
![\[A página Versões com a Versão 1 listada.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lexv2-version1.png)

------

## Criar um alias para o bot
<a name="lex-bot-create-alias"></a>

------
#### [ Amazon Lex ]

1. No menu esquerdo, selecione **Aliases**.

1. Na página **Aliases**, escolha **Criar alias**.

1. Na caixa **Nome do alias**, insira um nome, como **Teste**. Posteriormente neste passo a passo, você usará esse alias para especificar essa versão do bot em seu fluxo. 
**Importante**  
Em um ambiente de produção, sempre use um alias diferente **TestBotAlias**para o Amazon Lex e **\$1LATEST** para o Amazon Lex classic. **TestBotAlias**e **\$1LATEST** oferecem suporte a um número limitado de chamadas simultâneas para um bot do Amazon Lex. Para obter mais informações, consulte [Cotas de runtime](https://docs.aws.amazon.com/lexv2/latest/dg/quotas.html#quotas-service).

1. Em **Versão associada**, escolha a versão que você acabou de criar, como a **Versão 1**. 

1. Escolha **Criar**.

------
#### [ Amazon Lex (Classic) ]

1. Selecione **Publish**.

1. Forneça um alias para o bot. Use o alias para especificar essa versão do bot no fluxo, por exemplo, **Teste**.
**Importante**  
Em um ambiente de produção, sempre use um alias diferente **TestBotAlias**para o Amazon Lex e **\$1LATEST** para o Amazon Lex classic. **TestBotAlias**e **\$1LATEST** oferecem suporte a um número limitado de chamadas simultâneas para um bot do Amazon Lex. Para obter mais informações, consulte [Cotas de serviço de runtime](https://docs.aws.amazon.com/lex/latest/dg/gl-limits.html#gl-limits-runtime).

1. Selecione **Publish**.

------

## Adicionar o bot do Amazon Lex à instância do Amazon Connect
<a name="lex-bot-add-to-connect"></a>

------
#### [ Amazon Lex ]

1. Abra o [console do Amazon Connect](https://console.aws.amazon.com/connect/).

1. Selecione a instância do Amazon Connect que você deseja integrar ao bot do Amazon Lex.  
![\[Página Instâncias da central de atendimento virtual do Amazon Connect e o alias da instância.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/instance.png)

1. No menu de navegação, escolha **Fluxos**.

1. Em **Amazon Lex**, use o menu suspenso para selecionar a região do seu bot Amazon Lex e, em seguida, selecione seu bot Amazon Lex,. **AccountBalance** 

1. Selecione o nome do alias do bot Amazon Lex no menu suspenso (**Teste**) e escolha **\$1 Adicionar bot do Lex**. A imagem a seguir mostra a seção do Amazon Lex depois de configurada.  
![\[A seção Amazon Lex da página Fluxos.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lexv2-region-bot.png)

**nota**  
O Amazon Connect usa políticas baseadas em recursos do Amazon Lex para fazer chamadas para o bot do Amazon Lex. Quando você associa um bot do Amazon Lex à instância do Amazon Connect, a política baseada em recursos do bot é atualizada para dar permissão ao Amazon Connect para invocar o bot. Para obter mais informações sobre as políticas baseadas em recursos do Amazon Lex, consulte [Como o Amazon Lex funciona com o IAM](https://docs.aws.amazon.com/lexv2/latest/dg/security_iam_service-with-iam.html#security_iam_service-with-iam-resource-based-policies).

------
#### [ Amazon Lex (Classic) ]

1. Abra o [console do Amazon Connect](https://console.aws.amazon.com/connect/).

1. Selecione a instância do Amazon Connect que você deseja integrar ao bot do Amazon Lex.

1. No menu de navegação, escolha **Fluxos de contato**.

1. No **Amazon Lex**, selecione a região do bot do Amazon Lex Classic no menu suspenso e, em seguida, selecione o bot do Amazon Lex Classic. O nome terá o sufixo “(Classic)”. Em seguida, escolha **Adicionar bot do Lex**.

------

## Criar um fluxo e adicionar o bot do Amazon Lex
<a name="lex-bot-create-flow-add-bot"></a>

**Importante**  
Se você estiver usando um bot do Amazon Lex V2, o atributo de idioma no Amazon Connect deve corresponder ao modelo de idioma usado para criar o bot do Lex. Isso é diferente do Amazon Lex (Classic). Use um bloco [Definir voz](set-voice.md#set-voice-lexv2bot) para indicar o modelo de idioma do Amazon Connect ou use um bloco [Set contact attributes (Definir atributos do contato)](set-contact-attributes.md).

Em seguida, crie um novo fluxo que usa o bot do Amazon Lex. Ao criar o fluxo, você configura a mensagem reproduzida aos chamadores.

1. Faça login na instância do Amazon Connect com uma conta que tenha permissões para fluxos de contato e bots do Amazon Lex.

1. No menu de navegação, escolha **Roteamento, Fluxos, Criar fluxo** e digite um nome para o fluxo.

1. Em **Interagir**, arraste um bloco [Obter entrada do cliente](get-customer-input.md) até o designer e conecte-o ao bloco **Ponto de entrada**.

1. Escolha o bloco **Obter informações do cliente** para abri-lo. Escolha **Conversão de texto em fala ou texto de chat, Insira texto**.

1. Digite uma mensagem que informe os chamadores sobre o que eles podem fazer. Por exemplo, use uma mensagem que corresponda às intenções usadas no bot, como "Para verificar o saldo da conta, pressione ou diga 1. Para falar com um atendente, pressione ou diga 2". A imagem a seguir mostra essa mensagem na página Propriedades do bloco **Obter informações do cliente**.  
![\[A página Propriedades do bloco Obter informações do cliente.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lex-get-customer-input.png)

1. Selecione a guia **Amazon Lex**, conforme mostrado na imagem a seguir.  
![\[A guia Amazon Lex na página Propriedades do bloco Obter informações do cliente.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lexv2-get-customer-input2.png)

1. No menu suspenso **Nome**, selecione o **AccountBalance**bot que você criou anteriormente. 

   1. Se você selecionou um bot do Amazon Lex, em **Alias**, use o menu suspenso para selecionar o alias do bot, **Teste**. 

   1. Os bots do Amazon Lex Classic têm o sufixo “(Classic)” anexado aos nomes. Se você selecionou um bot Classic, insira o alias que deseja usar no campo **Alias**.

   1. Para bots do Amazon Lex V2, você também tem a opção de definir manualmente o ARN de um alias de bot. Escolha **Definir manualmente** e digite o ARN do alias do bot que você deseja usar ou defina o ARN usando um atributo dinâmico.

1. Em **Intents (Intenções)**, selecione **Add an intent (Adicionar uma intenção)**.

1. Digite **AccountLookup**e escolha **Adicionar outra intenção.** A imagem a seguir mostra a seção **Intenções** configurada com essas informações.  
![\[A seção Intenções da guia Amazon Lex.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lex-get-customer-input3.png)

1. Digite **SpeakToAgent**e escolha **Salvar**.

### Concluir o fluxo
<a name="lex-bot-finish-flow"></a>

Nesta etapa, você conclui a adição de partes ao fluxo que são executadas depois que o chamador interage com o bot:

1. Se o chamador pressionar 1 para obter o saldo da conta, use um bloco **Prompt (Solicitação)** para reproduzir uma mensagem e desconectar a chamada.

1. Se o chamador pressionar 2 para falar com um atendente, use um bloco **Definir fila** para definir a fila e transferir o chamador para a fila, o que finaliza o fluxo.

Estas são as etapas para criar o fluxo:

1. Em **Interact**, arraste um **bloco de prompt do Play** até o designer e conecte o **AccountLookup**nó do bloco **Obter entrada do cliente** a ele. Depois que o cliente receber o saldo da conta do bot do Amazon Lex, a mensagem no bloco **Reproduzir mensagem** será reproduzida.

1. Em **Terminar/Transferir**, arraste um bloco **Desconectar/desligar** até o designer e conecte o bloco **Reproduzir mensagem** a ele. Depois que a mensagem de solicitação for reproduzida, a chamada será desconectada.

Para completar a **SpeakToAgent**intenção:

1. Adicione um bloco **Definir fila de trabalho** e conecte-o ao **SpeakToAgent**nó do bloco **Obter entrada do cliente**.

1. Adicione um bloco **Transfer to queue (Transferir para a fila)**. 

1. Conecte o nó Êxito do bloco **Definir fila do cliente** a **Fila de transferência**.

1. Selecione **Save (Salvar)** e **Publish (Publicar)**.

O fluxo finalizado se parecerá com a imagem a seguir. O fluxo começa com o bloco **Obter informações do cliente**. Isso bloqueia ramificações para **Reproduzir mensagem** ou **Definir fila do cliente**.

![\[O fluxo finalizado no designer de fluxo.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/lex-contactflow-designer.png)


**dica**  
Se sua empresa usar várias localidades em um único bot, adicione um bloco [Set contact attributes (Definir atributos do contato)](set-contact-attributes.md) ao início do fluxo. Configure esse bloco para usar o [\$1. LanguageCode](connect-attrib-list.md#attribs-system-table)atributo do sistema. 

## Atribuir o fluxo a um número de telefone
<a name="lex-bot-assign-number"></a>

Quando os clientes ligam para a central de atendimento, o fluxo ao qual eles são enviados é aquele atribuído ao número de telefone discado. Para tornar o novo fluxo ativo, atribua-o a um número de telefone para a instância.

1. Abra o console do Amazon Connect.

1. Escolha **Roteamento, Números de telefone**.

1. Na página **Gerenciar números de telefone**, selecione o número de telefone a ser atribuído ao fluxo.

1. Adicione uma descrição.

1. No menu **Fluxo/IVR**, selecione o fluxo que você acabou de criar.

1. Escolha **Salvar**.

## Experimente\$1
<a name="lex-bot-try-it"></a>

Para testar o bot e o fluxo, chame o número atribuído ao fluxo. Siga os prompts. 

# Práticas recomendadas para usar o canal de chat e o Amazon Lex
<a name="bp-lex-bot-chat"></a>

A seguir estão algumas práticas recomendadas para usar o canal de chat e o Amazon Lex em conjunto.
+ Você pode usar o mesmo bot para os canais de voz e bate-papo. No entanto, convém que o bot responda de forma diferente com base no canal. Por exemplo, você deseja retornar SSML para voz para que um número seja lido como um número de telefone, mas deseja retornar texto normal para bate-papo. Você pode fazer isso passando o atributo **Channel (Canal)**. Para instruções, consulte [Como usar o mesmo bot do Amazon Lex para voz e chat](one-bot-voice-chat.md). 
+ Para voz, algumas palavras são melhor soletradas foneticamente para obter a pronúncia correta, como sobrenomes. Se esse for o caso do seu cenário, inclua-o no design do seu bot. Se preferir, você pode manter os bots de voz e bate-papo separados. 
+ Conte aos atendentes sobre o bot. Quando um contato é conectado ao atendente, o atendente vê a transcrição inteira na janela. A transcrição inclui texto do cliente e do bot.

# Adicionar mensagens interativas do Amazon Lex para clientes no chat
<a name="interactive-messages"></a>

As mensagens interativas são mensagens avançadas que apresentam opções de exibição rápidas e pré-configuradas para o cliente escolher. Essas mensagens são fornecidas pelo Amazon Lex e configuradas por meio do Amazon Lex usando uma AWS Lambda função. 

**dica**  
Se você se integrou ao Apple Messages for Business, consulte [Tipos de mensagens interativas](https://register.apple.com/resources/messages/msp-rest-api/type-interactive) no site da Apple.

## Limites de validação
<a name="validation-limits"></a>

Espera-se que os limites do campo de string (por exemplo, título, subtítulo etc.) sejam aplicados pelo cliente (ou seja, uma interface personalizada ou o widget de comunicação hospedado). A [SendMessage](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_SendMessage.html)API verifica somente se o tamanho total da string é menor que 20 KB.
+ Quando você usa o widget de comunicação hospedado sem personalizá-lo, se a string exceder os limites do campo, ela será truncada na interface do usuário e uma elipse (...) será anexada. Você pode determinar como impor limites de campo personalizando o widget. 
+ Se você estiver se integrando a outras plataformas (como o Apple Messages for Business), revise os limites deste tópico para o Amazon Connect e revise os limites na documentação da outra plataforma. Por exemplo, respostas rápidas não são compatíveis com versões mais antigas do iOS. 

Todos os outros limites de campo devem ser seguidos para que a mensagem seja enviada com sucesso.

## Modelos de exibição de mensagens
<a name="message-display-templates"></a>

O Amazon Connect fornece os modelos de exibição de mensagens a seguir. Use-os para renderizar informações aos clientes em um chat:
+  [Seletor de listas](#list-picker)
+ [Seletor de horário](#time-picker)
+ [Painel](#panel)
+ [Resposta rápida](#quick-reply-template)
+ [Carrossel](#carousel-template)
+ [Modelo de formulário da Apple](#apple-form-template)
+ [Modelo do Apple Pay](#apple-pay-template)
+ [Modelo do aplicativo iMessage](#imessage-app-template)
+ [WhatsApp list](#whatsapp-list)
+ [WhatsApp botão de resposta](#whatsapp-reply-button)
+ [Formatação rich text para títulos e subtítulos](#rich-link-formatting)

Esses modelos definem como as informações serão renderizadas e quais informações serão exibidas na interface de chat. Quando mensagens interativas são enviadas pelo chat, os fluxos confirmam que o formato da mensagem segue um desses modelos.

## Modelo de seletor de listas
<a name="list-picker"></a>

Use o modelo de seletor de listas para apresentar ao cliente uma lista de até seis opções. Cada opção pode ter sua própria imagem. 

As imagens a seguir mostram dois exemplos de como o modelo do seletor de listas renderiza informações em um chat. 
+ Uma imagem mostra três botões, cada um com o nome de uma fruta no texto: maçã, laranja, banana.
+ A segunda imagem mostra a foto de uma loja e, abaixo dela, três botões, cada um com o nome, a imagem e o preço da fruta.

![\[O modelo do seletor de listas que renderiza informações em um chat.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/interactive-messages-listpicker-images2.png)


O código a seguir é o modelo de seletor de listas que você pode usar no Lambda. Observe o seguinte:
+ O **texto em negrito** indica um parâmetro obrigatório.
+ Em alguns casos, se o elemento pai não for obrigatório, mas os campos nele forem, então os campos serão obrigatórios. Por exemplo, consulte a estrutura `data.replyMessage` no modelo a seguir. Se a estrutura existir, o `title` será obrigatório. Caso contrário, uma `replyMessage` completa é opcional. 

```
{
   "templateType":"ListPicker",                       
   "version":"1.0",                                   
   "data":{                                           
      "replyMessage":{                             
         "title":"Thanks for selecting!",             
         "subtitle":"Produce selected",
         "imageType":"URL",                                
         "imageData":"https://interactive-msg.s3-us-west-2.amazonaws.com/fruit_34.3kb.jpg",                          
         "imageDescription":"Select a produce to buy"
      },
      "content":{                                       
         "title":"What produce would you like to buy?",
         "subtitle":"Tap to select option",
         "imageType":"URL",                       
         "imageData":"https://interactive-msg.s3-us-west-2.amazonaws.com/fruit_34.3kb.jpg",                  
         "imageDescription":"Select a produce to buy",
         "elements":[                                   
            {
               "title":"Apple",                          
               "subtitle":"$1.00",
               "imageType":"URL",
               "imageData":"https://interactive-message-testing.s3-us-west-2.amazonaws.com/apple_4.2kb.jpg"
            },
            {
               "title":"Orange",                         
               "subtitle":"$1.50",
               "imageType":"URL",                  
               "imageData":"https://interactive-message-testing.s3-us-west-2.amazonaws.com/orange_17.7kb.jpg",           
            },
             {
               "title":"Banana",                         
               "subtitle":"$10.00",
               "imageType":"URL",                  
               "imageData":"https://interactive-message-testing.s3-us-west-2.amazonaws.com/banana_7.9kb.jpg",            
               "imageDescription":"Banana"
            }
         ]
      }
```

### Limites do seletor de listas
<a name="list-picker-limits"></a>

A tabela a seguir lista os limites de cada um dos elementos do seletor de listas, caso você opte por criar seu próprio Lambda do zero. Os parâmetros obrigatórios estão em negrito.

Para enviar opções ilimitadas, implemente botões de ação em seu aplicativo. Para obter mais informações, consulte [Implementação de botões de ação no seletor de listas/painel interativo de mensagens](https://github.com/amazon-connect/amazon-connect-chat-interface/blob/master/.github/docs/InteractiveMessageActionButtonImplementation.md). 


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/interactive-messages.html)

**nota**  
Se você estiver usando o campo `targetForLinks` e o widget de comunicações do Amazon Connect, para abrir links na mesma guia do navegador, você deve adicionar o seguinte atributo ao trecho de código do widget para permitir que o iframe atual seja aberto e navegue pelos links dentro da mesma guia:  

```
amazon_connect('updateSandboxAttributes', 'allow-scripts allow-same-origin allow-popups allow-downloads allow-top-navigation-by-user-activation')                                       
```

## Modelo de seletor de horário
<a name="time-picker"></a>

O modelo de seletor de horário é útil para permitir que os clientes agendem compromissos. Você pode fornecer até 40 intervalos de tempo para o cliente em um chat. 

As imagens a seguir mostram dois exemplos de como o modelo do seletor de horário renderiza informações em um chat.
+ Uma imagem mostra uma data e, abaixo dela, um horário.
+ A segunda imagem mostra uma data e, abaixo dela, dois horários.

![\[O modelo do seletor de horário que renderiza informações em um chat.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/interactive-messages-timepicker.png)


A imagem a seguir mostra o seletor de horário com uma imagem

**nota**  
Se você estiver usando esse modelo de mensagem com o canal [Apple Messages for Business](apple-messages-for-business.md) e não adicionar uma imagem, o Amazon Connect adicionará uma imagem padrão na mensagem de resposta e em “responder”.

![\[O seletor de horário com uma imagem.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/interactive-messages-timepicker-with-image.png)


O código a seguir é o modelo de seletor de horário que você pode usar no Lambda. Observe o seguinte:
+ O **texto em negrito** indica um parâmetro obrigatório.
+ Em alguns casos, se o elemento pai não for obrigatório, mas os campos nele forem, então os campos serão obrigatórios. Por exemplo, consulte a estrutura `data.replyMessage` no modelo a seguir. Se a estrutura existir, o `title` será obrigatório. Caso contrário, uma `replyMessage` completa é opcional. 

```
{
   "templateType":"TimePicker",                                 
   "version":"1.0",                                             
   "data":{                                                    
      "replyMessage":{
         "title":"Thanks for selecting",                        
         "subtitle":"Appointment selected",
         "imageType":"URL",                                       
         "imageData":"https://interactive-msg.s3-us-west-2.amazonaws.com/booked.jpg",
         "imageDescription":"Appointment booked"
      },
      "content":{                                               
         "title":"Schedule appointment",                       
         "subtitle":"Tap to select option",
         "imageType":"URL",                                       
         "imageData":"https://interactive-msg.s3-us-west-2.amazonaws.com/calendar.jpg",
         "imageDescription":"Appointment booked",
         "timeZoneOffset":-450,
         "location":{
            "latitude":47.616299,                               
            "longitude":-122.4311,                              
            "title":"Oscar",                                    
            "radius":1,
         },
         "timeslots":[                                          
               {
                  "date" : "2020-10-31T17:00+00:00",             
                  "duration": 60,                               
               },
               {
                  "date" : "2020-11-15T13:00+00:00",            
                  "duration": 60,                              
               },
               {
                  "date" : "2020-11-15T16:00+00:00",            
                  "duration": 60,                              
               }
            ],           
         }
      }
   }
}
```

### Limites do seletor de horário
<a name="time-picker-limits"></a>

A tabela a seguir lista os limites de cada um dos elementos do seletor de horário. Use essas informações se você optar por criar seu próprio Lambda do zero. Os parâmetros obrigatórios estão em negrito.


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/interactive-messages.html)

## Modelo de painel
<a name="panel"></a>

Ao usar o modelo de painel, você pode apresentar ao cliente até 10 opções em uma pergunta. No entanto, você pode incluir somente uma imagem, em vez de uma imagem em cada opção. 

A imagem a seguir mostra um exemplo de como o modelo de painel renderiza informações em um chat. Mostra uma imagem na parte superior da mensagem e, abaixo da imagem, mostra um prompt que pergunta *Como posso ajudar? Toque para selecionar a opção*. No prompt, três opções são exibidas para o cliente: **Verificar as opções de autoatendimento**, **Falar com um atendente** e **Encerrar o chat**. 

![\[O modelo de painel que renderiza informações em um chat.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/interactive-messages-panel1.png)


O código a seguir é o modelo de painel que você pode usar no Lambda. Observe o seguinte:
+ O **texto em negrito** indica um parâmetro obrigatório.
+ Em alguns casos, se o elemento pai não for obrigatório, mas os campos nele forem, então os campos serão obrigatórios. Por exemplo, consulte a estrutura `data.replyMessage` no modelo a seguir. Se a estrutura existir, o `title` será obrigatório. Caso contrário, uma `replyMessage` completa é opcional.

```
{
   "templateType":"Panel",                            
   "version":"1.0",                                   
   "data":{                                          
      "replyMessage":{                             
         "title":"Thanks for selecting!",             
         "subtitle":"Option selected",
      },
      "content":{                                      
         "title":"How can I help you?",                
         "subtitle":"Tap to select option",
         "imageType":"URL",                       
         "imageData":"https://interactive-msg.s3-us-west-2.amazonaws.com/company.jpg",                  
         "imageDescription":"Select an option",
         "elements":[                                 
            {
               "title":"Check self-service options",   
            },
            {
               "title":"Talk to an agent",                     
            },
            {
               "title":"End chat",                    
            }
         ]
      }
   }
}
```

### Limites do painel
<a name="panel-limits"></a>

A tabela a seguir lista os limites de cada um dos elementos do painel, caso você opte por criar seu próprio Lambda do zero. Os parâmetros obrigatórios estão em negrito.

Para enviar opções ilimitadas, implemente botões de ação em seu aplicativo. Para obter mais informações, consulte [Implementação de botões de ação no seletor de listas/painel interativo de mensagens](https://github.com/amazon-connect/amazon-connect-chat-interface/blob/master/.github/docs/InteractiveMessageActionButtonImplementation.md). 


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/interactive-messages.html)

## Modelo de resposta rápida
<a name="quick-reply-template"></a>

Use mensagens de resposta rápida para receber respostas simples dos clientes e enviá-las para os clientes em uma lista em linha. Não há suporte para imagens para respostas rápidas.

A imagem a seguir mostra um exemplo de como o modelo de resposta rápida renderiza informações em um chat.

![\[O modelo de painel que renderiza informações em um chat.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/quick-reply-template.png)


O código a seguir é o modelo de resposta rápida que você pode usar no Lambda.

```
{
    "templateType": "QuickReply",
    "version": "1.0",
    "data": {
        "replyMessage": {
            "title": "Thanks for selecting!"
        },
        "content": {
            "title": "Which department would you like?",
            "elements": [{
                    "title": "Billing"
                },
                {
                    "title": "Cancellation"
                },
                {
                    "title": "New Service"
                }
            ]
        }
    }
}
```

### Limites de resposta rápida
<a name="quickreply-limits"></a>

A tabela a seguir lista os limites de cada um dos elementos da resposta rápida. Use essas informações se você optar por criar seu próprio Lambda do zero. Os parâmetros obrigatórios estão em negrito.


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/interactive-messages.html)

## Modelo de carrossel
<a name="carousel-template"></a>

Use carrosséis para exibir até 5 seletores de listas ou painéis para os clientes em uma única mensagem. Semelhante ao seletor de listas e ao seletor de horário, você pode adicionar mais opções ao carrossel usando o recurso SHOW\$1MORE.

O GIF a seguir mostra um exemplo de como o modelo de carrossel renderiza informações em um chat. Os clientes percorrem o carrossel de imagens usando as setas esquerda e direita. 

![\[Um carrossel na experiência de chat do cliente.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/carousel-interactive.gif)


A imagem a seguir mostra dois hiperlinks **Saiba mais**, que são exemplos de elementos de hiperlink do seletor de carrossel.

![\[Um seletor de carrossel com hiperlinks.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/carousel-interactive1.png)


O código a seguir é o modelo de carrossel que você pode usar no Lambda. 

```
{
  "templateType": "Carousel",            
  "version": "1.0",                      
  "data": {                              
      "content": {                           
        "title": "View our popular destinations",   
        "elements": [                               
        {
          "templateIdentifier": "template0",        
          "templateType": "Panel",
          "version": "1.0",
          "data": {
            "content": {
              "title": "California",
              "subtitle": "Tap to select option",
              "elements": [
                {
                  "title": "Book flights"
                },
                {
                  "title": "Book hotels"
                },
                {
                  "title": "Talk to agent"
                }
              ]
            }
          }
        },
        {
          "templateIdentifier": "template1",   
          "templateType": "Panel",
          "version": "1.0",
          "data": {
            "content": {
              "title": "New York",
              "subtitle": "Tap to select option",
              "elements": [
                {
                  "title": "Book flights"
                },
                {
                  "title": "Book hotels"
                },
                {
                  "title": "Talk to agent"
                }
              ]
            }
          }
        }
      ]
    }
  }
}
```

Para usuários do widget de comunicação hospedado:
+ As seleções no modelo de carrossel resultam em uma resposta de string JSON estruturada como o exemplo a seguir, para ser enviada de volta ao Lambda (outros tipos de mensagens interativas retornam uma resposta de string regular apenas com valor `selectionText`):

  ```
  {
      templateIdentifier: "template0",
      listTitle: "California",
      selectionText: "Book hotels"
  }
  ```
+ Em carrosséis, você pode fornecer hiperlinks nos elementos da lista. picker/panel Para criar um hiperlink em vez de um botão, inclua os seguintes campos adicionais para o elemento que deve ser um hiperlink:

  ```
  {
      title: "Book flights",
      ...
      type: "hyperlink",
      url: "https://www.example.com/Flights"
  }
  ```

### Limites de carrossel
<a name="carousel-limits"></a>

A tabela a seguir lista os limites de cada um dos elementos do carrossel. Use essas informações se você optar por criar seu próprio Lambda do zero. Os parâmetros obrigatórios estão em negrito.


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/interactive-messages.html)

## Modelo de formulário da Apple
<a name="apple-form-template"></a>

**nota**  
 Esse modelo é aplicável somente para os fluxos de contato do Apple Messages for Business. 

Uma empresa pode enviar um formulário de mensagem interativa para os clientes finais por meio de uma única mensagem que contenha várias páginas de entradas solicitadas. Quando a mensagem é recebida no dispositivo Apple de um cliente final, ele pode abrir o formulário e navegar pelas páginas, fornecendo uma resposta para cada página, antes de enviar todas as respostas no final do formulário.

Por exemplo, as empresas podem usar os formulários da Apple para várias finalidades, incluindo fluxos de triagem, pesquisas com clientes e criação/inscrições de contas.

**Atenção**  
O conteúdo da mensagem interativa e as respostas do cliente final são armazenados na transcrição do registro de contato e podem ser visualizados por outros participantes do chat e analistas de contato com acesso às transcrições. Para evitar que as PII apareçam na transcrição do registro de **contato após o término** do contato, você deve usar o [bloco Definir comportamento de gravação e análise](set-recording-behavior.md) em seu step-by-step fluxo-guiaContact Lens, [ativar](sensitive-data-redaction.md) e ativar a redação de datas confidenciais. Para obter detalhes completos sobre como habilitar a redação de PII, consulte [Enable redaction of sensitive data](enable-analytics.md#enable-redaction).

 Os tipos de páginas compatíveis são:
+ **ListPicker**: uma lista de opções que o usuário deve selecionar com suporte a imagens.
+ **WheelPicker**: semelhante ListPicker , mas a seleção é feita por meio de uma roda rolável de opções.
+ **DatePicker**: uma visualização do calendário em que o usuário pode escolher uma data.
+ **Input**: um campo de texto que o usuário deve preencher.

O código a seguir é um exemplo de um modelo de formulários da Apple que você pode usar no Lambda.

**nota**  
 O **texto em negrito** é um parâmetro obrigatório. 
 Em alguns casos, se o elemento pai existir na solicitação e não for obrigatório/em negrito, mas os campos nele forem, então os campos são obrigatórios. 

 Exemplo de formulário de pesquisa simples: 

```
{
  "templateType": "AppleForm",
  "version": "1.0",
  "data": {
    "content": {
      "title": "Survey",
      "pages": [
        {
          "pageType": "DatePicker",
          "title": "Date you visited",
          "subtitle": "When did you last visit?",
          "minDate": "2024-01-02"
        },
        {
          "pageType": "ListPicker",
          "title": "Rating",
          "subtitle": "How do you rate the experience?",
          "items": [
            {
              "title": "Good",
              "imageType": "URL",
              "imageData": "https://mybucket.s3.us-west-2.amazonaws.com/good.jpg"
            },
            {
              "title": "Okay",
              "imageType": "URL",
              "imageData": "https://mybucket.s3.us-west-2.amazonaws.com/okay.jpg"
            },
            {
              "title": "Poor",
              "imageType": "URL",
              "imageData": "https://mybucket.s3.us-west-2.amazonaws.com/poor.jpg"
            }
          ]
        },
        {
          "pageType": "ListPicker",
          "title": "Dine type",
          "subtitle": "Select all dine types that apply",
          "multiSelect": true,
          "items": [
            {
              "title": "Pickup"
            },
            {
              "title": "Dine-in"
            },
            {
              "title": "Delivery"
            }
          ]
        },
        {
          "pageType": "WheelPicker",
          "title": "Visits",
          "subtitle": "How often do you visit?",
          "items": [
            {
              "title": "Often"
            }
            {
              "title": "Sometimes"
            },
            {
              "title": "Rarely"
            }
          ]
        },
        {
          "pageType": "Input",
          "title": "Additional notes",
          "subtitle": "Anything else you'd like to mention about your visit?",
          "multiLine": true
        }
      ]
    }
  }
}
```

### Limites de formulário da Apple
<a name="apple-forms-limits"></a>

#### InteractiveMessage
<a name="apple-forms-limits-interactivemessage"></a>


| Campo  | Tipo  | Obrigatório  | Descrição/observações  | 
| --- | --- | --- | --- | 
| versão | string  | Sim  | Número da versão. Valores permitidos: “1.0”  | 
| templateType | TemplateType  | Sim  | Tipo de modelo de mensagem interativa. Valores permitidos: [” ListPicker “," TimePicker “, “Painel”, "QuickReply“, “Carrossel”, "ViewResource“," AppleForm“]  | 
| dados | InteractiveMessageData  | Sim  | Dados das mensagens interativas  | 

#### InteractiveMessageData
<a name="apple-forms-limits-interactivemessagedata"></a>


| Campo  | Tipo  | Obrigatório  | Descrição/observações  | 
| --- | --- | --- | --- | 
| content  | InteractiveMessageContent  | Sim  | Conteúdo principal da mensagem interativa  | 
| replyMessage | ReplyMessage  | Não  | Configuração de exibição de mensagens após o envio da resposta à mensagem interativa  | 

#### AppleFormContent
<a name="apple-forms-limits-appleformcontent"></a>


| Campo  | Tipo  | Obrigatório  | Descrição/observações  | 
| --- | --- | --- | --- | 
| título | String  | Sim  | Título de nível superior do formulário. Exibido no balão de mensagens de recebimento da Apple e na renderização da transcrição  | 
| subtitle | String  | Não  | Usado como legenda em ReceivedMessage  | 
| imageType | String  | Não  | Valores válidos: “URL” Usado para imagem em ReceivedMessage  | 
| imageData | String  | Não  | URL da imagem S3 Usado para imagem em ReceivedMessage  | 
| pages | AppleFormPage[]  | Sim  | Lista de páginas do formulário  | 
| showSummary | Booleano  | Não  | Se deve exibir uma página de resumo das respostas a serem revisadas antes do envio Padrão: Falso (sem confirmation/summary página)  | 
| splashPage | AppleFormSplashPage  | Não  | Página inicial que é exibida antes das páginas reais. Padrão: Sem página inicial  | 

#### AppleFormSplashPage
<a name="apple-forms-limits-appleformsplashpage"></a>


| Campo  | Tipo  | Obrigatório  | Descrição/observações  | 
| --- | --- | --- | --- | 
| título | String  | Sim  | Título da página inicial  | 
| subtitle | String  | Não  | Subtítulo/corpo da página inicial  | 
| imageType | ImageType  | Não  | Presente ao exibir a imagem na página inicial. Valor permitido: “URL”. Padrão: Nenhuma imagem exibida  | 
| imageData | String  | Não  | Para imageType="URL”, esse é o valor do URL. Padrão: Nenhuma imagem exibida  | 
| buttonTitle | String  | Sim  | Texto do botão Continuar. Exigido pela Apple, texto padrão com localização não compatível  | 

#### AppleFormPage
<a name="apple-forms-limits-appleformpage"></a>
+  Modelo básico para páginas de formulários. Este é o modelo base para tipos de página específicos 


| Campo  | Tipo  | Obrigatório  | Descrição/observações  | 
| --- | --- | --- | --- | 
| pageType | ApplePageType  | Sim  | Enumeração para o tipo de página. Valores permitidos: ["Input”, "DatePicker“," WheelPicker “," ListPicker “]  | 
| título | String  | Sim  | Título da página  | 
| subtitle | String  | Sim  | Subtítulo da página. Usado na página de confirmação  | 

#### AppleFormDatePickerPage
<a name="apple-forms-limits-appleformdatapickerpage"></a>

 **AppleFormDatePickerPage**estende [AppleFormPage](#apple-forms-limits-appleformpage) 


| Campo  | Tipo  | Obrigatório  | Descrição/observações  | 
| --- | --- | --- | --- | 
| pageType | ApplePageType  | Sim  | Valor: "DatePicker”  | 
| labelText | String  | Não  | Texto exibido ao lado da entrada de data. Veja exemplos de capturas de tela no Apêndice  | 
| helperText | String  | Não  | Texto auxiliar exibido abaixo da entrada de data. Veja exemplos de capturas de tela no Apêndice. Padrão: Sem texto auxiliar  | 
| dateFormat | String  | Não  | Formato de data ISO 8601. Padrão: MM/dd/yyyy  | 
| startDate | String  | Não  | Data inicial/padrão selecionada em formato de data válido. Padrão: Data atual para o usuário final quando a mensagem é enviada  | 
| minDate | String  | Não  | A data mínima que pode ser selecionada em um formato de data válido. Padrão: Sem mínimo  | 
| maxDate | String  | Não  | A data máxima que pode ser selecionada em um formato de data válido. Padrão: Data atual para o usuário final quando a mensagem é enviada  | 

#### AppleFormListPickerPage
<a name="apple-forms-limits-appleformlistpickerpage"></a>

 **AppleFormListPickerPage**estende [AppleFormPage](#apple-forms-limits-appleformpage) 


| Campo  | Tipo  | Obrigatório  | Descrição/observações  | 
| --- | --- | --- | --- | 
| pageType | ApplePageType  | Sim  | Valor: "ListPicker”  | 
| multiSelect | Booleano  | Não  | Habilita a seleção de vários itens. Padrão: false (seleção única)  | 
| itens | AppleFormListPickerPageItem[]  | Sim  | Lista de itens da página de listagem  | 

#### AppleFormListPickerPageItem
<a name="apple-forms-limits-appleformlistpickerpageitem"></a>

 **AppleFormListPickerPageItem**estende [AppleFormPage](#apple-forms-limits-appleformpage) 


| Campo  | Tipo  | Obrigatório  | Descrição/observações  | 
| --- | --- | --- | --- | 
| título | String  | Sim  | Texto de exibição do item  | 
| imageType | ImageType  | Não  | Presente ao exibir a imagem dentro do item. Valor permitido: “URL”. Padrão: Nenhuma imagem exibida  | 
| imageData | String  | Não  | Para imageType="URL”, esse é o valor do URL. Padrão: Nenhuma imagem exibida  | 

**nota**  
Modelo de imagem semelhante aos modelos de mensagens interativas existentes (ListPicker), exceto que não `imageDescription` está incluído, que é usado para texto alternativo de imagem em widgets de bate-papo/bate-papos na web e ignorado para mensagens interativas da Apple.

#### AppleFormWheelPickerPage
<a name="apple-forms-limits-appleformwheelpickerpage"></a>

 **AppleFormWheelPickerPage**estende [AppleFormPage](#apple-forms-limits-appleformpage) 


| Campo  | Tipo  | Obrigatório  | Descrição/observações  | 
| --- | --- | --- | --- | 
| pageType | ApplePageType  | Sim  | Valor: "WheelPicker”  | 
| itens | AppleFormWheelPickerPageItem[]  | Sim  | Lista de itens de rodas seletoras  | 
| labelText | String  | Não  | Texto exibido ao lado da entrada. Veja exemplos de capturas de tela no Apêndice  | 

#### AppleFormWheelPickerPageItem
<a name="apple-forms-limits-appleformwheelpickerpageitem"></a>

 **AppleFormWheelPickerPageItem**estende [AppleFormPage](#apple-forms-limits-appleformpage) 


| Campo  | Tipo  | Obrigatório  | Descrição/observações  | 
| --- | --- | --- | --- | 
| título | String  | Sim  | Texto de exibição do item do seletor  | 

#### AppleFormInputPage
<a name="apple-forms-limits-appleforminputpage"></a>

 **AppleFormInputPage**estende [AppleFormPage](#apple-forms-limits-appleformpage) 


| Campo  | Tipo  | Obrigatório  | Descrição/observações  | 
| --- | --- | --- | --- | 
| pageType | ApplePageType  | Sim  | Valor: “Input”  | 
| labelText | String  | Não  | Texto exibido ao lado da entrada. Veja exemplos de capturas de tela no Apêndice  | 
| helperText | String  | Não  | Texto adicional exibido na caixa de entrada. Padrão: Sem texto auxiliar  | 
| placeholderText | String  | Não  | Texto de espaço reservado que é exibido inicialmente quando não há entrada. Padrão: texto de espaço reservado “(Opcional)” ou “(Obrigatório)”  | 
| prefixText | String  | Não  | Texto prefixo a ser exibido ao lado da entrada. Ex.: “\$1” quando a entrada é um valor monetário. Padrão: Sem texto prefixo  | 
| requerido | Booleano  | Não  | Se o usuário final é obrigado a fornecer a entrada. Padrão: Falso  | 
| multiLine | Booleano  | Não  | Se a entrada de várias linhas pode ser fornecida. Padrão: Falso (linha única)  | 
| maxCharCount  | Número  | Não  | A contagem máxima de caracteres da entrada. Aplicado no cliente Apple. Padrão: Sem limite  | 
| regex | String  | Não  | Cadeia de caracteres de expressão regular (regex) para colocar restrições na entrada fornecida. Padrão: Sem restrições de regex  | 
| keyboardType | String  | Não  | Determina que tipo de teclado é exibido quando o usuário final está fornecendo a entrada. Valores permitidos: iguais aos da Apple. Consulte os [documentos](https://register.apple.com/resources/messages/msp-rest-api/type-interactive#form-message). Alguns dos valores permitidos incluem: numberPad, phonePad, emailAddress  | 
| textContentType  | String  | Não  | Ajuda com sugestões de preenchimento automático em dispositivos Apple.  Valores permitidos: iguais aos da Apple. Consulte os [documentos](https://register.apple.com/resources/messages/msp-rest-api/type-interactive#form-message). Alguns dos valores permitidos: telefoneNumber,, familyName fullStreetAddress  | 

## Modelo do Apple Pay
<a name="apple-pay-template"></a>

**nota**  
Esse modelo é aplicável somente para os fluxos de contato do Apple Messages for Business.

 Use o modelo do Apple Pay para fornecer uma maneira fácil e segura para os clientes comprarem bens e serviços por meio do Apple Messages for Business com o Apple Pay.

 O seguinte código é o modelo do Apple Pay que você pode usar no Lambda:

**nota**  
 O **texto em negrito** é um parâmetro obrigatório. 
 Em alguns casos, se o elemento pai existir na solicitação e não for obrigatório/em negrito, mas os campos nele forem, então os campos são obrigatórios. 

```
{
  "templateType":"ApplePay",
  "version":"1.0",
  "data":{
    "content":{
      "title":"Halibut",
      "subtitle":"$63.99 at Sam's Fish",
      "imageType":"URL",
      "imageData":"https://interactive-msg.s3-us-west-2.amazonaws.com/fish.jpg",
      "payment": {
        "endpoints": {
          "orderTrackingUrl": "https://sams.example.com/orderTrackingUrl/",
          "paymentGatewayUrl": "https://sams.example.com/paymentGateway/",
          "paymentMethodUpdateUrl": "https://sams.example.com/paymentMethodUpdate/",
          "shippingContactUpdateUrl": "https://sams.example.com/shippingContactUpdate/",
          "shippingMethodUpdateUrl": "https://sams.example.com/shippingMethodUpdate/",
          "fallbackUrl": "https://sams.example.com/paymentGateway/"
        },
        "merchantSession": {
          "epochTimestamp": 1525730094057,
          "expiresAt": 1525730094057,
          "merchantSessionIdentifier": "PSH40080EF4D6.........9NOE9FD",
          "nonce": "fe72cd0f",
          "merchantIdentifier": "merchant.com.sams.fish",
          "displayName": "Sam's Fish",
          "signature": "308006092a8.......09F0W8EGH00",
          "initiative": "messaging",
          "initiativeContext": "https://sams.example.com/paymentGateway/",
          "signedFields": [
            "merchantIdentifier",
            "merchantSessionIdentifier",
            "initiative",
            "initiativeContext",
            "displayName",
            "nonce"
          ],
        },
        "paymentRequest": {
          "applePay": {
            "merchantCapabilities": [
              "supports3DS",
              "supportsDebit",
              "supportsCredit"
            ],
            "merchantIdentifier": "merchant.com.sams.fish",
            "supportedNetworks": [
              "amex",
              "visa",
              "discover",
              "masterCard"
            ]
          },
          "countryCode": "US",
          "currencyCode": "USD",
          "lineItems": [
            {
              "amount": "59.00",
              "label": "Halibut",
              "type": "final"
            },
            {
              "amount": "4.99",
              "label": "Shipping",
              "type": "final"
            }
          ],
          "requiredBillingContactFields": [
            "postalAddress"
          ],
          "requiredShippingContactFields": [
            "postalAddress",
            "phone",
            "email",
            "name"
          ],
          "shippingMethods": [
            {
              "amount": "0.00",
              "detail": "Available within an hour",
              "identifier": "in_store_pickup",
              "label": "In-Store Pickup"
            },
            {
              "amount": "4.99",
              "detail": "5-8 Business Days",
              "identifier": "flat_rate_shipping_id_2",
              "label": "UPS Ground"
            },
            {
              "amount": "29.99",
              "detail": "1-3 Business Days",
              "identifier": "flat_rate_shipping_id_1",
              "label": "FedEx Priority Mail"
            }
          ],
          "total": {
            "amount": "63.99",
            "label": "Sam's Fish",
            "type": "final"
          },
          "supportedCountries" : [
            "US",
            "CA",
            "UK",
            "JP",
            "CN"
          ]
        }
      },
      "requestIdentifier" : "6b2ca008-1388-4261-a9df-fe04cd1c23a9"
    }
  }
}
```

### Limites do Apple Pay
<a name="apple-pay-limits"></a>


| Campo principal  | Campo  | Obrigatório  | Mínimo de caracteres  | Máximo de caracteres  | Outros requisitos  | 
| --- | --- | --- | --- | --- | --- | 
|  | templateType | Sim  |  |  | Tipo de modelo válido  | 
|  | dados | Sim  |  |  |  | 
|  | versão | Sim  |  |  | Deve ser “1.0”  | 
| dados | content  | Sim  |  |  |  | 
| content  | título | Sim  | 1  | 512  | O título do balão de mensagem recebido  | 
|  | subtitle | Não  | 0  | 512  | O subtítulo a ser exibido abaixo do título do balão de mensagem recebida  | 
|  | imageData | Não  | 0  | 200  | Deve ser um URL válido e acessível ao público  | 
|  | imageType | Não  | 0  | 50  | Deve ser “URL”  | 
|  | pagamento | Sim  |  |  | Um dicionário contendo campos que fornecem os detalhes de uma solicitação do Apple Pay.  | 
|  | requestIdentifier | Não  |  |  | String, um identificador para a ApplePay solicitação. Se não for especificado, um UUID será gerado e usado.  | 
| pagamento | endpoints | Sim  |  |  | Um dicionário contendo os endpoints para processamento de pagamentos, atualizações de contatos e rastreamento de pedidos.  | 
|  | merchantSession | Sim  |  |  | Um dicionário contendo a sessão de pagamento fornecida pelo Apple Pay após solicitar uma nova sessão de pagamento.  | 
|  | paymentRequest | Sim  |  |  | Um dicionário com informações sobre a solicitação de pagamento  | 
| endpoints | paymentGatewayUrl  | Sim  |  |  | String. Chamado pelo Apple Pay para processar o pagamento por meio do provedor de pagamento. O URL deve corresponder ao URL no campo initiativeContext da sessão do lojista  | 
|  | fallbackUrl | Não  |  |  | Um URL aberto em um navegador da web para que o cliente possa concluir a compra se o dispositivo não conseguir fazer pagamentos usando o Apple Pay. Se especificado, fallbackURL precisa corresponder. paymentGatewayUrl  | 
|  | orderTrackingUrl  | Não  |  |  | Chamado pelo Messages for Business após conclusão do pedido. Oferece a oportunidade de atualizar as informações do pedido em seu sistema.  | 
|  | paymentMethodUpdateURL | Não  |  |  | Chamado pelo Apple Pay quando o cliente altera a forma de pagamento. Se você não implementar esse endpoint e incluir essa chave no dicionário, o cliente verá uma mensagem de erro.  | 
|  | shippingContactUpdateURL | Não  |  |  | Chamado pelo Apple Pay quando o cliente altera as informações do endereço de entrega. Se você não implementar esse endpoint e incluir essa chave no dicionário, o cliente verá uma mensagem de erro  | 
|  | shippingMethodUpdateURL | Não  |  |  | Chamado pelo Apple Pay quando o cliente altera o método de envio. Se você não implementar esse endpoint e incluir essa chave no dicionário, o cliente verá uma mensagem de erro.  | 
| merchantSession | displayName | Sim  | 1  | 64  | String. O nome canônico da sua loja, adequado para exibição. Não localize o nome.  | 
|  | initiative | Sim  |  |  | String. Deve ser “messaging”  | 
|  | initiativeContext | Sim  |  |  | String. Passa o URL do gateway de pagamento.  | 
|  | merchantIdentifier | Sim  |  |  | String. Um identificador exclusivo que representa um lojista do Apple Pay.  | 
|  | merchantSessionIdentifier  | Sim  |  |  | String. Um identificador exclusivo que representa a sessão de um lojista do Apple Pay.  | 
|  | epochTimestamp | Sim  |  |  | String. A representação de horário em número de segundos decorridos desde 00:00:00 (UTC) de quinta-feira, 1º de janeiro de 1970.  | 
|  | expiresAt | Sim  |  |  | String. A representação de horário de expiração em número de segundos decorridos desde 0h (UTC) de quinta-feira, 1º de janeiro de 1970.  | 
|  | Nonce | Não  |  |  | Binário. Uma string de uso único que verifica a integridade da interação.  | 
|  | signature | Não  |  |  | Binário. Um hash da chave pública usada para assinar as interações.  | 
|  | signedFields | Não  |  |  | Lista de strings que contém as propriedades assinadas.  | 
| paymentRequest | applePay | Sim  |  |  | Um dicionário que descreve a configuração do Apple Pay.  | 
|  | countryCode | Sim  |  |  | String. O código de país ISO 3166 de duas letras do lojista.  | 
|  | currencyCode | Sim  |  |  | String. O código monetário ISO 4217 de três letras para o pagamento.  | 
|  | lineItems | Não  |  |  | Uma matriz de itens de linha explicando pagamentos e cobranças adicionais. Os itens de linha não são obrigatórios. No entanto, a matriz não pode ficar vazia se a chave lineItems estiver presente.  | 
|  | Total | Sim  |  |  | Um dicionário que contém o total. O valor total precisa ser maior que zero para passar na validação.  | 
|  | requiredBillingContactCampos | Não  |  |  | A lista das informações de cobrança do cliente exigidas para processar a transação. Para ver a lista de sequências de caracteres possíveis, consulte [requiredBillingContactCampos](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymentrequest/2216120-requiredbillingcontactfields). Exija somente os campos de contato necessários para processar o pagamento. Solicitar campos desnecessários aumenta a complexidade da transação, o que pode aumentar as chances de o cliente cancelar a solicitação de pagamento.  | 
|  | requiredShippingContactCampos | Não  |  |  | A lista de informações de envio ou contato do cliente exigidas para concluir ao pedido. Por exemplo, se você precisar do e-mail ou número de telefone do cliente, inclua essa chave. Para ver a lista de sequências de caracteres possíveis, consulte [requiredShippingContactCampos](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymentrequest/2216121-requiredshippingcontactfields).  | 
|  | shippingMethods | Não  |  |  | Uma matriz que lista os métodos de envio disponíveis. A planilha de pagamento do Apple Pay exibe o primeiro método de envio da matriz como o método de envio padrão.  | 
|  | supportedCountries | Não  |  |  | Uma matriz de países com suporte. Liste cada país com seu código de país ISO 3166.  | 
| applePay | merchantIdentifier | Sim  |  |  | Um identificador exclusivo que representa um lojista do Apple Pay.  | 
|  | merchantCapabilities | Sim  |  |  | Uma matriz de recursos de pagamento com suporte do lojista. A matriz deve incluir supports3DS e, opcionalmente, pode incluir supportsCredit, supportsDebit e supportsEMV.  | 
|  | supportedNetworks | Sim  |  |  | Uma matriz de redes de pagamento com suporte do lojista. A matriz deve incluir um ou mais dos seguintes valores: amex, discover, jcb, masterCard, privateLabel ou visa  | 
| lineItem | amount | Sim  |  |  | O valor monetário do item de linha.  | 
|  | label | Sim  |  |  | Uma descrição breve e localizada do item de linha.  | 
|  | digitar | Não  |  |  | Um valor que indica se o item de linha é definitivo ou pendente.  | 
| total | amount | Sim  |  |  | O valor total do pagamento.  | 
|  | label | Sim  |  |  | Uma descrição breve e localizada do pagamento.  | 
|  | digitar | Não  |  |  | Um valor que indica se o pagamento é definitivo ou pendente.  | 
| shippingMethods | amount | Sim  |  |  | String. O custo não negativo associado a esse método de envio.  | 
|  | detail | Sim  |  |  | String. Descrição adicional do método de envio.  | 
|  | label | Sim  |  |  | String. Uma breve descrição do método de envio.  | 
|  | Identifier | Sim  |  |  | String. Um valor definido pelo cliente usado para identificar esse método de envio.  | 

## Modelo do aplicativo iMessage
<a name="imessage-app-template"></a>

**nota**  
Esse modelo é aplicável somente para os fluxos de contato do Apple Messages for Business. 

 Use o modelo de aplicativos iMessage para apresentar ao cliente seu aplicativo iMessage personalizado. 

 O código a seguir é um exemplo de modelo de aplicação iMessage que você pode usar na sua função do Lambda.  

```
{
   templateType: AppleCustomInteractiveMessage,
   version: "1.0",
   data: {
       content: {
           appIconUrl: "https://interactive-message-testing.s3-us-west-2.amazonaws.com/apple_4.2kb.jpg",
           appId: "123456789",
           appName: "Package Delivery",
           title: "Bubble Title CIM",
           bid: "com.apple.messages.MSMessageExtensionBalloonPlugin:{team-id}:{ext-bundle-id}",
           dataUrl: "?deliveryDate=26-01-2024&destinationName=Home&street=1infiniteloop&state=CA&city=Cupertino&country=USA&postalCode=12345&latitude=37.331686&longitude=-122.030656&isMyLocation=false&isFinalDestination=true",
           subtitle: "Bubble package",
       },
       replyMessage: {
           title: "Custom reply message title",
           subtitle: "Custom reply message subtitle",
           imageType: "URL",
           imageData: "https://interactive-msg.s3-us-west-2.amazonaws.com/fruit_34.3kb.jpg",
       }
   }
}
```

### Limites do aplicativo iMessage
<a name="imessage-apps-limits"></a>


|  **Campo principal**  |  **Campo**  |  **Obrigatório**  |  **Tipo**  |  **Outras observações**  | 
| --- | --- | --- | --- | --- | 
|  |  templateType  | Sim  | TemplateType  | Tipo de modelo válido, "AppleCustomInteractiveMessage”  | 
|  |  data  | Sim  | InteractiveMessageData  | Contém dicionários de conteúdo e receivedMessage  | 
|  |  version  | Sim  | string  | Deve ser “1.0”  | 
|  data  |  content  | Sim  | InteractiveMessageContent  | Conteúdo interativo do aplicativo iMessage  | 
|  |  replyMessage  | Sim  | ReplyMessage  | Configuração de exibição de mensagens após o envio da resposta à mensagem interativa  | 
|  content  |  appIconUrl  | Sim  | string  | URL do S3 da AWS  | 
|  |  appId  | Sim  | string  | ID IMessage do aplicativo comercial  | 
|  |  appName  | Sim  | string  | Nome IMessage do aplicativo comercial  | 
|  |  bid  | Sim  | string  | Oferta de IMessage aplicativo comercial. Padrão: com.apple.messages. MSMessageExtensionBalloonPlugin: \$1id da equipe\$1: \$1\$1 ext-bundle-id  | 
|  |  dataUrl  | Sim  | string  | Dados que são passados para o aplicativo iMessage  | 
|  |  useLiveLayout  | Não  | booleano  | Padrão: Verdadeiro  | 
|  |  title  | Sim  | string  | título do balão do aplicativo iMessage  | 
|  |  subtitle  | Não  | string  | subtítulo da bolha do aplicativo iMessage  | 
|  replyMessage  |  title  | Não  | string  |  | 
|  |  subtitle  | Não  | string  |  | 
|  |  imageType  | Não  | string  | Deve ser um URL válido e acessível ao público  | 
|  |  imageData  | Não  | string  | Não pode existir sem uma imagem  | 

## WhatsApp lista
<a name="whatsapp-list"></a>

**nota**  
Você só usa esse modelo para fluxos WhatsApp de mensagens. Para obter mais informações sobre a integração WhatsApp com o Amazon Connect, consulte[Configurar mensagens WhatsApp comerciais](whatsapp-integration.md), no início deste guia.

Você usa o modelo WhatsApp de lista em WhatsApp bate-papos para fornecer aos clientes uma lista de opções.

O exemplo a seguir mostra uma lista de opções para um serviço bancário.

```
{
  "templateType": "WhatsAppInteractiveList",
  "version": "1.0",
  "data": {
    "content": {
      "title": "Which account do you need help with?",
      "body": {
        "text": "Which account do you need help with?"
      },
      "action": {
        "button": "Options",
        "sections": [
          {
            "title": "Your accounts",
            "rows": [
              {
                "id": "11111111",
                "title": "11111111",
                "description": "PERSONAL CHECKING"
              },
              {
                "id": "22223333",
                "title": "22223333",
                "description": "PERSONAL SAVINGS"
              }
            ]
          },
          {
            "title": "Other",
            "rows": [
              {
                "id": "other",
                "title": "I can't find my account"
              }
            ]
          }
        ]
      }
    }
  }
}
```

A imagem a seguir mostra uma tela típica antes e depois de um cliente abrir uma lista.

![\[Imagem mostrando uma lista de opções.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/whatsapp-options-results.png)


### WhatsApp limites de opções
<a name="whatsapp-options-limits"></a>


| Campo principal | Campo | Obrigatório | Tamanho mínimo  | Tamanho máximo  | Outros requisitos | 
| --- | --- | --- | --- | --- | --- | 
|  | templateType | Sim |  |  | Deve ser "WhatsAppInteractiveList” | 
|  | data | Sim |  |  |  | 
|  | version | Sim |  |  | Deve ser “1.0” | 
| data | content | Sim |  |  |  | 
| content | title | Sim |  |  |  | 
|  | cabeçalho | Não |  |  |  | 
|  | body | Sim  |  |  |  | 
|  | rodapé | Não |  |  |  | 
|  | ação | Sim |  |  |  | 
| cabeçalho |  tipo  | Sim  |  |  |  Deve ser “texto”.  | 
|  |  texto  | Sim  | 1  |  60  |  | 
| body |  texto  | Sim  | 1 |  4096  |  | 
|  rodapé  |  texto  | Sim  | 1 |  60  |  | 
|  ação  |  seções  | Sim  | 1 |  10  |  | 
|  |  botão  | Sim  | 1 |  20  |  | 
|  seção  |  title  | Sim  | 1 |  24  |  | 
|  |  fileiras  | Sim  | 1 |  10  |  Máximo de dez linhas em todas as seções.  | 
|  fileira  |  id  | Sim | 1 | 200 | Deve ser exclusivo em todas as linhas. | 
|  |  title  | Sim  | 1 | 24 |  | 
|  | descrição | Não  | 1 |  72  |  | 

## WhatsApp botão de resposta
<a name="whatsapp-reply-button"></a>

**nota**  
Você só usa esse modelo para fluxos WhatsApp de mensagens.

Você pode usar o modelo de botão de WhatsApp resposta para apresentar uma lista de opções em linha para os clientes.

```
{
  "templateType": "WhatsAppInteractiveReplyButton",
  "version": "1.0",
  "data": {
    "content": {
      "title": "What would you like to do?",
      "body": {
        "text": "What would you like to do?"
      },
      "action": {
        "buttons": [
          {
            "type": "reply",
            "reply": {
              "id": "agent",
              "title": "Continue to agent"
            }
          },
          {
            "type": "reply",
            "reply": {
              "id": "end_chat",
              "title": "End chat"
            }
          }
        ]
      }
    }
  }
}
```

A imagem a seguir mostra uma experiência típica do usuário.

![\[Imagem de uma resposta em uma sessão de chat.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/whatsapp-reply-template.png)


### WhatsApp limites do botão de resposta
<a name="whatsapp-reply-limits"></a>

O modelo de WhatsApp resposta tem os seguintes limites.


| Campo principal | Campo | Obrigatório | Tamanho mínimo | Tamanho máximo  | Outros requisitos | 
| --- | --- | --- | --- | --- | --- | 
|  | templateType  | Sim |  |  | Deve ser "WhatsAppInteractiveReplyButton”  | 
|  | data  | Sim |  |  |  | 
|  | version  | Sim |  |  | Deve ser “1.0”  | 
|  data  | content | Sim |  |  |  | 
|  content  | título | Sim |  |  |  | 
|  | cabeçalho | Não |  |  |  | 
|  | body | Sim |  |  |  | 
|  | rodapé | Não |  |  |  | 
|  | ação  | Sim |  |  |  | 
| cabeçalho  | tipo  | Sim |  |  | Valores válidos: “text”, “document”, “image”, “video”.  | 
|  | texto | Não | 1 | 60  |  | 
|  | imagem | Não |  |  |  | 
|  | vídeo | Não |  |  |  | 
|  | documento | Não |  |  |  | 
| imagem | link  | Sim |  |  | Deve ser um URL de mídia acessível ao público que comece com https/http.  | 
| vídeo | link  | Sim |  |  | Deve ser um URL de mídia acessível ao público que comece com https/http.  | 
| documento | link  | Sim |  |  | Deve ser um URL de mídia acessível ao público que comece com https/http.  | 
| body  | texto  | Sim | 1 | 1024  |  | 
| rodapé | texto  | Sim | 1 | 60  |  | 
| ação  | botões  | Sim | 1 | 3  |  | 
| botão  | tipo  | Sim |  |  | Deve ser “resposta”  | 
|  | reply.id | Sim | 1 | 256  | Deve ser exclusivo em todos os botões.  | 
|  | reply.title  | Sim | 1 | 20  |  | 

## Formatação rich text para títulos e subtítulos
<a name="rich-link-formatting"></a>

Você pode adicionar formatação avançada a títulos e subtítulos das mensagens de chat. Por exemplo, você pode adicionar links, itálico, negrito, listas numeradas e listas com marcadores. Use [markdown]( https://commonmark.org/help/) para formatar o texto. 

A imagem a seguir de uma caixa de chat mostra um exemplo de seletor de listas com formatação avançada no título e no subtítulo.
+ O título **Como podemos ajudar? aws.amazon.com** está em negrito e contém um link.
+ O subtítulo contém texto em itálico e negrito, uma lista com marcadores e uma lista numerada. Também mostra um link simples, um link de texto e um código de amostra.
+ A parte inferior da caixa de chat mostra três elementos do seletor de listas.

![\[Uma caixa de chat, um título com um link, um subtítulo com listas e links.\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/rich-link-formatting-example1a.png)


### Como formatar texto com markdown
<a name="markdown-formatting-text"></a>

Você pode escrever strings de título e subtítulo em um formato de várias linhas ou em uma única linha com caracteres de quebra de linha ``\r\n``.
+ **Formato de várias linhas**: o exemplo de código a seguir mostra como criar listas em markdown em um formato de várias linhas.

  ```
  const MultiLinePickerSubtitle = `This is some *emphasized text* and some **strongly emphasized text**
  
  This is a bulleted list (multiline):
  * item 1
  * item 2
  * item 3
  
  This is a numbered list:
  1. item 1
  2. item 2
  3. item 3
  
  Questions? Visit https://plainlink.com/faq
  
  [This is a link](https://aws.amazon.com)
  
  This is \`\`
  `
  
  const PickerTemplate = {
      templateType: "ListPicker|Panel",
      version: "1.0",
      data: {
          content: {
              title: "How can we help?",
              subtitle: MultiLinePickerSubtitle,
              elements: [ /* ... */ ]
          }
      }
  }
  ```
+ **Formato de linha única**: o exemplo a seguir mostra como criar um subtítulo em uma única linha usando caracteres de quebra de linha ``\r\n``. 

  ```
  const SingleLinePickerSubtitle = "This is some *emphasized text* and some **strongly emphasized text**\r\nThis is a bulleted list:\n* item 1\n* item 2\n* item 3\n\nThis is a numbered list:\n1. item 1\n2. item 2\n3. item 3\n\nQuestions? Visit https://plainlink.com/faq\r\n[This is a link](https://aws.amazon.com)\r\nThis is `<code/>`";
  
  const PickerTemplate = {
      templateType: "ListPicker|Panel",
      version: "1.0",
      data: {
          content: {
              title: "How can we help?",
              subtitle: SingleLinePickerSubtitle,
              elements: [ /* ... */ ]
          }
      }
  }
  ```

O exemplo a seguir mostra como formatar texto em itálico e negrito com markdown:

`This is some *emphasized text* and some **strongly emphasized text**`

O exemplo a seguir mostra como formatar texto como código com markdown:

`This is `<code />``

### Como formatar texto com markdown
<a name="markdown-formatting-links"></a>

Para criar um link, use a sintaxe a seguir:

 `[aws](https://aws.amazon.com)`

Os exemplos a seguir mostram duas maneiras de adicionar links com o markdown:

`Questions? Visit https://plainlink.com/faq `

`[This is a link](https://aws.amazon.com)`

**nota**  
Para selecionadores de listas, o campo `targetForLinks` poderá ser adicionado como um campo secundário ao `content` se você quiser ter controle refinado sobre onde os links são abertos. O widget de comunicações abrirá links em uma nova guia do navegador por padrão. Para obter mais informações, consulte [Modelo de seletor de listas](#list-picker).