1. Extending
CRM Core
Presented at BADCamp
2013 by
Michael Haggerty
Chief Internet Strategist
Trellon, LLC
mhaggerty@trellon.com
2. Today’s Agenda
About CRM Core
Adding new features that extend the platform
Planning for a feature
Resources (including upcoming distros using CRM
Core features)
http://www.trellon.com
4. About CRM Core
CRM Core is a set of modules for managing contact
information in a Drupal website
Manages contacts, activities and relationships – and
nothing else!
Has a common set of tools that make it easier to
manage contacts
Dynamic form builder, for capturing contact
information
Contact matching engines, for finding duplicates
User synchronization, for associating contacts and
http://www.trellon.com
users
5. About CRM Core
Some recent enhancements
Added integration with Drupal Commerce
Have worked out rules integration, makes it possible
to integrate with Mailchimp, Constant Contact
Enhanced matching engines, people can now add their
own custom tools for identifying duplicates
Enhanced performance, added integration with
entity_cache for larger sites
New Views Bulk Operations for merging,
householding, mass contact updates
http://www.trellon.com
6. About CRM Core
Have started releasing features for the system
CRM Core is designed to be extended through the use
of features
Features extend the basic capabilities
Features are portable, can be run in any Drupal
website
Standards for building features ensure there will be
no conflicts
http://www.trellon.com
7. Features that extend the platform
Adding new features that
extend the platform
http://www.trellon.com
8. Features that extend the platform
There are 4 features available for the system right
now from Drupal.org:
CRM Core Donation
CRM Core Event
CRM Core Petition
CRM Core Volunteer
http://www.trellon.com
9. Features that extend the platform
What do they have in common?
Common UI for deploying forms for integrating with
content in your Drupal site
Integration with other tools in Drupal: rules, panels,
Drupal commerce
Reports for each feature, with drag and drop controls
for each item
Features inline with those of commercial donor
management systems
http://www.trellon.com
10. Features that extend the platform
What else do they have in common?
Leverage mailhandler for sending HTML thank you
emails
Leverage Drupal commerce for processing payments
Leverage Views Bulk Operations for unique operations
Have strong source tracking support
Have dates of receipt (in addition to date created)
All the core entities are fieldable, can be controlled
through Drupal’s web-based interface
http://www.trellon.com
11. Features that extend the platform
How do we
keep it all from
becoming a big
mess?
2008 Trellon, LLC. Proprietary and confidential, not for distribution without prior written consent from Trellon.
12. Planning for a Feature
Planning for a Feature
http://www.trellon.com
13. Planning for a feature
There are a lot of things that can go into a feature
Content types
CRM Core entities (contact types, activity types,
relationship types)
Views
Rules
Fields that get attached to other entities
Custom code
The list goes on
http://www.trellon.com
14. Planning for a feature
Planning for a feature involves looking down the road
Documenting the various entities you are going to use
Being specific about how they are going to be built
Getting into details about how you plan to build each
component
Being specific about permissions and who can work
with the feature
Communication between developers and business
analysts / project owners to make sure it’s going to
come out right
http://www.trellon.com
15. Planning for a feature
There are some tools available to make your planning
easier
Use wireframes to describe your interfaces
Balsamiq is a wonderful tool for planning features
Take care to make sure they match other UIs in CRM
Core
Use features planning sheets to keep an inventory of
what is going into your feature
It is easy to overwrite views, content types, activity
types over time
Keep a checklist you can use to test against
http://www.trellon.com
16. Planning for a feature
You can ensure your features will work on any
Drupal website by taking some simple steps
Stick to the standards for building CRM Core
Features
They are published at
https://drupal.org/node/1950984
The big ones to remember are
Always use a unique namespace
Always stick to the UI conventions
Always respect the reserved paths
http://www.trellon.com
Try not to add fields to contact records
18. References
CRM Core Project on Drupal.org
drupal.org/project/crm_core
drupal.org/project/crm_core_profile
Features Planning Sheets
Basic feature planning sheet:
https://docs.google.com/a/trellon.com/spreadsheet/ccc?
key=0AptZebevP-4dGhyWEowN2gtS09YZ25KUWxOWlNSbVE#gid=0
Example with contents already populated
https://docs.google.com/a/trellon.com/spreadsheet/ccc?
key=0AptZebevP-4dEctdm5Ud1BzOXFvUWxBREIybll2THc#gid=0
http://www.trellon.com
19. References
Features for CRM Core
drupal.org/project/crm_core_donation
drupal.org/project/crm_core_event
drupal.org/project/crm_core_petition
drupal.org/project/crm_core_volunteer
Install profiles for working with these features
drupal.org/project/crm_core_donation_demo
drupal.org/project/crm_core_event_demo
drupal.org/project/crm_core_petition_demo
drupal.org/project/crm_core_volunteer_demo
http://www.trellon.com
20. References
Distributions using CRM Core (besides the demo
distros)
drupal.org/project/ableorganizer
(to be released November 2013)
http://www.trellon.com