Modelo de Mensagem
O SDK usa um modelo de mensagem consistente e digitada para todo o tráfego. Compreender os tipos de envelope e payload é importante para integrações headless, delegados, renderização personalizada e teste. Todos os itens da conversa são mensagens com um envelope padrão:
{
"messagePayload": { /* see types below */ },
"userId": "guest"
}
determina a forma de carga útil concreta.messagePayload.type
- As mensagens do usuário são iniciadas pelo cliente; as mensagens de resposta se originam da habilidade ou do agente.
Tipos de Base
Estes são os tipos base usados em todas as mensagens enviadas do usuário para a habilidade e vice-versa. Eles são blocos de construção de todas as mensagens.
- Ação: As variantes incluem
call
,client
,location
,popup
,postback
,share
,submitForm
,url
- Anexo:
audio
,file
, image
,video
- Cartão: título: descrição,
imageUrl
,actions
- Localização:
latitude
,longitude
,optional title/url
- Voz:
text
,longText
,soundUrl
- Campo:
(link
,text
,media
,action
somente para leitura e editável (textInput
,numberInput
,datePicker
,timePicker
,singleSelect
,multiSelect
,toggle)
SelectFieldOption
:label
,value
TableHeading
TableRow
Form
FormRow
FormColumn
PaginationInfo
EventContextProperties
Tipos de Carga Útil da Mensagem do Usuário
- Texto
{ "type": "text", "text": "Order Pizza" }
- Anexo
{ "type": "attachment", "attachment": { "type": "image", "URL": "https://..." } }
- Localização
{ "type": "location", "location": { "latitude": 45.9, "longitude": 132.6 } }
- Postback
{ "type": "postback", "text": "Small", "postback": { "variables": { "pizza": "Small" }, "system.botId": "....", "system.state": "orderPizza" } }
- Evento de entrada
{ "type": "inboundEvent", "eventType": "com.pizzastore.pizza.orderserved", "eventVersion": "1.0", "eventData": { "size": "Medium", "type": "Cheese" }, "contextProperties": { "id": "6ce23f...", "source": "pizza/service" } }
- Envio de Formulário
{ "type": "formSubmission", "submittedFields": { "Subject": "Expense", "Amount": 6 }, "partialSubmitField": "Attendees", "postback": { "system.state": "editFormMapVar" } }
Mensagens de Resposta
Os payloads de resposta da habilidade/agente incluem:
- Texto
{ "type": "text", "text": "What do you want to do?" }
- Anexo
{ "type": "attachment", "attachment": { "type": "file", "url": "https://..." } }
- Cartão
{ "type": "card", "layout": "horizontal", "cards": [{ "title": "Hawaiian Pizza", "actions": [/*...*/] }] }
- Comando
{ "type": "command", "command": "someCommand", "properties": { "k": "v" } }
- Erro
{ "type": "error", "errorMessage": "Details...", "error": "..." }
- Executar Comando de Contexto do Aplicativo
{ "type": "executeApplicationActionCommand", "actionType": "navigate", "command": "executeApplicationAction", "context": "appName", "properties": { "route": "/home" } }
- Feedback (estrelas)
{ "type": "text", "text": "How would you like to rate us?", "channelExtensions": { "displayType": "stars" }, "actions": [/* star postbacks */] }
- Localização
{ "type": "location", "location": { "latitude": 37.53, "longitude": -122.26 } }
- Evento de saída
{ "type": "outboundEvent", "eventType": "com.pizzastore.pizza.ordercreated", "eventVersion": "1.0", "eventData": { "size": "Medium" } }
- Dados brutos
{ "type": "raw", "payload": { /* channel specific */ } }
- Sessão Fechada
{ "type": "sessionClosed" }
- Fluxo de Texto
{ "type": "texStream", "streamId": "123", "streamState": "running", "text": "partial chunk", "aggregateText": "accumulated text so far" }
- O Edit‑Form suporta o
replaceMessage
viachannelExtensions
.
Ação
Uma ação representa algo que o usuário pode selecionar.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de ação | string | Sim |
label |
O texto descritivo do label da ação. | string | Pelo menos um label ou imageUrl deve ser incluído.
|
imageUrl |
A imagem da ação | string | Pelo menos uma única propriedade label ou imageUrl deve ser incluída.
|
style |
O estilo de renderização do botão | "primary" , "danger" , "default" |
No |
displayType |
A renderização para o tipo de elemento de ação (botão, link ou ícone) | "button" , "link" , "icon" |
No |
channelExtensions |
As propriedades de extensão específicas do canal associadas à ação | JSONObject | No |
CallAction
Solicita que o cliente chame um número de telefone especificado em nome do usuário.
Por exemplo :
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de ação | "ligar" | Sim |
phoneNumber |
O número de telefone a ser chamado | string | Sim |
{
"type": "call",
"label": "Call Support",
"imageUrl": "http://example.com.ar/files/2016/05/cuidado.jpg",
"phoneNumber": "18005555555"
}
LocationAction
Solicita que o cliente pergunte a localização do usuário.
Por exemplo :
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de ação | "location" | Sim |
{
"type": "location",
"label": "Share location",
"imageUrl": "http://images.example.com/location-clipart-location-pin-clipart-1.jpg"
}
PopupAction
Essa ação abre uma janela pop-up depois que os usuários executam uma ação de clique em um elemento.
PopupAction
usa as propriedades Action
juntamente com as suas:
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de ação | "popup" |
Sim |
popupContent |
O conteúdo exibido na janela pop-up. | O payload da mensagem (consulte o exemplo JSON a seguir) | Sim |
{
"type": "popup",
"label": "Give Feedback",
"popupContent": {
"formRows": [
{
"columns": [
{
"width": "stretch",
"fields": [
{
"displayType": "text",
"label": "What was the issue with this response?"
},
{
"displayType": "multiSelect",
"options": [
{
"label": "Inaccurate",
"value": "inaccurate"
},
{
"label": "Inappropriate",
"value": "inappropriate"
}
],
"id": "system_feedback_reasons",
"required": true
},
{
"displayType": "textInput",
"id": "system_feedback_comments",
"placeholder": "Additional feedback"
}
]
}
]
},
{
"columns": [
{
"fields": [
{
"displayType": "action",
"action": {
"postback": {
"rating": "negative",
"action": "cancel",
},
"label": "Cancel",
"type": "postback"
},
}
]
},
{
"fields": [
{
"displayType": "action",
"action": {
"postback": {
"rating": "negative",
"system.state": "invokeLLM"
},
"label": "Submit Feedback",
"type": "submitForm"
},
}
]
}
]
}
],
"type": "editForm",
"title": "Give your feedback",
"formColumns": 1,
}
}
PostbackAction
Envia um postback predefinido de volta à habilidade quando o usuário seleciona uma ação.
Por exemplo :
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de ação | "postback" | Sim |
postback |
O postback retornado quando o usuário seleciona uma ação. | Uma string ou um objeto JSON | Sim |
{
"type": "postback",
"label": "Large Pizza",
"imageUrl": "https://example.com/images/gallery/locations/11.jpg",
"postback": {
"state": "askSize",
"action": "getCrust"
}
}
ShareAction
Solicita que o cliente abra uma caixa de diálogo de compartilhamento para o usuário.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de ação | "share" | Sim |
SubmitFormAction
Esta ação é usada para enviar um formulário de entrada para a habilidade quando ela satisfaz a validação do cliente. Ele adiciona as seguintes propriedades às propriedades Ação:
Exemplo de JSON
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de ação | "submitForm" |
Sim |
postback |
O payload de postback, que pode incluir uma propriedade de ação para acionar a navegação. O valor dessa propriedade deve ser definido em FormSubmissionMessagePayload .
|
JSONObject | No |
{
"type": "submitForm",
"label": "Submit",
"postback": {
"system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
"system.flow": "ExpenseFlow",
"system.state": "editFormMapVar"
}
}
Anexo
Representa um anexo que é enviado pelo usuário.
Por exemplo :
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
title |
O título do anexo | string | No |
type |
O tipo de anexo | string (valores válidos: áudio, arquivo, imagem, vídeo) | Sim |
url |
O URL de download do anexo | string | Sim |
{
"title": "Oracle Open World Promotion",
"type": "image",
"url": "https://www.oracle.com/us/assets/hp07-oow17-promo-02-3737849.jpg"
}
Cartão
Representa um único cartão no payload da mensagem.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
title |
O título do cartão, exibido como a primeira linha no cartão. | string | Sim |
description |
A descrição do cartão | string | No |
imageUrl |
O URL da imagem que é exibida. | string | No |
URL |
O URL do site que é aberto por um toque. | string | No |
actions |
Um array de ações relacionadas ao texto | array | No |
channelExtensions |
As propriedades de extensão específicas do canal associadas à mensagem | JSONObject | No |
Localização
Representa um objeto de localização.
Por exemplo :
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
title |
O título da localização | string | No |
url |
O URL para exibir a localização em um mapa | string | No |
latitude |
O valor da longitude da coordenada de GPS | duplo | Sim |
longitude |
O valor da latitude da coordenada de GPS | duplo | Sim |
{
"title": "Oracle Headquarters",
"url": "https://www.google.com.au/maps/place/37°31'47.3%22N+122°15'57.6%22W",
"longitude": -122.265987,
"latitude": 37.529818
}
Voz
Representa uma informação de voz em uma mensagem
.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
text |
O texto do resumo para TTS | string | Pelo menos uma das propriedades deve ser informada |
longText |
Texto detalhado para TTS | string | Pelo menos uma das propriedades deve ser informada |
soundUrl |
A URL de um arquivo de som a ser reproduzido | string | Pelo menos uma das propriedades deve ser informada |
Campo
Representa as informações atômicas de uma célula de tabela ou de um campo de formulário nos objetos
Table
, Form
e Table-Form
, fornecidos como par chave/valor.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
displayType |
O tipo de campo | String | Sim |
label |
A chave do campo | String | Sim |
marginTop |
A quantidade de espaço vertical entre este campo e o campo anterior dentro da mesma coluna | "none" , "medium" ,"large" |
Número |
labelFontSize |
O tamanho da fonte usado para o rótulo do campo | "small" , "medium" , "large" |
No |
labelFontWeight |
O posicionamento do rótulo dentro de sua célula | "light" , "medium" , "bold" |
No |
channelExtensions |
As propriedades de extensão específicas do canal associadas à mensagem | JSONObject | No |
PaginationInfo
Representa as informações de paginação dos resultados nos objetos Table
, Form
e Table-Form
.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
totalCount |
A contagem total de resultados | número | Sim |
rangeSize |
O tamanho do intervalo dos resultados por página | número | Sim |
status |
A mensagem de status de paginação | String | Sim |
currentRangeSize |
O tamanho da faixa de resultados atual | número | Sim |
rangeStart |
O deslocamento inicial do intervalo atual de resultados | número | Sim |
nextRangeSize |
O tamanho do próximo intervalo de resultados | número | Sim |
hasPrevious |
Indica se há um conjunto de resultados anterior | booleano | Sim |
hasNext |
Indica se há um próximo conjunto de resultados | booleano | Sim |
Campo Somente Leitura
Representa um campo somente leitura. Todos os campos somente leitura herdam as propriedades de campo e têm as seguintes propriedades adicionais:
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
value |
O valor do campo | string | Sim |
width |
A porcentagem sugerida da largura total disponível que o campo deve ocupar em um layout de tabela. | número | No |
alignment |
O alinhamento do valor em uma coluna de tabela. O alinhamento padrão é right .
|
"left" , "center" e "right" |
No |
onHoverPopupContent |
O conteúdo que é exibido quando os usuários passam o mouse sobre um campo. | Payload da Mensagem | No |
Campo Texto
O campo de texto herda todas as propriedades do campo somente leitura.
.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
displayType |
O tipo de elemento. | text (um valor de String)
|
Sim |
truncateAt |
A posição na qual o texto longo fica truncado e onde uma marca de reticências (que indica que o valor foi truncado) é exibida. | Número | No |
fontSize |
O tamanho da fonte usado para o valor do campo | "small" , "medium" , "large" |
No |
fontWeight |
A espessura da fonte usada para o valor do campo | "light" , "medium" , "bold" |
No |
Campo de Link
O campo de link herda todas as propriedades de campo somente leitura e tem as seguintes propriedades adicionais:
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
displayType |
O tipo de campo | "link" |
Sim |
linkLabel |
O rótulo usado para o hiperlink | string | No |
imageUrl |
O URL da imagem que abre um link quando clicado. | string | Número |
Campo de Mídia
O campo de mídia herda todas as propriedades de campo somente leitura e tem as seguintes propriedades adicionais:
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
displayType |
O tipo de campo | "media" | Sim |
mediaType |
O tipo de mídia do campo | "video" , "audio" , "image" |
Sim |
Campo Ação
O campo de ação herda todas as propriedades de campo somente leitura e tem as seguintes propriedades adicionais:
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
displayType |
O tipo de campo | "action" |
Sim |
action |
A ação que deve ser executada quando o usuário clica no botão de ação. | Ação | Sim |
Campo editável
Representa um campo editável. Todos os campos editáveis herdam as propriedades de campo e têm as seguintes propriedades adicionais:
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
id |
O ID do campo | string | Sim |
placeholder |
Uma descrição da entrada esperada do usuário. Este texto é exibido quando o usuário ainda não fez uma seleção ou inseriu um valor. | string | Número |
required |
Se esta entrada é necessária para enviar o formulário | booleano | Número |
clientErrorMessage |
A mensagem de erro no nível do campo exibida abaixo do campo quando ocorre um erro de validação no lado do cliente. Se não for fornecido, o SDK assumirá como padrão editFieldErrorMessage .
|
string | Número |
serverErrorMessage |
A mensagem de erro no nível do campo exibida abaixo do campo quando ocorre um erro de validação no lado do servidor. Essa mensagem de erro deve ser incluída no payload enviado pela habilidade. | string | No |
autoSubmit |
Quando definido como true , o formulário será enviado automaticamente quando o usuário tiver digitado um valor para o campo.
|
No |
Seleção Única
O campo de seleção única herda todas as propriedades do Campo Editável e tem as seguintes propriedades adicionais:
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
displayType |
O tipo de campo | "singleSelect" |
Sim |
defaultValue |
A seleção default | Tipos de dados primitivos (string, número, booliano etc.) | No |
options |
Uma matriz de opções apresentadas ao usuário. | Um array selectFieldOption | Sim |
layoutStyle |
O estilo de layout usado para renderizar as opções de seleção única. O layout padrão é list .
|
"list" , "radioGroup" |
Número |
layoutDirection |
A direção do layout (horizontal ou vertical) para os botões de opção quando layoutStyle é definido como radioGroup . Por padrão, a direção do layout é definida como vertical, , mas você pode defini-la como horizontal .
|
String | Número |
Multisseleção
O campo de seleção múltipla herda todas as propriedades do Campo Editável e tem as seguintes propriedades adicionais:
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
displayType |
O tipo de campo | "multiSelect" |
Sim |
defaultValue |
A seleção default | Uma matriz<objeto> de tipos de dados primitivos (uma string, um número, um valor booliano etc.) | Número |
options |
Uma matriz de opções apresentadas ao usuário | Um array selectFieldOption
|
Sim |
layoutStyle |
O estilo de layout usado para renderizar as opções. | "list" , "checkboxes" |
Número |
layoutDirection |
A direção do layout (horizontal ou vertical) para as caixas de seleção quando layoutStyle é definido como checkboxes . Por padrão, a direção do layout é definida como vertical , mas você também pode defini-la como horizontal .
|
String | Número |
DatePicker
O campo do seletor de data herda as propriedades do Campo Editável e tem as seguintes propriedades adicionais:
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
displayType |
O tipo de campo | "datePicker" |
Sim |
defaultValue |
O valor inicial deste campo. O formato deve ser AAAA-MM-DD. | string | No |
minDate |
A data mínima ou mais antiga permitida. O formato deve ser AAAA-MM-DD. | string | No |
maxDate |
A data máxima ou mais recente permitida. O formato deve ser AAAA-MM-DD. | string | No |
TimePicker
O campo do seletor de tempo herda as propriedades do Campo Editável e tem as seguintes propriedades adicionais:
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
displayType |
O tipo de campo | "timePicker" |
Sim |
defaultValue |
O valor inicial para este campo, inserido como HH:mm no formato de 24 horas. | string | No |
minTime |
O tempo mínimo, ou mais antigo, permitido, inserido como HH:mm no formato de 24 horas. Por exemplo, 00:00. | string | No |
maxTime |
O tempo máximo, ou mais recente, permitido, inserido como HH:mm, no formato de 24 horas. Por exemplo, 13:00. | string | No |
Alternar
O campo de alternância herda todas as propriedades do Campo Editável e tem as seguintes propriedades adicionais:
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
displayType |
O tipo de campo | "toggle" |
Sim |
defaultValue |
O valor selecionado inicial. Se quiser que a alternância seja ativada inicialmente, defina o valor padrão para o mesmo valor que valueOn .
|
string | No |
valueOff |
O valor quando a alternância está desativada | string | Sim |
valueOn |
O valor quando a alternância está ativada | string | Sim |
labelOff |
O label do valor "off" | string | No |
labelOn |
O label do valor "on" | string | Número |
TextInput
O campo de entrada de texto herda as propriedades do Campo Editável e tem as seguintes propriedades adicionais:
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
displayType |
O tipo de campo | "textInput" |
Sim |
defaultValue |
O valor inicial deste campo | string | nenhuma |
validationRegularExpression |
Uma expressão regular indicando o formato necessário para esta entrada de texto | string | nenhuma |
multiline |
O flag que determina se renderizar várias linhas de entrada | booleano | nenhuma |
minLength |
O tamanho mínimo da entrada que o usuário deve fornecer | inteiro | nenhuma |
maxLength |
O número máximo de caracteres permitido no campo de entrada de texto | inteiro | nenhuma |
inputStyle |
O estilo de entrada usado pelo cliente. Os valores permitidos são: "text" , "tel" , "url" ,"email", e "password" . Retornará a text se o estilo de entrada não tiver sido definido.
|
string | nenhum |
NumberInput
O campo de entrada de número herda as propriedades do Campo Editável e tem as seguintes propriedades adicionais:
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
displayType |
O tipo de campo | "numberInput" |
Sim |
defaultValue |
O valor inicial deste campo | Inteiro | Número |
minValue |
Um menor número permitido | Inteiro | Número |
maxValue |
O maior número permitido. | Inteiro | Número |
selectFieldOption
Os campos Seleção Única e Seleção Múltipla usam uma lista de opções de campo de seleção com as seguintes propriedades:
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
label |
O texto de exibição | string | Sim |
value |
O valor da opção | Tipos de dados primitivos (string, número, booliano etc.) | Número |
channelExtensions |
As propriedades de extensão específicas do canal associadas à opção de campo. | JSONObject | No |
TableHeading
Representa um cabeçalho para tabelas em um objeto
Table
ou Table-Form
.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
label |
O rótulo do cabeçalho | String | Sim |
alignment |
O posicionamento do rótulo dentro da célula | "left" , "right" , "center" |
Sim |
width |
A porcentagem sugerida da largura da tabela que deve ser fornecida ao cabeçalho. | No | |
channelExtensions |
As propriedades de extensão específicas do canal associadas à mensagem | JSONObject | No |
TableRow
Representa uma matriz de campos
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
fields |
Uma matriz de campos | <Campo> | Sim |
selectAction |
A ação executada quando a linha é selecionada. O rótulo da ação é mostrado como dica de ferramenta quando os usuários passam o mouse sobre a linha. | Ação | No |
channelExtensions |
As propriedades de extensão específicas do canal associadas à mensagem | JSONObject | No |
Form
Representa uma matriz de campos junto com um título. Usado em mensagens
Table-Form
para formulários aninhados de uma linha de tabela.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
id |
O ID do formulário | String | No |
title |
O título do form | String | No |
fields |
Uma matriz de campos | <Campo> do Array | Sim |
actions |
Um array de ações | Array <BotsAction> | No |
separator |
Se um separador deve ser exibido para o formulário ou não. Se esse valor não for informado, um separador será exibido para o formulário. | booliano | No |
formRows |
Uma lista de linhas que podem incluir campos editáveis e somente leitura. Você pode definir a lista de campos (usando fields e, opcionalmente, as propriedades formColumns ) ou uma lista de linhas usando essa propriedade. As opções fields e formRows são mutuamente exlusivas.
|
Ação | No |
channelExtensions |
As propriedades de extensão específicas do canal associadas à mensagem | JSONObject | No |
FormRow
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
id |
O ID da linha do formulário | String | No |
columns |
Uma lista de colunas exibidas na linha do formulário. | Array <FormColumn> | Sim |
selectAction |
As ações que são executadas quando o formulário é selecionado. Quando os usuários passam o mouse sobre o formulário, o rótulo da ação é exibido como uma dica de ferramenta (quando suportado pelo canal). | Ação | No |
separator |
Definir esta propriedade como verdadeira insere uma linha separadora acima do conteúdo na linha do formulário. | Boolean | No |
channelExtensions |
As propriedades de extensão específicas do canal associadas à mensagem | JSONObject | No |
FormColumn
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
id |
O ID da coluna | String | No |
fields |
Uma lista de campos que são exibidos verticalmente dentro da coluna. Esses campos devem ser instâncias ReadOnlyField quando a coluna for usada em um FormRow dentro de um Form . Os campos podem ser somente leitura e editáveis quando o FormRow é usado em um EditFormMessagePayload .
|
Array<Campo> | Sim |
verticalAlignment |
O alinhamento vertical da coluna em relação às outras colunas na mesma linha do formulário. | String | No |
width |
Determina a largura da coluna na linha do formulário. Os valores permitidos são auto (o padrão) e stretch . Quando definida como stretch , a coluna usa toda a largura restante depois que qualquer coluna de largura automática é renderizada. Se houver várias colunas definidas como stretch , elas dividirão uniformemente a largura restante.
|
String | No |
widthPct |
Passado quando a largura é definida como fixa. Define a propriedade de largura no elemento de coluna como o valor de porcentagem informado. | número | No |
channelExtensions |
As propriedades de extensão específicas do canal associadas à mensagem | JSONObject | No |
EventContextProperties
As propriedades do contexto do evento representam as propriedades do contexto
CloudEvent
.
Nome | Descrição | Tipo | 0brigatório? | Exemplo |
---|---|---|---|---|
dataschema |
Identifica o esquema ao qual os dados aderem. | URI | No | "/dw/approval_payload.json" |
datacontenttype |
O tipo de conteúdo dos dados contidos no atributo de dados. | String | No | "application/json" |
source |
O recurso que produziu o evento. | URI | No |
"objectstorage" |
time |
O horário do evento expresso no formato de timestamp da RFC 3339. | Timestamp | No | "2021-01-10T21:19:24Z" |
specversion |
A versão da especificação do CloudEvents. | String | No | "1.0" |
id |
O ID da especificação CloudEvents. | String | No | "123e4567-e89b-12d3-a456-426614174000" |
subject |
O assunto do evento no contexto do produtor e/ou tipo de evento. | String | No | "mynewfile.jpg" |
Mensagem da Conversa
Todas as mensagens que fazem parte de uma conversa têm a seguinte estrutura:
Por exemplo :
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
messagePayload |
O payload da mensagem | Mensagem | Sim |
userId |
O ID do Usuário | string | Sim |
{
"messagePayload": {
"text": "show menu",
"type": "text"
},
"userId": "guest"
}
Mensagem do Usuário
Representa uma mensagem enviada do usuário à habilidade.
Mensagem de Texto do Usuário
A mensagem de texto simples enviada ao servidor.
Por exemplo :
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "text" |
Sim |
text |
O texto da mensagem | string | Sim |
{
"messagePayload": {
"text": "Order Pizza",
"type": "text"
},
"userId": "guest"
}
Mensagem de Anexo do Usuário
A mensagem de resposta de anexo enviada ao servidor.
Por exemplo :
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "attachment" |
Sim |
attachment |
Os metadados do anexo | Anexo | Sim |
{
"messagePayload": {
"attachment": {
"type": "image",
"url": "http://oda-instance.com/attachment/v1/attachments/d43fd051-02cf-4c62-a422-313979eb9d55"
},
"type": "attachment"
},
"userId": "guest"
}
Mensagem de Postback do Usuário
A mensagem de resposta de postback enviada ao servidor.
Por exemplo :
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "postback" |
Sim |
text |
O texto de postback | string | No |
postback |
O postback da ação selecionada | Uma string ou JSONObject | Sim |
{
"messagePayload": {
"postback": {
"variables": {
"pizza": "Small"
},
"system.botId": "69BBBBB-35BB-4BB-82BB-BBBB88B21",
"system.state": "orderPizza"
},
"text": "Small",
"type": "postback"
},
"userId": "guest"
}
Mensagem de Localização do Usuário
A mensagem de resposta de localização enviada ao servidor.
Por exemplo :
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "location" |
Sim |
location |
As informações de localização do usuário | Localização | Sim |
{
"messagePayload": {
"location": {
"latitude": 45.9285271,
"longitude": 132.6101925
},
"type": "location"
},
"userId": "guest"
}
Mensagem inboundEvent do Usuário
Representa as mensagens de eventos de saída que podem ser enviadas para o servidor. Ele aplica as propriedades a seguir ao
Por exemplo :
Message
.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "inboundEvent" |
Sim |
eventType |
O tipo de evento (definido no catálogo de eventos) | String | Sim |
eventVersion |
A versão do tipo de evento (definida no catálogo de eventos) | String | Sim |
eventData |
Os dados comerciais | JSONObject | Sim |
contextProperties |
As propriedades do contexto do evento | Propriedades de contexto do evento | No |
{
"messagePayload": {
"eventData": {
"size": "Medium",
"type": "Cheese"
},
"eventVersion": "1.0",
"eventType": "com.pizzastore.pizza.orderserved",
"type": "inboundEvent",
"contextProperties": {
"id": "6ce23f09-bff7-4369-8467-0c510e971aaf",
"source": "pizza/service",
}
},
"userId": "guest"
}
Mensagem de Envio de Formulário do Usuário
Isso representa a mensagem de envio de formulário que é enviada depois que o usuário enviou um formulário por um SubmitFormAction. Ela tem as seguintes propriedades:
Exemplo de JSON
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem. | "formSubmission" |
Sim |
submittedFields |
Pares de chave/valor dos valores de campo enviados. A chave é o nome (ID) do campo. | JSONObject | Sim |
postback |
O payload de postback, que pode incluir uma propriedade de ação para acionar a navegação. O valor desta propriedade deve ser obtido de SubmitFormAction. | JSONObject | No |
partialSubmitField |
O ID do campo que aciona um envio parcial do formulário. Os campos com a propriedade autoSumbit definida como true podem acionar um envio parcial de formulário.
|
String | No |
{
"messagePayload": {
"submittedFields": {
"Attendees": [
"Toff van Alphen"
],
"Type": "Public transport",
"Description": "expense",
"Subject": "Expense",
"Date": "2023-06-07",
"Time": "18:58",
"Amount": 6,
"TipIncluded": "true"
},
"partialSubmitField": "Attendees",
"type": "formSubmission"
},
"userId": "guest"
}
Mensagens de Resposta
Representa a mensagem enviada da habilidade ou do agente para o usuário.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | string | Sim |
headerText |
O texto do cabeçalho exibido acima do texto da mensagem. | string | No |
footerText |
O texto do rodapé exibido abaixo do texto e das ações da mensagem, mas antes das ações globais. | string | No |
actions |
Uma lista de ações relacionadas à mensagem | Array<Action> |
Número |
footerForm |
Um layout de formulário que é exibido abaixo do texto do rodapé da mensagem e acima de suas ações globais. | Mensagem do formulário de qualificação | Número |
globalActions |
Uma lista de ações globais relacionadas ao texto | Array<Ação> | Número |
channelExtensions |
As propriedades de extensão específicas do canal associadas à mensagem | JSONObject | Número |
Mensagem de Anexo de Habilidade
Representa uma mensagem de anexo. Aplica as propriedades a seguir às Mensagens de Resposta.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "attachment" |
Sim |
attachment |
O anexo enviado | Anexo | Sim |
Observação
Os uploads de arquivos do site do host podem falhar e gerar um erro de console semelhante ao seguinte:
Os uploads de arquivos do site do host podem falhar e gerar um erro de console semelhante ao seguinte:
https://<oda-instance>/chat/v1/attachments from origin <client site> has been blocked by CORS policy: No Access-Control-Allow-Origin header is present on the requested resource
Isso ocorre porque as definições de CORS (Compartilhamento de Recursos entre Origens) do site do host, que bloqueiam todas as solicitações HTTP de origem cruzada, também podem bloquear solicitações de upload da instância do cliente para o servidor de anexos do Oracle Digital Assistant. Se você se deparar com esse problema, atualize a política de segurança do site do host para permitir o domínio da instância do Digital Assistant. Como a conversa usa conexões do WebSocket, o CORS não afeta a conversa.
Mensagem do Cartão de Habilidade
Representa um conjunto de opções que são exibidas para o usuário, horizontalmente como carrosséis ou verticalmente como listas. Aplica as propriedades a seguir às Mensagens de Resposta.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "card" |
Sim |
layout |
Se as mensagens serão exibidas horizontal ou verticalmente. | string (valor: horizontal , vertical )
|
Sim |
cards |
Um array de cartões a serem renderizados. | array | Sim |
Carga Útil da Mensagem de Comando de Resposta da Habilidade
Representa um payload de mensagem de comando.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "command" |
Sim |
command |
O comando que deve ser executado | string | Sim |
properties |
Um mapa de pares de chave/valor | JSONObject | Sim |
Carga Útil da Mensagem de Erro de Resposta da Habilidade
Representa um payload de mensagem de erro que fornece feedback aos clientes sobre erros no backend.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "error" |
Sim |
errorMessage |
A mensagem de erro | string | Sim |
error |
java.lang.Error object |
string | Número |
Payload da Mensagem de Resposta da Habilidade ExecuteApplicationContextCommand
Representa um payload de mensagem de comando de ação de execução de aplicativo.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "executeApplicationActionCommand" |
|
actionType |
O tipo de ação | "custom", "navigate", "query", "updateFields" |
Sim |
command |
O comando execute application action | "executeApplicationAction" |
Sim |
context |
O nome do contexto do aplicativo | string | Sim |
customAction |
Adquirido quando actionType é 'custom' |
string | Número |
properties |
Pares de chave/valor que podem ser usados como argumentos ao executar a ação | JSONObject | No |
Mensagens de Feedback
Representa um componente de conceito de feedback, que usa o feedback de um usuário usando um indicador de conceito (normalmente um sistema de classificação por estrelas). Seu payload é semelhante a uma mensagem de texto, mas tem um campo de objeto
Por exemplo :
channelExtensions
adicional que é definido como { "displayType": "stars" }
. Aplica as propriedades a seguir às Mensagens de Resposta.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "text" |
Sim |
text |
O texto da mensagem | string | Sim |
channelExtensions |
Um objeto descrevendo extensões para o payload. | { “displayType”: “stars” } |
Sim |
{
"messagePayload":{
"text":"How would you like to rate us?",
"type":"text",
"actions":[
{
"postback":{
"variables":{
"rating":"1"
},
"system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
"action":"1",
"system.state":"giveFeedback"
},
"label":"1",
"type":"postback"
},
{
"postback":{
"variables":{
"rating":"2"
},
"system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
"action":"2",
"system.state":"giveFeedback"
},
"label":"2",
"type":"postback"
},
{
"postback":{
"variables":{
"rating":"3"
},
"system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
"action":"3",
"system.state":"giveFeedback"
},
"label":"3",
"type":"postback"
},
{
"postback":{
"variables":{
"rating":"4"
},
"system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
"action":"4",
"system.state":"giveFeedback"
},
"label":"4",
"type":"postback"
},
{
"postback":{
"variables":{
"rating":"5"
},
"system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
"action":"5",
"system.state":"giveFeedback"
},
"label":"5",
"type":"postback"
}
],
"channelExtensions":{
"displayType":"stars"
}
},
"source":"BOT",
"userId":"<userID>"
}
Mensagem de Localização da Habilidade
Representa uma mensagem de localização. Aplica as propriedades a seguir às Mensagens de Resposta.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "location" |
Sim |
location |
O local | Localização | Sim |
Mensagem de Evento de Saída de Habilidade
Representa as mensagens de eventos de saída que podem ser enviadas pelo servidor. Ele aplica as propriedades a seguir ao
Por exemplo :
Message
.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "outboundEvent" |
Sim |
eventType |
O tipo de evento (definido no catálogo de eventos) | String | Sim |
eventVersion |
A versão do tipo de evento (definida no catálogo de eventos) | String | Sim |
eventData |
Os dados comerciais | JSONObject | Sim |
contextProperties |
As propriedades do contexto do evento | Propriedades do Contexto do Evento | No |
{
"messagePayload": {
"eventData": {
"size": "Medium",
"type": "Cheese"
},
"eventVersion": "1.0",
"eventType": "com.pizzastore.pizza.ordercreated",
"type": "outboundEvent",
"contextProperties": {
"tenancy": "odaserviceinstance00",
"specversion": "1.0",
"id": "7a923f09-bff7-4369-8467-0c510e971aaf",
"source": "hello/app",
"time": 1659357000,
"type": "com.pizzastore.pizza.ordercreated",
"channelname": "System_Global_Test",
"version": "1.0",
"userid": "3910088",
"contenttype": "application/json"
}
}
}
Mensagem Bruta da Habilidade
Usado quando um componente cria o payload específico do canal.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "raw" |
Sim |
payload |
O payload específico do canal | Um objeto JSON | Sim |
Carga Útil da Mensagem Fechada da Sessão de Resposta da Habilidade
Representa um payload de mensagem fechada da sessão. Ele fornece confirmação do fechamento da sessão no backend.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "sessionClosed" |
Sim |
Mensagem de Texto de Resposta da Habilidade
Representa uma mensagem de texto. Aplica as propriedades a seguir às Mensagens de Resposta.
Por exemplo :
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "text" |
Sim |
text |
O texto da mensagem | string | Sim |
{
"messagePayload": {
"type": "text",
"text": "What do you want to do?",
"actions": [
{
"type": "postback",
"label": "Order Pizza",
"postback": {
"state": "askAction",
"action": "orderPizza"
}
},
{
"type": "postback",
"label": "Cancel A Previous Order",
"postback": {
"state": "askAction",
"action": "cancelOrder"
}
}
]
},
"userId": "guest"
}
Carga Útil da Mensagem do Fluxo de Texto de Resposta da Habilidade
O payload de resposta de fluxo de texto representa uma resposta de texto de fluxo que é entregue em blocos. Aplica as seguintes propriedades ao Payload da Mensagem de Resposta:
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "texStream" |
Sim |
aggregateText |
O texto agregado que é entregue no fluxo até o bloco atual. | string | Sim |
streamId |
O ID do fluxo. Os blocos do mesmo fluxo têm o mesmo streamId .
|
string | Sim |
streamState |
Estado do fluxo do bloco de fluxo atual | "start" , "running" , "end" |
Sim |
text |
Texto parcial entregue no bloco atual | string | Sim |
Mensagem do formulário de qualificação
Representa uma mensagem que retorna os resultados de uma consulta em um formulário que é somente leitura. A mensagem consiste em uma matriz de resultados de formulário. Cada resultado de formulário contém um array
fields
com pares de chave/valor que representam um campo. Aplica as propriedades a seguir às Mensagens de Resposta.
Observação
Este tipo de mensagem é usado para caixas de diálogo SQL.
Este tipo de mensagem é usado para caixas de diálogo SQL.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "form" |
Sim |
forms |
Uma matriz de resultados do formulário. Cada resultado contém um array fields que representa os campos do formulário.
|
Matriz<Linha> | Sim |
formColumns |
O número de colunas em que os campos do formulário devem ser agrupados. | 1 2 | Sim |
paginationInfo |
As informações de paginação dos resultados no formulário | PaginationInfo | Número |
{
"type":"form",
"headerText":"A-Team",
"forms":[
{
"fields":[
{
"displayType":"text",
"label":"First Name",
"alignment":"left",
"value":"Aaron"
},
{
"displayType":"text",
"label":"Last Name",
"alignment":"left",
"value":"Adams"
},
{
"displayType":"text",
"label":"Title",
"alignment":"left",
"value":"Demo Builder"
},
{
"displayType":"text",
"label":"Phone",
"alignment":"left",
"value":"1234567890"
},
{
"linkLabel":"Open Link",
"displayType":"link",
"label":"Contact",
"alignment":"left",
"value":"https://www.example.com/in/aaron-adams-4862752"
},
{
"displayType":"text",
"label":"Bio",
"alignment":"left"
}
]
},
{
"fields":[
{
"displayType":"text",
"label":"First Name",
"alignment":"left",
"value":"Bob"
},
{
"displayType":"text",
"label":"Last Name",
"alignment":"left",
"value":"Brown"
},
{
"displayType":"text",
"label":"Title",
"alignment":"left",
"value":"Multi-lingual Expert"
},
{
"displayType":"text",
"label":"Phone",
"alignment":"left",
"value":"1234567890"
},
{
"linkLabel":"Open Link",
"displayType":"link",
"label":"Contact",
"alignment":"left",
"value":"https://www.example.com/in/Bobbrown"
},
{
"displayType":"text",
"label":"Bio",
"alignment":"left",
"value":"Bob is a member of the cloud architects team which is specialized in enterprise mobility and cloud development. Bob has been directly involved with Oracle middleware since 2005 during which he held different roles in managing highly specialized teams."
}
]
},
{
"fields":[
{
"displayType":"text",
"label":"First Name",
"alignment":"left",
"value":"Charlie"
},
{
"displayType":"text",
"label":"Last Name",
"alignment":"left",
"value":"Chase"
},
{
"displayType":"text",
"label":"Title",
"alignment":"left",
"value":"Flow Builder"
},
{
"displayType":"text",
"label":"Phone",
"alignment":"left",
"value":"1234567890"
},
{
"linkLabel":"Open Link",
"displayType":"link",
"label":"Contact",
"alignment":"left",
"value":"https://www.example.com/in/Charlie-chase-97a418"
},
{
"displayType":"text",
"label":"Bio",
"alignment":"left",
"value":"Charlie is a member of the enterprise mobility team. Charlie has 20+ years experience with custom development. Charlie is an expert on mobile cloud services and development tools. He is the creator of productivity tools. His latest passion is building chatbots with a minimum amount of custom code."
}
]
}
],
"formColumns":2,
"paginationInfo":{
"currentRangeSize":3,
"rangeStart":0,
"nextRangeSize":2,
"hasPrevious":false,
"hasNext":true,
"totalCount":5,
"rangeSize":3,
"status":"Showing 1-3 of 5 items"
},
"globalActions":[
{
"postback":{
"variables":{},
"action":"system.showMore"
},
"label":"Show More",
"type":"postback"
}
]
}
Mensagem da Tabela de Habilidades
Representa uma mensagem que retorna os resultados de uma consulta no formato de tabela A mensagem consiste em uma matriz de cabeçalhos e uma matriz de linhas. As próprias linhas contêm um array
fields
que representa células individuais. Aplica as propriedades a seguir às Mensagens de Resposta.
Observação
Este tipo de mensagem é usado para caixas de diálogo SQL.
Este tipo de mensagem é usado para caixas de diálogo SQL.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "table" |
Sim |
headings |
Uma matriz de cabeçalhos de tabela | Matriz<Cabeçalho> | Sim |
tableTitle | O título da tabela | string | Número |
rows |
Uma matriz de linhas de tabela. Cada linha contém um array fields que representa as células da tabela.
|
Matriz<Linha> | Sim |
paginationInfo |
As informações de paginação dos resultados na tabela | PaginationInfo | No |
{
"type":"table",
"headerText":"A-Team",
"tableTitle": "Document",
"headings":[
{
"width":20,
"label":"First Name",
"alignment":"left"
},
{
"width":20,
"label":"Last Name",
"alignment":"left"
},
{
"width":35,
"label":"Title",
"alignment":"left"
},
{
"width":25,
"label":"Phone",
"alignment":"right"
}
],
"rows":[
{
"fields":[
{
"displayType":"text",
"width":20,
"label":"First Name",
"alignment":"left",
"value":"Aaron"
},
{
"displayType":"text",
"width":20,
"label":"Last Name",
"alignment":"left",
"value":"Adams"
},
{
"displayType":"text",
"width":35,
"label":"Title",
"alignment":"left",
"value":"Demo Builder"
},
{
"displayType":"text",
"width":25,
"label":"Phone",
"alignment":"right",
"value":"1234567890"
}
]
},
{
"fields":[
{
"displayType":"text",
"width":20,
"label":"First Name",
"alignment":"left",
"value":"Bob"
},
{
"displayType":"text",
"width":20,
"label":"Last Name",
"alignment":"left",
"value":"Brown"
},
{
"displayType":"text",
"width":35,
"label":"Title",
"alignment":"left",
"value":"Multi-lingual Expert"
},
{
"displayType":"text",
"width":25,
"label":"Phone",
"alignment":"right",
"value":"1234567890"
}
]
},
{
"fields":[
{
"displayType":"text",
"width":20,
"label":"First Name",
"alignment":"left",
"value":"Charlie"
},
{
"displayType":"text",
"width":20,
"label":"Last Name",
"alignment":"left",
"value":"Chase"
},
{
"displayType":"text",
"width":35,
"label":"Title",
"alignment":"left",
"value":"Flow Builder"
},
{
"displayType":"text",
"width":25,
"label":"Phone",
"alignment":"right",
"value":"1234567890"
}
]
},
{
"fields":[
{
"displayType":"text",
"width":20,
"label":"First Name",
"alignment":"left",
"value":"David"
},
{
"displayType":"text",
"width":20,
"label":"Last Name",
"alignment":"left",
"value":"Davidson"
},
{
"displayType":"text",
"width":35,
"label":"Title",
"alignment":"left",
"value":"Machine Learning Expert"
},
{
"displayType":"text",
"width":25,
"label":"Phone",
"alignment":"right",
"value":"1234567890"
}
]
},
{
"fields":[
{
"displayType":"text",
"width":20,
"label":"First Name",
"alignment":"left",
"value":"Eric"
},
{
"displayType":"text",
"width":20,
"label":"Last Name",
"alignment":"left",
"value":"Eastman Junior"
},
{
"displayType":"text",
"width":35,
"label":"Title",
"alignment":"left",
"value":"Docker Expert"
},
{
"displayType":"text",
"width":25,
"label":"Phone",
"alignment":"right",
"value":"1234567890"
}
]
}
],
"paginationInfo":{
"currentRangeSize":5,
"rangeStart":0,
"nextRangeSize":-3,
"hasPrevious":false,
"hasNext":false,
"totalCount":5,
"rangeSize":8,
"status":"Showing 1-5 of 5 items"
}
}
Tabela de Habilidades - Mensagem de Formulário
Essa mensagem combina os tipos de mensagem
Table
e Form
. Representa uma mensagem que retorna os resultados de uma consulta na forma de uma tabela. Cada linha da tabela tem um formulário somente leitura, além das informações da linha. Aplica as propriedades a seguir às Mensagens de Resposta.
Observação
Este tipo de mensagem é usado para caixas de diálogo SQL.
Este tipo de mensagem é usado para caixas de diálogo SQL.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem | "tableForm" |
Sim |
tableTitle |
O título da tabela | string | No |
headings |
Uma matriz de cabeçalhos de tabela | Matriz<Cabeçalho> | Sim |
rows |
Uma matriz de linhas de tabela. Cada linha contém uma matriz de campos que representam as células da tabela. | Matriz<Linha> | Sim |
forms |
Um array de resultados de formulário que correspondem a cada linha da tabela. Cada formulário contém um array fields que representa os campos do formulário.
|
Matriz<Form> | Sim |
formColumns |
O número de colunas em que os campos do formulário devem ser agrupados. | 1 2 | Sim |
paginationInfo |
Um array de ações globais relacionadas ao texto | Array<Ação> | No |
{
"type":"tableForm",
"headerText":"A-Team",
"tableTitle": "Document",
"headings":[
{
"width":47,
"label":"First Name",
"alignment":"left"
},
{
"width":47,
"label":"Last Name",
"alignment":"left"
}
],
"rows":[
{
"fields":[
{
"displayType":"text",
"label":"First Name",
"alignment":"left",
"value":"Aaron"
},
{
"displayType":"text",
"label":"Last Name",
"alignment":"left",
"value":"Adams"
}
]
},
{
"fields":[
{
"displayType":"text",
"label":"First Name",
"alignment":"left",
"value":"Bob"
},
{
"displayType":"text",
"label":"Last Name",
"alignment":"left",
"value":"Brown"
}
]
},
{
"fields":[
{
"displayType":"text",
"label":"First Name",
"alignment":"left",
"value":"Charlie"
},
{
"displayType":"text",
"label":"Last Name",
"alignment":"left",
"value":"Chase"
}
]
}
],
"forms":[
{
"title":"View details Aaron Adams",
"fields":[
{
"displayType":"text",
"label":"Title",
"alignment":"left",
"value":"Demo Builder"
},
{
"displayType":"text",
"label":"Phone",
"alignment":"left",
"value":"1234567890"
},
{
"linkLabel":"Open Link",
"displayType":"link",
"label":"Contact",
"alignment":"left",
"value":"https://www.example.com/in/Aaron-adams-4862572"
},
{
"displayType":"text",
"label":"Bio",
"alignment":"left"
}
]
},
{
"title":"View details Bob Brown",
"fields":[
{
"displayType":"text",
"label":"Title",
"alignment":"left",
"value":"Multi-lingual Expert"
},
{
"displayType":"text",
"label":"Phone",
"alignment":"left",
"value":"1234567890"
},
{
"linkLabel":"Open Link",
"displayType":"link",
"label":"Contact",
"alignment":"left",
"value":"https://www.example.com/in/Bobbrown"
},
{
"displayType":"text",
"label":"Bio",
"alignment":"left",
"value":"Bob is a member of the cloud architects team which is specialized in enterprise mobility and cloud development. Bob has been directly involved with Oracle middleware since 2005 during which he held different roles in managing highly specialized teams."
}
]
},
{
"title":"View details Charlie Chase",
"fields":[
{
"displayType":"text",
"label":"Title",
"alignment":"left",
"value":"Flow Builder Fanatic"
},
{
"displayType":"text",
"label":"Phone",
"alignment":"left",
"value":"1234567890"
},
{
"linkLabel":"Open Link",
"displayType":"link",
"label":"Contact",
"alignment":"left",
"value":"https://www.example.com/in/Charlie-chase-97a418"
},
{
"displayType":"text",
"label":"Bio",
"alignment":"left",
"value":"Charlie is a member of the enterprise mobility team. Charlie has 20+ years experience with custom development. Charlie is an expert on mobile cloud services and development tools. He is the creator of productivity tools. His latest passion is building chatbots with a minimum amount of custom code."
}
]
}
],
"formColumns":2,
"paginationInfo":{
"currentRangeSize":3,
"rangeStart":0,
"nextRangeSize":2,
"hasPrevious":false,
"hasNext":true,
"totalCount":5,
"rangeSize":3,
"status":"Showing 1-3 of 5 items"
},
"actions":[
{
"postback":{
"variables":{
},
"action":"system.showMore"
},
"label":"Show More",
"type":"postback"
}
],
"footerText":"Tap on a row to see personal details"
}
Mensagem do Formulário de Edição de Qualificação
Representa uma mensagem de formulário editável (formulário de entrada). A mensagem consiste em um array de Campo.
Nome | Descrição | Tipo | 0brigatório? |
---|---|---|---|
type |
O tipo de mensagem. Nesse caso, é "editForm" .
|
"editForm" |
Sim |
title |
Um título de representante para o formulário de edição | String | No |
fields |
Uma lista de campos que podem incluir campos editáveis e somente leitura. | Array<Field> | Sim |
formColumns |
O número de colunas nas quais os campos do formulário devem ser agrupados. A propriedade só é aplicável quando você também define a propriedade field .
|
Número Inteiro | No |
formRows |
Uma lista de linhas que podem incluir campos editáveis e somente leitura. Defina a propriedade fields e formRows como obrigatórios. Elas são mutuamente exclusivas.
|
Matriz<FormRow> | |
errorMessage |
Uma mensagem de erro no nível do formulário que é exibida quando o usuário enviou dados inválidos, mas o erro não pode ser vinculado a um campo individual. | String | No |
actions |
Uma matriz de ações relacionadas ao formulário de edição. Esse array inclui um SubmitFormAction. Um erro é exibido na console do browser quando o SubmitFormAction não está incluído no array actions .
|
Array<Ação> | No |
globalActions |
Um array de ações globais | Array<Ação> | Não |
channelExtensions |
Um conjunto de propriedades de extensão específicas do canal
O objeto |
JSONObject | Não |
{
"messagePayload": {
"headerText": "Create Expense",
"type": "editForm",
"title": "Fill in the below form",
"fields": [
{
"displayType": "textInput",
"serverErrorMessage": "Invalid Text Input",
"defaultValue": "Expense",
"minLength": 5,
"id": "Subject",
"label": "Subject",
"placeholder": "Enter subject of the expense",
"clientErrorMessage": "Subject is required and must be between 5 and 15 characters",
"maxLength": 15,
"required": true
},
{
"displayType": "textInput",
"defaultValue": "expense",
"multiLine": true,
"id": "Description",
"label": "Description",
"placeholder": "What is expense justification",
"clientErrorMessage": "Description is required",
"required": true
},
{
"displayType": "datePicker",
"defaultValue": "2023-06-07",
"maxDate": "2023-06-22",
"id": "Date",
"label": "Expense Date",
"placeholder": "Pick a date in the past",
"clientErrorMessage": "Expense date is required and must be in the past.",
"required": true
},
{
"displayType": "timePicker",
"defaultValue": "18:58",
"id": "Time",
"label": "Expense Time",
"placeholder": "What time was the expense",
"clientErrorMessage": "Time is required. Please fill a value",
"required": true
},
{
"displayType": "numberInput",
"minValue": 5,
"defaultValue": 6,
"maxValue": 500,
"id": "Amount",
"label": "Amount",
"placeholder": "Enter expense amount",
"clientErrorMessage": "Amount is required and must be between 5 and 500.",
"required": true
},
{
"autoSubmit": true,
"displayType": "toggle",
"defaultValue": "true",
"labelOn": "Yes",
"id": "TipIncluded",
"label": "Tip Included?",
"valueOff": "false",
"labelOff": "No",
"valueOn": "true"
},
{
"displayType": "singleSelect",
"serverErrorMessage": "Invalid Selection",
"defaultValue": "Public transport",
"options": [
{
"label": "Public transport",
"value": "Public transport"
},
{
"label": "Flight",
"value": "Flight"
}
],
"layoutStyle": "list",
"id": "Type",
"label": "Expense Type",
"placeholder": "Select expense type",
"clientErrorMessage": "Expense type is required",
"required": true
},
{
"displayType": "multiSelect",
"defaultValue": [
"Toff van Alphen"
],
"options": [
{
"label": "Toff van Alphen",
"value": "Toff van Alphen"
},
{
"label": "Roger Federer",
"value": "Roger Federer"
}
],
"layoutStyle": "checkboxes",
"id": "Attendees",
"label": "Attendees",
"placeholder": "Select attendees",
"clientErrorMessage": "Please select atleast one attendee",
"required": true
}
],
"formColumns": 1,
"actions": [
{
"postback": {
"system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
"system.flow": "ExpenseFlow",
"system.state": "editFormMapVar"
},
"label": "Submit",
"type": "submitForm"
}
],
"channelExtensions": {
"replaceMessage": "True"
}
},
"source": "BOT",
"userId": "guest"
}