The standard way of representing partners and contacts throughout OpenERP and many other enterprise systems (such as phone contact applications) is having a partner with multiple contacts. Partner is the word for any entity that you do business with - supplier, customer, etc. This representation may not be flexible enough for some uses, so OpenERP provides an alternative, which is brought into the system by installing the base_contact module.
The two figures UML class diagram with base_contact module installed and UML class diagram with base_contact module not installed show the structure of partners and contacts in the form of UML classes both with and without this base_contact module. For the non-programmer this diagram can be a bit of a brutal way of showing it, but it's the clearest way to illustrate the complexities that can be accomplished.
A concrete example may illustrate this concept of multiple relationships between contacts and partners (companies) better. The figure Example of a structure with management of partners and contacts shows two companies each having several addresses (places of business) and several contacts attached to these addresses.
In this example you'll find the following elements:
The ABC bank has two places of business, represented by the addresses of ABC Belgium and ABC Luxembourg,
The addresses of Dexey France and Dexey Belgium belong to the Dexey company,
At the office of ABC Luxembourg, you have the contacts of the director (D Fogerty) and the accountant (A. Jacket),
Mr Jacket holds the post of accountant for ABC Luxembourg and Dexey France,
Mr J Smith is director of Dexey France and Dexey Belgium and we also have his private address attached to no partner.
Depending on your needs, OpenERP provides three menus to access the same information:
List of partners: Partners ‣ Partners,
List of contacts: Partners ‣ Contacts,
List of posts held by contacts at partners: Partners ‣ Contact's Jobs.
The three menus above are only three different views on the same data. If you correct a contact name on the contact form, this will be modified on all the posts occupied in the different companies.
The screen above represents a partner form. You can see several possible address there and a list of contacts above each address. For each contact you see a name, a function, a phone number and an email.
If you click on the line you can get more detail about the function (such as start date, end date, and fax) or enter into the contact form (such as personal phone, different posts occupied, and personal blog).
Partner management is found in the OpenERP base modules. To manage partner relations you have to install the CRM modules. Then start by installing a CRM profile and configure the system to meet your needs.
For this chapter you should start with a fresh database that includes demo data, using the CRM profile and no particular chart of accounts configured. OpenERP's modularity enables you to install only the CRM module if your requirements are limited to customer relationships.
Once the database is installed, OpenERP suggests that you configure it using a series of questions:
Simplified or Extended mode: select simplified and click Ok,
Creating users: click Skip,
Select the CRM functionality to install.
The CRM configuration module
The pre-configuration of the management of customer relations to generate prospects, opportunities, and phone calls isn't supplied by the crm module itself but by the crm_configuration module.
If you install the modules separately don't forget to install the crm_configuration module. The crm module just contains the generic case management system.
OpenERP proposes a selection from pre-configured functions for CRM:
managing a prospects database,
managing and tracking opportunities,
managing meetings and the company calendar,
managing phone calls and/or a call center,
managing after-sales service,
managing employment offers,
managing technical service,
tracking bugs and new functional requests.
You see that OpenERP's CRM module isn't limited just to Customer relationships but is designed to generate all types of relations with a partner: such as suppliers, employees, customers, prospects. This book will describe just customer relationships. The other CRM functions are similar to use, so you shouldn't have huge problems with understanding those functions.
The following cases will be looked at for this chapter
Management of the company calendar,
Management of phone calls.
The figure Selecting parameters for CRM modules for the reader of this chapter shows the CRM module configuration screen after selecting some functions to install.
If you have installed the management of prospects and opportunities, OpenERP implements the following workflow for the qualification of prospects and future opportunities.