Pular para o conteúdo

Estruturas de containers AnnA

Containers AnnA são classificados com os tipos abaixo:

  • Message
  • Time
  • Multimedia
  • ExecFunction
  • Question
  • Alternative

Os containers sempre irão conter um PropName que representa o Nãome da opção/propriedade, e um PropValue que será o valor da opção/propriedade

O primerio nível da estrutura sempre será “Container+sequência” com o valor sendo a configuração do tipo de container:

[
{
"PropName": "Container001",
"PropValue": "..."
},
{
"PropName": "Container002",
"PropValue": "..."
}
]

Message container

Envia uma mensagem ao usuário

PropNamePropValueDescriçãoPadrãoObrigatório
TypeMESSAGETipo do containerSim
AliasMessage123Use para identificar o container após o nó de WebService ser executado, por exemplo, Message123.Não
RestrictToGroupRestringe a execução do container por grupo de usuárioNão
BeforeExecutionRuleDeve ser uma expressão. Você pode utilizar funções AnnA que retornem “true” ou “false” para decidir se o container deve ser executadoNão
PhraseHello AnnA!Texto que será enviado ao usuárioSim

Time container

Espera um tempo antes de continuar a execução dos containers

PropNamePropValueDescriçãoPadrãoObrigatório
TypeTIMETipo do containerSim
AliasTime123Use para identificar o container após o nó de WebService ser executado, por exemplo, Time123.Não
RestrictToGroupRestringe a execução do container por grupo de usuárioNão
BeforeExecutionRuleDeve ser uma expressão. Você pode utilizar funções AnnA que retornem “true” ou “false” para decidir se o container deve ser executadoNão
ShowMessageDefine se a mensagem deve ser exibidaSNão
MessageTexto que será enviado para o usuário, por exemplo, Hello World!Wait @@TimeToWait@@sNão
TimeToWait5Define o tempo de pausa da execução em segundos0S

Multimedia container

Envia arquivos de multimídia para o usuário, por exemplo, imagens, vídeos, áudios, e documentos.

PropNamePropValueDescriçãoPadrãoObrigatório
TypeMULTIMEDIATipo do containerSim
AliasMedia123Use para identificar o container após o nó de WebService ser executado, por exemplo, Media123.Não
RestrictToGroupRestringe a execução do container por grupo de usuárioNão
BeforeExecutionRuleDeve ser uma expressão. Você pode utilizar funções AnnA que retornem “true” ou “false” para decidir se o container deve ser executadoNão
PhraseTexto que será enviado para o usuário, por exemplo, Hello World!Não
MediaURLURL de download do arquivo, por exemplo, https://seu.dominio/rota/para/arquivo.extensãoSim

ExecFunction container

Executa uma ou mais funções AnnA

PropNamePropValueDescriçãoPadrãoObrigatório
TypeEXECFUNCTIONTipo do containerSim
AliasExecFunc123Use para identificar o container após o nó de WebService ser executado, por exemplo, ExecFunc123.Não
RestrictToGroupRestringe a execução do container por grupo de usuárioNão
BeforeExecutionRuleDeve ser uma expressão. Você pode utilizar funções AnnA que retornem “true” ou “false” para decidir se o container deve ser executadoNão
ExpressionAddParm(Teste1,123) AddParm(Teste,456)Defina expressões com funções AnnA, por exemplo, AddParm(Test1,123) AddParm(Test,456)Sim

Question container

Envia uma questão para o usuário

PropNamePropValueDescriçãoPadrãoObrigatório
TypeQUESTIONTipo do containerSim
AliasQuestion123Use para identificar o container após o nó de WebService ser executado, por exemplo, Question123.Não
RestrictToGroupRestringe a execução do container por grupo de usuárioNão
BeforeExecutionRuleDeve ser uma expressão. Você pode utilizar funções AnnA que retornem “true” ou “false” para decidir se o container deve ser executadoNão
PhraseTexto da questão que será enviada para o usuárioSim
CompetenceCompetência deste container. Pode ser uma competência cadastrada pela empresa ou uma nova competência que será criada durante o processamento.Não
SubjectAssunto deste container. Pode ser um assunto cadastrado pela empresa ou um novo assunto que será criado durante o processamentoNão
TopicTópico dentro de um Assunto. Pode ser um Tópico cadastrado em um Assunto desta empresa ou um novo tópico que será criado durante o processamento dentro do Assunto no campo anterior.Não
IgnoreExecFluxoÉ possível configurar um container para suspender a permissão de um usuário chamar outro serviço enquanto a questão não for respondia.NNão
SensitiveDataAtivar este recurso faz com que qualquer resposta de usuário armazenada em nosso banco de dados seja criptografada utilizando a chave de criptografia da empresa.NNão
RightAnswerAtivar este recurso obriga que para prosseguir, a resposta do usuário deve coincidir com uma das respostas permitidas no PropValue do PropName PossibleAnswersNNão
RightAnswerValueUm Valor para a Questão, que poderá ser utilizado em estatísticasNão
AnswerTypeDefine se algum feedback deve ser enviado ao usuário após responder a questão. Valores permitidos: N, Q. N = Não enviar nada, Q = Enviar o conteúdo de CorrectAnswerComment e IncorrectAnswerCommentNNão
CorrectAnswerCommentDefina qual mensagem deve ser exibida quando o usuário acertar a resposta definida no PropValue do PropName PossibleAnswersNão
IncorrectAnswerCommentDefina qual mensagem deve ser exibida quando o usuário não acertar nenhuma resposta dentre as respostas definidas no PropValue do PropName PossibleAnswersNão
DynamicValidationsVocê pode utlizar Funções Anna para ler a resposta do usuário e construir uma expressão que retorne TRUE ou FALSE para que o fluxo só prossiga quando a expressão seja verdadeira.Não
ValidationErrorDefina uma mensagem que será exibida após o usuário responder a questão e o resultado da Validação Dinâmica for FALSENão
ValidationMaskUtilize as Funções Anna de Máscara para mascarar a resposta do usuário. Respostas mascaradas podem ser recuperadas por Funções AnnANão
ExternalDataÉ possivel guardar neste campo qualquer informação que desejar recuparar através das funções ‘LastAnswerJSON()’ e ‘AnswersJSON()‘Não
PossibleAnswersJson das possíveis repostas do usuário para a pergunta quando RightAnswer=SNão

