Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I've used Salesforce at every company I've worked at for the last 8 years. Here are my observations:

- There is a special place in hell for the person who made the decision to have leads and contacts as separate objects. It creates all kinds of complexity. Some may have a need to work with leads but for clean reporting, you almost have to dump leads. Most B2B companies I know don't use the lead object and autoconvert everything to Contacts. But it has always seemed like a bad decision to have both.

- There is a long line of companies that have tried and are trying to disrupt Salesforce - none have succeed and my take is that this is because of the ecosystem and app exchange. That makes it very challenging to overcome.

- Salesforce has made improvements in their interface (Lightning is, by most counts, an improvement), but an entire industries exists to make up for the shortcomings of Salesforce. Sending emails directly or programmatically is pain, so we have Outreach and Salesloft. Entering data is too slow - so there's Dooly. Their marketing reporting stinks - so there is Fullcircle and Bizible. They own Pardot, yet somehow still can't top Marketo, Hubspot or Eloqua - which is a pretty amazing fail imho. And the Pardot integration really doesn't add a ton of value over other solutions. But as noted above, this weakness is also a strength because you've got a huge ecosystem.

If I'm starting a company right now, I'd probably go with Hubspot because there is just enormous power in the simplicity of having all of the data for both marketing and sales in a single system. Not that Hubspot doesn't have it's own issues, but reporting has always been a huge problem at every company so if I can't avoid this pain even a little, I'd consider it a big win.



The intended difference between contact and lead is that a contact is someone who you have some sort of a business relationship with -- either you are trying to sell them something, you are working with them, or have worked with them in the past. Leads are supposed to be wholly separate from that -- they might be a person, they might be a company, they might just be a rumor.

They way leads is originally intended to be used, is that you'd dump a bunch of garbage into that table -- b2c data from web forms, incomplete records, mass-imported lists from affiliates/events/etc -- and then it would be the job of sales to sort through it to find the records that are of any value. You wouldn't turn them into a contact until it was determined that there was an opportunity to sell them something.

But, leads as a concept really don't make sense in some industries. In many b2b industries, by the time you interact with anyone at a company, it's already well determined who you are and what product you're interested in. This is properly entered as a contact/opportunity.


Agree. I've built CRM's for multiple industries now, starting prior to any interaction with salesforce.

There are many reasons to keep leads out of contacts, messy imports and the unstructured nature of what a "lead" can be are big ones, traceability, unauthenticated data capture issues and ease in reporting are a few others.

It's always less of a kludge to have a system that keeps them separate but lets you seamlessly convert or associate a lead object into a contact object, when it makes sense (for lead objects that have sufficient similarity to a contact), and has an option to bypass the lead table and create a contact directly.

In my experience trying to shoe horn into a _contact only_ abstraction creates more problems because the abstraction is too simplistic or even flat incorrect for many businesses.

edit: From a sales agent "user" perspective you do often want to hide these abstractions from the UI depending on the industry and/or lead type, too many systems force their users into unnecessary duplication of effort.


Oh I get it. But as I said in another response below, what you're describing is the stage of a contact, not separate objects (in my opinion). You could just as easily have a single object but where the status was "lead" (no company name needed) and "contact" where you add the company information and the ability to add them to an opportunity.


You’re right, it could be done that way, but for the orgs that do use leads, it would mean a lot of repetitive filtering on pretty much every business process. The difference in functional concept between a lead and a contact are great enough that processes (both software and human) between the two rarely overlap. A foreign key does all of this for free. For this reason, I think they made the right choice, especially since the orgs that do not like the concept of leads can just simply not use them.


Sadly it is not that easy if you do not want to use them - if that would true I would not be complaining.


Whether Salesforce intended it or not, the platform has moved far beyond just Sales. In the multitude of cloud products currently available, almost all of them use the Contact object as something other than a lead. So I guess from my point of view, a Lead can always be a Contact that is captured/not, but a Contact may not necessarily be a "lead", in the traditional sense of word anyways.

Given that Salesforce is the only CRM I know in my fairly young career, I can definitely see many of its shortcomings and do not envy the engineers/product managers that have to address those.

I think if someone is starting a company, Salesforce is not the right option, both because it is extremely expensive, and its not exactly plug and play if you're looking for customizations.


The way I think about it is that Lead is a stage of a Contact, not a separate object.


And that is totally valid, but I’m guessing there were some architectural decisions behind splitting it into its own object in order to give it support from other customizations and processes. But in this case it would be impossible to make everyone happy =/


Salesforce owns Marketo now. My company is using it along with our Salesforce org. Integration is pretty seamless. Although we do have to train users on how to write in Microsoft SQL Server 2016 which is what Marketo is using apparently.


It’s actually Adobe that owns Marketo now.

Source: former Adobe employee


You’re right. I was thinking of Marketing Cloud.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: