New Vesion of ArcSend about to go beta

April 13, 2009 by mikejos

Things have been a littly quiet on my blog recently. I’ve been working hard on the new version of ArcSend. This new version is a complete rework. We’ve built the application as fully browser hosted, thus not requiring a desktop installation. We’ve built it using Microsoft’s Silverlight which has allowed us to deliver a rich user experience.  Thus ArcSend Version 2 fits in the category of a Rich Internet Application (RIA). All contact data is stored on the server, with the browser hosted client application communicating via WCF.

Already we’re looking forward to moving to Silverlight Version 3, which will allow us to install ArcSend as a standalone application, not requiring a browser web page.

I’ll post a link to the new version of ArcSend when we go live, which is scheduled for early May 2009.

Enquiry and search in the ArcSend contact management application

February 18, 2008 by mikejos

In any CRM or contact management application there are 2 types of searches:

  • a search to find a specific contact to view or update that contact’s details
  • a search to retrieve a list of contacts. This list is then used for reporting, or there might be a need to send a mailout, email or SMS message to everyone in the list.

A key feature of the ArcSend application contact manager with bulk SMS and bulk email is the ability to be able to save enquiries so that the the search can be re-run at any time. For example, an organisation might want to send a quarterly mailout to everyone in a specific state, or they might want to produce a report on all members whose subscriptions are overdue, or they might want to send an email to all supporters.The ArcSend enquiry function had the following design goals:

  • to be able to design, save, run and re-run enquiries.
  • to be able to send message broadcasts (SMS or email) to the result of an enquiry.
  • to automatically create basic enquiries that retrieve all contacts for a given category (categories could be individual and organisation, mail and female, etc.)
  • to be able to create complex enquiries based on a combination of values in fields and categories.
  • to be able to define an enquiry as the union of a number of searches. E.g. the combined result comprising everyone who lives in France and everyone who lives in London. 
  • to be able to create complex enquiries via the UI, with no code at all.

ArcSend provides 2 different ways of finding customers.

Ad hoc search

Search Screen

The first method, illustrated above is primarily to search for a specific contact. Searches can be on any text field, with exact or partial matches. For example, a search could be for all contacts whose fullname field contains ‘Smith’. Or a search could be for all contacts that contain USA in any of the text fields.

Saved enquiries

Enquiry Screen

In the above screenshot, on the left hand side is a list of enquiries. On the right hand side is the enquiry edit panel. This particular example illustrates that the save enquiry ‘Victoria with email’ includes all contacts who satisfy either of 2 search criteria(the 2 Include sub-headings), excluding those who satisfy the third search criteron, the ‘exclude’. The exclude criterion has been clicked, with the right hand side of the screen showing its details. We can see that there is a test on the email field. By clicking on the field (with the green tick, illustrated above), the actual search criteria for that field are displayed:

 fieldtest1.jpg

This particular test is on the field ‘Email’. It is treating that field as a text field (and thus do text-type tests). In particular, this test is looking for contacts whose email value is empty. That is, all contacts who do not have an email address.

ArcSend Application Architecture: Software + Services

January 14, 2008 by mikejos

ArcSend’s ( contact management with message broadcast ) application architecture is an example of Software plus Services (S+S). The server component of ArcSend is an example of SaaS (Software as a Service). It provides account management and message delivery web services. The client component of the application, running on the desktop, includes database functions and message editing capabilities. It works in co-operation with the server to broadcast email and SMS messages. So the combination of the client and the server together are an example of S+S. 

We did not adopt this architecture to be buzzword compatible. Rather, there were compelling reasons why we needed to have a division of responsibility between the PC client and the hosted Internet server.

Client and Server

Why did we choose this approach? We wished to offer an extremely rich, powerful and responsive user interface. It is very difficult to build rich UIs that run natively in a browser, and depending on network vagaries, responsiveness can never be guaranteed. So we chose to develop the UI as a Windows Form application based on Microsoft’s .NET Framework. With the data hosted locally on the user’s computer, managing contact databases with tens or even hundreds of thousands of entries is quite practicable. If the data were server hosted there would have been constraints (for performance reasons) on how we could display and report large numbers of entries.

