Tracking Email Using Microsoft Azure and the SendGrid Event Webhook (Part 1)


Posted on

At the end of this three-part blog post, you will have created a Windows Phone app that can receive push notifications when certain email events happen (e.g. email opened or link clicked), in near real-time.

In this first post, we’ll implement the SendGrid Event Webhook listener. Specifically, a C# ASP.NET application on Azure.

Part two will cover creating a Windows Phone 8.1 app that displays email tracking data via the SendGrid Web API.

In part three, we’ll send push notifications from our SendGrid Event Webhook listener when certain events, such as a bounce, occur.

Prerequisites/Assumptions

This code (source) was developed within VMWare Fusion 6 on Mac OS X Mavericks, running Windows 8.1 in Visual Studio Express 2013 for Web. You may find the source code for this tutorial on Github. This code was also tested on a Microsoft Surface Pro running Windows 8.1.

Setting up SendGrid and the Event Webhook

First, you’ll need a SendGrid account (a free account is sufficient). Next, you need to configure the Event Webhook as described under the heading Setup here.

Creating a Microsoft Azure Website

This tutorial was built on top of the ASP.NET Web Application template for C#, which is included with Visual Studio Express 2013 for Web. If you are new to ASP.NET and Microsoft Azure development, I recommend this tutorial. After completing that tutorial you will have a working web application that you can easily modify with the code provided.

Building the Model

We need to create a class that stores the data we receive from the Event Webhook. You can find that class here. Below is a snippet of that class:

Building the Controller

We need to define the endpoint (api/SendGrid in this case) and deserialize the POSTed JSON. You can find that code here. Below is a snippet:

Demo

Following is short video that demonstrates the final working code:

Remember to check back for parts two and three in this series.

Do you have any ideas for how you can incorporate this data into your applications? I hope so :)

Happy Hacking!


Elmer Thomas is SendGrid's Hacker in Residence. His mission is to help SendGrid live up to its slogan: "Email Delivery. Simplified" by improving the lives of developers, both internally and externally. Via all sorts of hackery, of course. Follow his exploits on Twitter and GitHub.

Elmer Thomas on Twitter
Have thoughts on this post?
Chat with us about it on Twitter and Google+