See Are Em?


Tracking sales and clients is vital in any business. While larger businesses often have large systems already in place, small and medium sized businesses seem to commonly resort to a spreadsheet with some colour coding.

Whether this is because most Contact Relationship Management (CRM) systems seem to be large and/or complex and/or expensive, we’re not sure. However when we were looking into the best solution for booncon’s CRM, we found very little catering to the small-medium sized business market.

So! Let’s build our own, we thought. At first we looked into building one up from scratch, but soon realised the time investment was substantial and we needed a system up and running quickly. So we looked to our friend Drupal and the modules on offer. We went with Redhen CRM as we have used it before, however this time we were wanting a lot more customisation in the actual interface and functionality.

Small or medium-sized business? Doesn’t mean you should be stuck using spreadsheets for sales tracking.

Functionality for functionality’s sake?

After setting up Redhen CRM we found, like most Drupal modules, it was barebones, allowing extensive customisation. So we got to work on some basic stripping out access to unnecessary (for us) functionality.

To really work out what functionality we needed to add we sat down with our sales team and nutted out not just what they would use the CRM for and how they would use it. Nothing too crazy here, obvious things came up such as added fields, however we found some interesting additional needs, such as some level of social media integration (more about that later…), varying levels of user access and how to make it quick to use on a mobile while on-the-go.

We find that designing for mobiles is one thing, designing for use on a mobile when you have a bag of shopping in one hand and walking down stairs is a whole different story.

Working in multiple countries, and with the potential for third party sales people as users, restricting what sales people can access was very important. Restricting sales people to seeing only their contacts was easy, but restricting the companies they saw to their own region only, while still allowing access to all for higher level users, proved to be a tricky (but ultimately solvable) task!

So now we had a nicely functioning CRM that gave us all the information we needed, but nothing we didn’t need.

Arguably the most important thing in any web application is designing with REAL user input, not just one you make up.

What does this button do?

Our next challenge was designing our user interface. As above we got some help from our actual users in how they would need to use the system and where, and what functions were most vital.

The biggest backend change was moving all the entity views to Views views. This gave us a lot more flexibility in driving our users to particular functions, and adding more related content where necessary, for example when a contact has a twitter handle entered, the twitter box is displayed, allowing users to see the latest tweets, and tweet directly to our contacts. We’re looking into enabling this for Facebook also.

The entire interface is designed with a very clean look, allowing the users to focus on getting things done. We decided having a mobile and desktop unity in design would make it easier when flicking between the two devices.

At the top of all our result tables we included filter searches using jQuery inspired by Design Chemical’s Live Search post to quickly filter through current results. On that note, tables present their own problems with responsive design, for which we used a modified version of Chris Coyier’s Responsive data tables tricks.

Using a clean and intuitive interface helps our users get things done quicker.

No design is ever finished

Of course, we still have some way to go, some major features including full search (not just a filter) and integration with email are on the list, and perhaps for the future integration with LDAP. We also are working on simplifying some of the user processes when creating contacts or organisations. Anything we can do to make using the CRM system quicker.

We even hooked up our users on github, where they can record bugs, issues or feature suggestions themselves, which means they don’t have to worry about remembering a bug they saw, or interrupt their workflow too much to come and talk to us about a problem.

Oh and as always there were/are some weird quirky bugs… we even found a bug in entity core…

There is always room for improvement, you just need to find how

Why would you read all this?

We are actually planning on making our CRM public soon. Stay tuned on our github repositories 🙂