Sep 30

I’ve been using SugarCRM for two months now to put structure to the call efforts on the leads that are generated via our site. The more I use it, the more I appreciate all the work that must have gone into developing it. It’s an awesome tool but awesome things can always be better. Here are seven plugins I would pay for if they existed on the SugarExchange site:

  • Track Skype Calls – it has the nifty skype integration so that all phone numbers become clickable and let you call the number with a single click. I would love to see modifications that made it possible to track all calls made and give me a separate tab that allows me to see all calls sortable by date & name. That data could then be incorporated into the forecasting and reporting tools so you can see it took X dials to produce Y contacts to produce Z sales. This seems like a simple matter of writing a javascript onclick handler that intercepts the callto:// link and records the timestamp and lead.
  • Append geo info from phone – Our leads consist of a phone number, an email and a few other bits of information. It would be supremely useful to have a plugin that would flesh out the geographic info (Country, State, Postal Code, City) based on the area code our country code of the phone number. It looks like the NPA NXX area code database is publicly available and there’s probably a country code database out there as well so this would be doable I think.
  • Triage garbage records – While we’re on the subject of phone number plugins, it’d be great if there were a plugin that used some intelligent algorithms to flag the records that had suspect phone numbers. Right now this is a tedious process of sifting through leads and assigning a custom status of “Bad Phone Number.” Common patterns of junk numbers are emerging though (1234567, 555*, 1111111). A plugin that caught the obvious ones would knock out probably 80% of the work for dealing with bunk numbers.
  • What time is it there? – Appending the geographic info to the leads is the first step but the cadillac treatment here would be to have the local time at the destination you’re calling. Ideally this would be a field that’s filterable so the net result is that one can set acceptable calling hours and get only leads that fall within that current time window.
  • Auto merge all dupe emails – I’m really surprised this isn’t a feature of the import process. They have some de-duping capabilities based on firstname, lastname but none based on email (which is a little weird because it’s more likely that there will be two legitimate John Smith’s in the system than two john@smith.com’s). I’d like to be able to have SugarCRM merge all leads that have the same email address. This seems more like a feature request of Sugar than an actual plugin.
  • iCal feed – Please make it so I can get an iCal feed of the events on my calendar so that they appear in the calendar I live by (iPhone and iCal on the Mac).
  • Gmail integration – I’d love a way to have SugarCRM search my gmail account for past correspondence based on lead and contact email address and append any communications with that person as history to that record.
  • My only other suggestion: why not create a bounty system on SugarExchange so we can get this stuff created? I have to believe other people would be willing to pay for these enhancements as well if they existed. Take the guesswork out of what people want and how much it’s worth to them – accept pre-orders via a “pledgebank” style site. Developers will gravitate to solve the requests that have the highest bounty amounts. End result= paying work routed intelligently to developers and satisfied SugarCRM users.

    Sep 30

    News sites and blogs are abuzz right now with reaction to Richard Stallman’s statement that “Cloud computing is a trap.” Unfortunately none of the commentary I’ve read so far has caught the key fallacy here: he has confused two entirely orthogonal concepts, Software as a Service and Utility (Cloud) Computing. While often seen together, the two are completely independent of one another (ie. you can have a SaaS offering delivered via servers running in your datacenter, and conversely you can deliver OSS software on a cloud-based system – we in fact make this very thing possible now with various JumpBoxes on Amazon’s EC2 service).

    The vendor lock-in he’s railing against in his interview (and wrongfully attributing to the cloud computing aspect) is actually related to the fact that most SaaS offerings are based on proprietary software. But it’s the same dependence one develops to proprietary software running on the desktop only it’s easier to take the first cocaine hit when there’s nothing to install. That offering may happen to be delivered via servers that are running in the cloud but that’s completely tangential. I doubt Stallman would take issue with a site like opensourcecms.com using a cloud computing service to host free demos of open source software in order to encourage its adoption… Making the argument he has is about as silly as going after the steel industry because you don’t like guns.

    Tagged with:
    Aug 07

    Over the past week I’ve started calling some of the leads for JumpBox that we’ve amassed since we started collecting them nearly a year ago. Before starting this process we determined that it made sense to use a CRM system to put some sanity and structure to this effort. We had considered using SalesForce for its convenience and its many integration options and strong ecosystem but ultimately decided we should really be using our own stuff (ie. the JumpBox for SugarCRM). Having now set it up from scratch, imported all our leads and used it to make calls over the past week, here are some thoughts:

    General impression

    I’m really happy with their UI. I had used the vTiger JumpBox previously to track conversations we had from our outreach to various press. While vTiger has some features that Sugar doesn’t (the concept of orders, inventory, a free Outlook plugin, a public-facing customer portal) it always felt like they had just fitted a web interface over the database tables rather than thinking from the salesperson’s perspective about the application flow with the end goal of helping close sales in mind. Both products probably have a place but for the purposes of getting on the phone and making calls, I’m happy with our choice to use SugarCRM here.

    The Good

    1. Git ‘er done! With CRM systems (like every application) it doesn’t matter what you can do with it, it’s only as good as what you will do. Apple knows this – they distill the essence of each app to its simplest level so it’s useful in real situations. This means an elegant interface with nothing extra to get in the way. People like things that are simple and just work the way you’d expect. And it seems that Sugar shares this philosophy as well. Everyone has unique needs and wants something different of their CRM but if as the vendor you try to cater to everyone by having a complex interface overrun with tons of features, you’ll end up helping nobody because either a) the experience is distracting/frustrating enough to slow the users down and impede their ability to make as many calls or b) they’ll get overwhelmed, frustrated and just stop using it altogether in favor of moving to a rudimentary system like post-it notes that just works.
    2. Skype integration Okay this completely rules. So we have one phone line right now for the office and it’s mainly for inbound inquiries that come from people contacting us with pre-sales questions and bizdev-type inquiries. We didn’t want to tie up that line with outbound calls (not to mention get killed with long distance charges from Qwest). We explored putting a VOIP system like Vonage in place and at some point likely will once we need that phone infrastructure. But for now implementing it would be overkill. Skype is working beautifully and here are the main reasons why I like it so much:
      • It runs over our existing internet connection and call quality is fantastic over a simple DSL line with 5 other people working simultaneously on it. Either Skype improved their compression technology or they’ve mastered the P2P transport mechanism somehow because it’s really come along way in terms of being indistinguishable from a phone (actually better than phone quality when it’s skype-to-skype).
      • You can configure Sugar to recognize phone numbers and make them clickable so they launch skype and dial the number (granted you have to put them in the +1 ##### format first but that takes seconds). If you buy what I said in bulletpoint above, removing this tiny bit of friction can have a significant impact on how many calls you actually do in a day.
      • I’ve got a comfy USB headset that I use to make the calls. I’m playing music in iTunes and when I click the next number, skype automatically mutes my music and switches over to phone audio. When the call is done music resumes. It’s all running over wireless which is a beautiful thing because I can move around the office and make calls from wherever. For that matter though I could make these calls from a quiet coffee shop or my backyard if I wanted to (I’m actually making calls to Australia from my home as I write this tonight).
      • It’s super cheap. If you’re doing any significant amount of calling you’ll be best served by getting their $10/mo world-wide unlimited minutes plan. But even better you can buy credits a la carte at the beginning to test out the setup before committing to a subscription.
      • Provided you make all your calls via Skype you’ll get the benefit of being able to see a time-stamped call history of exactly who you called and how long you talked with them. This means less work to explicitly track “I made this call at this time.” It’s all implicitly tracked within Skype.
      • They finally solved the CallerID issue (calls originating from Skype used to show up with +0123456 callerid). This was a showstopper before because it’s unprofessional and prohibitive in the USA to have that show up on callerid but you can now purchase a skype number and have it use that number as its callerid. You can also forward that number to your main office line when your skype is off or if you want to have a separate voicemail for sales, you can set that up and have visual voicemail from wherever there’s an internet connection.
      • You can use something like Audio Hijack or Garageband to record the call audio and “review the tapes” later for improving your pitch. And if you’re working with others you can use the Notes/Attachments feature within Sugar to attach the audio file for each call so that a peer can go over the call with you and give you advice on things like how to handle certain objections and what you did well. *Note: some states/countries have rules about recording phone conversations. In AZ, only one person on the line has to be aware it’s being recorded.
    3. The import process – This worked pretty well. We have leads from various systems (namely our commerce system and our mailing list system). Importing these was fairly straightforward and you can save the field mapping that you create so next time you import from the same source, you re-use the mapping and avoid configuring it from scratch. They even made it so you can publish and consume field mappings with other Sugar users.
    4. Slicing and dicing data – Here’s an example of the better “situationally-minded” approach that Sugar takes vs. the “feature-minded” approach that vTiger seems to take. You have a bunch of leads each with varying level of detail filled in and all are sitting in your lead queue. It’s 10am on a Tuesday – which ones should you call? Sugar makes it so you can sort them and say “give me all leads in the USA that have phone numbers and came in via the promo form on our website.” This is important because Australian leads are worth zilch on a Tuesday morning in the MST timezone as they will be fast asleep. Leads that don’t have a phone number are likewise useless for making calls. And leads that came from an unknown origin are pretty worthless as well. You have to tinker with some search syntax here (“%” is their wildcard for instance) but you can do quite a bit with their advanced filter form. Perhaps such filtering capabilities exist in other CRM’s but I’ve found it really intuitive to figure out how to do most stuff within Sugar. Again, it’s not what you can do but what you will do with the interface.
    5. Sugar University – Though I haven’t used them yet it’s comforting to see a this massive resource of video and screenshot tutorials. There’s a link in the header of SugarCRM that pulls these into a window within the app itself if/when you need them.
    6. Good email integration – So I had a dilemma in using the web-based email client within Sugar to correspond with leads. On one hand our Gmail has the history of all communication with our users so it’s the authoritative place to search when you need to see what communication has transpired thus far. It felt wrong to fork this and have some dialogue occur via a separate channel, but on the other hand it’s really nice to have the leads all in Sugar and have any email communication associated with the lead record. The solution here was to use the Sugar email client and cc Gmail and then do a filter in Gmail that automatically archived the convo so it didn’t clutter the inbox. That satisfies both requirements and keeps Gmail the authoritative searchable source while allowing the contact to be initiated via Sugar and keeping a historical record of outbound email associated with the lead.

    Room for improvement

    1. Safari is still a 2nd class citizen – I ran into a handful of bugs that manifested in Safari and didn’t exist in Firefox. Having dealt with cross-browser compatibility issues as a developer I understand the psychosis that is induced from trying to solve this for every browser. But being a Safari browser user, I love it when web apps go the extra mile to support Safari. UPDATE 11/23/08: this is 99% fixed in Sugar5. I still have a problem inserting links in HTML emails but everything else seems to work great.
    2. Imports over 1000 records fail – Apparently the import process for Sugar is memory-intensive and fails after ~1000 records depending on how much memory your system has available. There were a couple of threads in their forums on this issue. I bumped the memory allocation on my VM and the most I could get without having problems was 1200. This is only a problem on your initial import because you’ll probably be working with CSV’s that represent just the delta once you get all your original leads into the system. UPDATE 11/23/08: likewise this seems to be fixed. I haven’t been able to make it choke since upgrading to v.5
    3. Searching and Filtering limited – I would really like to see an ad hoc query tool or some add-on module that lets an administrator issue queries directly against the db. I realize that this introduces the ability for someone to do damaging things like accidentally delete a table or records, but in theory if it’s limited to an administrator it shouldn’t be an issue. As good as the search & filter interface is, I couldn’t see how to pull a simple report like “who have I dealt with today?” They could add the “last modified” field to the search interface but really I can see serious value to being able to issue direct SQL queries against the db for mass update tasks and doing weird custom reports. I suppose they tell people to just install phpmyadmin for this situation but it’d be slick to have a simple free-form interface in the admin to run queries and retrieve results.
    4. Setting certain fields dynamically on import – We have leads that come from 4 different sources in 2 different systems. When I’m importing the various csv files I would like an additional mapping option (besides matching it to one of the fields in the CSV) that gives me a free-form text box to set the field’s value dynamically. For example right now I open each CSV and add a new field called “Lead Source” and then set that field for all records before re-exporting the CSV. It would be great if I could set this from within the admin at the time of import rather than having to manually tamper with the contents individual CSV files. UPDATE 11/23/08: this capability now exists in v.5. They also have a setting that lets you decide whether to update or duplicate records sharing same field values.

    Some useful lessons I learned

    1. Use Gmail’s SMTP server – Since I’m hosting the JumpBox for Sugar on my laptop, the default mail option is to use the local mailserver to send email. I learned from a few intermittent bounced messages that the mail sent isn’t deliverable for everyone because there are spam blacklist services that restrict mail coming from IP blocks like Qwest dsl lines. The solution here was to setup Sugar to use Google’s SMTP. This thread explains the settings necessary to make this work.
    2. Snapshot and rollback are a beautiful thing when you’re figuring out imports – This is a byproduct of using SugarCRM as a JumpBox running on virtualization. I’m running it under Parallels 3. Aside from the built-in backup functionality at the JumpBox level, I can do a quick snapshot of the VM itself in Parallels before trying a massive import that could potentially pollute my database with garbage data. I’ve used this analogy before in talks but it’s like planting a piton right before you try a dangerous move in rockclimbing- it assures that you can fall no more than a couple feet back to the point right before you attempted the risky move. It took me a bit of tinkering to get the fields mapped properly and this snapshot & rollback trick was a godsend during that experimentation process.
    3. Chunking the initial imports – The way around the import cap of 1000 records was to simply chunk the initial import files into blocks of 1000. Some people reported using bulk import methods at the database level to get them in and I suppose that would be the way to go if you had many thousands of leads but it was easier for me to just chunk it into different files. You only do it once so it’s not an ongoing annoyance and you just trudge through it the first time. Again, snapshots are your friend here for being able to roll things back.
    4. Customize your instance so it’s meaningful to you – There’s nothing worse than using an application that has a bunch of extra crap in it that you never use. It clutters the interface and in general pollutes the “mind like water” feeling of having only what you need there. The admin in Sugar has options for removing the tabs you don’t use as well as customizing the contents of every dropdown and list in the system. The first thing I did was get rid of the tabs I knew I wouldn’t be using and change the status and lead source dropdowns to just the labels that have meaning for me. I highly recommend this.
    5. Don’t get spun out on integration early on You should approach your CRM effort from the “what’s the absolute bare minimum setup I need to begin dialing phone numbers?” There are ways to integrate Sugar with your website or your commerce system, etc. But in reality that’s contrary to the 37signals tenet of “less is more.” I found that the weekly CSV import process from the other systems is perfectly doable once you’ve setup the import mappings. Provided you want to give people a week to try things before calling them, why waste any engineering effort on integrating Sugar when you can roll with the import in the short term? Do it only when you need speedier followup times.

    Conclusion

    I had read a book awhile back called “How to sell anything to anybody” by Joe Girard. This is a 30-yr-old book by a car salesman who I believe still holds some kind of Guiness Book record for car sales. What’s interesting is to examine it by looking at the techniques he espouses in the book (keeping a box of index cards – one for each of your customers – working through them front to back, writing down notes from calls and meetings to remember birthdays and wife & kid names, setting aside opportunity cards in a special pile). While the technology has clearly changed, the goal remains identical: to serve the customer better and build a stronger relationship via superior communication. It’s helpful to think of those physical cards when learning a system like Sugar because it’s really just the transposal of the notecard system into digital form.

    SugarCRM is a great way to put some structure to the process of calling a bunch of people. I’m the only person in our company using it right now – in theory I could make these calls and track them using the notecards. But one of our goals in implementing a CRM is to formulate the sales process so it’s repeatable and scaleable so I can extricate myself from it and hand it over to a team of salespeople who are better at it than I am. As an application Sugar strikes the right balance of having enough useful features without imposing a cumbersome overhead on the process of communicating with leads and customers. A CRM system can be useful for one person and it’s an imperative once you have multiple points of contact – Sugar is a straightforward open source option for handling CRM.

    If there’s interest from people and I get time to put it together, I may do a screencast like the ones I did for Trac and Joomla that shows the basics on how to get productive with Sugar in 20min (ie. import leads, customize interface, make calls, promote leads to opportunities, configure and send email, visualize the pipeline, add users with restricted access, etc).

    But given that you can be running with it in the next five minutes using the SugarCRM JumpBox on any OS, why not just give it a spin see for yourself?

    Jul 29

    If you’re a Scrabble fan and you’re on Facebook, odds are you have the Scrabulous app installed. It’s really the only reason to even log onto Facebook anymore. Game play is slick – it blows away the EA version they just launched (actually I tried to play a friend using their beta and it paired me with a complete stranger). Anyways, if you’ve followed the hoopla around this game then you know Hasbro has recently issued a DMCA takedown notice and Facebook just tonight complied taking the app offline. Sucks.

    Now the good news: it’s still possible to play if you don’t mind going through a few extra steps. Basically they’re using IP address geocoding to determine your location – not the location you specify in your profile. All you need to do is proxy through an IP outside the US or Canada and you’ll get the Scrabulous application back. You will have to link to it directly using this link as they disable it in your application menu. There’s lists of anonymous proxies available via Google but they’re generally crap. The easiest way to find a remote proxy is using Tor. Follow the instructions on their site to get running with it. Keep the Scrabulous dream alive!

    Jul 16

    So I had my carpets cleaned today. A lot of these services won’t give you and exact time but instead give you a window of time and a phone call when they’re on their way. Anyways I was late meeting them and for 20min there was an unmarked white van idling infront of my house (why it was unmarked instead of advertising the carpet cleaning services, I have no idea). The short of it is that my neighbor was looking out for me and placed a call to the police about a suspicious van idling in front of my house for a long time seemingly “casing the place.” By the time the police arrived I had already met them, walked the carpet cleaners around, paid them and left telling them to exit on their own via the garage. Now here’s where it gets interesting. The dialogue that occurred moments later went something like:


    CARPET GUY (calling me from his phone): "Hi Sean, can you talk to a police officer and let him know we're supposed to be at your house?"

    OFFICER: "Hi I'm officer so-and-so, can you verify your address?"

    ME: "Yes, it's xxxxx. How can I help you?"

    OFFICER: Are these two men here supposed to be in your house? We had a call from your neighbor of a suspicious van idling for 20 min in front."

    ME: "Oh yes, I was late blah blah, they're authorized to be there. Thanks for the call."

    Now what’s interesting about this and what someone like Bruce Schneier would instantly point out is the faultiness of the authentication process used in this situation- at no point was there a reliable way to establish me as the true occupant. Think about it: if you were a wouldbe burglar trying to in this situation, all you’d need is to have a confederate on speed-dial that had been given the address you intended to rob ahead of time. The only true way to authenticate in this scenario is to either:

    1. reach me via a verified means that is already associated with the house (ie. officer looks up the phone number on record with the house and calls it) or
    2. have me come back and produce a key that unlocks the house or repeat the code over the phone that unlocks the garage (ie. something private that only the real occupant has access to) and then dismiss the alarm.

    Having a random voice on the phone (from a call that the alleged perpetrator initiated) repeat back their present address doesn’t prove anything and yet doing just that gave me the ability to dismiss the officer.

    And at the end of the day, I’m happy that my neighbor went out of his way to make the call. I’m happy the cop went out of his way to stop by and check with me over the phone. But I would point out that this is a highly flawed authentication scheme that can be exploited. Anyone authenticating something over the phone like this needs to think about the chain of certainty here. A very similar situation to this occurred to me recently where my bank called and asked me to verify account credentials to them over the phone- before doing anything I asked how I could know they were in fact my bank and not someone trying to get my account credentials? The lady thought I was crazy and couldn’t understand my concern. I made her give me a bank telephone number which I could verify on the contact page of their site and call back. And while, yeah it took a little longer, it’s the only sure way to authenticate in that situation. With identity theft as rampant as it is, people need to begin thinking this way.

    Jul 08

    Place your bets: has Apple implemented the location-aware feature in iPhone OS 2.0 in such a way that the apps will work on the older iPhones? Perhaps this answer is already available but I just dug around and couldn’t find it. Ideally there’s a concept within the iPhone of location that’s independent of how the location is obtained so that whether your position is determined via GPS or cell tower triangulation, the apps don’t care. Anyone know the answer or care to bet on how this is implemented?

    preload preload preload