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 User Interface Plugin

The crm-sales-ui plugin provides a Twitter Bootstrap user interface for managing leads and sales opportunities. It depends on the crm-sales plugin for low level services and persistence.

Example sales opportunity

3. CRUD user interface

The plugin provide user interface for creating and updating sales upportunities. It follows the same CRUD workflow as other GR8 CRM -ui plugins.

3.1. Create new sales opportunity

You can create a new sales opportunity from all pages where you can search, list or view opportunities. Just press the [New Opportunity] button and enter information in the create opportunity form.

Create new sales opportunity

3.2. Edit existing sales opportunity

When you view an existing opportunity you can alter information by pressing the [Edit] button.

Edit existing sales opportunity

3.3. Find opportunities

The search form have several input fields where you can enter search criteria. When you hit [Search] you will either be presented with a list of matching opportunities or if there is only one match it will be displayed immediately.

Search sales opportunities

3.4. List opportunities

When you search for opportunities and more than one match you search criteria, a list will displayed where you can select an opportunity to view details.

List sales opportunities

4. Project Roles

A sales opportunity can have multiple people assigned to different roles. You can specify the project manager that will lead the project, or the sales support staff that are assigned to the project. As an administrator you can add as many role types as you want. These roles can then be used to assign people to the sales opportunity.

Multiple project roles

To add a role other than customer and contact you press the [Add role] button on the Roles tab. You can add contacts already in your address book or create a new contact by entering new name. The new contact will be added to your address book when you save the project.

Add new role

5. Sales staff

When creating or updating a sales project you can select the responsible sales representative from a dropdown list. This dropdown list is populated using an application event crmTenant.getUsers. You must add an event listener in one of your application services that listens to this event and returns a list of users (sales staff).

For a list of all registered users you can add something like this to a service in your application:

MyApplicationService.groovy
@Listener(namespace="crmTenant", topic="getUsers")
def listAllUsersInTenant(data) {
    CrmUserRole.createCriteria().list(sort: 'user.name', order: 'asc') {
        resultTransformer CriteriaSpecification.ALIAS_TO_ENTITY_MAP
        projections {
            user {
                property('id', 'id')
                property('guid', 'guid')
                property('username', 'username')
                property('name', 'name')
                property('email', 'email')
            }
        }
        role {
            eq('tenantId', data.tenant)
        }
    }
}

6. Configuration

The crm-sales-ui plugin can be configured with the following parameters.

Key Description Default value

crm.currency.default

Default currency code when CrmSalesProject.currency is null

"EUR"

crm.sales.probabilities

List of valid probability options (rendered in <select>)

[0, 0.2, 0.4, 0.6, 0.8, 1]

crm.sales.export.timeout

Timeout (in seconds) waiting for export process to finish

60

7. Changes

2.4.0

First public release

8. License

This plugin is licensed with Apache License version 2.0

9. Source Code

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

10. Contributing

Please report issues or suggestions.

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