Sales and Lead Management with SuiteCRM

For a small business doing business to business (B2B) marketing and sales, it is important to keep track of all contacts with customers and potential customers. There are many single-user contact managers that provide this capability, but if the business is to grow, it will be important to be able to hand off accounts to different account managers as the business grows. Splitting account level information out of a single-user contact manager can be difficult or impossible.

A small business doing B2B marketing needs many of the same Customer Relationship Management (CRM) capabilities of a big business, but at a significantly smaller cost. There are a number of cloud-based solutions such as Sales Force, but they can be expensive. Fortunately, there are some very good open source alternatives that are available for download and installation on your web server, or for subscription. The article that follows describes SuiteCRM one of the alternatives for an open source CRM system.

SuiteCRM vs. SugarCRM--Open Source Forks from the SugarCRM Code Base

SugarCRM is an open source CRM system that has been around for several years and which is quite mature. For a variety of reasons that can be quickly found with a Google query of "sugarcrm vs. suitecrm," a firm called SalesAgility forked a copy of SugarCRM and released it as SuiteCRM. I first installed the Community Edition of SugarCRM--or more correctly, I attempted to install the Community Edition of SugarCRM. I couldn't get it to install correctly. I then downloaded and installed SuiteCRM and was able to configure SuiteCRM relatively quickly and painlessly.

By going the route of a local installation, I have a lot of flexibility as my business grows and I add or contract out various functions--most likely sales. With SuiteCRM I can take the following routes:

  • Set up a virtual private network (VPN) that allows a sales rep to get to my SuiteCRM server on my local network.
  • Put SuiteCRM on a public web server where a sales rep can log in.
  • Upgrade to the paid support version of either SuiteCRM or SugarCRM.
  • Export data from my local system and load it onto SuiteCRM’s subscription cloud service.
  • Export data from my local system and load it onto SugarCRM’s subscription cloud service.
  • Export data from my local system and load it onto Salesforce or another cloud-based CRM system.

By going with an open source web-based product, I get the functions that I need, and a clear growth path without the start-up costs of a commercial subscription. The next sections describe how to set up SuiteCRM.

Setting Up and Using SuiteCRM

On Linux systems, setting up SuiteCRM is really quite easy, and fits into three major steps:


You will need to install Apache, MySQL and PHP using apt-get or rpm as appropriate for your Linux distribution. Next you will need to download the SuiteCRM zip file from and extract it into the /var/www/suiteCRM directory or whatever directory your web server requires, and then follow the complete instructions are given in the SuiteCRM 7.1 Installation Guide.

SuiteCRM has the capability to send emails internally; if you want to use this feature, make sure to have your email server information available to configure during installation. You can configure this at a later date if you want. You will need

  • Server name (for example
  • Port number (for example 465)
  • User ID for marketing emails
  • Password

You will probably also want to have a copy of your company logo as a .jpg or .png file to replace the default SuiteCRM logo.

Loading Account List

Once you have installed SuiteCRM, you will want to load a list of accounts or potential accounts. In some industries, this is easily done with a download of license or incorporation data from a government web site. In other cases, you will have to pay for a list. In any case, you will want at least the following information:

  • Business name
  • Business address, broken out by street, city, zip and country
  • Business phone number
  • Annual revenue
  • Phone number
  • Website

SuiteCRM will take much, much more. For a complete list, download the Import file Template:

  • Log in and go to the “User Name” in the upper right corner and select “Admin”.
  • Under the “System” section, choose “Import Wizard”.
  • Select “Accounts” and begin the import process.
  • Immediately above the file selection

Use the import template to organize your date and the correct column structure. There is a mapping capability, but it is much easier to get your data in the columns that SuiteCRM expects. Once you have your data in the correct column structure, repeat the import process and but this time select your file and go through the remaining part of the import dialog.

Loading Contact List

Loading the contact list is quite similar to loading the account list. First, you must export from your existing contact manager. If you have an option, choose to export in the CSV format for Microsoft Outlook, as this will require less rework than other export formats. If you have contacts at accounts that were loaded in the previous step, try to standardize the company names for the contacts before you import them, as this will make searching easier.

Set up Crontab for Batch Jobs

To get SuiteCRM to run geocoding, email campaigns and other batch processes, you will need to set it up to use crontab, the batch scheduler in Linux and Unix. On windows, you may be able to do this with the crontab built into Cygwin. This step is poorly documented as far as I can tell. To set up the crontab for SuiteCRM on Ubuntu, you will need the commands listed below. The path /var/www/suitecrm/ will need to be changed to fit the path to the location where you have installed SuiteCRM, as will the user ID if the web server does not run as www-data.

$ sudo su www-data
[sudo] password for userID:
$ php /var/www/suitecrm/cron.php

After you run this command, go to the admin page and look at the schedule; all of the jobs should show one execution immediately after you ran the cron.php program. Next, edit the cron table for www-data with the command

$ whereis php
php: /usr/bin/php /usr/bin/X11/php /usr/share/php
$ crontab -e

Add the following line to the crontab to run the scheduler once an hour. Modify the path /usr/bin/php as necessary to match one of the paths found in the output to the whereis command.

* * * * * cd /var/www/suitecrm; php -f cron.php > /dev/null 2>&1

Cron will now run the SuiteCRM cron.php program ever minute; cron.php will go through the list of jobs defined in the SuiteCRM schedule and run jobs that are overdue. The exact line to add to crontab is highlighted in grey at the bottom of the schedule panel as shown in the figure below.

Schedule Panel Showing Job to Add to Crontab. Schedule Panel Showing Job to Add to Crontab

Geocode Addresses

SuiteCRM has a built-in capability to call the Google Maps API to geocode all of the addresses in your system. Geocoding addresses makes it easier to plan routes and schedule sales calls in the same geographic area. Since Google limits API calls to 2500 per day for a given IP address, so SuiteCRM will batch the geocoding over several days until they are all done. To geocode your addresses,

    • Log in and go to the “User Name” in the upper right corner and select “Admin”.
    • Under the “Google Maps” section, choose “Google Maps Settings”, and make sure that you geocode the address field that you used for the data import. The Google Maps section of the admin screen is shown in the figure Google Maps Section of the SuiteCRM Admin Panel.
    • Google Maps Section of the SuiteCRM Admin Panel.

Google Maps section of the SuiteCRM Admin panel

    • Under the “Google Maps” section, choose “Geocode Addresses”. The geocoding API will generate a summary of the geocoding status, as shown in the figure Summary of Geocoding Status. To geocode everything, you will need to set up a nightly CRON job. To do this, copy the link location just below the summary in the “CRON URL” section and proceed to the next step in this list.
    • Summary of Geocoding Status.

Google Maps section of the SuiteCRM Admin panel

    • On the admin screen, in the “System” section, select “Schedule an Event” and then “Create” in the upper right corner.
    • Give the job a name (Nightly Geocode) and paste the URL that you copied from the Geocode Summary into the Job URL field. In the URL, replace the ./index.php with http://localhost/suitecrm/index.php or whatever is the domain name for your installation. It should look something like http://localhost/suitecrm/index.php?module=jjwg_Maps&entryPoint=jjwg_Maps&cron=1.
    • Change the Interval to hourly, and save the job. If you are familiar with crontab, select the advanced options to see the exact crontab entry. The settings are shown in the figure Setting Up the Nightly Geocode Job
    • Setting Up the Nightly Geocode Job.

Google Maps section of the SuiteCRM Admin panel