Sales Management (CRM)

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.


Ready for Production use


Adaxa Pty Ltd (Paul Bowden)


Capture Leads as unqualfied Opportunities. Allow Activities to be recorded against Leads. Convert Leads to Opportunities when appropriate and auto-create the BP, Contact, Location and Opportunity. Allow Activities to be recorded against Opportunities. Allow multiple Quotes to be created against one Opportunity with one flagged the as the most likely. Provide a Dashboard for the Sales Rep that draws all the information together on the things the Sales Rep is working on or waiting to be done.


See above


Design Considerations


The Sales Rep Dashboard utilises the new Reference Type called Chart to display graphs of information relevant to the Sales Rep like his sales pipeline, source of business.



other than the process to convert a lead to an Opportunity/BP/Contact/Location, the changes are mainly AD changes with no impact on other parts of the system.


Functional Requirements

Functional team

  • Volunteers for reviewing:

Result of review by Mario Calderon, June 22th, 2013

  • General
    • CRM is a module oriented to the interaction with Business Partners (vendors or customers).
    • Administers leads, opportunities, activities, contacts, customers
    • Integrated to Adempiere, which allows a better handling and access to other data related to Business Partners.
  • Functionality
    • Sales Rep. Dashboard window
      • Displays several graphics
        • Reviewed configuration in Application dictionary
        • Configuration done with
        • Charts configured: My Sales Pipeline, My Opportunities by Campaign, Sales YTD, My open requests
        • Error in chart: it seems that condition o.SalesRep_ID=@#AD_User_ID@ doesn't work in WebUI, because My Sales Pipeline only displayed data when I changed for example 101 instead of @#AD_User_ID@
      • Error: nothig displayed in tabs Leads and Opportunities, even if there are some for this Sales Representative
    • Stage window
      • Self-definable structure of the process
      • Tab Opportunity: it displays all Opportunities where the stage has been assigned in the Opportunity window
    • Leads window
      • Leads are potentials (not yet customers) with all data necessary to identify it.
      • A sales representative can be assigned to do the follow-up.
      • References used
        • Lead source: Cold call, Conference, Email, Employee, Existing customer, Partner, Trade show, Web site, Word of mouth
        • Lead status: Converted, Expired, New, Recycled, Working
      • Process: a lead can be converted into opportunity. An opportunity is created, the lead is deleted.
        • Desirable: the process should inherit all activities from the lead. right now, they disappear, and with it, all history.
    • Activities tab (Leads window)
      • There is a tab to document all contacts make to the lead.
      • The activities gather data as type of activity (call, email..), date, description of activity, start date, end date, complete (yes/no).
      • Activities can be found attached to leads and opportunities.
    • Opportunity window
      • A BP which the potential of becoming a customer by doing SOs or POs.
      • Data to define an opportunity: BP, Campaign, Expected close date, opportunity amount, probability, sales stage, sales representative, contact, Sales Order.
      • Error: there is no possibility of assigning an Order to an Opportunity. Field Sales Opportunity must be added to Sales Order. Here is how you can do it:
        • Log in as SystemAdministrator
        • Open window Sales Order
        • Tab Order: execute Create Fields. This creates -among others- the field Sales Opportunity
        • Log is as GardenAdmin
        • Create a Sales Order for the same BP as defined in Opportunity
          • Sales Opportunity Info dialog is missing Field "Business Partner"
        • In window Sales Opportunity, you can select the Sales Order
        • This is because of the Validation for field C_Order
          • C_Order for Opportunity
          • C_Order.C_Opportunity_ID=@C_Opportunity_ID@
    • Sales Order tab (Opportunity window)
      • An Order assigned the the BP defined as lead can be created.
      • The Order assigned in the opportunity tab is displayed
      • Additional Orders can be created from here
      • I had an error, that only Purchase Orders can be created. After assigning an Order in the Opportunity tab, and seeing it in the Order tab, it was possible to create any order.
    • Order line tab (Opportunity window)
      • Line of this Order
    • Activities tab (Opportunity window)
      • same as with leads
      • Error
        • in the opportunity, it is not possible to select a Sales Order (in either state) created for the same Business Partner
        • see my comments on Opportuniy above
    • Customer window
      • Overview of all CRM events for BPs: opportunities-contacts-activities, Locations, Contract Prices, Requests, Orders
    • Contact window
      • I cannot see in WebUI any line or field in either display mode, even if there are several entries.
    • Desirable: a window with all activities, so to have all activities centrally controlled.
  • Conclusion: if the issues mentioned are solved (or explained), it will be a very helpful tool

User roles & profiles

Business process definition

User stories

Functional requirements based on business processes

User Interface Mockups

refer documentation “Sales Management Functionality.pdf” File:Sales Management functionality.pdf

Development infrastructure

Technical Requirements

Technical team

  • Volunteers for analyzing: Tobi
  • Result of analysis: pending

Tobi 07:25, 11 June 2013 (UTC)

  • comparing the feature branch against the development branch

review notes

  • Missing License Headers
    • MChart
    • MChartDatasource
    • VChart
    • Tobi 16:37, 27 June 2013 (UTC) => Fixed by my
  • Missing JavaDoc
    • MChart
    • MChartDatasource
    • VChart
    • MOpportunity
Additional features
AD_User is now also used as "Lead"
  • Adding C_Location_ID *and* C_BPartner_Location_ID? => C_Location_ID for the time befor a lead has been converted
  • adding a number of Lead related columns.
    • The problem I have here: the (core!) table gets bigger and bigger with columns that are only required for certain usage scenarions
    • proposal: Add entity type "org.adempiere.salesmgmt" and tag columns such as LeadSource with it. That we we will at least later on have a chance to extract those columns into dedicated tables (e.g. once we have a way of joining tables on the fly)

Data Requirements

Non-Functional Requirements

Open Discussion Items

A design decision was to use a simple table called Activites (seen in the Leeds window and Opportunities window) to track phone calls, meetings, emails etc. It would have been possible to use Requests instead. We chose not to but it should be possible to use Requests if you prefer. Some reports should be added to report on opportunities at gross value and weighted-by-probability-percent value

Closed Discussion Items