DEV Community

Cover image for Power Virtual Agents and PowerFX: A Sneak Peek
Holger Imbery
Holger Imbery

Posted on • Originally published at the.cognitiveservices.ninja on

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 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.

Set Variable Value

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 it customerName.

Question Node

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.

Set Variable Value

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

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

Send a message to Node

Send a message to Node

Result

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.

Question Node

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

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

Add Condition

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.

Formula in condition

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.

Full Conversation Flow

Full Conversation Flow

Result

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.

Top comments (0)