Estruturas de containers AnnA
Containers AnnA são classificados com os tipos abaixo:
- Message
- ButtonLink
- Time
- Multimedia
- ExecFunction
- Question
- Alternative
Com o novo Web Service V3, você terá a seguinte estrutura:
[ { "Type": "MESSAGE", "Alias": "MSG01", "Phrase": "Hello1", "Active": "S", "RestrictToGroup": "", "BeforeExecutionRule": "" }, { "Type": "TIME", "Alias": "TIME01", "TimeToWait": "5", "ShowMessage": "S", "Message": "Aguarde @@TimeToWait@@s", "Active": "S", "RestrictToGroup": "", "BeforeExecutionRule": "" }]Message container
Envia uma mensagem ao usuário
| PropName | PropValue | Descrição | Padrão | Obrigatório |
|---|---|---|---|---|
| Type | MESSAGE | Tipo do container | Sim | |
| Alias | Message123 | Use para identificar o container após o nó de WebService ser executado, por exemplo, Message123. | Não | |
| RestrictToGroup | Restringe a execução do container por grupo de usuário | Não | ||
| BeforeExecutionRule | Deve ser uma expressão. Você pode utilizar funções AnnA que retornem “true” ou “false” para decidir se o container deve ser executado | Não | ||
| Phrase | Hello AnnA! | Texto que será enviado ao usuário | Sim |
ButtonLink container
Envia uma mensagem que contém um botão com um link incorporado
| PropName | PropValue | Descrição | Padrão | Obrigatório |
|---|---|---|---|---|
| Tipo | MESSAGE | Tipo do contêiner | Sim | |
| Alias | Message123 | Use para identificar o contêiner após a execução do nó WebService, por exemplo, Message123. | Não | |
| RestrictToGroup | Restringe a execução do contêiner por grupo de usuários | Não | ||
| BeforeExecutionRule | Deve ser uma expressão. Você pode usar Funções AnnA que retornem “true” ou “false” para decidir se este contêiner deve rodar | Não | ||
| Phrase | Hello AnnA! | Texto que será enviado ao usuário | Sim | |
| PhraseHeader | Texto do cabeçalho que será enviado ao usuário. | Não | ||
| PhraseFooter | Texto do rodapé que será enviado ao usuário. | Não | ||
| ButtonLinkText | Texto que será mostrado no botão para o usuário. | Sim | ||
| ButtonLinkURL | URL que será aberta quando o usuário clicar no botão. | Sim |
Time container
Espera um tempo antes de continuar a execução dos containers
| PropName | PropValue | Descrição | Padrão | Obrigatório |
|---|---|---|---|---|
| Type | TIME | Tipo do container | Sim | |
| Alias | Time123 | Use para identificar o container após o nó de WebService ser executado, por exemplo, Time123. | Não | |
| RestrictToGroup | Restringe a execução do container por grupo de usuário | Não | ||
| BeforeExecutionRule | Deve ser uma expressão. Você pode utilizar funções AnnA que retornem “true” ou “false” para decidir se o container deve ser executado | Não | ||
| ShowMessage | Define se a mensagem deve ser exibida | S | Não | |
| Message | Texto que será enviado para o usuário, por exemplo, Hello World! | Wait @@TimeToWait@@s | Não | |
| TimeToWait | 5 | Define o tempo de pausa da execução em segundos | 0 | S |
Multimedia container
Envia arquivos de multimídia para o usuário, por exemplo, imagens, vídeos, áudios, e documentos.
| PropName | PropValue | Descrição | Padrão | Obrigatório |
|---|---|---|---|---|
| Type | MULTIMEDIA | Tipo do container | Sim | |
| Alias | Media123 | Use para identificar o container após o nó de WebService ser executado, por exemplo, Media123. | Não | |
| RestrictToGroup | Restringe a execução do container por grupo de usuário | Não | ||
| BeforeExecutionRule | Deve ser uma expressão. Você pode utilizar funções AnnA que retornem “true” ou “false” para decidir se o container deve ser executado | Não | ||
| Phrase | Texto que será enviado para o usuário, por exemplo, Hello World! | Não | ||
| MediaURL | URL de download do arquivo, por exemplo, https://seu.dominio/rota/para/arquivo.extensão | Sim |
ExecFunction container
Executa uma ou mais funções AnnA
| PropName | PropValue | Descrição | Padrão | Obrigatório |
|---|---|---|---|---|
| Type | EXECFUNCTION | Tipo do container | Sim | |
| Alias | ExecFunc123 | Use para identificar o container após o nó de WebService ser executado, por exemplo, ExecFunc123. | Não | |
| RestrictToGroup | Restringe a execução do container por grupo de usuário | Não | ||
| BeforeExecutionRule | Deve ser uma expressão. Você pode utilizar funções AnnA que retornem “true” ou “false” para decidir se o container deve ser executado | Não | ||
| Expression | AddParm(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
| PropName | PropValue | Descrição | Padrão | Obrigatório |
|---|---|---|---|---|
| Type | QUESTION | Tipo do container | Sim | |
| Alias | Question123 | Use para identificar o container após o nó de WebService ser executado, por exemplo, Question123. | Não | |
| RestrictToGroup | Restringe a execução do container por grupo de usuário | Não | ||
| BeforeExecutionRule | Deve ser uma expressão. Você pode utilizar funções AnnA que retornem “true” ou “false” para decidir se o container deve ser executado | Não | ||
| Phrase | Texto da questão que será enviada para o usuário | Sim | ||
| Competence | Competência deste container. Pode ser uma competência cadastrada pela empresa ou uma nova competência que será criada durante o processamento. | Não | ||
| Subject | Assunto deste container. Pode ser um assunto cadastrado pela empresa ou um novo assunto que será criado durante o processamento | Não | ||
| Topic | Tó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. | N | Não | |
| SensitiveData | Ativar 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. | N | Não | |
| RightAnswer | Ativar este recurso obriga que para prosseguir, a resposta do usuário deve coincidir com uma das respostas permitidas no PropValue do PropName PossibleAnswers | N | Não | |
| RightAnswerValue | Um Valor para a Questão, que poderá ser utilizado em estatísticas | Não | ||
| AnswerType | Define 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 | N | Não | |
| CorrectAnswerComment | Defina qual mensagem deve ser exibida quando o usuário acertar a resposta definida no PropValue do PropName PossibleAnswers | Não | ||
| IncorrectAnswerComment | Defina qual mensagem deve ser exibida quando o usuário não acertar nenhuma resposta dentre as respostas definidas no PropValue do PropName PossibleAnswers | Não | ||
| DynamicValidations | Você 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 | ||
| ValidationError | Defina uma mensagem que será exibida após o usuário responder a questão e o resultado da Validação Dinâmica for FALSE | Não | ||
| ValidationMask | Utilize as Funções Anna de Máscara para mascarar a resposta do usuário. Respostas mascaradas podem ser recuperadas por Funções AnnA | Não | ||
| ExternalData | É possivel guardar neste campo qualquer informação que desejar recuparar através das funções ‘LastAnswerJSON()’ e ‘AnswersJSON()‘ | Não | ||
| PossibleAnswers | Json das possíveis repostas do usuário para a pergunta quando RightAnswer=S | Nã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:
["Two", "2"]Alternative container
Envia uma questão de múltipla escolha para o usuário.
| PropName | PropValue | Descrição | Padrão | Obrigatório |
|---|---|---|---|---|
| Type | ALTERNATIVE | Tipo do container | Sim | |
| Alias | Alternative123 | Use para identificar o container após o nó de WebService ser executado, por exemplo, Alternative123. | Não | |
| RestrictToGroup | Restringe a execução do container por grupo de usuário | Não | ||
| BeforeExecutionRule | Deve ser uma expressão. Você pode utilizar funções AnnA que retornem “true” ou “false” para decidir se o container deve ser executado | Não | ||
| Phrase | Texto da questão que será enviada para o usuário | Sim | ||
| Competence | Competência deste container. Pode ser uma competência cadastrada pela empresa ou uma nova competência que será criada durante o processamento. | Não | ||
| Subject | Assunto deste container. Pode ser um assunto cadastrado pela empresa ou um novo assunto que será criado durante o processamento | Não | ||
| Topic | Tó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 | ||
| Enumeration | Essa 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) | N | Não | |
| Randomize | Embaralha as alternativas antes de exibir para o usuário. Por padrão tem valor ‘N’ | N | Não | |
| RightAnswer | Ativar este recurso obriga que para prosseguir, a resposta do usuário deve coincidir com uma das respostas permitidas no PropValue do PropName PossibleAnswers | N | Não | |
| AnswerType | Define 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’ | N | Não | |
| AnswerTypeComment | Defina qual mensagem deve ser exibida quando o usuário responder a questão | Não | ||
| ExternalData | É possivel guardar neste campo qualquer informação que desejar recuparar através das funções ‘LastAnswerJSON()’ e ‘AnswersJSON()‘ | Não | ||
| Alternatives | Coleção/vetor de alternativas | Sim |
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:
| PropName | PropValue | Descrição | Padrão | Obrigatório |
|---|---|---|---|---|
| Alias | Um alias é um apelido que pode ser utilizado para identificar a alternativa caso necessite referenciar em alguma função. | Não | ||
| RestrictToGroup | Informe o alias de um grupo de usuários que esteja cadastrado na empresa para que este container seja restrito a este grupo. | Não | ||
| ExhibitionRule | Defina aqui uma expressão, usando funções Anna para que se verdadeiro o container seja processado. | Não | ||
| Phrase | Texto da alternativa | Sim | ||
| IsCorrectAnswer | Determina 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 | ||
| AlternativeValue | Um Valor para a alternativa, que poderá ser utilizado em estatísticas | Não | ||
| Order | Ordem da alternativa | Não | ||
| Comment | Defina qual mensagem deve ser exibida quando o usuário responder a questão | Não |
Exemplo:
[ { "Phrase": "2 two", "Alias": "Alternative001", "IsCorrectAnswer": "S", "Order": "1" }, { "Phrase": "5 five", "Alias": "Alternative002", "Order": "2" }]