Running a business has many moving parts. The more you can automate, the more it frees you up to address high level strategic challenges of your business. This is a newsletter about automating aspects of your business.
Story and Problem
Yikes! I found out this week that the confirmation link in the signup email didn't work for the Automation Cookbook! I've been making improvements and updating the settings on various services piece by piece, and I accidentally flipped some bad settings in my email service provider that caused the links to break.
I only happened to noticed because I was trying to set subscription goals. Otherwise, I would have never noticed, and wondered why no one was signing up this week. 😑
While there are plenty of services for website uptime monitoring, there isn't really anything for email subscription monitoring. To stop this from happening again, I set up an email subscription monitoring automation.
If the workflow executed successfully, it won't do anything. If anything goes wrong in the subscription process, it'll alert me in Slack. 📨
This time, I was playing with n8n.io, so I implemented the email subscription monitor service with it.
The outline of the entire automation is:
- A cron node triggered every hour
- A WebRequest node to send a POST request to subscribe to the newsletter
- If the subscription is a success...
- A Gmail node to check the email account for latest messages
- A HTML Extract node to parse the email body for the email link
- A WebRequest node to send a GET request to check the confirmation link
- Success or failure, run an AWS lambda function to delete the member record
- If Subscribe or Visit fails, alert on Slack!
(The start node can't be deleted, so that's why it floats)
The Ghost newsletter/blogging platform doesn't have an API to add or remove members so that's why there's an AWS lambda node at the very end that removes members. All the lambda function does is log into the database and deletes the member record.
Normally databases aren't exposed directly to the web--even with a password, for security reasons, so that's why I did it this way. If the n8n container is in the same intranet as the database in a Kubernetes cluster, then maybe you'd connect directly.
This is more complicated than the usual automation because it has a bunch of steps. But it's entirely doable. Don't let dumb mistakes like this stop you from getting subscribers!
Enjoying these posts? Subscribe for moreSubscribe now
Already have an account? Sign in