Back to Parent

Outcome


Alfred the Botler Guide

Who is Alfred?

Alfred the Botler is based on Batman's british butler Alfred Pennyworth. He is highly educated, but as a bot can be a bit simple. He's learning his new role and soon will be up to tip top shape.

What can he do?

Alfred knows you're very busy and in high demand, which is why he's offered to keep track of your contacts. He's still new to all of this, but eventually he'll be able to automatically store new contacts and start writing an email for you! Sadly, at the moment he's only able to take down your contact's name, email, and phone number, show you your list of contacts, and delete a contact from that list.

What's he like?

He is extremely polished and well behaved, but at times can become quite snarky and his remarks may get a bit off colored. You'll have to watch out for him, especially when you `dismiss` him. Most of the time, though, he's quite the gentleman.

Functioning Commands

Screen shot 2016 12 15 at 1.17.46 pm
Show Advanced Options

Future API Integrations

In the future, Alfred will be able to get access to any email account (with your permission, of course) and will be able to automatically store contacts and track your engagement with them. He's a cheaky one, so when you say `hi` you'll notice he's already saying he can do these things. Don't believe him!

context.io API

For the automated email integration functionality, I'm looking into using the context.io (https://context.io/) API. Examples of functionality from that API that might be used by Alfred in the future are listed below. See GitHub documentation below for more details.

https://github.com/contextio/contextio-ruby

Hardcoded Commands

Screen shot 2016 12 15 at 1.17.54 pm
Show Advanced Options

This bot was created out of necessity to improve how my team was managing our interactions with top priority stakeholders, advisors, and mentors. With 4 people in 3 different time zones, we needed a better process. Without budget to hire an admin, I decided to try to create a bot who could organize this information for us.

The Next Steps will be to integrate the bot with context.io, which will automate logging and tracking email interactions as currently the prototype requires manual contact entry.

Below is a simple workflow, which I used to build the prototype.

Alfred's Prototype Workflow

Workflow
Show Advanced Options

Alfred's Current Data Structure

Screen shot 2016 12 15 at 2.03.11 pm
Show Advanced Options
Sample interaction
Show Advanced Options
Show Advanced Options

Above: app.rb

NOTE: Each of the sections of code is followed by `return true`. This is checked in the main app.rb file as creating multiple helper files was causing duplicate messages to be displayed.

Below: CommandsCreateContact

Show Advanced Options

Below: CommandsEditContact

Show Advanced Options

Below: CommandsFakeContextio

Show Advanced Options

Below: List of all gems used and attempted

Show Advanced Options

Learnings: Start Simple, Go Deep

This project has taught me a lot about designing for chat bots. My initial idea was overly complex. I wanted to create a research bot that could scrape twitter, Google research articles, and news headlines to help my team keep an eye on the latest news related to our project. I realized, though, that this use case was 1) overly complex to rapidly prototype in 3 weeks and 2) would likely not provide a better user experience than simply setting up a Google Alert on certain keywords.

This version of the project solves a very concrete need with a limited scope and was a great way to practice the techniques while creating a tool that provides value to the team, even now as a basic prototype. 

I'm excited to build out this project and integrate with Context.io. 

Thank You & Credits

A huge shout out to our professor, Daragh Byrne, for countless hours of extra support and office hours and for his invaluable guides, particularly the resources from week 4 and week 6 of his course:, Online Prototypes, when we covered bot workflow diagrams and designing a personality.

https://daraghbyrne.github.io/onlineprototypes2016//schedule/#week-4-recap-tuesday-nov-15

https://daraghbyrne.github.io/onlineprototypes2016//schedule/#week-6-slack-oauth-and-twitter-tuesday-nov-29 

Drop files here or click to select

You can upload files of up to 20MB using this form.