20 December, 2013
By lcdweb
Approximately two years ago, the New York City Public Advocate (NYCPA) began the process of implementing CiviCRM as their constituent case tracking solution. Working with New York City-based Rayogram, Albany-based Lighthouse Consulting & Design, and influenced in part by the New York Senate’s implementation, the office undertook the process of migrating data from a legacy system and configuring the required functionality in CiviCRM.
The result is the basis for all communication tracking with constituents -- the people of New York City.
Providing flexible, efficient, yet powerful tools for managing interaction with organization constituents is at the heart of the CiviCRM application. This intent is visibly realized in the work of the Public Advocate’s...
Read more
01 December, 2013
By totten
Filed under CiviCase, API, Extensions

CiviCase is generally described as "a container for activities". As a container, it's well-suited to two scenarios:

  • The activities in the case are identified and scheduled on an adhoc basis -- there's always a person (a case manager) making the decision about when to schedule the activities.
  • The activities are performed according to a fixed timeline based on a reference date -- e.g. the first meeting is scheduled 3 days after the case opens; the next meeting is 14 days after; etc.

However, a container of activities can be useful in other scenarios -- for example, consider the case of hiring a volunteer to work in the children's art program:

  • The director of the children's art program needs to meet with the volunteer to determine whether she has the proper skills and experience in art.
  • The HR manager needs to obtain consent and details from the volunteer for running a background check...
Read more
15 August, 2013


Mónica Tapia-Alvarez and Isobel Platts-Dunn

Alternativas y Capacidades


In 2009, with Common Cause International technical assistance and while developing a new citizen advocacy model for educational reform, we assessed the importance of IT solutions for managing members, petitions and donations from a large number of citizens. The IT solutions that US-based organizations used were discarded because their license was extremely expensive for Latin American organizations (Convio annual license cost is around US$50,000) and had in-built US representatives and media that was useless for Latin American contexts.

Through searching for different tools (a search suggested by...

Read more
20 March, 2013
Filed under CiviCase

We want to propose a Make It Happen for a CiviCase configuration UI (see forum post http://forum.civicrm.org/index.php/topic,25791.15.html).

The current road to setting up a new Case Type involves creating an XML file, setting up Activity Types and Relationship Types, and making sure they are all spelled correctly and consistently throughout the process. Although it works fine it is quite cumbersome. It would be nicer to have a User Interface to deal with it.

We are currently looking at what should be involved and we come up with the following list:

  1. create draft overall design - 4hrs
  2. create class for XML configuration - 16 hrs
  3. create UI Case Type - 4 hrs
  4. create UI Activity Types - 8 hrs
  5. create UI Relationship Types - 8 hrs
  6. create UI Activity Sets (timelines) - 16 hrs
  7. technical test and issue fixing - 8 hrs
  8. ...
Read more
20 November, 2012

Just created a quick ERD for CiviCase, and shared it on this page http://wiki.civicrm.org/confluence/display/CRMDOC42/CiviCRM+ERD+3.3.

It is version 3.3, so not the latest and greatest. But I am sure I will have to check the same ERD for version 4 at a near point in the future and update the ERD too. And I do not think there are major differences in the data model......

I have also attached the ERD to this blog post.

11 February, 2012
By xavier


So as every consultant, there is a bit of new projects, maintenance, stuff you do for free for the community, new ideas, meetings, pre-sales, funky developments & the dreaded admin part (invoicing/timesheet).


As any consultants, we are trying to get an overview on what are the issues, where we spend the time, who's involved and what has to be invoiced. For what I've seen for the past 20 years, the choice seems to be between separate tools that work well but don't talk to each other and one big ERP that tries to do everything but does it badly and that no one uses without cursing.


As all our contacts are in civi and that it also can track activities, was wondering if some of you are already using it as part of that combination and hopefully not turned it into a clunky 'ERP'?


We have started with Andreas, Tamsin, Julian & Cristel with some civi/drupal tools and Civi, but are in the...

Read more
16 October, 2011
I've just released the stable 2.0 version of the Drupal Webform CiviCRM Integration module and wanted to share some of the cool new things you can do with it. Version 1, which I wrote earlier this year, was basically built for a single purpose: you could have a user fill out a webform, and their contact record (name, address, email, etc.) would be created/updated and an activity of the form submission would be logged. That alone is pretty darn useful, but suggestions from users, the advent of API v3, and a commission from the core team got me setting sights higher for the next release.

New Features in Version 2

  • Handling multiple contacts and contact types

    Instead of processing a single contact per form submission, you can now have as many contacts on the form as you like, and they don't all have to be individuals. A simple use for this would be to allow a person to fill out their own...
Read more
06 September, 2011
By xavier


Two weeks already since civicon, the dust has settled and Amy Dobbs and the team at skillmatters have filmed and uploaded the sessions.

  • For those that have attended CiviCon london and ended up the day desperate about all the nice sessions they missed, you'll be pleased to know that you can see them online.
  • For those that missed CiviCon london, well, really, you should have been there, we missed you and we hope you'll be able to attend the next one.
  • For the speakers, could you post a comment with a link to your slides? I'll update this article.

Anyway, the videos are online too, a couple needs some setting changes to be viewed, stay tuned and come back soon.


welcome to civicon state of the project & keynote

By Kurund Jalmi,...

Read more
02 September, 2011
By DaveD
Filed under CiviCase, Sprints

One of the items we didn't get to at the code sprint was a quicksearch by id that bypasses search results pages and takes you directly to the page in question, e.g. a case id or a contribution/invoice id.

I ended up just coding a drupal block that was client-specific that just searches for case id but that some people might find useful. You can find it at http://svn.civicrm.org/php/trunk/drupal/modules/physicianhealthbc/physic... and just look at the last 4 functions in that file.

Optionally you can also add in some CSS to make the block look/fit better:

#block-physicianhealthbc-0 div#edit-caseid-wrapper {

28 August, 2011
By DaveD
Filed under CiviCase, Sprints

On a system with roughly 25,000 activities, running on a dedicated server, the case dashboard would take over a minute to load. Other orgs have reported similar problems, and in at least two cases the consultants simply removed the upcoming/recent sections from the dashboard since it was just too slow.

Taking for example the upcoming section, on the server above the query would take about 26 seconds. With some optimization, it now takes less than 1 second.

In this query the issue is that we are trying to display some information from a specific activity (the next scheduled activity within 14 days) inline with case data, and you need to remove possible alternate possibilities from the results. Removing the duplicates means re-joining back onto the activity table. You also have to re-join a third time in order to get additional fields from the activity record, since if you try to do this at the same time as using group by, you potentially get fields returned from...

Read more