Power Virtual Agents and PowerFX: A Sneak Peek
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 in12,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 system variables, use
System.
For global variables, use
Global.
For topic variables, use
Topic.
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.
Type | Format examples |
String | "hi" , "hello world!" , "chatbot" |
Boolean | Only true or false |
Number | 1 , 532 , 5.258 , -9201 |
Table | [1] , [45, 8, 2] , ["cats", "dogs"] |
Record | { id: 1 } , { message: "hello" } , { name: "John", info: { age: 25, weight: 175 } } |
DateTime | Time(5,0,23) , Date(2022,5,24) , DateTimeValue("May 10, 2022 5:00:00 PM") |
Choice | Not supported |
Blank | Only 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 itcustomerName
.
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 selectcapsName
.
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 itbookingDate
.
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.
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.