Recent Tweets

  • No tweets available at the moment.

Follow Me on Twitter

Teaching API workflow integration using

I’ve been watching a great tool for integrating services through a visual workflow editor develop over the past 2-3 years. You have likely heard of Zapier, and IFTTT – well now, meet

As a professor, the topic I enjoy teaching the most is how to use APIs. Using APIs for the first time is like magic. Nothing I have taught or had my students do has brought more excitement into the classroom.

While using a single API to retrieve stock prices, the weather forecast, or star wars info is exciting enough your first time. Weaving APIs together to make an ‘app’ is even more empowering.

Over the years I have taught my students API basics and utilized different platforms to take the outputs from one API as the inputs for another. I stumbled upon two years ago and was fell in love with it. Not only is it a great platform to teach my students how to use APIs, but it is a great platform to teach how to string many APIs together.

If you are curious, here is the approach I have taken in the classroom: After the students have logged into, we build a workflow with a single connector. The Twilio API.  The students learn about the basics of APIs, authentication, the base URL, the resource URL, the request body, and parameters. All really basic things! If everything goes well their first API experience they are rewarded with an SMS (text message) they have sent themselves. Some students figure out how to send images along with their text message.

From here we branch out into other APIs. An API to check the weather (Weather Underground), send emails (Sendgrid), get info about nearby restaurants (Yelp), save basic data to a google sheet (Google Drive). Again, all of them quite easy to understand. After using each API individually they are ready to string them together to make an App. Perhaps an app that emails or texts you the weather forecast every evening? Not bad for someone who does not know how to code, and just barely learned what an API is!

Now the students are thinking… We can run the APIs by clicking “Run” in Tray, or we can set up timers so they run every hour… How can we have the app run when someone fills out a form, or in response to another event? Then I introduce webhooks, and we use Instapage to make a beautiful landing page with a simple form that when submitted submits the data to the webhook for our workflow.

After this point, the students have learned the basics and are prepared to be creative and make their own apps.

I found that simple Alert systems were popular with the students. These systems are enabled by two Workflows. One workflow involves storing information of interested people, generally using Instapage and Google Sheets. The other workflow involves sending out an alert to everybody who has signed up. Some examples: Alerts when the gym was running at low capacity (a good time to go!), Alerts when there was free pizza available on campus (cleverly called Vulture Alert!), and weather alerts.

One fun alert stemmed from the way students received tickets for basketball games. Students are often seen running on campus to get in line for tickets when the distribution place is announced.  The app created allowed the ticket distributors to press buttons on their phones to notify student how long the lines were, send the location of the ticket distribution, and when the distribution would occur. This system never went into ‘production’, but the students were pleased to hear that the ticket distribution team would gladly pay for what they had built.

Many powerful functions are made available through APIs, but all of these are useless unless you know about them, and integrate them into your work. Tray makes the integration part easy, it is up to the students to be creative by imagining which APIs they can string together.

Without coding or any knowledge of code, my students were able to string APIs together to create a useful app. This was all possible through the platform. While I have used a few other platforms like Tray, was by far the easiest to use and the most well-loved by my students.

2013: The year of uptick in enterprise crowdsourcing?

Those who work with IT are accustomed to hearing about outsourcing arrangements and cloud computing. Put these concepts together and you get what has been coined the “human cloud.” The Human Cloud is a sourcing ecosystem that engages a pool of online workers, or suppliers, that can be tapped on-demand to provide a wide range of services to any interested buyer. Buyers contract suppliers or workers through one of dozens of online platforms.

2012 saw the consolidation of several platforms, a sign of a maturing industry. Lionbridge bought Virtual Solutions and Freelancer bought vWorker (parent company of RentaCoder).

Even microsoft is excited about the human cloud. See this video. Meanwhile, lionbridge has a great explanatory video.

