Contact Management and CRM

Most if you know more about ERP systems and coding than I ever will, but I know a lot about sales (40 years of executive sales leadership with a global firm, managing sales in my own business & an MBA) I think I see an important missing part of this system, or least if I’m wrong, hopefully you guys can point me in the right direction.

Before you get to a lead or into the sales funnel, you have prospects. If your item is high value, the cycle can be quite long with numerous points of contact before someone from your prospecting database.becomes a lead. (In sales, that is called prospecting) You buy or build the database and work from it, calls emails even the old fashioned in person cold call (made many inroads that led to multi dollar sales that way). Managing all that, scheduling todo’s, future phone calls meetings and making notes needs a contact management system (Act! was a good example before everything went subscription on the cloud, probably why many of us are here).

In a contact management program you record notes of conversations, calls, emails etc and schedule future activities. A click on a button when looking at the contact record (you could have companies with no contact info) accomplishes this and you then work from a calendar you’ve created.

In my opinion this is a crucial part of a CRM (perhaps the most important part for high value, high contact sales). You don’t want salespeople gathering and scheduling all this in their personal system (like hubspot) or notebook, it needs to centralized and needs to be integrated. Its mission critical info.

So… how does ERPNext handle this? I can’t find any way when looking at a company or contact to quickly schedule a future call?

Thoughts? ideas?
Thanks, Mike.

1 Like

Hi @WIE:

Check this

Hope this helps.

The argument over the terms “Leads,” “Prospects,” “Targets” etc. is basically endless. Every organization has its own idea of what each of those terms means. I’d disagree that a Prospect exists before a Lead does. I think that most people, at least as far as CRM records are concerned, would consider a Prospect to be a Lead that’s been qualified on some level, but that’s neither here nor there.

With respect to how ERPNext works as a CRM, there is an entire CRM module. The main Doctypes (record types in Frappe parlance) are: Leads, Prospects, Opportunities, and Customers.

Records are typically converted as they make their way through the sales process as follows:
Lead > Prospect (Possibly with an opportunity created at the same time) > Customer. Both a Lead and a Prospect can represent a physical person or a business, itself.

One thing that you will notice is different from how a lot of other CRMs function is that ERPNext doesn’t have an “Accounts” record (Doctype). For instance, in Salesforce, and many other CRMs, when a Lead is converted, an Account is created (typically the Account would be the business in a B2B situation), and the Lead is converted into a Contact. ERPNext doesn’t use “Accounts,” just “Prospects” for people/organizations you’re trying to close, and “Customers” for customers you have closed.

With regards to logging calls and appointments, that is built into the CRM module. Admittedly the default interface for logging a call (or text message, or in-person contact) is kind of annoying, but it’s pretty easy to build your own interface that works for you, or pay a developer to build you one.

The default method for this would be, for example, Lead record > Activities Tab > New Event > Enter new event details. The problem with this is that this will create the Communication record as still “Open” so it’s not great for logging calls that have already happened. You can easily click the “closed” checkbox once the call is over, but if you forget to do that, that call will appear to be as a call that you scheduled, but never got to.

As far as “working on a calendar you’ve created” I’m not sure what you mean. There is a calendar functionality in ERPNext, where you can view and schedule things like appointments and meetings.

Thanks for the thoughtful response. Slow to reply as I wanted to think about it a bit. It’s an amazing thing to create something like ERPNext that works for so many business environments; its just the nomenclature (and perhaps structure) is so different than what I’ve seen work in executive sales I’m struggling with how to make this work.
What might be constructive is to describe what we need a system to do for high value executive sales.

Before CRM we had contact management. It’s the contact management portion of CRM that salespeople care about, the rest of CRM is more of benefit to management. ACT! or Maximizer were two popular applications.

