Tuesday, August 15, 2006

Giving Filtered Pages a Title

One method to filter data in the browser is to build the filter statement right into the URL. For example, if the URL ...Customers.A5W displays a grid showing all customer records, then ...Customers.A5W?customers_filter=State="CA" (see note below) will show just the customers in California.

When your user views this page of data, they might not know (or remember) how these records are filtered. Here's how you set a dynamic title along with your filter statement in the URL:

...Customers.A5W?title=California Customers Only&customers_filter=State="CA"

To make use of this in your A5W page, place the following xbasic where you want your title to appear:

if eval_valid("title") then
? title
? "My Default Title Here"
end if

That would give you a friendly title of: California Customers Only

And, although it will look a little cryptic, you could omit the title argument and just show the actual filter statement, as follows:

if eval_valid("customers_filter") then
? customers_filter
? "My Default Title Here"
end if

That would give you a title of State="CA".

Note - I used double quotes around the text values, but you really have to use %22 for Alpha database, as in State=%22CA%22.

Monday, August 14, 2006

Coding a "Tell A Friend" Utility

A popular item on websites and within email messages is a "Recommend Us" or "Tell A Friend" link. This is a structured way to let the viewer recommend your products or services to to one or more "friends". When they click Submit, each friend get an email that was partly scripted, and partly annotated by the viewer. A confirmation copy goes to the viewer, and a copy goes to you with a list of the referrals.

Alpha Five made this pretty simple - to get a full copy of the code required to create this utility, click here.

Note: SPAM laws dictate you cannot add these "3rd party" referrals to your standard email list without their permission. The fact that your 3rd party is, in effect, sending this email to someone they know personally, makes it legitimate. But you should structure your email such that they are inclined to opt-in in order to receive additional messages from you.

Using Alpha WAS to Track your Email Campaign

Take a look at any email in your inbox from a large company or news organization. Look at the properties of one of the hyperlinks. Rather than something simple like www.thisdomain.com/thisfile.htm, it will be more complex, like this one from TechRepublic:


That link has everything it needs to identify you as the person that clicked the link, which email campaign it came from, and the page that should be displayed. They could, if they wanted to, instantly send you a new email and say "Hello YOURNAME, You just clicked that link!". They don't because it is rude, and because you'd figure out they were spying on you. Rather, they are more subtle, modifying what you get in the future based on what you clicked today. By the way, even if you don't click on any link, they know you opened the email. But you knew that your email spies on you, right?

While reviewing an email tracking product, I figured out how to use Alpha WAS to do exactly the above. It was really much more simple than I imagined, and a very good exercise. Here's how:

Let's say you are using Alpha NetMailer or any other "mail merge" program to send personalized email to your Customer list. A link to your website would normally look like this:


To inititiate tracking, replace your hyperlink with something like this:


" id " is the personalized Customer_ID and " lnk " is the actual link that should open when they click the link. This is a simplistic example, normally you would want to obscure the Customer ID and Link Address so others can't determine what they really are by looking at the link. " redir.a5w " is your Alpha Five Web Server page that processes the request. The redir.a5w page is very simple, and looks like this:

if eval_valid("lnk") then
end if

This portion just redirects the browser to the value in the "lnk" argument. Note I have a default redirection in case the value in lnk is omitted.

Now if you want to keep a record of this transaction, create a table with fields Customer and Lnk, and add this to the code:


This portion sends one record per click to a database table. The above will create a record of the Customer ID and the Link that was clicked. Useful information if you know how to use it. Your records would look something like this:


The above is pretty simplistic. You would want to capture some additional information such as the date and time and the specific email campaign. Also, even though this is a good exercise, you may want to purchase a ready-made email blast program with a "Tracking" option; they really pack in a lot of charts and graphs to make the most of your email marketing efforts.

Mass Mailing Software

Alpha Five comes with a free license to use HighImpact eMail v3. This software is designed to simplify the process of sending personalized email messages to your emal list. More and more companies are using this method to carry their "brand" along with their email-based newletters, bulletins, and press releases. HighImpact has a direct link to Alpha Five databases, and so it is an easy choice for Alpha Five users.

