No one likes missing a bill payment, and I've heard from many people that it would be useful to get some voice based help organising bills (it saves making paper notes, or mental notes etc). So I checked the Alexa Skill Store and was super surprised to find that there weren't any skills delivering on this use case. I feel it is my duty to fix this :)
What it does
The skill lets you add a bill by saying:
- Alexa, ask Bill Tracker to add a bill
- Alexa, ask Bill Tracker to add a bill due on the third of June
- Alexa, ask Bill Tracker to add an electricity bill due on the fourth of June
- Alexa, ask Bill Tracker to add a two-hundred dollar bill for electricity due on the fifth of June
You can check your bills simply saying:
- Alexa open Bill Tracker
The skill asks you if you've paid the bill, if you say 'yes' then the bill will not be mentioned again. If you say 'no' then the bill will continue to be read out next time you open the skill.
You can reset all the bills by saying 'Remove all my bills'.
How I built it
The skill is built using AWS Lambda (request/response logic) and S3 (bill data storage).
Challenges I ran into
The main issue was smoothing out the rigidity of having three bill attributes (due date, bill type and bill amount) but only one was mandatory (due date). So I opted to assume Alexa heard correctly and process the request as long as a date was provided (i.e. slots are not elicited for optional attributes).
Other issues included converting timestamps to the user's selected locale timezone. This assumes users are living in the their language locale, which isn't always correct. If the language locale doesn't match the living location then there is a tiny bit of error in the 'number of days till due' calculation (it would be worse if dealing in hours or minutes), it wasn't worth asking the user where they live as the issue is only minor and such a question impedes a little on their privacy etc.
Accomplishments that I'm proud of
I think I've saved the day, for now. Alexa users can now track their bills in a sleek and efficient way, which is definitely a useful life hack.
What I learned
Alexa doesn't have to do everything when it comes to managing bills, with its natural language processing skills it can save people from relying on handwritten notes, notice boards or fridge magnets to see when the next bill is due. Paying the bill on the other hand is probably easier done the old fashioned way or via a skill built by a large financial technology company.
What's next for Bill Tracker
- adding more bill types
- honing the natural language model to ensure quality data collection
- support for other currency units (e.g. pounds, euros etc.)
- integrating with the notification capability (when its generally available to developers)
- providing aggregations / summaries of total bills paid and total outstanding payments, expenditure per bill type, number of bills left to pay etc.