They provided

  • Database of Companies/contacts that would synchronize with your phone (blackberry once upon a time)
  • Ability to customize and search by any field, customizable interfaces etc
  • Integrated with outlook, would create a history of emails
  • You could
    o record notes
    o schedule a future call (became part of your calendar)
    o schedule a future meeting
    o schedule a task or todo
  • It also offered basic marketing functions such as create labels, mail merge, email blast

None of this is very complicated, but there was a lot of effort made making it very simple and efficient to use basically all on three well laid out screens you’s swap to via buttons, the contact record, calendar and one line list of records.

The company had a very crude version, but nobody used it. In a lot of executive sales, it’s the salesperson who has most of the power; we were going to use whatever worked best for us to make money. Which of course is a disaster for the company; everyone with their own database not integrated, owned or controlled by the company.

In this type of sales environment, sales people will not use the system unless the contact management aspect of it is fantastic. Without the salespeople using it, there will be no CRM. Stated another way, to work with high end executive sales, the contact management function has to be top notch. You can have a $50,000,000 business with a million $50 sales, or 50 one million dollar sales. It’s more the latter environment or large sales which these dynamics are found.

Ok, I can see that that is my specific requirement, and we may have to create the interface. However I think it’s a point that systems designers who have not worked in executive sales should know about.

The Database.

ERPNext’s nomenclature is a little confusing. I would have called the entries in the database “Companies” but that is reserved for the business the ERP is for (better to call that the “Enterprise Name”?). A company in the data base may or not be a customer, but they are all in same database.

So I look at the “Customer” doctype, but that doesn’t really work as not all in my prospect database are customers

The database could and would be populated with anything and everything, existing customers, names and numbers from business cards I picked up or a purchased list. That’s your prospect database. You would prospect, looking for leads by contacting people, from this database.

Existing customers are right along with people you’ve never spoken with before and no company ever moves out of the prospect database unless the are dropped/deleted if the sales person decides they have no potential. For very large purchases a customer might not buy again for years or they have multiple requirements on the go at a time. In either case, there is ongoing contact activity so they must be part of the contact management database

How the contact process works.

From your database, you’d pick a record and decide to call that person today. Then you could click on call history and makes a note (even if didn’t get them I’d still note, tied no message, or left message etc so I could mentally keep track of things, i.e. days later “didn’t I just call this guy?”)

After you make notes, you would schedule a future activity. Might be a call 3 days from now if you left a message or call six months from now if they said no current needs. The next action could also be meeting or todo (task) some time in the future.

I had about 1500 contacts but really focused on about 400. I tried for at least 6 contact points per year between phone, email, meetings and market recap I wrote and sent. All done by some simple but quite brilliant contact management software. THAT imo must underpin a CRM system for executive sales. Creating would almost seem like child’s play compared the depth and complexity of ERPNext.

This is what I mean by working your calendar. As you keep setting future activity every time you complete an activity, on any given day your calendar tells you what you need to do. If you are disciplined with this, working your calendar becomes how you manage your business (as an individual sales person) and you have great success with sales.

I bothered to write all this as I thought the combination of decades of executive sales experience and an interest in systems is maybe not too common so doing so might help make it better. Happy to discuss it further if there is any interest. Meanwhile, any ideas on how to make great contact management work within ERPNext
Mike

1 Like

The problem of the CRMs terminology versus “our terminology” is a problem with pretty much every CRM. Having worked with several CRMs (Salesforce, SuiteCRM, Hubspot, Zoho, etc.) I can say that ERPNext’s CRM module is the most divergent. The way it handles Leads, Contacts, and Prospects is definitely different than the way most of the other CRMs do it. It’s certainly not a definitively bad thing, however.

With regards to customizing it, you’ll find that ERPNext is pretty much just as customizable as anything out there. I would argue more so because it’s just python and javascript - very easy to find developers. Salesforce, on the other hand for example, has its own proprietary language, and developers don’t come cheap.

Organizations are usually either stuck with the choice of using the CRM “out-of-the-box” or having to hire employees/pay contractors to customize and maintain their CRM.