2013 will see a shift from small business buyers to adoption by large enterprises as well as a shift from outsourcing of one-off projects to the outsourcing of processes where streams of activities in workflows are performed by “cloud” workers. Large enterprises will continue to develop internal human clouds composed of unassigned workers who may engage in modular work. As information and communication technology advances, outsourcing to the Human Cloud will eventually disrupt the multi-billion dollar business process outsourcing industry. Off-shoring becomes every-shoring, then the world is truly flat.

Internet Trends 2012

This morning Mary Meeker presented this insightful and encompassing slide deck at All Things Digital:
KPCB Internet Trends 2012

Our world is changing quickly! The ‘re-imagining’ slides are indicative of this.  There also seems to be  theme of convenience in entertainment on demand from a device that is always with you. How much of this is a good thing? A reporter at The Verge is documenting a year of his life without the internet. He is a month into it.

VBA in the cloud = google apps script

Perhaps the most technical thing that all MBA students learn, or should learn is using VBA to automate excel and word. Gove Allen at BYU teaches a fantastic class which does just that, take a look at the creative projects his students have recently completed: Custom ‘mail merge’ for sending SMS messages, importing data into excel from craigslist,   or automating the creation of a work schedule to cover multiple shifts.

Until recently, the cloud-based solutions like Google Docs and spreadsheets have not allowed such automation. About a year ago, Google announced Appsscript. Now, a new code editor has appeared with a few interesting features.

First, you can publish your code as a service, allowing anyone in the world to invoke it.  The service-oriented-architecture fans should get excited about this. See the image:

Second, it ties in nicely with useful google APIs, and hopefully more APIs in the future.

Things just got interesting! It will be fun to see what this enables in the future. It looks like they have recently included a user-interface builder. If anything it is one more reason to move to the cloud. Here is a screenshot of the script editor:

There’s a webservice for that!

It’s the end of the world as we know it, and I feel fine. -REM (lyrics)

One in seven people in the world feel that the end of the world is near, according to this Reuters poll. While I don’t know about the end of days, I’ll postulate that it is the end of the tech world as we know it. Consider this:

“There’s an app for that. That’s the iPhone. Solving life’s dilemma one app at a time.” –iPhone 3g marketing, 2008

Less than 4 years later there were over a million apps in both Google Play and the App Store combined. On top of mobile, lets add the cloud. Harvard Business Review argues that cloud computing is a “sea change—a deep and permanent shift in how computing power is generated and consumed.”

There are many technologies and factors enabling the shift to the cloud and to mobile. One of them is the RESTful webservices. I won’t go into technical detail here, but I’ll recommend this Wikipedia page and this excellent book chapter for further reading. Just as there is “an app for that” for consumers, there is a “RESTful webservice for that” for developers. Does your app need to send an email, text message, save files to the cloud, keep track of customer account balances, or start a business process in your office? If so, you can easily tie to Sendgrid, Twilio, Dropbox, Accumulus, or RunMyProcess for that functionality. The number of these services is exploding, according to programmable web here is the number of services in each year:  180 in ’07, 1,627 in ’10, and 3,898 today. See a crowd-curated list of 400 of these tools here.

So, what does this mean? Apps are becoming faster, easier and cheaper to develop. This has two implications:

First, developers can now focus on their core service while utilizing webservices for peripheral functionality. This enables creating a minimum viable product for a market quickly, leading to faster profitability. After launch many will choose to replace 3rd party webservices, improving their margins.

Second, managers and others with little knowledge of programming can piece together these services to make ad-hoc cloud-based applications to automate internal or customer facing business processes. I refer to this idea, as the composable web, and we can already see this with the visual programming like environments of,, and

I teach a class where students learn how to automate a business process using several webservices and even cloud labor. One of them wrote this on their final exam:

With the continued innovation of technology I’m a 100% certain the need for human/manual work will become obsolete. Sadly, I estimate that 80% of tasks performed manually can be performed automatically by various programs and software, leaving only 20% that must be performed manually, to me this poses a tremendous threat to future employment. -Student, (shared with permission)

It is the end of the world as we have known it, and I feel fine.

P.S. The cloud-based (of course!) software that we use in class is RunMyProcess. Here is a great video that explains their product, along with other concepts I have tried to convey: