Contact Management with FileMaker Pro

Preface Getting Started Database Maintenance Database Industry Trends



Contact management is essential for any business. Many people just do not understand how efficient, customizable, scalable, and user-friendly contact management system might be important. Although there are many contact management packages currently available on the market, ranging from free open source and ice-cream priced shareware to expensive systems worth tens of thousands of dollars, I found that for midsize user base (several tens of concurrent users or so) custom-build FileMaker based solution is unmatched.

First of all, what is a FileMaker? Not so many people know, but this is one of the most popular databases in the world (especially among Macintosh users), published by FileMaker Inc., branch of Apple Computer. It is not so advanced, like MS Access, and not so famous, like ill-fated dBase, but in terms of usability it have no equals.

The big problems of FileMaker until version 3 were its flat-file nature, because even many simple solutions require support of relations; and lack of high-performance server version. That was fixed in version 3, and starting from the version 4 FileMaker gains very good WEB publishing support.

Although many "serious" database developers name FileMaker as a kid's toy, I believe that end-users almost never care about underlying technology, they rather value usability. Usability is where FileMaker really excels.

Getting Started

For contact management, these aspects are very important (however, they may vary depending on the user's needs):

  • Easy and quick access to all information - users should be able to retrieve any information with few mouse clicks.
  • Different representation of data - form, table, list, report, etc.
  • Ability to create and/or change fields and forms on the fly, without disconnecting users.
  • Integration and communication with other software (e.g. e-mail client, fax software, etc.).
  • WEB publishing features.
  • High-performance server version with automatic scheduled backup.
  • Cross-platform compatibility.
  • Availability of JAVA SDK for WEB programming.

Of course, FileMaker is not for everyone. These shortcomings may prevent using of FileMaker 5.x under certain circumstances (next version may fix all or at least some):

  • Very primitive support of relations.
  • Very primitive built-in scripting language. Although JAVA SDK is available, JAVA have never been supposed for database programming. Need to be mentioned, JAVA is very slow on Classic MacOS.
  • Limited complexity of queries.
  • Server version is not true client-server solution with transaction processing. FileMaker Server runs as file-sharing service which does caching and prevents data file corruption in case of client(s) crash.
  • Complete lack of built-in replication features.
  • Too high cost of deployment for 100+ non WEB clients.
  • Unsatisfactory performance under heavy load or large number of concurrent users.

To build your own FileMaker based workgroup contact management system its better to start from the scratch. Eventually, you can modify and update your database with new fields, layouts and files upon requests. To develop something really serious and usable you need few programming (scripting) skills and of course sounding database development background (I worked with 4D before). Software designed by novices is often usable by these people themselves and almost nobody else.

First of all, you need to define fields and files corresponding to your information (i.e. company, address, phone#, etc.). However, some extra fields are not required but highly recommended: auto-increment serial number, creation date, last modification date, creator name, and modifier name. This extra information is very handy for tracking changes in workgroup shared database. Also, ordinary users should not be allowed to delete records. All unwanted records should be renamed as something like "erase 1", "erase 2", ..., and then wiped out by administrator. Be sure to make all important fields indexed (for fast searching); some, like "Company Name", unique, to prevent duplicate entries; and auto-entered fields (i.e. creation date, serial number), non-modifiable.

Its up to you what layouts should appear at startup. It could be contacts, file navigation, product database, or all three. I have chosen contacts, other layouts may be opened with one or maximum two mouse clicks. Its very important to make navigation and handling extremely easy and intuitive. These two criteria mean usability, and as result, productivity.

Screenshot 1: Contacts - Main Window
Make it easy to use! All information should be one or two clicks away (with the navigation toolbar on the top)

Try to avoid all icon based interface, because of not everyone will find it intuitive. Only few non-questionable operations like dialing or URL-handling could be left as icons. In other words, your database can be qualified as "easy to use" if 90% of users are able to do 90% of work without asking any questions. For example, most users expect layout and record navigation buttons at the bottom or at the left. Some programs use Microsft-like interface with shifting tabs, but I found this way dumb stupid, because after each mouse click navigation bar shifts. Static bar (look for example at the MacOS Control Panel called "Internet") is more convenient. In my case, I have chosen standard push buttons, where underlined label indicated current layout. Such construction is easier and quicker to modify rather than switching or shifting tabs, what is important during on the fly development. Hint: create separate, invisible for anyone but administrator layout where you can store most often used GUI elements.

If your database consist of many files, one layout should be be used for fast file access. Below shown one of the possible variation's of file navigation layout. Files are grouped in alphabetical order except two most often used.

Screenshot 4: Contacts - File Navigation Window
It takes just two clicks to open any related file from main contacts window (see screenshot 1)!

The database briefly described above is used internally since beginning of 1997 not only for contact management, but also for information tracking, direct mailing purposes, product database and pricing/profit evaluation. It have grown pretty large and proved FileMaker as efficient and affordable database development system. More screenshots available here.

Database Maintenance

  • Instruct FileMaker Pro Server to perform daily, weekly, monthly and yearly backups into separate folders grouped inside one folder on another hard drive.
  • Make incremental archive of FileMaker Pro Server backups (with Dantz Retrospect, for example).
  • FileMaker is smart enough to avoid usage of shared files mode (when files are opened by several applications at once). If someone tries to open already opened FileMaker file, host application will be used as server. However, never use stand-alone version of FileMaker as server (although its cheaper). Copying opened files may result loss of file integrity inside backup archive.
  • To avoid purchasing of many FileMaker clients, publish your database on the WEB.

Database Industry Trends

One very interesting and rapidly growing trend in database industry represented by WEB based solutions developed on the ground of open source SQL servers like MySQL or PostgreSQL, PHP/PERL middleware and Apache WEB server (running usually under Linux or FreeBSD). Such databases do not require purchasing of expensive and proprietary software (at least, by client), are instantly networkable, cross-platform and scalable to thousands of concurrent users. WEB interface have certain limitations, development of these solutions is more time consuming and costly (compared to 4D, Omnis and especially FileMaker), but benefits are too obvious to be ignored.

At the time I am writing this (January 7, 2001), only PostgreSQL have not been ported to MacOS X yet (MySQL is not suitable for online transactions due to the lack of some advanced features like flexible locking mechanism and true roll back transaction support). When port of PostgreSQL to MacOS X will be complete, Macintosh may become king in the WEB development world, since single platform can be deployed for content and database development, as well as professional hosting.

By the way, MySQL, PostgreSQL and Apache WEB servers are very small, run in the background, and may be used even on standalone machine in conjunction with WEB browser without any problem.

With help of JavaScript, Flash, and XML gap between traditional GUI and WEB driven interface have been considerably narrowed. As soon as XML becomes mainstream technology on the WEB, proprietary RAD (Rapid Application Development) database tools, as well as most application packages developed with closed technology will face hard time to survive. Just check open source WEB based groupware (workgroup contacts + calendar + to do list + e-mail) tools like phpGroupWare and Eridu, and think if its really worth to pay more for less.

FileMaker is not likely to become victim of MySQL/PostgreSQL/PHP, its cheap and very easy to use for people without programming background, and probably will be the best solution for personal or small workgroup deployment databases in the foreseeable future.

MacGuruHQ and MacGuruHQ Logo

Copyright© 1996 - 2002 by Andrei Verovski. All right reserved. Content may not be copied in whole or in part, through electronic or other means, without the author's permission. MacGuru Logo (blue penguin) by Sergey Orehov.