paint-brush
Streamline Bot Logic with Power Virtual Agents and PowerFXby@thecognitiveservicesninja

Streamline Bot Logic with Power Virtual Agents and PowerFX

by Holger ImberyMay 22nd, 2023
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't 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 and parse strings.
featured image - Streamline Bot Logic with Power Virtual Agents and PowerFX
Holger Imbery HackerNoon profile picture


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.


Note:

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


  • 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 (,).


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

Set Variable Value



Using 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()


Using 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


  • 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



  • Under the Question node, select + and then select Send a message.
  • Enter Hello, select {x}, and then select capsName.



Send a message to Node




Result




Using 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


  • Select the + icon and then select Add a condition.
  • In the Condition node, select the Node menu () and choose Change to formula.


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



  • 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




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.


Also published here.

Lead Photo by Lopez Robin on Unsplash