This is part 1 of a series where I plan on explaining automation and how it may help your business in ways you may not have previously considered. There will be moderate-to-heavy technical stuff in upcoming posts, but this first one is written with the novice in mind. Hopefully it’s framed in a way that helps trigger some ideas on how to apply it to your world.
What is Web Automation?
Aside from the obvious, it’s the idea of using software to send data to anywhere you want based on an event. HTTP (you know, the the protocol that does almost all the work) was designed to be “stateless”. Each request must contain enough information to fulfill the request, and doesn’t know anything about the previous or subsequent request (In a future column I’ll explain what RESTful APIs are and you’ll see why they came to be if you can grasp why HTTP is “stateless”). Statelessness introduces some challenges. Most notably: You generally want to know what state your application is in if you can. Non-trivial stuff like…uh…authorization. This is where cookies came to be, but I’m getting ahead of myself here.
Why would you want to automate the web? Lots of reasons, but here’s a good, simple and very common and practical example:
Filling out a contact form on a website.
This one is event-based. An event happens and your software reacts to it. You fill out a web contact form and once you smash that submit button, your data goes someplace and stuff happens. That simple interaction can drive a whole lot of business automation with the company who just received your submission. Likely, somebody got an email. Also very likely, a CRM tool was just populated with your request. Since we’re on the subject…The concept of CRM has become almost a business operating system. It used to be that Salesforce would spend the first 30 minutes of their engagements explaining what a CRM is and then the next 90 minutes telling you why you need it. Love em’ or hate em’, they “invented” the cloud concept (SAAS, really). Having said that, the vanilla Salesforce is really just a database with some form capability. Eventually, they were smart to realize that virtually EVERY COMPANY on the face of the earth will have special, specific needs. They’ve boiled it down into simple realities, thereby creating an unwashed mass of totally unconnected consulting offerings.
Holy cow, I just burned up a whole paragraph on CRM stuff. I’ll get deeper into that in a future column.
So, given the above example you would have some code that fires based on an event. Pretty simple concept: Fill out a form, the data goes across the wire to a database and sends an email to the intended target. That’s a human-triggered event. There are lots and lots and lots of other things that can trigger events. More to come on that in a subsequent post.
What if events could trigger events?
Here’s a slightly more advanced example. You have a company website, mail server, file server, phone system…you name it. All of these servers typically have blinking lights that don’t tell you a whole lot, and that’s only if you are physically looking at them. When they are sick they might make noise and blink amber lights but most of them don’t tell you much.
Here’s another place where web automation makes great sense. It’s easy to set up application monitors that ping your servers (or do full SNMP walks…more on that later) to tell you what state your server is in…if it’s good, do nothing and if it’s bad send an email. With more advanced tools like Nagios or Zenoss you can even run a script on the remote server.
For example, if your web server is in a stuck state after several checks you can tell your monitor to run the “restart web server” script on the machine without ever having to intervene (Although you might want to check out why your web server keeps getting hung up).
Hopefully this gives you an idea of what web automation is and maybe it will give you some ideas on how you might want to use it within your company environment. Stay tuned for future updates regarding web automation. I’m planning to do several more of these, including advanced web automation with RESTful APIs. Fun, nerdy stuff!
Give us a call if you have any questions!