Tuesday, November 2, 2010

Lead automation

I'm coming to the end of neat project for a Cruise Experts Travel.  They had a lead automation system in place which consisted of a number of interacting parts.  One was a small part of an application they'd used in the past (but have since moved away from) and required the regular investment of licensing fees.  Another was custom-made using Microsoft Access.

The purpose of the lead automation system is to take information from the visitors' form submissions on their various websites and have the data added directly into their CRM as a lead, so as to save on time, reduce waits, and eliminate date-entry errors.

One problem was that their lead automation solution didn't work quite right.  It was usable, but wasn't ideal.  Employees had to manually trigger its run throughout the day, and it didn't account for the way they used of their CRM (with regard to custom fields, and label conventions).

I put together a new lead automation system using C#,  MS SQL stored procedures, and a little bit of VBScript.  The C# and stored procedures were interesting to work on.  The VBScript, not so much.

There was no API, so I was forced to interact directly with the CRM's database, and I was completely unfamiliar with it.  There was no documentation on its schema, and I could find little on even the database engine.
But that's one of the fun things about and stressful things about Computer Science — solving puzzles!  Stressful  first and during; fun afterward.

One of the first things I decided to do was write a database explorer.  It allowed me to view tables, send queries, and otherwise research the system.  It was unimaginably helpful.
Actually, you can probably imagine pretty easily how helpful it was.

I extended the testing process, because I wanted to be certain that everything worked as I expected, and I'm glad I did.  Now the new lead automation system is mostly done, and is currently in use.
There's one final issue I'd like to work out, and I'm pretty sure I did so earlier today.  I'm just waiting now to confirm.

As it stands, they seem very happy with the result.  Which is always awesome.  And now that I know the system and am comfortable working with ClientBase (the CRM), it opens up a whole new set of opportunities for them and for me.