The application needed to be able to support large volume email and SMS broadcasts. Broadcasts could be to thousands of recipients. Again, we wanted to provide a great user experience. So we chose to offload the work of distributing the messages to the server. The user needs simply to submit the broadcast request from the client application, with the server than responsible for transmitting the messages.

As a result of developing using this model we have 2 applications: a Windows desktop application and a message broadcast server. These 2 components are loosely coupled. This means that, in the same way that the ArcSend client integrates with the ArcSend Server, so too other applications similarly can work directly with the ArcSend Server. By way of example, the CENTAMAN application provides message broadcast capabilities in conjunction with the ArcSend server.

Contact Management Software – a brief history

January 7, 2008 by mikejos

Contact management: it may sound a bit boring, but it is something near and dear to my heart. Well, maybe not so dear but nevertheless important, and something that has taken up quite a bit of my time. I have now developed and operated 4 contact management applications.

 I’ve been involved with an organisation, the Tibetan Buddhist Society, since its inception. We started to build up a contact list back in 1982. By the end of that year we had about 800 names and addresses, and we wanted to send them each a newsletter. Personal computing had barely arrived on the scene, so we decided to outsource. A friend had an Apple II and had written some software that would print computer labels. So thus began our long involvement with computer based contact management software.

In 1984 I was studying computer science and had bought a Z80 based micro-computer. With a 3rd part ISAM file management library and developing with Turbo Pascal, I wrote the Tibetan Buddhist Society’s first in-house contact management application. By 1990 there had been major advances personal computing. Z80s were a thing of the past. It was time for a new contact manager. The second system was build on an Apple Macintosh with a data management / development environment called Hypercard. At the time Hypercard was a much feted radical new software system.

The needs of the Tibetan  Buddhist Society were evolving. It was now no longer sufficient to be able to print out the full list of addresses: we wanted to be able to send mail outs to targeted recipients. The Hypercard application I had built was not up to the job, so in 1996 a new system was developed using Microsoft’s Access, coded in Visual Basic for Applications. This sytem allowed us to categorise recipients, and then, based on queries, print out lists of laser labels. The demands of our public relations / marketing people continued to evolve. Over time we identified different categories of contacts, and also additional data fields. These evolving changes often required database changes, and invariably new and changed code.

About 3 years ago I started work on the current contact management application. The design goals for the new system were:

  • It had to be able to  adapt to all our current and forseeable requirements without necessitating a single line of changed code.
  • It had to be easy to use for someone who had only basic computer skills.

The business requirements were:

  • Unlimited ability to categorise contacts. Examples of contact categories might be Male/Female or Individual/Organisation. We needed to be able to create new contacts as and when we needed.
  • Unlimited ability to support custom fields. Custom fields are additional to standard fields such as name, address and so forth. We needed to be able to add new custom fields at any time.
  • We needed to be able to query – or subset – our list based on both categories and values in standard and custom fields.
  • To be unconstrained in the types of queries we needed to develop. For example, we might want to do an email out to all gardening groups in the state of Victoria for whom we have an email address, and who are interested in roses. Relying just on categories clearly would not be sufficient.
  • To be able to develop new queries quickly, without having to change a line of code.
  • To be able to scale to handle very large contact lists comprising tens of thousands of recipients. 
  • To be able to send email broadcasts to targeted lists of recipients.
  • To be able to send SMS broadcasts to targeted lists of recipients.
  • To be able to perform high volume message broadcasts, to thousands of recipients.

I investigated a number of 3rd party applications to find one that would meet our needs. I could fine none. I found CRM applications that were good at recording details about contacts, but had poor email and SMS integration. I could not find any application that met our need to be able to develop rich queries without writing code such as SQL.

So I decided to build contact manager number four. Thinking that the Tibetan Buddhist Society’s needs were not unique, I built a system which anyone can now download. If you are interested, check out www.arcsend.com. In subsequent entries I’ll discuss the application architecture and the basic technologies. I’ll also drill down into technical issues I encountered, and how I dealt with them.