CRM Use Cases

The following use cases are being used in the CRM review project.

Database setup

These are steps that would be taken infrequently to get the database minimally configured for an organization

  • Define custom fields:
    • Simple custom field checkbox: Housing status (own/rent)
    • Drop down field: type of contact (Member, Ally, Other)
  • Define several groups:
    • All Members
    • Everyone in a given zip code

Data Entry

  • An organizer returns from a meeting with a sign in sheet, listing 10 names with phone numbers, postal addresses and email addresses that need to be entered into the database
    • The meeting itself needs to be entered
    • One of the new contacts is a family member of an existing member (and they share the same house)
    • One person on the list has indicated that their phone is temporarily disconnected
    • All new entries should be coded to indicate that they were first contacted at the meeting
    • One of the members has paid their dues - they need to be entered and have their dues payment recorded
    • One of the members facilitated the meeting, which should be recorded
  • An organizing is making phone calls from a call sheet (see below). For several calls, they need to update the records with:
    • Best time to contact
    • Add/delete/edit information about number of kids, etc.
  • An organizer returns from a conference with the list of conference attendees and wants to add several organizations that they met at the conference:
    • Add an ally organization and two contacts from that organization, with one designated as the primary contact
    • Add a potential funder (foundation)
    • Add a journalist that might be write favorable articles along with the topics of the articles they would write and the date and notes of the meeting they had with the organizer at the conference
  • A report from an online giving site has been sent with 5 donations. 2 are new donors and 3 are existing donors that need to be updated to reflect the new amounts

Searching and reporting

  • Send mass email to everyone
  • Send email to everyone in a group
  • Generate phone list by group/arbitrary search criteria
  • Generate walk list by group/arbitrary search criteria
  • Generate mailing labels by group/arbitrary search criteria
  • Export records to spread sheet by group/arbitrary search criteria
  • Generate a list, by date range, of the members with the most activity entries

Initial impressions


I was able to create new fields and new groups very easily. I was impressed with being able to create groups either based on picking individuals to add or based on a query (for dynamic groups). Wait... are dynamic groups possible. Now I can't seem to figure out how I did that.

I got stuck with events. I wanted to add a meeting event. However, CiviEvent seems like over kill and, when I tried to add an activity of type meeting, I was only able to specify a single user. I finally discovered that, from the search screen, I can get a list of all the people at the meeting and then select Add Record activity to contacts. This will cause every person selected to get an activity contact for every other person. In other words, rather then enter a single record for person A saying they attended meeting X, and single record for Person B saying the attended meeting X and a record for Meeting X listing both Person A and Person B, it adds a single activity record for Person A for every one who was at the meeting.

Not a big deal but... my first instinct was to find the household I wanted to add a contact to, however, when I found the household and click relationships, I could only choose from existing contacts. Adding the contact first, then adding the contact to the household was the right way to do it.

CiviCRM comes with a "source" field to indicate (I think) where you met the contact. In some cases, a drop down might be preferred to enforce data integrity, however, that could be added as a custom field. I wonder how to make a CiviCRM defined field go away?

I was really impressed with the membership status search capacity. In theory I should be able to create a group of expired members. In practice, though, I couldn't figure out how to expire a member. I tried changing the membership end date. I also tried creating a new membership with a membership end date in the past. In both cases the status remained new. I also tried manually running the cron job. Since I'm doing something that you really aren't supposed to do, I'm not sure if this is a bug or just CiviCRM refusing to be fooled.

There's a way to put an email address on hold, but not phone. Good tools for indicating preferred phone and email, however, not built-in for best time to contact (could be easily added as custom field).

I had to add a new relationship to define a primary staff of an organization and an extra cup of coffee to wrap my head around Relationship of A -> B, but it only had to be done once and now is available moving forward.

As I started looking into how to add a foundation, I explored Grants and was initially confused. I was thinking it was a way to track grant proposals, but it appears to be a way for an organization to grant resources to members or contacts. Probably we'll want to dis-able this module for most organizing groups.

