Adicionar mensagens interativas ao chat - Amazon Connect

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

Adicionar mensagens interativas ao chat

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 um Lambda.

dica

Se você se integrou ao Apple Messages for Business, consulte Tipos de mensagens interativas no site da Apple.

Limites de validação

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 SendMessageAPI 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

O Amazon Connect fornece os seguintes modelos de exibição de mensagens para você usar para renderizar informações aos clientes em um chat:

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

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.

O código a seguir é o modelo de seletor de listas que você pode usar no Lambda. Observe o seguinte:

  • 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. Por exemplo, consulte a estrutura data.replyMessage no modelo a seguir. Se a estrutura existir, o título é obrigatório. Caso contrário, o preenchimento de replyMessage é 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 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.

Campo principal Campo Obrigatório Mínimo de caracteres Máximo de caracteres Outros requisitos

templateType

Sim

Tipo de modelo válido

data

Sim

version

Sim

Deve ser “1.0”

data

content Sim
replyMessage Não

content

title Sim

1

400

Deve ser uma descrição para modelos imediatos

elements Sim

1 item

10 itens

Essa é uma matriz de elementos. Máximo de 10 elementos na matriz. Para enviar elementos ilimitados, use o recurso de botões de ação.

subtitle Não

0

400

imageType Não

0

50

Deve ser “URL”

imageData Não

0

200

Deve ser um URL válido e acessível ao público

imageDescription Não

0

50

referenceId Não

String. Necessário apenas para o recurso de botão de ação.

listId Não

String. Necessário apenas para o recurso de botão de ação.

preIndex Não

Number. Necessário apenas para o recurso de botão de ação.

nextIndex Não

Number. Necessário apenas para o recurso de botão de ação.

templateIdentifier Não

Number. Deve ser um UUID. Esse campo será obrigatório se o seletor de listas/painel estiver sendo usado em um carrossel.

elements

title Sim

1

400

subtitle Não

0

400

imageType Não

0

50

Deve ser “URL”

imageData Não

0

200

Deve ser um URL válido e acessível ao público

imageDescription Não

0

50

Não pode existir sem uma imagem

actionDetail Não

Necessário apenas para o recurso de botão de ação. Deve ser “PREVIOUS_OPTIONS” ou “SHOW_MORE”.

replyMessage

title Sim

1

400

subtitle Não

0

400

imageType Não

0

50

Deve ser “URL”

imageData Não

0

200

Deve ser um URL válido e acessível ao público

imageDescription Não

0

50

Não pode existir sem uma imagem

Modelo de seletor de horário

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.

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 é 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. Por exemplo, consulte a estrutura data.replyMessage no modelo a seguir. Se a estrutura existir, o título é obrigatório. Caso contrário, o preenchimento de replyMessage é opcional.

