🟢 Introducción

Cuando construyes un bot usando Power Virtual Agents, manejar datos de usuario, contexto de conversación o estados internos te permite crear interacciones más inteligentes y personalizadas. Las variables son el mecanismo clave para persistir esa información durante la conversación y reutilizarla. En este artículo veremos qué son, para qué sirven y cómo usarlas de forma correcta 😊.

🧠 Qué es / para qué sirve

  • Una variable es un contenedor que almacena un valor que puede cambiar durante la conversación del bot.
  • Sirve para:
    • Guardar respuestas del usuario (por ejemplo: nombre, correo, elección).
    • Pasar datos entre diferentes temas del bot o reutilizarlos más adelante. Microsoft Learn+1
    • Gestionar estados del flujo conversacional (por ejemplo: “¿ya preguntamos por X?”, “¿esta opción está activada?”, etc.).
    • Usar listas o arrays para iteraciones o bucles en la conversación (por ejemplo: recopilar múltiples elementos). 

🧩 Sintaxis

En el entorno del bot (Copilot Studio / PVA) la definición y uso de variables se realiza con nodos de tipo “Set variable” o “Question – Guardar respuesta” y luego se referencia simplemente por su nombre.
Ejemplo conceptual:

  • Crear variable: bot.UserName (scope global) Microsoft Learn
  • En un nodo de mensaje: “Hola {bot.UserName}, ¿cómo puedo ayudarte hoy?”
  • Evaluar condición: If bot.IsPremiumUser = true Then …

💻 Ejemplos con código (o configuración)

🔹 Ejemplo 1 — Guardar nombre del usuario

  • Nodo Pregunta: “¿Cuál es tu nombre?” → guarda respuesta en variable bot.UserName (escala global)
  • Nodo Mensaje siguiente: “Gracias, {bot.UserName}, ¿en qué podemos ayudarte hoy?”

🔹 Ejemplo 2 — Usar lista de valores para iteración

  • En un tema, recibes un array desde un flujo de Power Automate y lo almacenas en topic.SelectedItems (tipo Lista)
  • Luego usas bucle / loop para iterar cada elemento del array y mostrar: “Seleccionaste …” a cada uno. Microsoft Learn

🔹 Ejemplo 3 — Variable de estado global

  • Crear bot.IsReturningUser como booleano global
  • En el inicio del bot:
If bot.IsReturningUser = true Then
   Mensaje: “¡Bienvenido otra vez!”
Else
   Mensaje: “Hola, es la primera vez que conversas conmigo”
   Set bot.IsReturningUser = true
EndIf

Esto permite personalizar la bienvenida según el contexto.

🧱 Buenas prácticas

✅ Define claramente el scope de la variable: ¿solo este tema (topic) o global para todo el bot? Microsoft Learn+1
✅ Utiliza nombres descriptivos para variables (ej: bot.UserEmailtopic.OrderList) para facilitar mantenimiento.
✅ Inicializa valores adecuados (tipo correcto) para evitar errores de tipo en la conversación. Microsoft Learn
✅ Resetea variables cuando finalice la conversación (especialmente globales) si es necesario para evitar “estado sucio” en la siguiente interacción. Microsoft Learn
✅ Usar variables de tipo lista / array para escenarios donde se necesiten múltiples valores, y combinarlas con bucles o nodos de iteración. 

⚠️ Errores comunes

🚫 Crear variables con scope incorrecto: por ejemplo, usarlas como global cuando solo se necesita en un tema → puede generar lógica innecesaria o reutilización incorrecta.
🚫 No inicializar la variable o asignar tipo incorrecto → “valor desconocido” o error de conversión. Microsoft Learn
🚫 Uso excesivo de variables globales y mezclado de contextos → dificulta mantenimiento y control del flujo.
🚫 No limpiar o resetear variables de sesión → un usuario puede ver valores de conversaciones anteriores inesperadamente.
🚫 No validar el tipo de dato antes de usar en condiciones o bucles → errores de ejecución o lógica incorrecta.

🔄 Variantes o alternativas

  • Variables topic‑level vs global: usar topic.VariableName cuando solo aplica dentro de un tema, o bot.VariableName para global.
  • No usar variables para todo: en chats simples quizá bastan preguntas y respuestas directas sin almacenamiento de variables.
  • Integrar con Power Automate u otros flujos: las variables pueden receber valores desde un flujo externo y luego reutilizarse en el bot.
  • Manejar listas y bucles (iteración) para escenarios más complejos de conversación. 

📚 Recursos oficiales

Deja un comentario

¡Gracias por tu mensaje!

Me pondré en contacto tan rápido como pueda.

Descubre más desde Power Platform En Español

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo