Understand how data is organised within CiviCRM, and how to get data in and out of CiviCRM
- Learn about the core data structures that can be used in CiviCRM
- Understand how to extend these data structures with types and custom data
- Understand how to import data to and export data from CiviCRM
You should aim to cover the following points in this session:
- core data
- contacts and 'out-of-the-box' contact types
- groups and tags
- record types (e.g. activity types, contact subtypes, membership types)
- custom data
- custom data sets
- location and scope of custom data (entities and types: contact, participant, activity, etc.)
- custom data field types (checkboxes, text, yes/no, etc)
This session lasts 1 hour when accompanied by exercises.
Explain that we'll be building on what we learnt in the first session about
- tags and groups
That we are going to go into more detail on
- groups and tags
- custom data
Groups vs. tags (10)
People tend to get quite hung up on the difference between groups and tags, and everyone has their own way of using them. Ask if there are any examples from the audience. It is worthwhile giving a few pointers here. Here are some suggestions:
- There is quite a lot of overlap between tags and groups
- There are some things that groups can do that tags can't, and visa versa (see handout for details)
- You'll learn from experience when to use one and not the other.
- You can reasonably easily change from a group to a tag and visa versa (select all contacts with a tag, and add them to a group)
Take questions from the learners on their use cases.
Get people to brainstorm some different relationship types that are possible between contacts and write these on a board. Where appropriate, write the two different words for the relationship. You should end up with something like
Once they are on the board, ask people to think about what contact types go with different relationship types so you end up with something like
- individual <-- parent/child --> individual
- individual <-- friend --> individual
- organisation <-- employer/employee --> individual
- organisation <-- subsidiary --> organisation
Explain that you can add extra relationship types to represent different relations in your organisation.
Custom data (10)
Ask people what they would do if they wanted to store some extra information about a contact in CiviCRM, for example some extra information about potential funding organisations, like:
- the funders interests
- the amount of funding that the funder normally gives
- when the funding deadlines are
Probably a good idea to explain the following by drawing some diagrams...
Explain that this would be a good time to use custom data, and nearly all of the records in CiviCRM (e.g. contacts, activities, relationships, groups, etc.) can be extended with custom data fields. Further explain that if you want to only add data to a certain type of object, you can do so. For example if you only wanted to add funding information to 'funders', you can make a new type of organisation called 'funder' and add the fields there.
Probably a good idea to explain the following by going through the user interface...
Explain that there are two steps to adding custom data.
- Choose the object that you want to add the custom data to, and add a custom data set to that object (or specific type of object)
- Add custom data fields to that set
Explain that each field has a type. Help learners understand the the different types of custom data fields that exist by asking them what field types they would use for the data above.
Organising data exercises (20)
At this point, learners should do the organising data exercises.
5 minutes before the end of this session, ask someone who has completed the exercise if they would like to demonstrate their custom data set in use. If no one is willing to do so, then ask if you can demonstrate it for them and ask them questions about why they chose certain fields.
Importing and exporting (10)
Explain the options when it comes to exporting data out of CiviCRM (contact data or component data).
Give a quick example.
Importing is fiddly so don't let the class loose on importing data. Instead, show them an example of importing some data, using emails as a unique identifier.
Explain to them about matching existing contacts and the different actions that can be taken when a duplicate is matched, e.g. skip, update, fill.