Possible Answers

Essa estrutura deve ser apenas uma coleção de objetos com PropName e PropValue:

Por exemplo, se a questão for “1 + 1 = ?“. As possíveis respostas seriam:

[
{
"PropName": "Answer 1",
"PropValue": "Dois"
},
{
"PropName": "Answer 2",
"PropValue": "2"
}
]

Alternative container

Envia uma questão de múltipla escolha para o usuário.

PropNamePropValueDescriçãoPadrãoObrigatório
TypeALTERNATIVETipo do containerSim
AliasAlternative123Use para identificar o container após o nó de WebService ser executado, por exemplo, Alternative123.Não
RestrictToGroupRestringe a execução do container por grupo de usuárioNão
BeforeExecutionRuleDeve ser uma expressão. Você pode utilizar funções AnnA que retornem “true” ou “false” para decidir se o container deve ser executadoNão
PhraseTexto da questão que será enviada para o usuárioSim
CompetenceCompetência deste container. Pode ser uma competência cadastrada pela empresa ou uma nova competência que será criada durante o processamento.Não
SubjectAssunto deste container. Pode ser um assunto cadastrado pela empresa ou um novo assunto que será criado durante o processamentoNão
TopicTópico dentro de um Assunto. Pode ser um Tópico cadastrado em um Assunto desta empresa ou um novo tópico que será criado durante o processamento dentro do Assunto no campo anterior.Não
EnumerationEssa opção permite definir como as alternativas do container devem ser enumeradas.
N = Números, L = Letras, R = Romanos, I = Lista (WhatsApp Popup), B = Botões (WhatsApp Buttons)
NNão
RandomizeEmbaralha as alternativas antes de exibir para o usuário. Por padrão tem valor ‘N’NNão
RightAnswerAtivar este recurso obriga que para prosseguir, a resposta do usuário deve coincidir com uma das respostas permitidas no PropValue do PropName PossibleAnswersNNão
AnswerTypeDefine se algum feedback deve ser enviado ao usuário após responder a questão. Valores permitidos: N, Q. N = Não enviar nada, Q = Enviar o conteúdo de CorrectAnswerComment e IncorrectAnswerComment Padrãos to ‘N’NNão
AnswerTypeCommentDefina qual mensagem deve ser exibida quando o usuário responder a questãoNão
ExternalDataÉ possivel guardar neste campo qualquer informação que desejar recuparar através das funções ‘LastAnswerJSON()’ e ‘AnswersJSON()‘Não
AlternativesColeção/vetor de alternativasSim

Alternatives

Essa estrutura é semelhante ao primeiro nível de container, nela temos uma coleção de PropName e PropValue onde PropName será “Alternative+Sequencia” e PropValue será um PropJSON

Primeiramente, a estrutura de uma alternativa:

PropNamePropValueDescriçãoPadrãoObrigatório
AliasUm alias é um apelido que pode ser utilizado para identificar a alternativa caso necessite referenciar em alguma função.Não
RestrictToGroupInforme o alias de um grupo de usuários que esteja cadastrado na empresa para que este container seja restrito a este grupo.Não
ExhibitionRuleDefina aqui uma expressão, usando funções Anna para que se verdadeiro o container seja processado.Não
PhraseTexto da alternativaSim
IsCorrectAnswerDetermina se é uma alternativa correta, somente uma alternativa correta por questão. Atenção: “S” só será permitido ser a questão for do tipo “AnswerType=S”Não
AlternativeValueUm Valor para a alternativa, que poderá ser utilizado em estatísticasNão
OrderOrdem da alternativaNão
CommentDefina qual mensagem deve ser exibida quando o usuário responder a questãoNão

Exemplo:

[
{
"PropName": "Alternative1",
"PropValue": [
{
"PropName": "Alias",
"PropValue": "Alternative001"
},
{
"PropName": "Phrase",
"PropValue": "2 dois"
},
{
"PropName": "Order",
"PropValue": "1"
},
{
"PropName": "IsCorrectAnswer",
"PropValue": "S"
}
]
},
{
"PropName": "Alternative2",
"PropValue": [
{
"PropName": "Alias",
"PropValue": "Alternative002"
},
{
"PropName": "Phrase",
"PropValue": "5 cinco"
},
{
"PropName": "Order",
"PropValue": "2"
}
]
}
]