Automated Websites - what do I need to consider?

We see enough requests from clients at Anchor wanting to know how they can provide a service that lets them provide some form of automated system to deploy websites for clients to warrant writing an article about it. Most of these requests come from clients that run a directory of some form and would like to be able to offer the clients the ability to have their own website or domain name in conjunction with the directory listing.

In most cases we get the impression that there's not an entirely clear picture from the clients perspective of all the things that go into providing such a service - they think it will be easier than it usually proves to be. The completely integrated application processes that exist on hosting company websites are usually supported by a significant investment in custom software design and integration backed by years of systems administration experience.

This article makes no attempt to provide a guide for providing such a service, but rather provide some insight into the different factors that must be considered in providing such a service. If you're intending to build such a service at the very least this article will hopefully act as a checklist for some (probably not all) of the things you need to think about.

From our experience two biggest misconceptions in embarking on such a project are:

  1. Under estimation of the human time in providing the associated customer support, and
  2. Under estimation of the cost associated with the software development to glue all of the systems together.

This type of service is not a unique idea nor are the components that make up such a service unique requirements. There are constantly new pieces of software and applications coming on to the market that will deal with some or perhaps even all of these issues. Before deciding to "roll your own", do the boring task of researching such products.

Overview

At a very high level we can break the task down into:

  • Get a dedicated server to host the sites. (see our dedicated server purchasing guide).

  • Customer records management - have a way of tracking customers, orders, bills, domain names etc.
  • Domain names - provide registration, renewals, delegation and other general management.
  • Email hosting - account configuration, customer email client configuration, associated support.
  • Automated Server configuration - make your server work with the domain name for DNS, email and website.
  • Billing - keep getting money from the client, not just the first year, but each anniversary as well.
  • General support - dealing with the (sometimes inane) questions.

Customer records management

We're assuming that you're intending to get lots of customers, if you weren't there's no need to automate any of this. Lots could mean anything from 50 to 100 upwards. If this project is going to get off the ground it wont be just one person talking to the customers, you're going to have staff and they all can't know everything about every customer.

With your lots of customers you'll have lots of information about each of them and the customer will expect that you know who they are and what you do for them and have it at hand when they call or email you. You need a system which:

  • Keeps all the customer data in one place
  • Tracks authorised people associated with the client (you need to know who is allowed to request password resets etc)
  • Provide a list of what you have sold the customer
  • Provide a list of the customers billing data since this will be a service with recurring charges
  • Keep track of all the correspondence you've sent them, separated by customer.

Domain names

If the customer doesn't have a domain name, sell them a new one.

  • Learn and understand the rules associated with registering each different type of domain name extension (eg .com.au vs .org.au, .com, .net etc).
  • Get a reseller account with a domain name provider
    • Reseller account will need a system which lets a program on your server talk to their server to register the domains without a human involved (in technical speak this is an API).
  • Build some code on your server that talks to the API on the domain name reseller account (above).
  • Provide forms for check domain name availability and accepting domain name registration details.
  • Send the customer the details of their domain name registration. The domain name reseller system API might do this for you.
  • Keep track of the customers domain name passwords in the customer records management system above.

For the customers that you've sold domain names to, you need to support them:

  • Send out renewal notices. The domain name reseller system API might do this for you.
  • Make sure the contact records associated with the domain names are kept up to date so that customers get the renewal notices.
  • Speak to customers on the phone that didn't keep their contact records up to date, didn't get the renewal notices and subsequently let their domains expire.
  • Manually process faxed authorisation requests for customers that didn't keep contact records up to date and lost passwords.

For the customers that already have domain names which are registered with another provider:

  • Re-delegate (another way of saying tell everyone on the Internet to come to your server for the website content) the domain name to your server.
  • To re-delegate the domain name you'll need to know who the customer bought it off and get a hold of the domain password.
  • Help the customer discover the above provider and recover password as in most cases they've lost track of both.
  • Make sure that the customer doesn't have any other services associated with the domain name that they don't want disturbed as part of the website you're giving them. For example, an existing email service that they want left where it is.
  • If you discover existing services above, locate and work with existing provider to make this happen.
  • When the customers domain name expires that is with another provider, they will call you to find out why their website doesn't work. Provide support to help them get their domain name renewed with existing provider.