The “Company” DocType is for your company(ies), as you alluded to. If you want a custom DocType to track the organizations you do/might do business with, you could certainly create one (of course, it can’t be called the name of an existing DocType like Company). I prefer to use the built-in DocTypes, however.

Leads → People/organizations I might do business with, that have not been vetted/qualified at all.
Prospects → Organization or groups of people, I might do business with
Customers → People/organizations I’ve sold something to

As you’ve noticed is that there’s no “Account” which most other CRMs use, rather ERPNext has “Prospects” and “Customers.”

With regards to your specific use case, I don’t see why you couldn’t make ERPNext workable for you. Ever feature you’ve described is either already included, or could be implemented without too much heavy lifting.

2 Likes

HNY, and sorry for the late response, was able to push all thought of this to the side over the holidays.

I am really trying to buy into ERPNext’s way of doing things as is, as I think overall its a pretty marvellous thing. There is a strong desire to work with ERPNext.

For a company involved in executive sales, I think the follow two points are irrefutable: 1) A CRM won’t work well or be used if its not underpinned by a great contact management system. You need the buy in of the sales people and what they want is strong contact management. 2) a great contact management system has to manage all your contacts - active customers, past customers, employees, influences, suppliers, professional advisors, prospects (including ones from a database you’re never called before), friends/network.

I’d bet all the CRM’s you listed do this, and do it well. All of the above types of companies and contacts need to be in one table to have a good contact management system, yes? no? Maybe through programming you could consolidate all the existing companies in a single contact management interface so they appeared to the user as one table, but that seems very complicated.

I accept that we have to customize to create the slick interface and we can access some resources to do so. However the real gist of it seems to be that as you point out there are multiple tables/doc types that have a company and contact.

Maybe the solution is to integrate with one of these CRM’s? However then you still have the problem of multiple tables in ERPNext, i.e. what doctype are you integrating with?

Any ideas on how to work around the above? Do the architects or designers of ERPNext typically pay attention to these threads, wonder what their views are?

thanks
Mike

Definitely, Mike. Your deep sales insight underlines an important need in CRM systems for effective prospect management, especially in high-value sales. ERPNext, primarily an ERP solution, may initially lack an immediate setup for tasks like scheduling calls directly from contact records.
However, its flexible design allows for customization, such as adding fields for interaction details and linking these to the calendar for scheduling. For a more specialized call management system, integrating third-party CRM tools with ERPNext could offer the functionality you need, ensuring centralized, integrated management of crucial sales activities without compromising on the detailed tracking and scheduling essential for successful prospecting.

You certainly could integrate ERPNext with another CRM system, and I’m sure there are many users that do this. Now, would that be better than using ERPNext’s CRM module? It depends on your organization’s and your users’ criteria, I suppose…

What exactly do you think is lacking from ERPNext’s CRM that doesn’t work for you? You said “However then you still have the problem of multiple tables in ERPNext, i.e. what doctype are you integrating with?” You do realize that this is the exact same way that pretty much every other CRM does it, right? For example, in Salesforce there is a Lead table, a Contact table, an Opportunity table, etc.

The thing to understand is that in the ERPNext CRM:
Lead = Somebody you might try to sell something to - typically a person, but could the business itself if you don’t know anybody in that business

Prospect = The record of the business entity (if a B2B scenario) for which you typically have at least one good contact person. For example if you’re trying to sell something to Good Idea Enterprises (the Prospect) you might need to keep track of Joe Doe the CEO, and Jane Roe the Purchasing Manager. Both of those people would be Leads that are linked to the Good Idea Enterprises Prospect.

Opportunity = The record of the deal for the product/service you are trying to sell. An Opportunity does NOT represent a person or business, it basically represents the sale you’re trying to make. For example if Good Idea Enterprises is the business (Prospect) I am trying to sell to, then “Good Idea Enterprises is interested in a new Helicopter” would be the Opportunity.

