top of page

Cómo convertir una cadena de texto en una lista de opciones en Copilot Studio

Cuando diseñamos un agente en Copilot Studio Full, una de las necesidades más comunes es ofrecer al usuario un conjunto de opciones para que pueda elegir la que mejor se ajuste a su necesidad. En este artículo te muestro cómo transformar una cadena de texto en una lista de opciones.

ree

Supongamos que tenemos un agente que proporciona información sobre productos y que esos productos pueden tener variantes (pesos, tamaños, tallas, etc.). Cuando el usuario nos indique el nombre del producto, queremos mostrarle las distintas variantes disponibles para que pueda escoger la que le interesa.

Para ello hemos diseñado un tema en nuestro agente, que captura el nombre del producto y a través de un flujo recupera sus variantes. Y en este punto es donde encontramos el problema: el agente recibe esas variantes en una cadena de texto.

¿Por qué el flujo no envía directamente un conjunto de opciones que pueda utilizar el agente sin necesidad de transformar esos datos?

Porque la respuesta del agente solo admite las siguientes opciones: texto, sí/no, archivo, email, número o fecha. Así que, para enviar la respuesta, en este caso tenemos que seleccionar la opción texto.

La respuesta del flujo se almacena en una variable en el tema que hemos diseñado. Es una cadena de texto que contiene las diferentes opciones separadas por comas. Para poder utilizarla como opciones, debemos transformarla en una tabla siguiendo estos pasos:

1. Después del flujo, añadimos un nodo de Administración de variables > Establecer el valor de una variable 


ree

 


2. Creamos una nueva variable OpcionesVariantes:

ree

3. Para insertar el valor, seleccionamos la opción Fórmula. Debemos insertar una fórmula de Power Fx para convertir la cadena en tabla.


ree

En nuestro caso utilizaremos la siguiente fórmula:

Table(

    ForAll(

        Filter(Split(Topic.VariantesProducto ","), Value <> ""),

        {Value: Value}

    )

)

 

¿Qué hace esta fórmula?

  • Split(...) divide la cadena en elementos individuales.

  • Filter(..., Value <> "") elimina entradas vacías.

  • ForAll(..., {Value: Value}) convierte cada elemento en un registro con un campo llamado Value.

  • Table(...) genera una tabla que puede usarse como fuente de opciones en el agente.

 

4. En este punto ya tenemos lista nuestra tabla de opciones y solo nos falta mostrársela a los usuarios como opciones. Para ello añadimos un nodo de Formular una pregunta y en el campo Identificar seleccionamos Opciones de una variable de lista:

 

ree

5. Añadimos el mensaje y seleccionamos la variable que contiene nuestra tabla.

 

ree

 

¡Y eso es todo, los usuarios ya pueden seleccionar la opción deseada con un solo clic!


ree

 


Comentarios


Déjame algún comentario

&iexcl;Gracias por contactar!

© 2023 by Power User 365 blog

bottom of page