If registering the domain name, or re-delegating the domain name to your server, configure the server:

  • Create DNS records so that that the server knows what to do with the domain name.

Other miscellaneous support requests associated with domain names:

  • Customer may not be able to register a suitable domain name ending in .com.au, you'll need to support for other domain name extensions.
  • Customers may decide to register multiple domains that they would like to point at their website.
  • Customers may decide to register domain names in random country extensions.

Email

If the customer is getting a new domain name, or doesn't currently have email address on their domain you're lucky, you're working with a clean slate:

  • Explain to the customer what types of email addresses they can have.
  • Get a list of email addresses that the customer would like configured.
  • Configure the server with the desired email addresses.
  • Provide the customer with the email account settings for their new email addresses.
  • Provide phone support to the customer to work through getting their computer to send and receive email.
  • Some ISP's will block outbound mail sending unless using the ISP mail server, in which case, get details for the ISP's outbound mail server and help the customer configure.
  • Provide the customer with a self management interface so that they can add, change or remove email accounts on their own.
  • Provide phone support for customers that are not receiving email, diagnose email delivery problems.
  • Teach the customer how to use your webmail service as it's most likely different to the previous one.
  • Provide support for POP and IMAP on mail clients.
  • Create illustrated tutorials for configuration of every different version of every different mail client you can imagine.
  • Provide a system that lets clients put auto responders on their email for when they go on holidays.
  • Reset the passwords on email accounts each time the customer forgets them.

If the customer already has email services, migration needs to occur with minimal interuption:

  • Get a list of email addresses that the customer would like configured.
  • Configure the server with the desired email addresses.
  • Provide the customer with the email account settings for their new email addresses.
  • Provide phone support to the customer to work through getting their computer to send and receive email.
  • Arrange a suitable cut over time with the customer for the email services from the existing provider to your service.

Website automation

Since this article is about providing websites to people that don't have one we only need to deal with provisioning new websites, you'll need systems in place which:

  • Configure the server to know about each new domain name you add to serve out the content.
  • If using a site builder tool, create and publish the content.

Accounts

On the accounting side you'll need to:

  • Issue the client with an invoice. Keep a copy of the invoice so you can re-issue if it gets lost.
  • Charge their credit card. If this is to happen automatically you'll need software to integrate with the payment gateway to charge the card, records the details of the charge and send receipts to the customer.
  • If the customer doesn't want to pay by credit card, have a system in place for identifying and reconciling cheque and EFT payments.
  • Update your customer records (discussed above) so you know who has paid.
  • If you're billing monthly or annually, you'll need to periodically issue new invoices to the customer.
  • You'll need to confirm with the customer if they wish to renew the service before invoicing each year so you don't end up cancelling lots of invoices.
  • Chase payments from the people you send invoices to.
  • Suspend accounts for people you can't get payment from.

Miscellaneous support requirements

  • Fix DNS, domain or email settings when another provider such as a new ISP breaks things.
  • Diagnosing service problems that aren't your fault
    • eg. expired domain from another registrar
    • ISP connectivity problems.
    • Local computer problems, eg. antivirus software disrupting email services.

Process automation

In most cases the interest in providing the above service is being able to automate as much of it as possible. The key automation points, the bits of glue to that will hold the system together will be:

  • Domain name registration - check availability, get the details, send them to the domain name reseller, get registration confirmation back, notify the client.
  • Payment processing - accept credit card details, transmit to the payment gateway, confirm payment, record details, issue receipts
  • Server configuration - to make the service work on your server: DNS, email and website need to be configured based on the details entered into your forms.
  • Website creation - should be handled by the site building tool/service you choose.
  • Ongoing billing - sending reminders, invoices etc.


See also: