1. Introduction

GR8 CRM is a set of Grails Web Application Framework plugins that makes it easy to develop web applications with CRM functionality.

You can find more information about GR8 CRM on the main documentation site http://gr8crm.github.io.

1.1. Customer Relationship Management

Customer relationship management (CRM) is a system for managing a company’s interactions with current and future customers. It involves using technology to organize, automate and synchronize sales, marketing, customer service, and technical support. Wikipedia

The GR8 CRM "Ecosystem" currently contains over 40 Grails plugins. For a complete list of plugins see http://gr8crm.github.io.

Each GR8 CRM plugin defines a Bounded Context that focus on one specific domain, for example contact, project or document.

2. Sales/Lead Management Plugin

This plugin provide storage and services for managing sales leads in GR8 CRM applications.

Note that this plugin does not contain any user interface components. This plugin contains domain classes and services only. The plugin crm-sales-ui provides a Twitter Bootstrap based user interface for managing sales leads. crm-sales-ui depends on crm-sales so you only need to include crm-sales-ui in your BuildConfig.groovy if you want end-user lead management features.

3. Domain Model

Sales Management Domain Model

4. CrmSalesProject

4.1. Properties

Property Type Description

number

String

Project ID

name

String

Project name

product

String

Name of product that’s included in the deal

description

String

A longer description of the project (max 2000 characters)

username

String

The sales representative responsible for this deal

status

CrmSalesProjectStatus

Status of the project

currency

String

Currency code

value

Double

Total (potential) value of the deal

probability

Float

Estimated probability (0=Lost deal, 0.6=High probability, 1.0=Closed deal)

date1

Date

Generic date (ex: date of initial contact)

date2

Date

Generic date (ex: order date)

date3

Date

Generic date (ex: revenue date)

date4

Date

Generic date (ex: delivery date)

address

CrmEmbeddedAddress

Embedded address entity (ex: for real estate businesses)

4.2. Methods

Double getWeightedValue()

Weighted value of the project use the project’s probability value to calculate a weighted value. The weighted value is used in forecasts to get a more realistic value than the total value. Example: A deal with 50% probability is only valued half of it total (potential) value.

CrmContact getCustomer()

A convenience method to get the associated contact (organisation) with the role type customer.

CrmContact getContact()

A convenience method to get the associated contact (person) with the role type contact.

5. CrmSalesService

Like most other GR8 CRM plugins this plugin have a main service with methods for creating, searching and updating sales projects.

5.1. Methods

CrmSalesProject createSalesProject(Map params, boolean save = false)

Create a new sales project.

Example.groovy
def quoteStatus = crmSalesService.createSalesProjectStatus(name: 'Quote sent', true)
def acme = crmContactService.createCompany(name: 'ACME Inc.', email: 'info@acme.com',
        address: [address1: '123 Demo Street', city: 'Groovytown', country: 'US'], true)
def deal = crmSalesService.createSalesProject(name: 'Pump station', customer: acme,
        status: quoteStatus, value: 250000, currency: 'USD', probability: 0.6, true)

assert deal.customer.name == 'ACME Inc.'
assert deal.weightedValue == 150000
If currency is not specified in params the default currency is used, configurable with crm.currency.default. If not configured at all then EUR will is used as default currency.
def list(Map query, Map params)

List sales projects.

FindMyDeals.groovy
List myDeals = crmSalesService.list([username: 'myself'], [sort: 'date1', order: 'desc'])

6. Changes

2.4.0

First public release

7. License

This plugin is licensed with Apache License version 2.0

8. Source Code

The source code for this plugin is available at https://github.com/technipelago/grails-crm-sales

9. Contributing

Please report issues or suggestions.

Want to improve the plugin: Fork the repository and send a pull request.