Estructuras de contenedores de AnnA
Los contenedores AnnA se clasifican en los siguientes tipos:
- Mensaje
- ButtonLink
- Hora
- Multimedia
- ExecFunction (Función de ejecución)
- Pregunta
- Alternativa
Con el nuevo Web Service V3, tendrás la siguiente estructura:
[ { "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
Envía un mensaje al usuario.
| PropName | PropValue | Descripción | Estándar | Obligatorio |
|---|---|---|---|---|
| Type | MESSAGE | Tipo de contenedor | Si | |
| Alias | Message123 | Utilice para identificar el contenedor después de que el nodo de WebService se ejecute, por ejemplo, Message123. | No | |
| RestrictToGroup | Restringe la ejecución del contenedor por grupo de usuario. | No | ||
| BeforeExecutionRule | Debe ser una expresión. Puedes utilizar funciones de AnnA que devuelvan ‘true’ o ‘false’ para decidir si el contenedor debe ser ejecutado. | No | ||
| Phrase | Hello AnnA! | Texto que será enviado al usuario. | Si |
ButtonLink container
Envía un mensaje que contiene un botón con un enlace incrustado
| PropName | PropValue | Descripción | Estándar | Obligatorio |
|---|---|---|---|---|
| Tipo | MESSAGE | Tipo del contenedor | Sí | |
| Alias | Message123 | Úsalo para identificar el contenedor después de que se ejecute el nodo WebService, por ejemplo, Message123. | No | |
| RestrictToGroup | Restringe la ejecución del contenedor por grupo de usuarios | No | ||
| BeforeExecutionRule | Debe ser una expresión. Puedes usar Funciones AnnA que devuelvan “true” o “false” para decidir si este contenedor debe ejecutarse | No | ||
| Phrase | Hello AnnA! | Texto que se enviará al usuario | Sí | |
| PhraseHeader | Texto del encabezado que se enviará al usuario. | No | ||
| PhraseFooter | Texto del pie de página que se enviará al usuario. | Sí | ||
| ButtonLinkText | Texto que se mostrará en el botón para el usuario. | Sí | ||
| ButtonLinkURL | URL que se abrirá cuando el usuario haga clic en el botón. | Sí |
Time container
Espera un tiempo antes de continuar con la ejecución de los contenedores.
| PropName | PropValue | Descripción | Estándar | Obligatorio |
|---|---|---|---|---|
| Type | TIME | Tipo de contenedor | Si | |
| Alias | Time123 | Utilice para identificar el contenedor después de que el nodo de WebService se ejecute, por ejemplo, Time123. | No | |
| RestrictToGroup | Restringe la ejecución del contenedor por grupo de usuario. | No | ||
| BeforeExecutionRule | Debe ser una expresión. Puedes utilizar funciones de AnnA que devuelvan ‘true’ o ‘false’ para decidir si el contenedor debe ser ejecutado. | No | ||
| ShowMessage | Define si el mensaje debe ser mostrado. | S | No | |
| Message | Texto que será enviado al usuario, por ejemplo, Hello World! | Wait @@TimeToWait@@s | No | |
| TimeToWait | 5 | Define el tiempo de pausa de la ejecución en segundos. | 0 | S |
Multimedia container
Envía archivos multimedia al usuario, por ejemplo, imágenes, videos, audios y documentos.
| PropName | PropValue | Descripción | Estándar | Obligatorio |
|---|---|---|---|---|
| Type | MULTIMEDIA | Tipo de contenedor | Si | |
| Alias | Media123 | Utilice para identificar el contenedor después de que el nodo de WebService se ejecute, por ejemplo, Media123. | No | |
| RestrictToGroup | Restringe la ejecución del contenedor por grupo de usuario. | No | ||
| BeforeExecutionRule | Debe ser una expresión. Puedes utilizar funciones de AnnA que devuelvan ‘true’ o ‘false’ para decidir si el contenedor debe ser ejecutado. | No | ||
| Phrase | Texto que será enviado al usuario, por ejemplo, Hello World! | No | ||
| MediaURL | URL de descarga del archivo, por ejemplo, https://seu.dominio/rota/para/arquivo.extensão | Si |
ExecFunction container
Realiza una o varias funciones de AnnA.
| PropName | PropValue | Descripción | Estándar | Obligatorio |
|---|---|---|---|---|
| Type | EXECFUNCTION | Tipo de contenedor | Si | |
| Alias | ExecFunc123 | Utilice para identificar el contenedor después de que el nodo de WebService se ejecute, por ejemplo, ExecFunc123. | No | |
| RestrictToGroup | Restringe la ejecución del contenedor por grupo de usuario. | No | ||
| BeforeExecutionRule | Debe ser una expresión. Puedes utilizar funciones de AnnA que devuelvan ‘true’ o ‘false’ para decidir si el contenedor debe ser ejecutado. | No | ||
| Expression | AddParm(Teste1,123) AddParm(Teste,456) | Define expresiones con funciones de AnnA, por ejemplo, AddParm(Test1,123) AddParm(Test,456) | Si |
Question container
Envía una pregunta al usuario.
| PropName | PropValue | Descripción | Estándar | Obligatorio |
|---|---|---|---|---|
| Type | QUESTION | Tipo de contenedor | Sí | |
| Alias | Question123 | Utilice para identificar el contenedor después de que el nodo de WebService se ejecute, por ejemplo, Question123. | No | |
| RestrictToGroup | Restringe la ejecución del contenedor por grupo de usuario. | No | ||
| BeforeExecutionRule | Debe ser una expresión. Puedes utilizar funciones de AnnA que devuelvan ‘true’ o ‘false’ para decidir si el contenedor debe ser ejecutado. | No | ||
| Phrase | Texto de la pregunta que será enviada al usuario | Sí | ||
| Competence | Competencia de este contenedor. Puede ser una competencia registrada por la empresa o una nueva competencia que se creará durante el procesamiento. | No | ||
| Subject | Asunto de este contenedor. Puede ser un asunto registrado por la empresa o un nuevo asunto que se creará durante el procesamiento | No | ||
| Topic | Tema dentro de un Asunto. Puede ser un Tema registrado en un Asunto de esta empresa o un nuevo tema que se creará durante el procesamiento dentro del Asunto en el campo anterior. | No | ||
| IgnoreExecFluxo | Es posible configurar un contenedor para suspender el permiso de un usuario para llamar a otro servicio mientras se responde la pregunta No. | N | No | |
| SensitiveData | Activar este recurso hace que cualquier respuesta del usuario almacenada en nuestra base de datos se encripte utilizando la clave de encriptación de la empresa. | N | No | |
| RightAnswer | Activar este recurso obliga a que, para continuar, la respuesta del usuario coincida con una de las respuestas permitidas en PropValue del PropName PossibleAnswers | N | No | |
| RightAnswerValue | Un Valor para la Pregunta, que se puede utilizar en estadísticas | No | ||
| AnswerType | Define si se debe enviar algún feedback al usuario después de responder la pregunta. Valores permitidos: N, Q. N = No enviar nada, Q = Enviar el contenido de CorrectAnswerComment e IncorrectAnswerComment | N | No | |
| CorrectAnswerComment | Define qué mensaje se mostrará cuando el usuario responda correctamente según la PropValue de PropName PossibleAnswers | No | ||
| IncorrectAnswerComment | Define qué mensaje se mostrará cuando el usuario no acierte ninguna respuesta entre las respuestas definidas en PropValue del PropName PossibleAnswers | No | ||
| DynamicValidations | Puedes usar funciones Anna para leer la respuesta del usuario y construir una expresión que devuelva TRUE o FALSE para que el flujo solo continúe cuando la expresión sea verdadera. | No | ||
| ValidationError | Define un mensaje que se mostrará después de que el usuario responda la pregunta y el resultado de la Validación Dinámica sea FALSE | No | ||
| ValidationMask | Utiliza las funciones Anna de Máscara para enmascarar la respuesta del usuario. Las respuestas enmascaradas se pueden recuperar mediante Funciones AnnA | No | ||
| ExternalData | Es posible almacenar en este campo cualquier información que desee recuperar a través de las funciones ‘LastAnswerJSON()’ y ‘AnswersJSON()‘ | No | ||
| PossibleAnswers | Json de las posibles respuestas del usuario a la pregunta cuando RightAnswer=S | No |
Possible Answers
Esta estructura debería ser simplemente una colección de objetos con PropName y PropValue:
Por ejemplo, si la pregunta es ‘1 + 1 = ?‘. Las posibles respuestas serían:
["Two", "2"]Alternative container
Envía una pregunta de opción múltiple al usuario.
| PropName | PropValue | Descripción | Estándar | Obligatorio |
|---|---|---|---|---|
| Type | ALTERNATIVE | Tipo de contenedor | Sí | |
| Alias | Alternative123 | Utilice para identificar el contenedor después de que el nodo de WebService se ejecute, por ejemplo, Alternative123. | No | |
| RestrictToGroup | Restringe la ejecución del contenedor por grupo de usuario. | No | ||
| BeforeExecutionRule | Debe ser una expresión. Puedes utilizar funciones de AnnA que devuelvan ‘true’ o ‘false’ para decidir si el contenedor debe ser ejecutado. | No | ||
| Phrase | Texto de la pregunta que será enviada al usuario | Sí | ||
| Competence | Competencia de este contenedor. Puede ser una competencia registrada por la empresa o una nueva competencia que se creará durante el procesamiento. | No | ||
| Subject | Asunto de este contenedor. Puede ser un asunto registrado por la empresa o un nuevo asunto que se creará durante el procesamiento | No | ||
| Topic | Tema dentro de un Asunto. Puede ser un Tema registrado en un Asunto de esta empresa o un nuevo tema que se creará durante el procesamiento dentro del Asunto en el campo anterior. | No | ||
| Enumeration | Esta opción permite definir cómo se deben enumerar las alternativas del contenedor. N = Números, L = Letras, R = Romanos, I = Lista (WhatsApp Popup), B = Botones (WhatsApp Buttons) | N | No | |
| Randomize | Mezcla las alternativas antes de mostrarlas al usuario. Por Estándar tiene el valor ‘N’ | N | No | |
| RightAnswer | Activar este recurso obliga a que, para continuar, la respuesta del usuario coincida con una de las respuestas permitidas en PropValue del PropName PossibleAnswers | N | No | |
| AnswerType | Define si se debe enviar algún feedback al usuario después de responder la pregunta. Valores permitidos: N, Q. N = No enviar nada, Q = Enviar el contenido de CorrectAnswerComment e IncorrectAnswerComment Padrón a ‘N’ | N | No | |
| AnswerTypeComment | Define qué mensaje se mostrará cuando el usuario responda a la pregunta | No | ||
| ExternalData | Es posible almacenar en este campo cualquier información que desee recuperar a través de las funciones ‘LastAnswerJSON()’ y ‘AnswersJSON()‘ | No | ||
| Alternatives | Colección/vector de alternativas | Sí |
Alternatives
Esta estructura es similar al primer nivel de contenedor, aquí tenemos una colección de PropName y PropValue donde PropName será “Alternative+Secuencia” y PropValue será un PropJSON.
Primero, la estructura de una alternativa:
| PropName | PropValue | Descripción | Estándar | Obligatorio |
|---|---|---|---|---|
| Alias | Un alias es un apodo que se puede utilizar para identificar la alternativa en caso de que necesite hacer referencia en alguna función. | No | ||
| RestrictToGroup | Indique el alias de un grupo de usuarios registrado en la empresa para restringir este contenedor a ese grupo. | No | ||
| ExhibitionRule | Defina aquí una expresión utilizando funciones de Anna para que, si es verdadera, se procese el contenedor. | No | ||
| Phrase | Texto de la alternativa | Sí | ||
| IsCorrectAnswer | Determina si es una alternativa correcta, solo una alternativa correcta por pregunta. Atención: “S” solo se permitirá si la pregunta es del tipo “AnswerType=S” | No | ||
| AlternativeValue | Un valor para la alternativa, que se puede utilizar en estadísticas | No | ||
| Order | Orden de la alternativa | No | ||
| Comment | Define qué mensaje se mostrará cuando el usuario responda a la pregunta | No |
Exemplo:
[ { "Phrase": "2 two", "Alias": "Alternative001", "IsCorrectAnswer": "S", "Order": "1" }, { "Phrase": "5 five", "Alias": "Alternative002", "Order": "2" }]