This is a bit off the usual WordPress topic, but I discovered a handy tool to get automatic notifications sent to your email (or IM, or Twitter or whatever you want) if your site is down or broken. This can be particularly helpful if you are a designer or webmaster or if you just maintain a bunch of different websites and don’t check each one everyday. We’ll be leveraging several different sites/technologies, so I’ll go step by step.
The first tool we’ll be using is ismyblogworking.com. This is a fantastic resource particularly for WordPress users as it will give you some valuable insight into how your site is working and if there is anything that needs your attention. Types of things it can check on a WordPress site are things like what version of WordPress you’re running and if your RSS feeds are validating. ismyblogworking.com will also give you a message if it thinks your site is loading slowly. This is the crux of this tool since I just discovered that ismyblogworking.com can create an RSS feed for your status.
The RSS feed URL it generates looks like this:
This is fairly easy to remember and if you have multiple sites, you can just copy and paste the URL and change the domain inside the URL, which is exactly what we’ll be doing.
If you’ve never used Yahoo Pipes before, it’s a fantastic tool that allows you to create complex operations or alerts based on different types of inputs. I won’t go into all the potential uses here, but basically it allows non-programmers to do things that pretty much would only be possible otherwise with some complex scripting or programming knowledge. What we’ll be doing today is joining a bunch of different RSS feeds, sorting them by date, and then filtering out updates that are just telling us that our blog is working.
First, from the Sources menu in Yahoo Pipes, select Fetch Feed and click the + to add it to the Pipe. You can add up to 10 RSS URLs, so if you need more, you’ll need to create a new Fetch Feed module and join them together with a Union module (more on that later).
Step 2 — Add a sort module
We’ll want to sort them in descending order, so the most recent updates are at the top. To do this, we’ll need to add a Sort module. These are located in the Operators section. To connect the two modules, simply click and drag from the circle at the bottom of your Fetch Feed source module and connect it to the top (input) of the Sort module. You’ll see a friendly-looking “pipe” appear to connect the two. Once they’re connected, you’ll get a number of different items to sort by. You want to select the item.pubDate to sort by date, and then select Descending to put the newest first.
Step 3 — (Union and) Filter
I’ll be using a Union to combine a bunch of different feeds. You may not need to, so you can skip this. Unions are in the Operators menu as well and they’re pretty simple; they just provide a bunch of different connectors for sources and a single output connector. I will join all my source feeds with a Union module and send that to a Filter module.
Filter is in the Operators menu as well (right above Sort). Our filter is going to be on the item.title. We want to Block all all items that are “Your blog is working.” It’s important to have the period if you are going to use this filter, otherwise it won’t be an exact match. The reason why we’re doing an exact match is that you may get a result like this “Your blog is working (but needs attention)!” We don’t want to filter those out because if our blog needs attention, we probably should be aware of that as well, so we’re only going to filter out the “everything is A-OK” results.
This is what my Pipe looks like when I’m done:
If you click on the Pipe Output, you can see an example of the results. You can do this on any module to debug specific parts of the pipe.
Step 4 — Create an RSS feed
Now we’ll want to create an RSS feed that we can send to iftt to create the alert. You could use something other than iftt (like create a FeedBurner feed and then activate the subscribe by email feature, or create a Google or Yahoo Alert) but iftt provides the most options in terms of how you want to deliver the notifications.
First, save your Pipe. Give it a name like “ismyblogworking.com site notifier” or something that you’ll recognize later. When it’s saved, click Run Pipe. After it does the initial run, you will have an option to get an RSS feed. I’m not too worried right now about errors fetching the RSS feed. All we’re getting at this point is just historical data and we can look at the actual pipe to find sites that might actually be having issues.
Step 5 — Create an iftt trigger
iftt stands for if this then that, and it is a system that allows you to take some trigger (an instant message, email, RSS update, weather, time, and a whole bunch of other things) and turn it into something else (a Tweet, an instant message, a post to your Facebook wall, an email, etc). So we’ll be doing something pretty tame as far as iftt goes: taking an RSS feed and turning it into an email, but you could potentially use this to feed a Twitter account that posts status updates on all the sites you maintain or something like that.
The first step is to select the trigger “channel”. In our case, it’s RSS.
We’re going to select “New feed item” but we could have done our filtering here if we wanted to.
Paste your RSS feed URL into the box and click the “Create Trigger” button.
Once it’s done, you should have something that looks like this:
Click on the that link to create an “action channel” (the part of the if this then that that does the thing you want it to do). I’m going to select Email to get an email alert. If you want, you can customize what gets sent in the email. I’m just going to leave everything at the default.
Click “Create Action,” give it a name, then click “Create task.”
The brilliant thing about this is that there are services that you pay a fee for that give you the same information you can get from this for free. This may not be a perfect solution (basically limited by Yahoo Pipes’ ability to fetch the feed from ismyblogworking.com) but it couldn’t hurt, it’s free, and it’s much easier than checking 20 – 40 (or more) different websites every day.