In this guide, you will learn how to use variables and logic in UI Builder to define “office hours” and “out-of-office hours”.
These can be used in subsequent logic in your conversational AI application to drive specific business rules such as performing validation checks against a staff roster, checking availability, etc.
Full code for this sample conversational AI application is available here:
After Hours Holiday Check_export.zip
<aside> 💡
This .zip file contains a complete bot project. Uploading it will replace the existing content in your current conversation. If you'd like to preserve any existing work, consider creating a new bot project for importing this file.
</aside>
The table below contains all adaptive expressions that will be used in this guide. A description and example are also included:
| Expression | Description | Example | Output |
|---|---|---|---|
| float | Return the floating point representation of the specified string. | float('10.333') | 10.333 |
| dayOfWeek | Return the day of the week for a given timestamp. | dayOfWeek('2023-01-31T13:27:36Z') | 2 |
| utcNow | Return the current timestamp in an optional locale format as a string. | utcNow() | 2023-01-31T20:15:00.000Z |
| formatDateTime | Return a timestamp in an optional locale format. | formatDateTime('01/31/2023 12:00:00', 'yyyy-MM-ddTHH:mm') | 2023-01-31T12:00 |
| convertFromUTC | Convert a timestamp in an optional locale format from Universal Time Coordinated (UTC). | convertFromUTC('2018-02-02T02:00:00.000Z', 'Pacific Standard Time, 'MM-DD-YY') | 02-01-18 |
| dayOfYear | Return the day of the year from a timestamp. | dayOfYear('2018-03-15T13:27:36Z') | 74 |
| or | Logical OR operation. Return true if at least one expression is true, or return false if all are false. |
or(true, false) | true |
| contains | Check whether a collection has a specific item. Return true |
||
if the item is found, or return false |
|||
| if not found. This function is case-sensitive. | contains('hello world', 'world') | world |
Learn more about adaptive expressions here.
Implementing logic to initialize office hours and holiday days at a high level involves creating and setting 4 main values. These are stored in dialog scope level variables and are:
turn.CurrentLocalTime
Convert the current time into your desired local time zone: