An interactive voice assistant built with Google's Dialogflow
Have you ever felt so tired after a long day that you don't have the energy to do anything but stare at the wall?
This is a voice user interface app that helps you figure out a good use of your free time when you're in zombie mode.
Here are some sample phrases if you'd like to try it out:
I'm tired after a long day and I don't know what to do.
It sure is nice out...
I should probably get back into my hobbies, huh?
https://bot.dialogflow.com/32af40a5-0055-45af-b079-dd569959c7fd
The web version is text-chat only.
This voice application, Zombie Mode Decision Maker, addresses a long term problem I have observed in myself and others, often as a result of overwhelming school or work responsibilities.
Your brain has a decision-making battery that is only recharged while sleeping. After a certain amount of decisions, especially those that require critical thinking or similar executive function, the ability to make decisions and exercise self-control is significantly degraded. One simple demonstration of this concept of decision fatigue is the tendency for consumers to make increasingly poor choices in a supermarket as each food item requires scanning through multiple options and choosing the best one.
After a productive day, decision fatigue is in full effect, and selecting an interesting activity to spend your leisure time on becomes impossible. We colloquially call this zombie mode. A zombie doesn't see the point of engaging in their many interests, doesn't want to plan an outing with friends, and doesn't even want to find a new movie to watch. The zombie isn't incapable of happiness, they just are unable to initiate any steps toward it.
Enter the Zombie Mode Decision Maker. This app has a pool of your favorite activities, with a focus on the enriching ones. It asks a few questions to determine your current zombie level and other soft variables, then chooses an appropriate activity for you to do.
There are 4 pools of possible activities, categorized as Passive, Hobby, Enriching, and Outdoor. These are represented by 4 terminal intents that will pick one of the possible activities from the respective category, and suggest it to the user, ending the interaction.
The welcome message after invocation prompts the user to either pick one of those categories directly, or choose to ask for help making the decision.
Picking a category directly calls the intent for that category.
Asking for decision-making help begins a decision tree that can lead to any of the 4 terminal intents, depending on the user's responses.
First, the user is prompted to self-report their zombie level as one of (low, medium, high). A zombie level of (high) is answered with a random Passive Activity.
Next, the user is asked whether they feel obligated to do something productive. If they answer no, the function to give a random Hobby Activity is called.
Next, the assistant asks if the user has been outside today.
If they admit they haven't, the Random Outdoor Activity generator is called.
If they have already been outside, the only remaining category is Enrichment Activities. However, there is a bonus feature here.
This path makes a random selection of producing an Enrichment Activity or a Hobby Activity.
The reason for this is that it allows the user to enjoy a hobby completely guilt free, because they expressly said they were willing to do a productive activity, but the zombie assistant gave them permission to do something non-productive instead.
The random activities are stored in an array and chosen by generating a random number in the index range. The 'Help me decide' decision tree is implemented via nested follow-up intents.

If the users response leads to one of the 4 terminal intents, it calls the associated cloud function to get a random activity. Otherwise, the users response leads to the next follow-up intent to ask another question.
HelpDecide
PassiveActivity
HobbyActivity
OutdoorActivity
EnrichingActivity
ZombieLevel, Custom: Low/Med/High
Exercised: Yes/No
Guilt: Yes/No
HelpDecide:
- I don't know
- I'm not sure
- You tell me
- Ask me questions
- Ask questions
- Help me choose
- Help me pick
- Help me decide
- Help decide
- Help choose
- The latter
- You choose
- You pick
- I have no idea
- No idea
- Mega zombie mode
- I said I'm in zombie mode
- I don't know what I want
- Nothing sounds interesting
- I am just bored
- I don't care
- I want to see how a rational decision maker would approach this.
- You're the decision maker
- Whatever
- I can't make any decisions right now.
PassiveActivity:
- Passive
- Passive activity
- Something passive
- Easy
- Easy activity
- Something easy
- Something that doesn't require brainpower
- Something simple
- Something chill
- Simple activity
- Pick a passive activity
- Pick an easy activity
- Pick a simple activity
- A low effort activity
- A chill activity
- The lowest level of activity
- Whatever is easiest
- Pick something easy
- Pick something braindead
- Something lazy
- I want to do something easy
- I want to do something simple
- I am feeling pretty lazy
- I want to do something low effort
- I want to do a passive activity
HobbyActivity:
- One of my hobbies
- Hobby
- I want to do a hobby
- I should probably do one of my hobbies
- I want to get back into a hobby
- Medium
- I want to do a medium activity
- I want to do something sort of interesting
- How about a hobby
- How about one of my hobbies
- How about a medium brainpower activity
- Something like a video game
- Maybe a game
- A nonproductive hobby
- Pick one of my hobbies
- Can you pick one of my hobbies
- Choose one of my hobbies
- Pick a hobby for me
- Choose a hobby for me
- A non-social activity
- Something I would do if I wasn't in zombie mode
- Probably a hobby
- Could you pick one of my hobbies
- Hobbies
- A hobby type activity
OutdoorActivity:
- Outside
- Outdoors
- I want to go outside
- I want to go outdoors
- I want to do something outside
- I want to do something outdoors
- How about an outside activity
- How about an outdoor activity
- Something in the great outdoors
- Something not inside
- I want to get some fresh air
- I want to enjoy the sun
- I want to go biking or something
- Something like a walk
- I want to enjoy the sunshine
- I want to take advantage of the nice weather
- Well it is pretty nice out
- The weather is good so maybe something outside
- Explore the city
- I want to be outside
- I want to be outdoors
- I want to stretch my legs
- I am feeling restless
- I want to get some exercise
- Something active
EnrichingActivity:
- Enrichment
- Enriching
- I want to do something enriching
- Something productive
- Something enriching
- I want to do something productive
- I want to expand my mind
- Something mentally stimulating
- Read a book or something
- A productive indoor activity
- Something productive indoors
- A noble activity
- Something not braindead
- Something fulfilling
- One of the activities on my tinder bio
- Something to make me smarter
- A good use of time
- A respectable activity
- An educational activity
- I want to do something fulfilling
- I want to learn something
- I want to do something I'll be proud of
- How about an enriching activity
- How about something pious
- Pick an enriching activity
Most of the future work would really go toward clarifying the prompts and expanding the amount of training phrases.
There are three features I'd have liked to add.
- Customizable activity pools – currently its just a hardcoded list of some of my hobbies.
- Re-roll – get a different activity instead of having to go through the flow again.
- Coin flip visual – Feedback for the random chance between 'enrichment' and 'hobby' activity – it should tell the user that they got lucky with a celebratory intro clause or something.
- Welcome message – I couldn't get this to work, and the default one didn't work either. I would like the conversation to start with a brief introduction from the assistant, such as "Hi! You can ask me to help you pick an activity." Instead, I had to put this info into the fallback message, so they get it after typing/speaking anything into the blank chat log.