SYSTOPIA Extension Of The Month #6: Resource Management

2024-07-01 01:49
Written by
SYSTOPIA - member of the CiviCRM community - view blog guidelines

At SYSTOPIA, we have developed a large set of CiviCRM extensions, Drupal modules and other tools over the years. Currently, we are actively maintaining or co-maintaining over 60 repositories. Unfortunately, sharing knowledge about all the goodness with the community has notoriously fallen short. With this series of blog posts, we want to change that a little. Thanks for reading on!

What is this extension about?

Resource Management helps with defining resources in a consistent way and manage demands for those resources. For example, an organization might need different resources to organize an event, such as a specified number of helpers, some medical staff, a vehicle, projectors and so on.

The tool provides an UI to define resources and demands and an algorithm to match those. When a resource is assigned to a demand it will be blocked for the specified time frame. You can also manage resource's general availability restrictions (such as holidays).

For each resource demand, conditions can be specified, particularly in which time frame the resource is required but also other conditions such as groups the resource needs to be a part of and much more.

How do you use it?

Make contacts available as resources

First you will need to declare some contacts to be available as (human) resources. For other types of resources you need to use the Entity Construction Kit. You can declare the availability for a single contact via the new tab "Resource Assignment" or for multiple contacts with the bulk action "Mark as Resource" from any search result. You can define a resource label and type.

General availability restrictions (e.g. holidays / other absence) can be specified within the Resource Assignments tab as well.

Define & manage resource demands

When configuring any CiviCRM Event you will find a new tab titled "Required Resources". Currently this is the only place where you can define resource demands. When adding a demand choose the type and label of the demand along with the number of required resources.

After adding a demand it is usually advisable to create a condition by clicking on "modify" in the conditions column. Availability conditions will define the timespan the resource(s) are required. Other availability conditions require the contacts to be in a specific group or have a certain tag.

Matching & managing resources for a demand

In order to find resources that fulfill the specified conditions, open the tab "Required Resources" of the event and click on "assign" for the resource in question. You will be presented with a list of resources that are still available and match all restrictions.

The columns "assigned" and "fulfilled" will show the number of all resources that are assigned and those that fulfill all currently defined conditions. Clicking on a number in the assigned-column will bring up a list of the currently assigned resources and allow you to unassign them if required.

It is also possible to assign/unassign matching demands for a specific resource via the "Resource Assignment" tab in the contact view.

Who is it for?

Any organization that needs to manage limited resources and assign them to events. Here are some examples:

  • Match available medical staff / helpers / senior volunteers to events
  • Register qualifications of volunteers as resources
  • Match available rooms / vehicles to events (needs the Entity Construction Kit)

Is there more?

Yes! The extensions' architecture was designed with rather complex use cases in mind. This led to a development of further extensions:

Entity Construction Kit - create custom entities via CiviCRM's UI and assign custom fields to your entities. This enables you to manage physical / non-CiviCRM-contact resources.

Resource Event - create a special participant object in CiviCRM whenever a resource is assigned to a demand. This enables the use of many core features (such as searches and reports to filter assignments). The same functionalities would otherwise have to be custom features.

The Resource Event extensions allows you to dig into the ever growing set of extensions for events such as Event Messages, Event Invitation, Event Check-in or Remote Events. This is particularly useful if you plan to provide online integration features for your volunteers.

Any last words?

This is free software, and it's hard and often unpaid work to develop and maintain it. If you find it useful, please consider making a financial contribution. You can reach us at

Thanks for reading. Feel free to get in touch with us for any questions or feedback.


Filed under