Power Virtual Agents and PowerFX: A Sneak Peek

Holger ImberyHolger Imbery
4 min read

Power Virtual Agents and PowerFX are two powerful tools that can create complex logic for bots to manipulate data. With these tools, you can create bots with more complex logic without the need for extensive development. PowerFx is a low-code language that allows users to set the value of a variable, parse strings, and use expressions in conditions. In this article, we take a sneak peek at the capabilities and applications of Power Virtual Agents and PowerFX, including how to use variables and literal values in formulas and how to use PowerFX to set a variable as a condition.

Please refer to the comprehensive overview and formula reference.

Important

This article contains Power Virtual Agents preview functionality and is subject to change.

Note!
Power Fx formulas in Power Virtual Agents use US-style numbering. That is, the decimal separator is a period or dot, as in 12,567.892. This means Power Fx parameters must be separated by commas (,).

Use variables in a formula.

To use a variable in a Power Fx formula, you must add a prefix to its name to indicate the variable's scope:

For example, to use the system variable Conversation.Id in a formula, you'd need to refer to it as System.Conversation.Id.

Figure: Set Variable Value

Use literal values in a formula.

In addition to using variables in a PowerFx formula, you can enter literal values. To use a literal value in a formula, enter it in the format corresponding to its type. The following table lists the data types and the format of their corresponding literal values.

TypeFormat examples
String"hi", "hello world!", "chatbot"
BooleanOnly true or false
Number1, 532, 5.258, -9201
Table[1], [45, 8, 2], ["cats", "dogs"]
Record{ id: 1 }, { message: "hello" }, { name: "John", info: { age: 25, weight: 175 } }
DateTimeTime(5,0,23), Date(2022,5,24), DateTimeValue("May 10, 2022 5:00:00 PM")
ChoiceNot supported
BlankOnly Blank()

Use Power Fx to set a variable

we'll use a Power Fx expression to store the customer's name and output it in capital letters.

  • Create a topic and add a Question node.

  • For Enter a message, enter. What is your name?.

  • Under Identify, select the entity Person name.

  • Select the box under Save response as, and then select the variable Var1 and name it customerName.

Figure: Question Node

  • Under the Question node, select + and then select Set a variable value.

  • Please select the box under Set variable, and then select Create new and name it capsName.

  • In the To value box, select the > arrow, and then select the Formula tab.

  • In the fx box, enter Upper(Text(Topic.customerName)), and then choose Insert.

Figure: Set Variable Value

  • Under the Question node, select + and then select Send a message.

  • Enter Hello, select {x}, and then select capsName.

Figure: Send a message to Node

Figure: Result

Use a Power Fx formula as a condition.

Condition nodes can be set up to analyze more complex expressions incorporating Power Fx formulas. This will enable the bot to assess more detailed requirements before action.

In this example, the bot determines if a booking date qualifies for a discount. To do that, it checks whether the booking date provided by the customer is 14 days or more from the current date.

  • Create a topic and add a Question node.

  • For Enter a message, enter When do you want to book ?.

  • Under Identify, select the entity Date and time.

  • Select the box under Save response as, and then select the variable Var1 and name it bookingDate.

Figure: Question Node

  • Select the + icon and then select Add a condition.

  • In the Condition node, select the Node menu () and choose Change to formula.

Figure: Add Condition

  • In the Function box, select the > arrow, and then select the Formula tab.

  • Replace the contents of the fx box with the formula Topic.bookingDate > (DateAdd (Now(), 14)), and then choose Insert.

Figure: Formula in condition

  • Under the Condition node, add a Send a message node and enter the message You qualify for a discount.

  • Under the All Other Conditions node, add a Send a message node and enter the message, Sorry, you don't qualify for a discount.

Figure: Full Conversation Flow

Figure: Result

Conclusion

In conclusion, Power Virtual Agents and PowerFX are powerful tools for creating bots with more complex logic without extensive development. UsingThese tools offer a low-code solution for those who want to create bots with complex logic without the need for extensive coding knowledge. With variables and literal values in formulas and the ability to set variables and use PowerFX as a condition, you can easily manipulate data and create more advanced bots.

3
Subscribe to my newsletter

Read articles from Holger Imbery directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Holger Imbery
Holger Imbery

I talk and write about conversational AI, robotic process automation, and things that keep an architect awake at night. Your feedback on my articles is highly appreciated, and I would like to invite you to a professional discussion. I'm a Principal Architect @NTTDATA focusing on Microsoft Power Platform and Azure.