{ "templateType":"TimePicker", "version":"1.0", "data":{ "replyMessage":{ "title":"Thanks for selecting", "subtitle":"Appointment selected", }, "content":{ "title":"Schedule appointment", "subtitle":"Tap to select option", "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 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.

Campo principal Campo Obrigatório Mínimo de caracteres Máximo de caracteres Outros requisitos

templateType

Sim

Tipo de modelo válido

data

Sim

version

Sim

Deve ser “1.0”

data

replyMessage Não
content Sim

replyMessage

title

Sim

1

400

Deve ser uma descrição para modelos imediatos

subtitle Não

0

400

content

title

Sim

1

400

Deve ser uma descrição para modelos imediatos

subtitle Não

0

200

timezone offset Não

-720

840

Esse é um campo opcional quando não está definido. Nosso cliente de amostra usa como padrão o fuso horário do usuário. Se definido, isso é exibido de acordo com o fuso horário inserido. O campo deve ser um número inteiro representando o número de minutos a partir do GMT, especificando o fuso horário da localização do evento.

local Não

timeslots Sim

1

40

Esse é um conjunto de intervalos de tempo. Máximo de 40 elementos na matriz.

local

longitude Sim

-180

180

Deve ser duplo

latitude Sim

-90

90

Deve ser duplo

title Sim

1

400

radius

Não

0

200

timeslots

data Sim

Deve estar no formato de hora ISO-8601: AAAA-MM-DDTHH.MM+00.00

Por exemplo: .

"2020-08-14T21:21+00.00"

duration Sim

1

3600

Modelo de painel

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.

O código a seguir é o modelo de painel que você pode usar no Lambda. Observe o seguinte:

  • 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. Por exemplo, consulte a estrutura data.replyMessage no modelo a seguir. Se a estrutura existir, o título é obrigatório. Caso contrário, o preenchimento de replyMessage é 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 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.

Campo principal Campo Obrigatório Mínimo de caracteres Máximo de caracteres Outros requisitos

templateType

Sim

Tipo de modelo válido

data

Sim

version

Sim

Deve ser “1.0”

data

replyMessage Não
content Sim

content

title Sim

1

400

Deve ser uma descrição para modelos imediatos

subtitle Não

0

400

elements Sim

1 item

10 itens

Essa é uma matriz de elementos. Máximo de 10 elementos na matriz.

imageType Não

0

50

Deve ser “URL”

imageData Não

0

200

Deve ser um URL válido e acessível ao público

imageDescription Não

0

50

Não pode existir sem uma imagem

referenceId Não

String. Necessário apenas para o recurso de botão de ação.

listId Não

String. Necessário apenas para o recurso de botão de ação.

preIndex Não

Number. Necessário apenas para o recurso de botão de ação.

nextIndex Não

Number. Necessário apenas para o recurso de botão de ação.

templateIdentifier Não

Number. Deve ser um UUID. Esse campo será obrigatório se o seletor de listas/painel estiver sendo usado em um carrossel.

elements

title Sim

1

400

actionDetail Não

Necessário apenas para o recurso de botão de ação. Deve ser “PREVIOUS_OPTIONS” ou “SHOW_MORE”.

replyMessage

title Sim

1

400

subtitle Não

0

400

Modelo de resposta rápida

Use mensagens de resposta rápida para obter respostas simples dos clientes e enviá-las para os clientes em uma lista em linha. Você pode apresentar aos clientes até 5 opções em uma mensagem de resposta rápida. 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.

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

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

Limites de resposta rápida

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.

Campo Obrigatório Mínimo de caracteres Máximo de caracteres Outros requisitos

templateType

Tipo de modelo válido

data

Sim

version

Sim

Deve ser “1.0”

content

Sim
title Sim

1

400

Deve ser uma descrição para modelos imediatos

elements Sim

2 itens

10 itens

Essa é uma matriz de elementos. Mínimo de 2 elementos e máximo de 10 elementos na matriz.

title Sim

1

200

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

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.

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.

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 do seletor de listas/painel. 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" }

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.

Campo principal Campo Obrigatório Mínimo de caracteres Máximo de caracteres Outros requisitos

templateType

Sim

Tipo de modelo válido

data

Sim

version

Sim

Deve ser “1.0”

data

content Sim

content

title Sim

1

400

Deve ser uma descrição para modelos imediatos

elements Sim

2 itens

5 itens

Essa é uma matriz de seletores de listas ou modelos de painéis. Somente um tipo de mensagem interativa é aceito por carrossel. Cada elemento deve incluir o campo de nível superior templateIdentifier. Mínimo de 2 modelos e máximo de 5 modelos na matriz.

nota

Para proporcionar a melhor experiência do cliente, recomendamos que cada modelo tenha o uso consistente de imagens/número de elementos.

omitir TitleFrom CarouselResponse Não

Boolean - Opcionalmente, responda com "SelectionText" em vez do padrão "PickerTitle: SelectionText”.

carrossel IsVertical Não

Boolean - Opcionalmente, renderize elementos de Carousel com rolagem vertical.

Modelo de formulário da Apple

nota

Esse modelo é aplicável somente aos fluxos de contato do Apple Messages for Business.

Uma empresa pode enviar uma mensagem interativa de formulário para seus clientes finais por meio de uma única mensagem, contendo várias páginas das 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 interativo da mensagem e as respostas do cliente final são armazenados na transcrição do registro de contato e podem ser visualizados por outros participantes do bate-papo 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 no fluxo de contato do step-by-step guia, ativar a lente de contato e ativar a redação de datas confidenciais. Para obter detalhes completos sobre como habilitar a redação de PII, consulte Habilitar a redação de dados confidenciais.

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

  • Entrada: 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 em seu 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 simples de formulário de pesquisa:

{   "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ários da Apple

InteractiveMessage

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

InteractiveMessageDados

Campo Tipo Obrigatório Descrição/ Notas
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

AppleFormConteúdo

Campo Tipo Obrigatório Descrição/ Notas
title 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
páginas AppleFormPage[] Sim Lista de páginas do formulário
Mostrar resumo Booleano Não Se deve exibir uma página de resumo das respostas a serem revisadas antes do envio Padrão: Falso (sem confirmação/página de resumo)
Página inicial AppleFormSplashPage Não Página inicial a ser exibida antes das páginas reais Padrão: Sem página inicial

AppleFormSplashPage

Campo Tipo Obrigatório Descrição/ Notas
title 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
Título do botão String Sim Texto do botão Continuar. Exigido pela Apple, texto padrão com localização não suportada

AppleFormPágina

  • Modelo básico para páginas de formulários. Tipos de página específicos se estendem a partir desse modelo

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

AppleFormDatePickerPágina

AppleFormDatePickerA página se estende AppleFormPágina

Campo Tipo Obrigatório Descrição/ Notas
Tipo de página ApplePageType Sim Valor: "DatePicker”
Texto da etiqueta String Não Texto exibido ao lado da entrada da data. Veja exemplos de capturas de tela no Apêndice
Texto auxiliar 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: aaaa-MM-dd
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
Data mínima String Não A data mínima pode ser selecionada em um formato de data válido Padrão: Não mínimo
Data máxima String Não Data máxima permitida para ser selecionada em formato de data válido Padrão: Data atual para o usuário final quando a mensagem é enviada

AppleFormListPickerPágina

AppleFormListPickerA página se estende AppleFormPágina

Campo Tipo Obrigatório Descrição/ Notas
Tipo de página ApplePageType Sim Valor: "ListPicker”
Seleção múltipla Booleano Não Permite selecionar vários itens Padrão: false (seleção única)
itens AppleFormListPickerPageItem[] Sim Lista de itens da página de listagem

AppleFormListPickerPageItem

AppleFormListPickerPageItemestende AppleFormPágina

Campo Tipo Obrigatório Descrição/ Notas
title String Sim Exibir texto 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.

AppleFormWheelPickerPágina

AppleFormWheelPickerA página se estende AppleFormPágina

Campo Tipo Obrigatório Descrição/ Notas
Tipo de página ApplePageType Sim Valor: "WheelPicker”
itens AppleFormWheelPickerPageItem[] Sim Lista de itens para seletoras de rodas
Texto da etiqueta String Não Texto exibido ao lado da entrada. Veja exemplos de capturas de tela no Apêndice

AppleFormWheelPickerPageItem

AppleFormWheelPickerPageItemestende AppleFormPágina

Campo Tipo Obrigatório Descrição/ Notas
title String Sim Exibir texto do item do seletor

AppleFormInputPage

AppleFormInputPageestende AppleFormPágina

Campo Tipo Obrigatório Descrição/ Notas
Tipo de página ApplePageType Sim Valor: “Entrada”
Texto da etiqueta String Não Texto exibido ao lado da caixa de entrada. Veja exemplos de capturas de tela no Apêndice
Texto auxiliar String Não Texto adicional exibido na caixa de entrada Padrão: Sem texto auxiliar
Texto de espaço reservado String Não Texto de espaço reservado a ser exibido inicialmente quando não há entrada Padrão: texto de espaço reservado “(Opcional)” ou “(Obrigatório)”
Texto do prefixo String Não Texto de prefixo a ser exibido ao lado da entrada. Ex: '$' quando a entrada é um valor monetário Padrão: Sem texto de prefixo
obrigatório Booleano Não Se o usuário final é obrigado a fornecer a entrada Padrão: false
Várias linhas Booleano Não Se a entrada de várias linhas pode ser fornecida Padrão: false (linha única)
maxCharCount Número Não Contagem máxima de caracteres da entrada. Aplicado no cliente Apple Padrão: Sem limite
regex String Não Cadeia de caracteres regex para colocar restrições na entrada fornecida. Padrão: Sem restrições de regex
Tipo de teclado String Não Determina que tipo de teclado é exibido quando o usuário final está fornecendo valores permitidos de entrada: Iguais aos da Apple. Veja os documentos. Alguns dos valores permitidos: NumberPad, PhonePad, EmailAddress
textContentType String Não Ajuda com sugestões de preenchimento automático em dispositivos Apple.  Valores permitidos: iguais aos da Apple. Veja os documentos. Alguns dos valores permitidos: telefoneNumber,, familyName fullStreetAddress

Modelo Apple Pay

nota

Esse modelo é aplicável somente aos 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 código a seguir é o modelo do Apple Pay que você pode usar em seu 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

Campo principal Campo Obrigatório Mínimo de caracteres Máximo de caracteres Outros requisitos
templateType Sim Tipo de modelo válido
data Sim
versão Sim Deve ser “1.0”
data content Sim
content title Sim 1 512 O título do balão de mensagem recebido
subtitle Não 0 512 Legenda a ser exibida 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.
Identificador de solicitação 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 pontos finais para processamento de pagamentos, atualizações de contatos e rastreamento de pedidos.
Sessão do comerciante Sim Um dicionário contendo a sessão de pagamento fornecida pelo Apple Pay após solicitar uma nova sessão de pagamento.
Solicitação de pagamento 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
URL de fallback Não Uma URL que se abre 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 concluir o 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 a forma de envio. Se você não implementar esse endpoint e incluir essa chave no dicionário, o cliente verá uma mensagem de erro.
Sessão do comerciante Nome de exibição Sim 1 64 String. O nome canônico da sua loja, adequado para exibição. Não localize o nome.
iniciativa Sim String. Deve ser “mensagem”
Contexto da iniciativa Sim String. Passe o URL do seu gateway de pagamento.
Identificador do comerciante Sim String. Um identificador exclusivo que representa um comerciante do Apple Pay.
merchantSessionIdentifier Sim String. Um identificador exclusivo que representa a sessão de um lojista no Apple Pay.
Carimbo de data e hora Sim String. A representação do tempo em número de segundos decorridos desde 00:00:00 UTC, quinta-feira, 1º de janeiro de 1970.
Expira em Sim String. A representação do tempo de expiração em número de segundos decorridos desde 00:00:00 UTC, quinta-feira, 1º de janeiro de 1970.
nonce Não Binário. Uma string de uso único que verifica a integridade da interação.
assinatura Não Binário. Um hash da chave pública usada para assinar as interações.
Campos assinados Não A lista de strings contém as propriedades assinadas.
Solicitação de pagamento Apple Pay 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.
Itens de linha 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 contendo o total. O valor total deve ser maior que zero para passar na validação.
requiredBillingContactCampos Não A lista das informações de cobrança exigidas pelo cliente para processar a transação. Para ver a lista de possíveis sequências de caracteres, consulte BillingContactCampos obrigatórios. 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 exigidas do cliente para atender 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 possíveis sequências de caracteres, consulte ShippingContactCampos obrigatórios.
Métodos de envio Não Uma matriz que lista os métodos de envio disponíveis. A planilha de pagamento do Apple Pay exibe a primeira forma de envio da matriz como a forma de envio padrão.
Países suportados Não Uma variedade de países para apoiar. Liste cada país com seu código de país ISO 3166.
Apple Pay Identificador do comerciante Sim Um identificador exclusivo que representa um comerciante do Apple Pay.
Capacidades do comerciante Sim Uma variedade de recursos de pagamento suportados pelo comerciante. O array deve incluir Supports3DS e, opcionalmente, pode incluir SupportsCredit, SupportsDebit e SupportsEMV.
Redes suportadas Sim Uma variedade de redes de pagamento suportadas pelo comerciante. A matriz deve incluir um ou mais dos seguintes valores: amex, discover, jcb, MasterCard, PrivateLabel ou visa
lineItem valor Sim O valor monetário do item de linha.
rótulo Sim Uma descrição curta e localizada do item de linha.
tipo Não Um valor que indica se o item da linha é final ou pendente.
total valor Sim O valor total do pagamento.
rótulo Sim Uma descrição curta e localizada do pagamento.
tipo Não Um valor que indica se o pagamento é final ou pendente.
Métodos de envio valor Sim String. O custo não negativo associado a esse método de envio.
detalhe Sim String. Descrição adicional do método de envio.
rótulo 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 de aplicativo iMessage

nota

Esse modelo é aplicável somente aos 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 aplicativo iMessage que você pode usar em seu 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

Campo principal Campo Obrigatório Tipo Outras notas
templateType Sim TemplateType Tipo de modelo válido, "AppleCustomInteractiveMessage”
data Sim InteractiveMessageData Contém dicionários de conteúdo e mensagens recebidas
version Sim string Deve ser “1.0”
data content Sim InteractiveMessageContent Conteúdo interativo do aplicativo iMessage
Mensagem de resposta Sim ReplyMessage Configuração de exibição de mensagens após o envio da resposta à mensagem interativa
content aplicativo IconUrl Sim string URL S3 DA AWS
AppId Sim string ID do aplicativo iMessage comercial
appName Sim string Nome do aplicativo Business iMessage
licitar Sim string Oferta de aplicativo iMessage empresarial. Padrão: com.apple.messages.ms: {team-id} MessageExtensionBalloonPlugin: {ext-bundle-id}
URL de dados Sim string Dados que são passados para o aplicativo iMessage
uso LiveLayout Não boolean Padrão verdadeiro
title Sim string título da bolha do aplicativo Imessage
subtítulo Não string subtítulo da bolha do aplicativo Imessage
Mensagem de resposta title Não string
subtítulo Não string
Tipo de imagem Não string Deve ser um URL válido e acessível ao público
Dados de imagem Não string Não pode existir sem uma imagem

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

Como formatar texto com markdown

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

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)