Customer = The record of the business entity (in a B2B scenario) that I am doing or have done business with. Typically converted from a Prospect once the deal is complete, but it doesn’t have to be. The Customer DocType is used by customer service/support, and sales departments.

Contact = A record of a person (though technically the Contact could business, too). You typically don’t “work” from a Contact. A Contact essentially has no context associated with it. It’s merely there to keep track of a person’s contact info, and a Contact might be an employee of yours, a Lead you’re trying to sell to, or a vendor you buy stuff from. The analogy I always use is to think of Contacts in ERPNext the same way you think of Contacts in your cellphone. You probably have your wife, your doctor, the plumber, and your customers all in there. There’s no context defined there, they’re merely people (or businesses) you need to have record of for when you need to reach out to them.

Why are there different DocTypes that each represent the same business entity/person? Because there are different contexts with which different departments in the organization interact with that entity. For example, your customer service department might not really care about the different things you are trying to sell your customers, because their job is to support the customer after they’ve already bought from you.

With regards to which DocType your sales team works from, it’s entirely up to you. You could theoretically even take steps to hide or “turn off” the Prospect Doctype and have your sales team work only with Leads.

3 Likes

Managing prospect interactions effeciently is a key, especially for high-value sales cycles. ERPNEXT is robust for ebp needs but might lack the specific contact management

May I add my “two-cents” worth of understanding CRM and related aspects.

I completely agree with the proliferation of terms and the confusion brought about by it. However, I do feel that should we take a step back and objectively reassess what it is we’re talking about, then these terms will fall into place.

For me CRM can mean essentially 2 things

  1. CUSTOMER Relationship Management: where the R is for the relationships within the Sales process
  2. CONTACT Relationship Management: where the R is for any generic relationship(s)

I do not favour the one above the other as they both have their place. However, for me, it’s an absolute necessity to have the latter ContactRM devoid of any notion of the former CustomerRM, as it is critical to maintain an enterprise-wide single-view of the Contact entities in an organisation. CustomerRM then becomes a very specific extension of ContactRM. Specific to the SALES process / perspective.

So, in my mind, ContactRM is:

  1. The management of a master repository of both INDIVIDUAL and INSTITUTIONAL entities, the Contacts, along with all of their relevant detail such as Contact Details, Addresses, Demographics, etc.
  2. Their inter-relationships and intra-relationships within my Organisation. What is the relation, if any, an Individual has with one or more Institutions. What is the relation my Organisation has with either an Individual (B2C) or Institution (B2B) from various perspectives:
    • Sales : the phased/staged transitioning and interactions over time, eg sales pipeline, from Lead to Prospect (to Opportunity) (to Quotation) to Customer, or whatever stages / nomenclature you like, eg Prospect to Lead.
    • Public Relations : stakeholder engagement process, reach-out, reach-in.
    • Marketing : marketing campaigns, market segmentation, focus-group management, newsletter dissemination, channel efficiency.
    • Legal : Application process, Fulfillment obligations, Contract renewal, SLA compliance.
    • Many more, eg Purchasing, HR, etc.
  3. Communication, especially omni-channel (voice, email, Whatsapp, Teams, physical meeting, etc) utilisation and recording of all communication. Curated responses, templates, agent scripts, schedule next communication, record notes, etc. Help Desk / Live Chat integration. PBX integration.
  4. Automation of some of these processes / transitionings, delegation and escalation, business rules, etc.
  5. Integration with other systems to facilitate master data exchange and business process continuation, especially of the Individual and Institutional entities to ensure a "single version of the truth" organisation-wide. You certainly do not want contact detail for the same entity to be redundantly duplicated by different systems. Nor do you want discontinuation in business process hand-overs to ERP and other systems, eg Quotation, Contract, Invoicing, etc.
  6. Reporting and Visualisation, which is dependent on the relationship perspective and the state transitioning within that relationship eg channel efficiency, life-cycle analysis, communication history, status evolution, sales funnel, etc.