I decided to add Foundation, Journalist and Media Organization as tags. Oh my it is easy to add a gazillion checkboxes. Oh no. Danger.

I'm not sure the best way to record the issues a journalist covers. It could always be a custom field, however... I wonder if there's a way to specify that a custom field only shows up on certain records?

Export to spread sheet. Wow.

Mailing labels. Also wow.

Not sure how to do the same with a phone list or walk list. I wonder what's involved with adding customized reports?

Questions/observations from meeting

How do you remove fields from the input screen?

In Admin -> Global settings -> Site Preferences, you can disable entire sections of fields.

In addition, in Admin -> Global Settings -> Address Settings you can disable certain address fields.

In addition, this question was asked and answered on the civicrm forum. The recommended solution is to use profiles.

A profile is a complete mini-package for navigating, searching, viewing, and editing users of the system.

I just created a super simple example that only shows first and last name (if you are not lgged in you'll get an ugly error message).

The advantage of profiles is that we can create very limited interface for data entry. The disadvantage is that it's very limited. There doesn't seem to be a way to allow all the functionality of the main interface for doing things like adding donations, creating relationships.

In one of the responses to the question on the forum, another approach is to customize the templates. This seems a bit closer to what we might want to do.

I just followed the directions for modifying the edit contact form and I removed the built-in source field. It's not as difficult as it might seem (for a developer) but probably beyond the patience of an organizer. Also - this approach can cause difficulties when upgrading (in the event that the upgraded version of CiviCRM upgrades the template).

How do you add a field to be part of an existing field group?

Not clear. I tried manually changing the edit template, but I don't think I have the correct variable names.

Is there free tagging ability? (i.e. can you just type a new tag for a contact?)

That issue was raised on the forum and an issue was added that doesn't appear to be moving fast. On the other hand, another similar issue seems to be scheduled for version 3.0.

Tags and Groups seem functionally the same. Can we make tags go away in the user interface if we wanted?

Yes and no. Global Settings -> Site preferences allows you to uncheck sections that you don't want to show up. In the viewing contacts section, groups and tags are two different check boxes. On the edit screen, groups and tags are one check box.

So, if we want groups but not tags we have two options:

  • Remove tags from the view menu, but keep tags and groups in the edit menu. Remove all tags. On edit, you'll see an empty tag box
  • Modify the template to remove the empty tag box.

Can language be changed? Exact case: Can we change the "Make offline donation" link? Can we change the Activity -> Meeting to say "One on one Meeting"?

This question was asked on the forums and the answer is to change the label in the localization file. The short answer is: customize the translation page. This is an understandable approach for a project that intends to be use-able in multiple languages. However, it means that if we customize a string, we may need to continuously maintain that customization across upgrades.

And, this is pretty involved. I just documented my efforts and, after spending 30 minutes, still have no luck.

Another approach to this problem would be to hard code the labels in the template. This solution might be easier - however, if we wanted to provide our installation for people using multiple languages, then our changed string would never translate properly.

Can the tab order be changed? For example, can we get the Member tab to show up before the Contribute tab?

Tabs can be easily removed, however, changing the order seems to require a template modification. Not sure it's worth it.

Can we make default end date for membership?

Yes. This can be configured via the CiviMember configuration page.

I just configured a "new" membership to have the start date be equal to the "join" date and the end date be equal to the start date plus 12 months.

Now, when entering a new membership, you just need to enter the join date and you can leave the other dates empty (they will be automatically filled in).

Can you pull daily cash receipts and balances? Can you easily pull reports on, for example, all membership entries for a time period?

We got confused with membership renewals. It does not seem to be setting the end date properly. We think this is because we haven't set a membership renewal period. To be investigated...

This should be now be working (since I properly configured the "new" membership period). Now, if you click renewal the end date will be extended 12 months.

We want: ability to keep track of who we invited to a meeting, what they said (yes, maybe, no) and then generate a list and see if they came or not.

At first I though CiviEvent was over kill for this, however, now I think it is the way to go.

I created a new field for event participants called "intent" - which complements the status.

Intent allows you to track a yes, no or maybe, while status tracks where or not they actually attended.

While there is a 5 step process for creating a new event - I was able to enter just the event name and date and leave everything else blank (or default) and get through the event creation quickly. Then, by looking up a contact, I could easily add them as an attendee (and set their intent).

Then, I went to search -> advanced search -> expanded the event area and entered the name of the event and I got a list of participants that I could print or do a bulk operation on.

Can we add fields to tables other than contact, for example: can we add a drop down field to the event registration to indicate intent: (yes, maybe, not); can we add a drop down for source list.

Yes - see above.

Can we modify the list of fields included in the print screen

Yes - we could modify the default template, however, a more elegant solution is reported in the forums. It calls for making a profile. It does have the added step of requiring the user to choose advanced search and the selecting the search results template to use.

Can we add more things to the search drop down list

It appears as though we can modify the search criteria template, although I haven't yet tested it.

Name missing when we printed his 5060 labels

What are search views? Is it specifying a custom search form or a specific output format?

Search views refers to profiles that have had the search view box checked. It specifies a specific output format.

No calendar/quick pick on search by activity by dates

Can we remove fields from list of search results? Specifically: country

Yes - see search views question above.

How do you save a search and then re-use?

Use smart groups

Reports: Can we export query from search builder? How are queries stored? Ideally we would like to add a new report to the search results drop down.

The More Actions menu does not appear to be configurable, however, the code is fairly neat to it could be hacked if we wanted to go down that road. I also wonder if the CiviCRM developers would be interested in having that drop down list be more easily extend-able.

Saved queries seem to be stored in a relatively well-normalized and accessible table (civicrm_saved_search).

Can we configure the dash board? Can we make the dash board make more sense to an organizer responsible for members?

Looks like the accepted way to modify the dash board is to modify the template file.

Can the simple search search by first name?

Nope. Not without a code change. However, you can put a % sign in front of the first name. Arif and I discussed the possibility of using javascript to insert the percent sign at the beginning of the entered search term. This would allow us to allow first name searches with just a template change.

How does CiviCRM scale? What is the average size for CiviCRM databases? How will 10,000+ database perform in shared hosting environments?

I found an interesting and optimistic discussion of CiviCRM with 2.4 million contacts. Seems like many of the changes they recommended are being implemented.

Both the 2.0 release and the 2.1 release boast of scalability improvements.

Based on conversations with folks who have experimented with out of the box installations (prior to 2.0) I've heard that 25,000 - 50,000 records work well, but after that, they've run into slow downs.

I think we may need to do some real testing with the current code release to really know for sure.

How could an organization generate a phone list to be distributed online so we could make 3,000 calls in a few hours?

It looks like there was work on integrating phone banking into CiviCRM but it never got off the ground. However, another developer seems to have taken it up as a Drupal module. I haven't tested the code yet but it looks promising.

How can we configure the dashboard?

Question continued: Most other organizing databases that I've seen assign people to the organizer who entered them - an organizer can pull a list of "their" members. I see that CiviCRM does that too - "Assigned to" right? What we're wondering on the Dashboard is if you think it would be possible to create sections that show an organizer things like: # of times other organizers have logged in, # of members others have created/updated, # of one on ones - in other words, a sort of snapshot of how other organizers are using the database as implied by statistics about the organizing that they are inputting into the database.

Related to that, can that same info be sent via email to all organizers in the database on a weekly basis (or more or less frequently)

Thoughts: CiviCRM allows us to customize the template for the dash board, however, given the exact specificity of what we're looking for here - I would be inclined to write a separate Drupal module that provides the dash board, reports, and links that we want. Then, we can write the custom code to create exactly what we need using either civiCRM functions (ideally) or if necessary write our own SQL queries. We could also implement a Drupal cron job hook that will email them out to whomever we want.

Last modified 13 years ago Last modified on Oct 23, 2008, 11:44:47 AM