1. Introduction

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

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

2. GR8 CRM Plugins

The GR8 CRM "Ecosystem" currently contains over 40 Grails plugins.

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

2.1. Official / Published Plugins

The following plugins are available in Grails Central plugin repository. This means you can install them in your Grails application the same way as you install other plugins, by adding them to BuildConfig.groovy

Plugin Name Description

crm-core

Core features like multi tenancy (used by most other plugins)

crm-i18n

Store localized messages in database to support runtime changes

crm-feature

Turn application features on/off for specific users or roles

crm-security

Core security services

crm-security-shiro

Apache Shiro security implementation

crm-ui-bootstrap

Twitter Bootstrap user interface (used by most -ui plugins)

crm-notes

Add short notes (subject+body) to any domain instance

crm-tags

Tag any domain instance

crm-contact + crm-contact-ui

Contact Management (companies and individuals)

crm-content + crm-content-ui

Content Management and authoring (-ui)

crm-blog + crm-blog-ui

Blog presentation and authoring (-ui)

crm-task + crm-task-ui

Task/Calendar Management

crm-email

Send emails using Grails events

crm-product + crm-product-ui

Product and inventory management including administration (-ui)

crm-order + crm-order-ui

Order Management including administration user interface (-ui)

crm-invoice + crm-invoice-ui

Invoice Management including administration user interface (-ui)

crm-sales + crm-sales-ui

Sales lead/opportunity management

crm-campaign + crm-campaign-ui

Marketing campaign execution and management (-ui)

2.2. Plugins not yet released

The following plugins are not yet available in Grails Central. If you want to use one of these plugins, create an issue on it’s github project and we will prioritize cleanup and documentation and get it published as soon as we can. You can also contribute by cloning the repos, fix stuff and submit pull requests.

Plugin Name Description

crm-invitation

Invite external users to your application

crm-notification

Notify users about stuff with a central notification center

crm-syslog

Log application events to database

crm-security-ui

Back Office features for user and role administration

crm-project + crm-project-ui

Project Management

crm-training + crm-training-ui

Event (course/conference) management

crm-user-profile

Let users update their settings/profile

crm-public-profile

Let users update their public profile

3. Presentations and Talks

This section includes presentations that describe how to use GR8 CRM plugins in Grails applications and how to develop modular applications.

Presentation Event-driven plugins with Grails 3. Presented at GR8Conf Europe 2015.

Presentation Cut your Grails application to pieces - build feature plugins. Presented at Greach 2015 in Madrid.

Presentation Cut your Grails application to pieces - build feature plugins. Presented at GR8Conf Europe 2014.

YouTube video Cut your Grails application to pieces - build feature plugins. Presented at GR8Conf Europe 2014.

4. Tutorials

4.1. GR8 CRM Web Site

This guide describes how you can use GR8 CRM Grails plugins to develop a simple web site. The crm-content plugin makes it possible to add HTML pages in a content repository and make the pages publicly accessible.

In this tutorial you will create a Grails application that can serve as a public facing web site. It will have built-in content editing features, including image uploads.

5. Demo applications

This section show demo applications based on GR8 CRM plugins.

5.1. GR8 CRM To-Do

This Grails application uses GR8 CRM plugins to create a simple Contact Management and To-Do application. Clone it and run it, you will have it up and running in a minute or two.

5.2. GR8 Contact

The GR8 Contact application is a simple Contact Management application. It was initially presented at GR8Conf Europe 2014 by Göran Ehrsson (@goeh). The github repository contains 5 branches, each representing a snapshot in time during development.

  • master A plain Grails application, created with grails create-app

  • m1 The plugin crm-contact-ui was installed and contact (company/person) CRUD features are available.

  • m2 The plugin crm-content-ui was installed and documents/files can now be attached to contacts.

  • m3 The plugin crm-task-ui was installed and tasks/appointments with contacts can now be scheduled.

  • m4 The plugin cookie-layout was installed and two themes were created to show that UI can change depending on sub-domain.

Four more branches was added for the Greach 2015 demo.
  • m1-greach: Same as m1 but with Greach theme applied.

  • m2-greach: Same as m2 but with Greach theme applied.

  • m3-greach: Same as m3 but with Greach theme applied and option to import Greach 2015 speakers as contacts.

  • m4-greach: Same as m4 but with Greach theme available. Three themes (Greach, Gr8ConfEU and Gr8ConfUS) available at run-time.

Greach 2015 Demo application

5.3. GR8 CRM Web Site

A sample application that was created by following the GR8 CRM Web Site tutorial (see above) can be found at https://github.com/gr8crm/gr8crm-web

6. Application Events

Most GR8 CRM plugins use application events (synchronous and asynchronous) to communicate with the host application and other GR8 CRM plugins. In this document you can read about some examples where application events are used in GR8 CRM applications. Looking at all these examples you get an understanding of how to think when designing "modular monoliths" with GR8 CRM.