CUSTOM DATA FIELDS & CUSTOM DATA GROUPS
CUSTOM DATA FIELDS are created through the CUSTOM DATA GROUPS function. These fields can be used in Profiles or in standard forms and screens, such as view contacts.
- The CUSTOM DATA function allows user-defined data fields and labels.
- Create CUSTOM DATA FIELDS through CUSTOM GROUPS, then arrange custom and standard fields through PROFILES
PROFILES can include STANDARD DATA FIELDS, GROUPS, TAGS and any CUSTOM DATA FIELDS you create.
CUSTOM DATA FIELDS
CUSTOM DATA FIELDS are used to create data fields not included in the standard version of CIVICRM. You can create as many CUSTOM DATA FIELDS as you like.
Custom fields can be added and used for various types of records (contacts, activities, relationships, contributions, event participants, etc.) For example, you could add a field to ask if event participants "Need Childcare?", or you could add a field to record the "Eye Color" of contacts, or for contributions you could add fields where contributors indicate specific funds for their contributions, i.e., "New Building Fund", "Beds for Children", "Uganda Fund", etc.
CUSTOM DATA FIELDS are created using the CUSTOM DATA Groups function (see below).
CUSTOM DATA GROUPS
CUSTOM DATA GROUPS are used to collect and store information not included in standard CIVICRM forms. CUSTOM DATA GROUPS are simply a collection of CUSTOM DATA FIELDS. You can create one or many groups, each containing a related set of CUSTOM DATA FIELDS.
For example, you could create a CUSTOM DATA GROUP to hold data about summer camp participants. The group could include CUSTOM DATA FIELDS such as Camp Activities, Camp Counselor, Cabin Assignment, Assigned Chores, etc. You can then use this CUSTOM DATA GROUP in a profile to allow management of camp participant data on one screen.
|What Type of Record Do Custom Fields Belong To?|
All CUSTOM FIELDS in a CUSTOM DATA GROUP must be used for the same type of record (i.e. for Individual Contact records, or for Contribution records...). As you plan and implement custom data in your database - consider the type of record each field belongs to and then group them accordingly. A common pitfall is assigning custom fields to a person (individual contact record) that are better assigned to a transaction or activity which the person engages in. A field which stores a person's entree choice at a Dinner Event should be assigned to the Participant record, and not to the Individual Contact record - because this data describes the person "as a participant" in an event (they might not have or make the same choices for another dinner).
|Limits on Custom Data Groups and Fields|
CiviCRM stores each custom data group as a MySQL table with a column for each custom field in that group. It is important to consider this as you plan your custom data "schema" - as it will have the same advantages and limitations as other MySQL tables. Organizing your custom fields into logical groupings is a key concept. If you put too many fields in one group, you risk exceeding MySQL's limit for maximum row-size. Creating more than 40 or so custom groups may result in exceeding MySQL's maximum allowed number of left joins (64) when doing operations like exporting data. Consult the MySQL Reference Manual for more details. It's a good idea to load up some records with the maximum expected set of custom data and test operations like search and export before finalizing your database design and putting it into production.
|Keeping Customizations Through Upgrades|
- When you upgrade to a newer version of CiviCRM, your Custom Data Fields and Custom Data Groups will be maintained.
- Specialized customizations using the PHP programming language will need to be re-created when you upgrade, however.
- Minimize frustration by documenting your PHP customizations for easy re-creation by the person managing your upgrade.
For assistance in deciding when to use custom fields, see Tags vs. Groups vs. Custom Fields.
Go to: Creating Custom Data Groups & Custom Data Fields
Go to: How to Create Profiles