- This blog post was originally published on 7/07/2017. It was updated on 1/30/2019 and 11/5/2019 to include information about our new and improved Events API.
- As of April 2021, the code has now been entirely updated, as described in this article.
Webhooks are great when you need real-time feedback on what your customers are doing with their messages. They work on a “push” model – you create a microservice to handle the event stream.
Did you know that SparkPost also supports a “pull” model Events API that enables you to download your event data for up to ten days afterwards? This can be particularly useful in situations such as:
- You’re finding it difficult to create and maintain a production-ready micro-service. For example, your corporate IT policy might make it difficult for you to have open ports permanently listening;
- You’re familiar with batch type operations and running periodic workloads, so you don’t need real-time events;
- You’re a convinced webhooks fan, but you’re investigating issues with your almost-working webhooks receiver micro-service, and want a reference copy of those events to compare.
If this sounds like your situation, you’re in the right place! Now let’s walk through setting up a really simple tool to get those events.
Let’s start by setting out the requirements for this project, then translate them into design goals for the tool:
- You want it easy to customize without programming.
- SparkPost events are a rich source of data, but some event-types and event properties might not be relevant to you. Being selective gives smaller output file sizes, which is a good thing, right?
- Speaking of output files, you want event data in the commonly-used CSV file format. While programmers love JSON, CSV is easier for non-technical users (and results in smaller files).
- You want to set up your SparkPost account credentials and other basic information once and once only, without having to redo them each time it’s used. Having to remember that stuff is boring.
- Provide some meaningful comfort reporting on your screen. Extracting millions of events could take some time to run. I want to know it’s working.
See this article for the latest version of this tool!