I compared HighImpact to several other mass emailing software packages (all under $500), here is my comparison to one product, Anconia RocketSales.

Both products have you follow a similar process to send emails:

  • Create one or more email lists via import, manual entry or reading from existing tables (e.g. Alpha tables)
  • Select and then edit an email template including mail merge to personalize each email
  • Select an email list to mail to
  • Send the emails

HighImpact (www.templatezone.com) has almost a thousand very nice templates to choose from, and it is equally good at sending one email as a thousand. The program creates an icon on your email program's toolbar, making it easy to attach a fancy template to your daily emails or launch a mass mailing. They provide free internet storage (called "ReadyShare") where you can store images that are referenced in your email - you should always place images at a web location rather than embedding them directly in the email. This ReadyShare is a good idea for novice users and is fully integrated in their model. And, HighImpact has a direct link to your Alpha Five table, meaning you don't have to export your mailing list if it resides in an Alpha table.

I did have a couple problems seeing this as a business solution. Most notably is that all of the sent email ends up in your Outlook or Express Sent folder. That is fine for a few dozen emails, but not if you have a sustained campaign of hundreds or thousands. The product makes it convienient to attach stationary to your daily email correspondance. But this, in my opinion, is not a business feature as most business minded people are annoyed when receiving such fancy email formats. The fact that it links directly to your Alpha table is nice, but since there is no feature to filter the records, you have to pre-filter what is in your Alpha table. It's very common that you want to exclude some portion of, for example, your customer list. Finally, HighImpact always sends email using your default Outlook or Express profile. That means if you want to send email from "news @ mydomain.com", you have to temporarily set your default to that, and then back to your own after the mailing is done. This is easy in Express, not so easy with Outlook using Exchange.

Anconia RocketSales (www.anconia.com/rocketsales) is more suitable for business applications. It also has a suite of attractive email templates; far fewer than HighImpact, but you will end up making your own template anyway. It has its own server built in that sends the emails, so they don't end up in your Sent folder. You create the email profile right in the product, so you can send the mail "from" any address. It has a seperate field for "bounces" so all of the rejects go to your special mailbox to handle those. It does allow filtering of your email list, so you could mail to all records in California, for example. It does read existing tables via ODBC such as Alpha's DBF tables.

It also has an advanced feature to Track your email blast. This tells you exactly WHO opened your emails, and what links they clicked on. This feature is integrated into the program, and you only need to do some initial setup to get it working. It is a very neat trick as you witness, in real-time, who is opening your emails. If you are serious about your email campaign, then it is highly important that you know how effective your email blast is; and this tool helps you do just that.

If you turn tracking on, it provides a link so the reader to automatically unsubscribe. The unsubscribe can be from all emails, or they can be directed to a page where they manage their "subscriptions". For example, they could unusubscribe from Marketing, but stay subscribed to News.

I do wish RocketSales had a seperate unsubscribe table rather than flagging an existing record as "unsubscribed". I swap out email tables often enough that I would lose the unsubscribed information unless I manually process them from RocketSales tables. I will unfortunately comment that Anconia ignores email requests to their support department.

Neither product has a good built in HTML editor. If you want to create a new template, or significanly edit an existing one, you will need a 3rd party editor. I use NVU (http://www.nvu.com).

Sunday, August 13, 2006

Web Project Profiles "missing"

When you use Alpha's Send Database feature, the file \webproject\project.settings is excluded from the zip file. This file contains the settings for publishing your web project via FTP or LAN. This exclusion is most likely intentional, since the machine you are sending the project to may require different publishing settings. Plus you would not want to unintentionally give away your FTP login and password.

If you routinely send/receive projects with other machines, unless you are careful, you will eventually find your Profile settings "missing". Its not a disaster -- you have to recreate your FTP and LAN publish settings, which I always forget.

The problem only arrises when you unzip the project into a fresh directory (where there is no project.settings file). I routinely completely delete the project do this to ensure I have a clean slate, so I encounter the problem often. The solution is to retain your project.settings file when copying in a project, or being sure to send it along when you use the Send Database feature.