Inspiration

I was really interested in the Doist challenge as I use Todoist to manage my tasks. I really liked the look of Twist, but was struggling to think of a useful hack to create with it. I brought my Echo Dot with me incase I wanted to use it. And then I realised I should create a skill for Twist!

What it does

Twist for Alexa allows you to get the contents of your inbox in any workspace. You can say "Ask Twist what's in my inbox" and "Ask Twist to change my workspace to [workspace name]".

How I built it

The skill is built with NodeJS and hosted on AWS Lambda. I used a helpful library called alexa-app which helped me to set up the intents in a straight forward way.

Challenges I ran into

I found it hard to get the skill on my Echo Dot to start testing. While I was able to use a library called alexa-skill-test to test on my local machine, it didn't allow for speech or utterances, and it timed out after three seconds (I think I'm going to PR their repo and create a way to change the timeout).

It was also difficult to get it to recognise workspace names. For example I had one called "sussex_hack_upc": the first challenge was matching what was is said to that, this included removing spaces, punctuation, changing case. The bigger challenge was getting Alexa to understand an abbreviation like UPC. In the end I created a custom slot type and gave it examples.

Accomplishments that I'm proud of

I've never written an Alexa skill before! This is also the first hack that I've created by myself. I'm proud of both of those.

What I learned

I learned that the developer experience for Alexa skills has a fairly steep learning curve. I most enjoyed learning about the design of an Alexa skill: intents, slots, utterances, etc. I'd love to create more in future.

What's next for Twist for Alexa

I'm planning to make this code open source and actually publish this skill so that anyone can use it! This will require me to make the OAuth integration dynamic, clean the code up & write documentation.

Built With

Share this project:
×

Updates