Extending CRM Core
Presented at BADCamp 2013 byMichael HaggertyChief Internet StrategistTrellon, [email protected]
Today’s Agenda
About CRM CoreAdding new features that extend the platformPlanning for a featureResources (including upcoming distros using CRM Core features)
http://www.trellon.com
Today’s Agenda
About CRM Core: where are we these
days?
http://www.trellon.com
About CRM Core
CRM Core is a set of modules for managing contact information in a Drupal websiteManages 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 users
http://www.trellon.com
About CRM Core
Some recent enhancementsAdded integration with Drupal CommerceHave worked out rules integration, makes it possible to integrate with Mailchimp, Constant ContactEnhanced matching engines, people can now add their own custom tools for identifying duplicatesEnhanced performance, added integration with entity_cache for larger sitesNew Views Bulk Operations for merging, householding, mass contact updates
http://www.trellon.com
About CRM Core
Have started releasing features for the systemCRM Core is designed to be extended through the use of features
Features extend the basic capabilitiesFeatures are portable, can be run in any Drupal websiteStandards for building features ensure there will be no conflicts
http://www.trellon.com
Features that extend the platform
Adding new features that extend the
platform
http://www.trellon.com
Features that extend the platform
There are 4 features available for the system right now from Drupal.org:
CRM Core DonationCRM Core EventCRM Core PetitionCRM Core Volunteer
http://www.trellon.com
Features that extend the platform
What do they have in common?Common UI for deploying forms for integrating with content in your Drupal siteIntegration with other tools in Drupal: rules, panels, Drupal commerceReports for each feature, with drag and drop controls for each itemFeatures inline with those of commercial donor management systems
http://www.trellon.com
Features that extend the platform
What else do they have in common?Leverage mailhandler for sending HTML thank you emailsLeverage Drupal commerce for processing paymentsLeverage Views Bulk Operations for unique operationsHave strong source tracking supportHave 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
Features that extend the platform
2008 Trellon, LLC. Proprietary and confidential, not for distribution without prior written consent from Trellon.
How do we keep it all from becoming a big mess?
Planning for a Feature
Planning for a Feature
http://www.trellon.com
Planning for a feature
There are a lot of things that can go into a feature
Content typesCRM Core entities (contact types, activity types, relationship types)ViewsRulesFields that get attached to other entitiesCustom codeThe list goes on
http://www.trellon.com
Planning for a feature
Planning for a feature involves looking down the road
Documenting the various entities you are going to useBeing specific about how they are going to be builtGetting into details about how you plan to build each componentBeing specific about permissions and who can work with the featureCommunication between developers and business analysts / project owners to make sure it’s going to come out right
http://www.trellon.com
Planning for a feature
There are some tools available to make your planning easier
Use wireframes to describe your interfacesBalsamiq is a wonderful tool for planning featuresTake 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 timeKeep a checklist you can use to test against
http://www.trellon.com
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 FeaturesThey are published at https://drupal.org/node/1950984The big ones to remember are
Always use a unique namespaceAlways stick to the UI conventions Always respect the reserved pathsTry not to add fields to contact records
http://www.trellon.com
References
References
http://www.trellon.com
References
CRM Core Project on Drupal.orgdrupal.org/project/crm_coredrupal.org/project/crm_core_profile
Features Planning SheetsBasic feature planning sheet:
https://docs.google.com/a/trellon.com/spreadsheet/ccc?key=0AptZebevP-4-dGhyWEowN2gtS09YZ25KUWxOWlNSbVE#gid=0
Example with contents already populatedhttps://docs.google.com/a/trellon.com/spreadsheet/ccc?key=0AptZebevP-4-dEctdm5Ud1BzOXFvUWxBREIybll2THc#gid=0
http://www.trellon.com
References
Features for CRM Coredrupal.org/project/crm_core_donationdrupal.org/project/crm_core_eventdrupal.org/project/crm_core_petitiondrupal.org/project/crm_core_volunteer
Install profiles for working with these featuresdrupal.org/project/crm_core_donation_demodrupal.org/project/crm_core_event_demodrupal.org/project/crm_core_petition_demodrupal.org/project/crm_core_volunteer_demo
http://www.trellon.com
References
Distributions using CRM Core (besides the demo distros)
drupal.org/project/ableorganizer (to be released November 2013)
http://www.trellon.com