To make Quriobot sensitive to the time of day and subsequently program your bot to have different responses or jumps based on the time of day just follow these steps:
Note: you can see a demo bot here
We will make use of the Script variables.
Step 0: enable developer mode
Step 1: create a script variable named greeting:
function(callback, variables) { var hourNow = quriobot.moment().hour() if (typeof variables.userTimezone.value !== "undefined") { hourNow = quriobot.moment().utc().utcOffset(parseFloat(variables.userTimezone.value)).hour(); } var greeting; if (hourNow >= 18) { greeting = 'Good evening!'; } else if (hourNow >= 12) { greeting = 'Good afternoon!'; } else if (hourNow >= 6) { greeting = 'Good morning!'; } else if (hourNow >= 0) { greeting = 'Good night!'; } else { greeting = 'Welcome!'; } callback(greeting) }
In the above code the function "today.getHours()" is used, which gives the hour of the day (24 hour). After that I made a split of three parts of the day in order to be able to respond and jump based on that, but also use it as a message. If you want to use different timeframes or settings please visit this page for more options and information
Step 2: You can now use the above-created solution by using {{greeting}} in your bot. So if you want to use the as a chat message, bot response message, response connections, just use it like this:
Step 3: So how about making the bot start on different Steps based on this function? If you want that you will need to capture the {%api.greeting%} in a GoTo Step otherwise you cannot use the advanced conditions used for those different Steps.
- Add a GoTo Step to the top of your list and add {{greeting}} as a value there:
Note: After passing Step 1 in the bot it will contain the value of the strings from the script variable created above. - You could already use the responses of this GoTo step to make different jumps but in this example I first jumped to Step 2 where, in the Responses I created the advanced conditions for different jumps
- Add a response (and depending on the Step type, choose an Answer option (in this case "Yes")
- Switch on the Advanced Conditions
- Set up the rules. In this case I configured that based on the strings I set in the Advanced Initialization (see above) so I can now, for example, say Step 1 contains "morning"
- Configure the jump (in this case it Jumps to Step 3 it it contains "morning, Step 4 if it contains "Afternoon" and Step 5 if it contains "Evening")
That's it! A bot that jumps to (and thus can also start on) different Steps in your bot based on the time of day!
-----------------------
A big thank you to Libardo Barreto who first came up with this solution!
Need more help or looking for inspiration? Join the Quriobot community!
Quriobot
Friendly & Fun
Interact & Convert