Whenever I have tried building a good habit (exercise) or quitting a bad habit (smoking) I have always had moments of great motivation. Most of the time these moments of motivation are triggered by something that I read,see or feel. For example when trying to exercise regularly seeing a fab looking six pack or remembering that amazing feeling you get after a good run, is very motivating. Similarly, when trying to quit smoking reading an article/infographic on how smoking affects your body, or watching a video like this makes you resolve to try harder. The problem, however, is not the lack of things to motivate you but not having an easy way to access them when you need them the most. As James Clear (author of Atomic Habits) says:
“People keep reading self-help and revisiting the same ideas because that’s precisely what we need: to be reminded.The problem is not that information is unhelpful, but that attention is fleeting."
I always imagined a friend who would act as a reminder and feed me these motivation triggers when for e.g. ‘I don’t feel like exercising’ or ‘I feel like smoking.’ And hence the idea for ‘Willy - The trainer for your most important muscle- Your Willpower.’
What it does
Willy is a bot on Facebook messenger who helps you build good habits or quite bad habits.You can share your willpower triggers with Willy and Willy will use these to motivate you whenever you are feeling demotivated or tempted. These triggers can be in 4 forms (for now): (a.) A quote (that you might have read somewhere) (b.) A self note (that you write to yourself) (c.) A video (a link to a video) or (d.) A facebook post (a link to a facebook post) .
At the time of demotivation or temptation when you need a motivation boost, you just say : (a.) ‘Willy, I don’t feel like ’ - To motivate you to continue a good habit. (b.) ‘Willy, I feel like ’ - To motivate you to not restart a bad habit.
Willy works as follows: To choose the habit you want to build or quit you can either: Use easy quick reply buttons. or Use the phrase: Start (for good habit) e.g start exercising Stop (for bad habit) e.g. stop smoking Choose the options from Persistent Menu.
Next choose the trigger you want to enter by either: Using the phrase: Add e.g. entering: Add exercising quote “All progress takes place outside the comfort zone.”
Will save the ‘quote’ : “All progress takes place outside the comfort zone.” in your ‘exercise’ motivation list.
Whenever you want to add a new habit or add a new trigger you can go to steps 2 and 3.
When you need the motivation boost you just write the phrase in the format: Willy I don't feel like (for good habit) or e.g. Willy I don’t feel like exercising. Willy, I feel like (for bad habit) e.g. Willy I feel like smoking
and Willy will randomly show you one of the motivation triggers for that ‘habit’ that you had entered earlier e.g. in the morning if you are feeling lazy you can write ‘I dont feel like exercising’ and will show you the quote you had fed it earlier.
Willy will ask you whether you are feeling motivated and if not he will randomly show another motivation prompt for you. He does this a total of 3 times for any one instance, after which he suggests that you either take a break or talk to an expert (a service that we can build later where we connect users to motivational coaches, psychologists and other professionals in that domain.)
How I built it
Front end Facebook messenger. Backend using node.js , and Neo4J. Used Wit.ai as the NLP engine.
Challenges I ran into
Quite a few challenges like:
- Saving context for the current habit especially when a user has entered multiple habits.
- Since we are dealing with free text and the user can enter anything, designing the flow in the way that the user gets only relevant information. 3.Writing the logic for randomly displaying the motivation quote without repeating it too much 4.Using the appropriate phrases for training wit
Accomplishments that I'm proud of
Combining free text and quick replies to design a neat flow of the conversation. Using the intents and entities in wit.ai effectively to make it an easy conversation. Effectively designing the error handling/fallback strategy for gibberish content.
What I learned
Combining all the different pieces together to deliver one cohesive solution. Also the use of graphs effectively to save the context of the user.
What's next for Willly the willpower manager
Launching Willy as a voice bot. Build a service to connect Willy with motivation experts. Building intelligence in Willy so that he can understand which motivation prompts are most helpful so that he can show them more and also suggest similar prompts. Adding support for other motivation prompt types like: ‘Voice Notes’ and Images.