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" }]