Overview

The goal of this document is to ensure that information provided by VolunteerMatch and our nonprofit members is presented in a clear and consistent manner across applications. This document is divided into sections based on the API calls and pages in your application that present the capabilities and data.

Search & Display of Opportunities

GraphQL Query = searchOpportunities

The easiest implementation option, for allowing users to search for volunteer opportunities, is to display a search form, accept some parameters – location, keywords, etc. – and then make a searchOpportunities call to the VolunteerMatch service. This offloads storage and search functionality to the VM service, relieving your system from needing to implement and optimize it. It allows for a number of pagination sizes and sort orders, and it will ensure that the most popular VolunteerMatch nation-wide opportunities are presented seamlessly to your users.

Search results are returned in response to the searchOpportunities call. They can be displayed as listed below.

UI Requirements – Search Results Page

Search Results Page: Sample UI

UI Requirements – Opportunity Detail Page

Opportunity Detail Page: Sample UI

Connecting a Volunteer to an Opportunity

GraphQL Mutation: createConnection

In order for a volunteer to express interest or sign up for an opportunity in the VolunteerMatch network, the volunteer must be a member of the VM system. Setting up the member record and making the subsequent connection can be made with a single API call: createConnection. For simplicity we will make the following assumptions:

Once a volunteer finds an opportunity and is signed in, he or she expresses interest or signs up by clicking a button and the VolunteerMatch API facilitates the connection to the nonprofit when the createConnection mutation is called. Note that, if an opportunity has shifts, a volunteer should be able to express interest or sign up in multiple shift IDs with one connection request.

Required Connection Data:

The following fields are required for ALL createConnection calls:

The following fields are only required for a new volunteer, defined as an email address that has never connected to a volunteer opportunity before:

UI Requirements – Connection Screen

Connection Screen: Sample UI displaying Custom Questions, shifts and spots available per shift for an opportunity that limits number of connections

Connection Confirmation Screen

Following UI elements should appear on the connection confirmation screen

Connection Confirmation Screen: Sample UI

Top: Confirmation screen when volunteer has signed up for an opportunity that limits number of connections
Bottom: Confirmation screen when volunteer has expressed interest for an opportunity that doesn't limit number of connections
Confirmation Email Sent to Volunteer – Managed by VolunteerMatch


Confirmation Email: Sample UI

Get reporting on connections your application has made between volunteers and opportunities

GraphQL Mutation: getConnections

Once your application has successfully connected volunteers to opportunities via the createConnection call, you may use VolunteerMatch’s getConnections call to retrieve reporting of the connections you’ve generated.

The getConnections call returns following information for each connection you’ve made:

The getConnections call accepts following query parameters:

Examples of interfaces you can build:

Sample UI 1: A list view of all connections made within a date range.

We suggest you display only the essential data for each connection and implement a View link that takes your user to a Detail page per connection --

Sample UI 2: A detailed view of a single Connection.

We suggest you navigate user to this Detail page from a List view page per sample above.

How to Develop and Test