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á.
Adicione mensagens interativas do Amazon Lex para clientes no 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
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). Ele SendMessageAPIverifica apenas 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 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 dereplyMessage
é 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 documento válido e acessível ao público URL |
|
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. Deveria ser umUUID. 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 documento válido e acessível ao público URL |
|
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 documento válido e acessível ao público URL |
|
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.
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 e não adicionar uma imagem, o Amazon Connect adicionará uma imagem padrão na mensagem de resposta e de resposta.
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 dereplyMessage
é 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 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 |
||
imageType | Não | 0 |
50 |
Deve ser "URL” | |
imageData | Não | 0 |
200 |
Deve ser um documento válido e acessível ao público URL | |
imageDescription | Não | 0 |
50 |
Não pode existir sem uma imagem | |
content |
title |
Sim | 1 |
400 |
Deve ser uma descrição para modelos imediatos |
subtitle | Não | 0 |
200 |
||
imageType | Não | 0 |
50 |
Deve ser "URL” | |
imageData | Não | 0 |
200 |
Deve ser um documento válido e acessível ao público URL | |
imageDescription | Não | 0 |
50 |
Não pode existir sem uma imagem | |
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 deGMT, 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: .MM+00.00 YYYY-MM-DDTHH 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 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 dereplyMessage
é 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 documento válido e acessível ao público URL |
|
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. Deveria ser umUUID. 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 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 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 |
Modelo de carrossel
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 horas, você pode adicionar mais opções ao carrossel usando o recurso _. SHOW MORE
Veja a seguir GIF um exemplo de como o modelo de carrossel renderiza informações em um bate-papo. Os clientes percorrem o carrossel de imagens usando as setas esquerda e direita.
A imagem a seguir mostra dois hiperlinks Saiba mais, que são exemplos de elementos de hiperlink do seletor de carrossel.
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 JSON string estruturada como no exemplo a seguir, para ser enviada de volta ao Lambda (outros tipos de mensagens interativas retornam uma resposta de string regular com apenas 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" }
Limites de carrossel
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 templateIdentifierde nível superior. Mínimo de 2 modelos e máximo de 5 modelos na matriz. notaPara proporcionar a melhor experiência do cliente, recomendamos que cada modelo tenha o uso consistente de imagens/número de elementos. |
|
omitTitleFromCarouselResponse | Não |
Boolean - opcionalmente, responda com” |
|||
carouselIsVertical | Não |
Boolean - Opcionalmente, renderize elementos de |
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 apareça na transcrição PII 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 PII redação, 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 |
InteractiveMessageData
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 |
AppleFormContent
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 |
showSummary | 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) |
splashPage | 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 “, este é o URL valor Padrão: Nenhuma imagem exibida |
buttonTitle | String | Sim | Texto do botão Continuar. Exigido pela Apple, texto padrão com localização não suportada |
AppleFormPage
-
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 |
---|---|---|---|
pageType | 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 |
AppleFormDatePickerPage
AppleFormDatePickerPageestende AppleFormPage
Campo | Tipo | Obrigatório | Descrição/ Notas |
---|---|---|---|
pageType | ApplePageType | Sim | Valor: "DatePicker” |
labelText | String | Não | Texto exibido ao lado da entrada da 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 | ISOFormato de data 8601. Padrão: yyyy-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 |
minDate | String | Não | A data mínima pode ser selecionada em um formato de data válido Padrão: Não mínimo |
maxDate | 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 |
AppleFormListPickerPage
AppleFormListPickerPageestende AppleFormPage
Campo | Tipo | Obrigatório | Descrição/ Notas |
---|---|---|---|
pageType | ApplePageType | Sim | Valor: "ListPicker” |
multiSelect | 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 AppleFormPage
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 “, este é o URL valor 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
AppleFormWheelPickerPageestende AppleFormPage
Campo | Tipo | Obrigatório | Descrição/ Notas |
---|---|---|---|
pageType | ApplePageType | Sim | Valor: "WheelPicker” |
itens | AppleFormWheelPickerPageItem[] | Sim | Lista de itens de seleção de rodas |
labelText | String | Não | Texto exibido ao lado da entrada. Veja exemplos de capturas de tela no Apêndice |
AppleFormWheelPickerPageItem
AppleFormWheelPickerPageItemestende AppleFormPage
Campo | Tipo | Obrigatório | Descrição/ Notas |
---|---|---|---|
title | String | Sim | Exibir texto do item do seletor |
AppleFormInputPage
AppleFormInputPageestende AppleFormPage
Campo | Tipo | Obrigatório | Descrição/ Notas |
---|---|---|---|
pageType | ApplePageType | Sim | Valor: “Entrada” |
labelText | String | Não | Texto exibido ao lado da caixa de 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 a ser exibido inicialmente quando não há entrada Padrão: texto de espaço reservado “(Opcional)” ou “(Obrigatório)” |
prefixText | 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 |
multiLine | 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 |
keyboardType | String | Não | Determina que tipo de teclado é exibido quando o usuário final fornece valores permitidos de entrada: Iguais aos da Apple. Veja os documentos. |
textContentType | String | Não | Ajuda com sugestões de preenchimento automático em dispositivos Apple. Valores permitidos: iguais aos da Apple. Veja os documentos. |
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 documento válido e acessível ao público URL | |
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 pontos finais 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 initiativeContext campo da sessão do comerciante | ||
fallbackUrl | Não | Um 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. | |||
merchantSession | displayName | 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” | |||
initiativeContext | Sim | String. Passe seu gateway de pagamentoURL. | |||
merchantIdentifier | 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. | |||
epochTimestamp | Sim | String. A representação do tempo em número de segundos decorridos desde 00:00:00 de quinta-feiraUTC, 1º de janeiro de 1970. | |||
expiresAt | Sim | String. A representação do tempo de expiração em número de segundos decorridos desde 00:00:00 de quinta-feiraUTC, 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. | |||
signedFields | Não | A lista de strings 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 comerciante. | |||
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 lineItems chave 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 sequências de caracteres possíveis, consulte requiredBillingContactCampos |
|||
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 sequências de caracteres possíveis, consulte requiredShippingContactCampos |
|||
shippingMethods | 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. | |||
supportedCountries | Não | Uma variedade de países para apoiar. Liste cada país com seu código de país ISO 3166. | |||
applePay | merchantIdentifier | Sim | Um identificador exclusivo que representa um comerciante do Apple Pay. | ||
merchantCapabilities | Sim | Uma variedade de recursos de pagamento suportados pelo comerciante. O array deve incluir Supports3DS e, opcionalmente, pode incluirsupportsCredit, e suporta. supportsDebit EMV | |||
supportedNetworks | 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. | |||
shippingMethods | 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. |
iMessage Modelo de aplicativo
nota
Esse modelo é aplicável somente aos fluxos de contato do Apple Messages for Business.
Use o modelo de iMessage aplicativos para apresentar ao cliente seu iMessage aplicativo personalizado.
O código a seguir é um exemplo de modelo de iMessage aplicativo 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", } } }
iMessage Limites do aplicativo
Campo principal | Campo | Obrigatório | Tipo | Outras notas |
---|---|---|---|---|
templateType | Sim | TemplateType | Tipo de modelo válido, "AppleCustomInteractiveMessage” | |
data | Sim | InteractiveMessageData | Contém conteúdo e receivedMessage dicionários | |
version | Sim | string | Deve ser “1.0” | |
data | content | Sim | InteractiveMessageContent | Conteúdo interativo do iMessage aplicativo |
replyMessage | Sim | ReplyMessage | Configuração de exibição de mensagens após o envio da resposta à mensagem interativa | |
content | appIconUrl | Sim | string | AWSS3 URL |
appId | Sim | string | ID IMessage do aplicativo comercial | |
appName | Sim | string | Nome IMessage do aplicativo comercial | |
licitar | Sim | string | Oferta de IMessage aplicativo comercial. Padrão: com.apple.messages. MSMessageExtensionBalloonPlugin: {id da equipe}: {} ext-bundle-id | |
dataUrl | Sim | string | Dados que são passados para o iMessage aplicativo | |
useLiveLayout | Não | boolean | Padrão: True | |
title | Sim | string | título da bolha do aplicativo Imessage | |
subtítulo | Não | string | subtítulo da bolha do aplicativo Imessage | |
replyMessage | title | Não | string | |
subtítulo | Não | string | ||
imageType | Não | string | Deve ser um documento válido e acessível ao público URL | |
imageData | Não | string | Não pode existir sem uma imagem |
Formatação rich text para títulos e subtítulos
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
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.
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)