The following sections describe the steps you might use to implement an effective customer relationship management policy. The policy is implemented by basing new types of case on the built- in Open ERP case handling system.
Case is a generic term that refers to a discussion with a partner about a specific subject. This subject could be in any category – the monitoring of responses to a job advert, perhaps, or a purchase or sales order, or an after-sales quality problem.
A case is used for following the history of the messages on a topic and for automating some operations in response to certain conditions. Interfaces are available for OpenOffice.org and for email such as Microsoft Outlook Express and Microsoft Outlook, so that you can make productive use of the case system from your existing tools.
Case statistics generated by the system can be used by your managers to improve their handling of supplier and customer interactions.
Case management is a generic system that can be configured to your more precise needs. You'll develop three case types here, to see how to build the following systems:
A system to manage business opportunities.
A system for managing support contracts on two levels.
A system for managing supplier quality.
To handle each of these case types in a different way, you must create different sections in Open ERP using the menu CRM & SRM ‣ Configuration ‣ Case ‣ Sections . Do this as user admin in your database to try it for yourself.
You'll define the following four sections:
Support Level 2
Support Level 1
Put the name in the field Case Section. You construct a tree structure for sections is constructed using the Parent Section field in the Section form. So here you'd say that Support Level 2 is the parent of Support Level 1 . Open ERP doesn't restrict the order you use to define these two – you can save the parent while defining the child (try it by starting with Support Level 1 ).
A manager can then be assigned to each section (from the list of Open ERP system users), and an email address can optionally be added. Cases in this section are then automatically connected to this email address – case messages are emailed out automatically from this address and emails to this address are automatically logged in this section of the CRM system. This functionality is based on the email gateway referred to in detail further on in this chapter.
Click the menu CRM & SRM ‣ Reporting ‣ All Cases ‣ Cases by Section to get the sections in a hierarchical list, then click a section name to list the cases that have been assigned to that section.
Cases by Section – with data
Click the menu CRM & SRM ‣ Reporting ‣ All Cases ‣ Cases by Section to get the sections in a hierarchical list, then click a section name, such as Helpdesk or Support, to list the cases that have been assigned to that section.
Once you've defined the different sections you can create Categories, which are used to differentiate the cases in a section. You create categories using the menu CRM & SRM ‣ Configuration ‣ Cases ‣ Categories . Create the following in your database:
Categories assigned to the different sections
Interest in Training
Support Level 1
Support Level 1
Although you've created special menu trees for each of the types of case you defined, you can continue using the generic case system reached through CRM & SRM ‣ Cases. The new case types are just versions of the generic case.
Transferability of cases
It's quite useful to base the whole management of customer relationships on a generic system, as Open ERP does. Since each section is just a specialization of the generic system you can transfer requests from one section to another, and this means that you don't lose cases in the system as you delegate work to other staff in your company.
For example you can imagine a support request becoming a business opportunity. Or an after-sales service request becoming a supplier quality issue where a fault is found in a purchased product.
You can also track items across the whole company.
To enter a new business opportunity, you can use the menu that you've just created:
Sales Management ‣ Business Opportunities. Or you could have used the generic menus CRM & SRM ‣ Reporting ‣ All Cases ‣ Cases by Section, or CRM & SRM ‣ Reporting ‣ All cases.
Create a case from Sales Management ‣ Business Opportunities by entering information about the request, namely:
a Description of the case,
its Section will already be completed with Sales ,
the Partner Contact (which will be completed automatically when the Partner is filled in but can be overwritten),
the Partner Email address (which will be completed from the Partner Contact's email address but can be overwritten),
the person in your own company who will be the User Responsible for the case.
The email gateway
You'll see later in this chapter that cases can be generated automatically from emails. If the email gateway is configured properly you'll no longer have to enter cases manually through the menu system – they'll just be created from incoming emails.
A case starts in the Draft state once it's been created. You can then open it to indicate that you're working on it by clicking the Open button.
To enter text about the request or about actions taken to satisfy it, type an entry in free text. To save the history of your comments, click Historize. If you click Send Partner and Historize the partner will also receive a copy of your comment as you save it.
While the case is open you can click Close if it's been completed or Cancel if it's to go no further. If you want the case to wait for a response from a partner click Pending.
Add some text for this example case in the database, then close it.
If you've organized the sections in a hierarchical structure you can click on Escalate. The case then escalates into the parent section. You can't do that with the Business Opportunity that you just defined, which is single-level but you could with a Support L1 case. For example if a developer on level 1 can't handle a customer problem then she can escalate the request to level 2 where it can be handled by a more experienced user.
Assigning a case
Two approaches are available to you for assigning a case to a suitable manager. Any case can be assigned by the user who creates the original case, or this field can be left blank. If it's blank you'd review the resulting list of unassigned cases and pick one up and assign it to yourself.
You can also imagine a mixed method: all cases arrive unassigned and a user is responsible for the division of work to the relevant section.
You can look up the history of comments and actions on the request at any time by looking at the case History, which is in its own tab.
Users can create their own shortcuts from menus such as My Support Requests and My Business Opportunities to quickly list cases that they're personally responsible for.
The Open ERP web client can display any type of resource in the form of a timetable. You can generate calendar views for each of your cases as you create menus for those cases.
So if you want to implement a shared calendar for your calendar in Open ERP all you need to do is:
Create a section Meeting Calendar
Create menus for this section while specifying that you want a calendar view from CRM & SRM ‣ Configuration ‣ Create Menus for a New Section.
You'll get menus enabling you to manage calendars for each employee, and you'll also get a shared calendar for the company. This calendar view is totally dynamic. You can move an event or change its duration just using your mouse.
You can change the view and return to the list view, forms or graphs by using the buttons at the top right. Open ERP's usual search tools and filters enable you to filter the events displayed in the calendar or, for example, to display the calendar for only some employees at a time.
The generic calendar
Unlike traditional CRM software, Open ERP's calendar view is not limited to displaying appointments. It's available for any type of resource.
So in addition to the cases handled here, you could obtain calendars of tasks, deliveries, manufacturing orders, sales or personal leave.
This view is very useful for planning or to get a global overview of a list of dated elements.
Since all of your customer communications are integrated into the Open ERP system, you can analyses the performance of your teams in many ways.
Open ERP has a module that helps handle this – report_crm. It's not part of the core Open ERP so you must first download it to your desktop from Open ERP's modules repository, then into your server using Administration ‣ Modules Management ‣ Import module. Then install it into the database.
Once you've installed it you can use menu CRM & SRM ‣ Reporting to create different reports.
If you want to analyze the performance of your service and support group, for example, use the graph from CRM & SRM ‣ Reporting ‣ All Months ‣ Cases by User and Section. Click the menu to obtain a list view, then click the Graph button to the top right of the list. The system shows you statistics per user and it's possible to filter on each section and use other criteria for searching. For example, you can type in a date range, click Filter, and see the graph change to reflect the new data.
By default, the system provides a list containing the following information for each month, user and section, and an indication of the state of each set of information:
number of cases,
average delay for closing the request,
estimated revenue for a business opportunity,
estimate of revenue multiplied by the probability of success, to give you an estimated weighted revenue figure.
Navigating through the statistics
You can obtain more information about a user or a case section from these reports, drilling down into the data displayed.
In the web client you click the appropriate text string on one of the lines (such as Demo User or Helpdesk and Support) to open a form for it, and then click one of the buttons in the Action toolbar to the right of the User or Section form that is displayed.
In the GTK client you'd right-click over the text instead – this brings up a context menu with the same options as the web client would give you.
You can specify that the graph view, say, appears by default so that you can consistently present the information more visually.
Automating actions using rules¶
Analyzing figures gives you a better basis for managing all of your services and customer and supplier relationships. But you can do more than just display the figures graphically from time to time.
If the performance of a section, a user or a category of a case is beginning to cause concern then you can use Open ERP's rules system to monitor the situation more closely. Rules enable you to automatically trigger actions depending on criteria you define for each case. They provide a good way of implementing a proper continuous improvement policy for your customer relations and quality of service.
Using these rules you could:
automatically send emails to the client during different phases of a support request, to keep the client up to date with progress,
assign the case to another person if the the case manager is on holiday,
send a reminder to the supplier if their response is delayed too long,
always mark a case as urgent if it's from a major client,
transfer the case to technical services if the request is about a technical fault.
To define new rules use the menu CRM & SRM ‣ Configuration ‣ Cases ‣ Rules.
The criteria for activating this rule are defined on the main part of the screen. These criteria are:
a condition about the initial state (for example during the creation of a case – initial state: None , eventual state: Draft ),
a condition about the destination state (for example at the closure of a case to send a confirmation or thank you email),
the case section to which the rule applies,
the category for the case,
a condition about the manager of the case (for example to send copies of case progress to a manager if the client request is handled by a trainee),
a condition about the priority level (for example to provide different types of reaction depending on the urgency of the request),
a partner or a category to be applied to the rule,
a date for the trigger
reporting by the date of creation
reporting by date of the last action
reporting by the length of time that it's been active.
If you have defined several criteria Open ERP will apply the rule only if all of the criteria are valid.
You define the action that will be taken if the rule is met in the second tab of the lower part of the setup window. The following actions are included:
change the state of the case,
move the case to a new section,
assign the case to a system manager,
change the priority of a case,
send a reminder to the case manager or a partner,
attach information (or not) to a reminder,
send copies of the case discussion to specified email addresses,
send a predefined email.
Example 1 Improvement in the quality of support
For example, on the graph that analyses the performance of team support in Figure 4-6 you can see that the Demo User takes an average time of 3 days and 4 hours to close a customer support request. This is too long. After analyzing the data in depth, you can see that most cases were closed in less than two days, but some may take more than ten days.
If you think that the quality of service should be improved you can automate certain actions. You could send copies of the discussion to a technical expert if the case remains open for longer than two days, defined by the following rule:
Rule Name : Copy to an expert after 2 days,
Case state from : Open,
Case state to : Open,
Responsible : Demo User,
Trigger Date : Creation date,
Delay after trigger date : 2 days,
Add watchers (cc) : email@example.com ,
Remind responsible : Yes.
After the rule has been defined, the expert will receive a copy of the whole discussion between the Demo User and the customer for every case that remains unclosed after two days. He'll be able to interact with the discussion to avoid lengthy delays on complex problems.
Some companies use several support levels. The first level is handled by the least qualified support people and the higher levels by users who have the advantage of more experience. A user on level 1 can escalate the case to a higher level when necessary.
To systematically train employees at level 1 you can create the following rule: when the case has been escalated they will continue to be copied on the progress of the case. If a user at support level 1 can't handle a request he can escalate it to level 2. Then when an expert at level 2 answers the customer's request, the level 1 support person also receives the answer to the problem that he couldn't originally handle. So your team can be educated automatically from listening in to the passage of live support calls.
Suppose that you supply two types of support contract to your customers: Gold and Normal. You can then create a rule which raises the priority of a case automatically if the partner is in the Gold Support Contract category.
Define the case this way:
Rule Name : Priority to Gold Partners,
Case state from : /,
Case state to : Open,
Partner Category : Support Contract / Gold,
Set priority to : High.
Improved client relations can flow from using such rules intelligently. With the statistical control system you can manage certain SLAs (Service Level Agreements) with your customers without a great deal of effort on your part. So you can be selective in replying to those of your partners based on the specific quality of service that you are contracted to supply.
Example 2 Tracking supplier quality
Remember that an Open ERP partner can be a supplier as much as a customer. You can use the same mechanism for the management of supplier quality as you do for customer support.
If any of your staff detect a quality problem with a product from a supplier they should create a new case in the Quality section. If the email gateway is installed all you need to do is copy an email to a specified address (for example firstname.lastname@example.org) while sending your email of complaint to the supplier. The case is automatically created in Open ERP and the supplier's email response will close the case and be placed automatically in the case history.
In this case the user can add corrective or preventative actions to conform to ISO 9001, without having to enter every action into Open ERP – most of the information comes just from the emails.
The system's statistics provide analyses about the number and the cost of quality problems from different suppliers.
If certain suppliers don't offer the service quality that you expect you can automatically create rules that:
send a reminder to the supplier after a few days if the case still remains open
remind the production manager to call the supplier and resolve the situation if the case hasn't been closed within a week
select and qualify your suppliers on the basis of their quality of service
The CRM portal
Open ERP's portal_service module enables you to open parts of your CRM functionality to suppliers and customers. They can then connect to your system using their own login and follow their orders or requests online. For example the customer could make a support request directly in your system, perhaps avoiding a lengthy process of data entry.
Using the email gateway¶
To automate the creation of current cases you can install the email gateway.
The email gateway enables you to use Open ERP's CRM without necessarily using the Open ERP interface. Users can create up-to-date cases just by sending and receiving emails. This system works with the major current email clients such as Microsoft Outlook and Outlook Express, Thunderbird and Evolution.
Installation and Configuration¶
To use the email gateway you must install it on your server. You can use a variety of methods to configure it. Described here is a simple and generic approach using the Fetchmail program under Linux. You'll need a system administrator to carry out this work.
To start with you have to create an email account (POP3 or IMAP) for each Section that you'll want to connect an email to. If you have the support email address email@example.com'd use the following entries:
POP server : pop.mycompany.com ,
User : support ,
Password : <mypass> .
You'll also need to choose an Open ERP user that the gateway will use to access your database, such as:
User Id : 3 ,
Password : support .
Identifying a resource
Each resource on the Open ERP system has a unique identifier number. This corresponds to an identifier in the underlying PostgreSQL database table, in the ID column for that resource.
With the web client you can usually find this number by going to the form view of a resource and clicking the View Log button to the top right of the form. The ID is shown at the top of the Information dialog box. (This didn't work in some of the earlier versions prior to 126.96.36.199.)
You can also use the GTK client for this. Viewing any resource, such as a User, you can directly see its ID at the bottom left of the form.
Then specify the case section in Open ERP that you'll use when this user is connected by email, for example, the Helpdesk and Support section.
Install Fetchmail on your Open ERP server. You can download it from the address http://fetchmail.berlios.de/.
Fetchmail is a Free / Open Source software utility used on Unix-like operating systems to retrieve e-mails with the remote protocols POP, IMAP, ETRN and ODMR on the local system. It's downloadable from this address: http://fetchmail.berlios.de/.
Create a fetchmailrc file that contains the following rules:
# fetchmailrc poll pop.mycompany.com proto pop3: username support password mypass mda "/path/to/terpmg/openerp-mailgate.py -u3 -padmin -ssupport -firstname.lastname@example.org"
Then start the fetchmail program, giving it a link to the configuration file that you just created:
fetchmail -f fetchmailrc
If you're executing fetchmail for the first time you should use the -v argument. This makes its output verbose so you can easily see what's happening as the program executes.
Creating and maintaining cases¶
Each time you start fetchmail it downloads all the emails and creates or updates the cases in CRM. You can turn fetchmail into a daemon to check all new emails every five minutes by using the command:
fetchmail -d 300
If you want to receive customer requests by email you must first create a rule that automatically assigns new cases to a specified user. You must then verify that this user possesses a suitable email address in the Address field within Open ERP.
To find out if the new email should create a new case or update an existing case, Open ERP analyzes the subject line of the email. Existing cases are identified by the case number in the subject line, for example
Re:  Problem with ...
When a customer sends a new request by email the case is automatically created and the email is transferred by the gateway to the user responsible for new cases, changing the subject line to add the case identifier. The user can then respond by emailing or by using the Open ERP interface to the case. If the user responds by email the case can be automatically closed in Open ERP, keeping the responses in the history list. If the partner responds again, the case is reopened.