imageA couple months ago Say Mmm launched an Evernote Integration, and we wanted to share a little bit about the experience of developing for Evernote.

There were a number of reasons why we wanted to do an Evernote integration, and chief among them was the product fit.  Evernote has a great platform for saving and viewing all types of content across multiple devices, and a lot of recipes are saved on Evernote.  Say Mmm develops technology to help people do more with recipes, so applying that intelligence to recipes on Evernotes improves the user experience for both companies.  Say Mmm had previously developed ways to extend some of these features to blogs and other websites, and we viewed the Evernote API as a way to create a more integrated experience.  We also liked Evernote’s developer-friendly approach to showcasing integrations in the Evernote Trunk and in some cases through ads and on their blog.

We used the Cloud API and OAuth authentication and found it straightforward to set up and well documented. The forums and the Evernote team were also very helpful for a couple questions we had outside of that documentation.  It didn’t take us long to put together a beginning version of the integration.  We needed to have a triggering action to know when to create a shopping list for a recipe, and we deciding on using a “Say Mmm” tag.  This was unique enough that users weren’t already using it for something else, and it made it easy for users to keep recipes organized in whatever notebooks they might be already.  So when a user tags a note with Say Mmm, our servers get a notification with the note id, which we use to get the recipe information in that note and create a new note with the grocery list.  After some testing we also added note links back to the original note for easy reference and removed the Say Mmm tag from the original note, so it would be ready for use the next time, thereby making the tag work more like an action than its normal organizational function.

Next, we decided it would be a lot better if users could create combined shopping lists, like on the Say Mmm site.  This was a little more challenging within the Evernote environment because of the way notifications work.  We originally tried using a new tag to combine lists, and that worked fine if people only combined two notes at a time.  The problem though, was when the tag was applied to more notes at once, we would run into duplication issues.  Our server would get all the notifications at about the same time, meaning multiple combine processes would start and the same notes ended up being in  more than one of these processes.  There are some ways we might have been able to create a queuing process for handling notifications in sequence, but after some testing and thinking, we decided to go with a simpler approach of creating a separate note with a “Combine” button that would combine all notes within the “Say Mmm” folder.  This solved the technical issue of knowing when and what to combine by giving a single triggering action.  The other advantage of this was we could have simple directions in the note to help the user know and remember how to use the feature, rather than having to keep track of another tag for the combine action.   

From there, we did some more testing to smooth out the flows and the way everything worked. One thing that we found helpful was to optimize note headers to make it easier to see the difference between individual and combined grocery lists. We also found that adding images with different colors at the bottom of the notes made it easier to distinguish the notes, especially on mobile devices with smaller amounts of space, because Evernote would use those images as thumbnails in the list view of the notes.  In early user testing, the main thing that confused people was when adding a Say Mmm tag and not seeing the account automatically updated in some cases when the note was ready due to how Evernote does synching, so letting them know to refresh or synch the view helped.

We launched the Say Mmm integration on December 28 and have been very happy with the response and the results.  Our blog announcement was immediately picked up by a couple of the technology new sites we really like, The Next Web and Venture Beat.  Evernote also liked the integration enough to give us some free advertising on their site in the first month, which was a great bonus for us, and was very helpful for getting the word out to Evernote users.  Since launching, we have had had almost 10 thousand Evernote users add the Say Mmm integration who have created 56 thousand grocery lists through the service.  We found Evernote users to be more tech-savvy than the average Say Mmm user, and while it’s still a little early for measuring results, they also appear to have higher rates for retention and the likelihood to upgrade to Say Mmm premium features.   

One of the best things in our opinion about doing the Evernote integration was how it helped us improve our product.  While doing the integration, we decided to modularize the way our core functions work so when we add features and make improvements to grocery lists and nutritional estimates, it is simple to apply these anywhere on our site and to partner integrations.  This has already helped us to launch new features more efficiently, like we have done with our new recipe search and Amazon grocery offers.  It also makes it easy to integrate Say Mmm technology into other partner applications in the future.

In closing, a couple things that would be great to have from the Evernote API.  We’d love to see a way to add a custom button to the interface, similar to how WordPress plugins and Chrome extensions work. This would have made some of the things we did with tags easier, and is simpler for the user to understand for performing actions.   It also would be nice to have a better way for people to refresh the OAuth duration when they sign in again.  It is nice that users have been able to authenticate the Say Mmm integration for a year, but we are a little concerned about what will happen at the end of the limit, since when it expires it will just stop working in the user accounts, and there isn’t a good way for them to know why other than us trying to send them emails ahead of that time.