So, to come full circle, ideally you should separate the master data management of Individual and Institutional contacts and their detail from any specific relationship management, such as sales. Hence Lead and Deal in FrappeCRM are specific to Sales management and specific to how the FrappeCRM developers see sales (which is a topic for another discussion). This nomenclature brings about great dis-ease to people wishing to apply another perspective to their CRM, other than the implied / forced Sales centric stance of FrappeCRM.

6 Likes

On the issue of the different names and understanding of objects in a CRM this thread has some interesting dicusssion

In reality a contact, lead, prospect and customer could all be the same person or organization. My 2c is that Lead and Prospect are so similar that having both in the mix, given we already have contacts, causes confusion and over-complicates things

You’re right @chrislennon! A Lead, Prospect, Contact and Customer can, and often do, represent the same person, and it definitely does cause a lot of confusion.

The important thing to keep in mind is the context with which you work with each record type.

For instance, the Customer DocType will most often by used by customer service departments. The customer service department doesn’t necessarily care about the deals that the sales department is working on, but they do care about the status of any open issues. Therefore, sales will probably stick to the Prospect and Lead records, because those records are designed for the sales context.

The one that confuses people the most, I think, is the Contact record. The Contact record is a record of a person that is completely devoid of any context. Think of ERPNext’s Contact DocType like a contact in your cellphone. It’s just there to store the very basic details about that person, not to store any of the data that would relate to the stuff you’re trying to sell them or past customer service issues.

They better care, because their work can influence sales.
A coordination and thus awareness on both sides (service and sales) might really help their business.
At least sales should be acutely aware of open or even uncared for issues.
That’s probably better than the customer’s buying team reminding them of such.

If that’s the case in the organization, then you can grant the CS department access to the Prospect DocType.

The point is that the different departments in an organization reference the records in different contexts, and thus separate records, even if they represent the same person/entity make sense.

Thanks for all the thoughtful responses.

Here is the core problem. A CRM system first has to be a great contact management sytem; it has to keep track contacts at companies that could anyone of a dozen categories

-Past customers
-Suppliers
-Influences
-Prospects (those on a list that you haven’t done business with) etc.
-etc

Contact management lets sales executives manage contacts. It doesn’t matter how you or I want to describe/categorize those contacts, they need to be in one spot. A customer, lawyer, prospect, reporter, supplier etc all need have a record kept of interactions, a place to schedule the next action as well as be database for marketing activity.

Writing a module or using a different CRM with ERPNext does not seem a viable answer. With ERPNext having company names and contacts entered in multiple tables, how do you sync between ERPNext and a contact manager/CRM?

That imo is the fundamental problem. My credentials are strong on the commercial side not the programming side, however I thought best practices in database design were to rigorously avoid duplication of data. For example, there should never be more than one place enter a company name, it becomes a customer, supplier, whatever by other tables or flags, e.g. they qualify as a prospective customer when there is a quote, a customer if there is a sales order and a supplier if there is a PO etc …but there is only ever only one table containing company names.

How could you use a 3rd party contact management/CRM application when it would have to coordinate with company names in many ERP next tables?

That imo needs fixing before ERPNext can offer a compelling contact management system, which is a precourser to a good CRM.

I really wanted to commit to ERPNext but can’t see away around this.

2 Likes

Well, “never” is a very loooong time frame, and it doesn’t reflect evolution of people, learning, enterprises, social network(s), history of projects and even humanity.
Life is full of surprising developments, need of efforts personal and collective, and unexpected helps.

Don’t give up too fast. There seem to be reconnections of temporarily separated modules under way. These are part of the evolution of a project performed amazingly under an extremely and exemplary humanistic work ethic. Freedom necessarily comes without forced centralisation, and if you take this (freedom as well as certain other essential and universalistic values) seriously, by logical implication there is necessity to allow for experimentation, some slack in ups and downs, and thus also surprises and the unexpected.

Thanks for your interesting reflections and sharing your experiences.