Developer Blog Series: Volunteer API Preview
As I'm sure many of you know, the volunteer module for Raiser's Edge includes a set of robust and powerful entities to track volunteer efforts, and Blackbaud has relied on partners and clients to build great things on top of these entities. We want to continue that tradition by delivering the Volunteer API as our next big release under the SKY API umbrella.
However, before we go too far down that line, I want to solicit feedback to ensure that we deliver the best possible experience in the top priority order for developers like you. To that end, I want to walk through our tentative plans for the Volunteer API. Hopefully this will inspire creative app ideas and constructive feedback to help us determine if we are headed down the right path with this functionality. The opportunity to improve volunteer experiences for our users is a big part of why I work at Blackbaud, so this API is particularly near and dear to my heart.
First, I will outline the entities, and then I will enumerate the endpoints that we intend to surface in a rough priority order. I encourage you to provide feedback on both aspects of the total feature set by sharing your use cases and letting us know what entities and endpoints are most important to your applications' desired functionality.
Volunteer API Entities
Volunteer Summary
|
Property |
|
constituent_id |
|
first_year_volunteered |
|
total_hours |
|
total_value |
|
total_years_volunteered |
|
first_assignment |
|
last_assignment |
Assignment
|
Property |
|
id |
|
job_id |
|
location |
|
department |
|
start |
|
end |
Availability
|
Property |
|
id |
|
days |
|
from |
|
to |
|
start_time |
|
end_time |
Emergency Contact
|
Property |
|
name |
|
relationship_type |
|
phone |
Job
|
Property |
|
id |
|
job_name |
|
job_position |
|
category |
|
volunteer_type |
|
start |
|
end |
|
minimum_age |
|
completed |
|
description |
|
allow_mandated |
Timesheet
|
Property |
|
id |
|
date |
|
job_id |
|
department |
|
location |
|
category |
|
position |
|
task |
|
volunteer type |
|
notes |
|
apply_to_mandate |
|
hours |
|
hourly_wage |
|
value |
Volunteer API Endpoints
We intend to surface full CRUD operation endpoints (POST, PATCH, and DELETE) for each entity except the Volunteer Summary entity. In addition, we intend to surface list endpoints with the standard date_added and date_modified filtering options for the Job, Timesheet, Assignment, Availability, and Interest entities. We are also exploring the option of retiring single constituent endpoints as we move forward and replacing them with constituent_id filters on the child entity list endpoints. However, the initial beta release of the Volunteer API is likely to still include single volunteer endpoints while we continue to build out the child entity lists.
In terms of priority, we will first release GET endpoints for the volunteer entities. We will surface POST operations for timesheets, assignments, and emergency contacts at the same time or shortly thereafter. Before we release POST endpoints, we will include the required code table entry endpoints to support POST operations.
GET Single Volunteer Endpoints
GET /volunteers/v1/{volunteer_id}/assignments
GET /volunteers/v1/{volunteer_id}/availability
GET /volunteers/v1/{volunteer_id}/emergency
GET /volunteers/v1/{volunteer_id}/interests
GET /volunteers/v1/{volunteer_id}/summary
GET /volunteers/v1/{volunteer_id}/timesheets
Additional GET Endpoints Required to Enable POST Endpoints
GET /volunteers/v1/volunteertypes
GET /volunteers/v1/positions
GET /volunteers/v1/jobtasks
GET /volunteers/v1/jobcategories
Initial POST Endpoints
POST /volunteers/v1/assignments
POST /volunteers/v1/timesheets
POST /volunteers/v1/emergencycontact
Additional POST operations, PATCH operations, and list endpoints are a bit farther down the line. However, this is the primary area where I would like your feedback. Which volunteer entities are the most important to you? Do you agree with the planned order for releasing endpoints? Or did we miss something? Please let me know!
Additional Endpoints
GET /volunteers/v1/interests
POST /volunteers/v1/jobs
POST /volunteers/v1/availability
POST /volunteers/v1/interests
PATCH /volunteers/v1/assignments/{assignment_id}
PATCH /volunteers/v1/availability/{availability_id}
PATCH /volunteers/v1/timesheets/{timesheet_id}
PATCH /volunteers/v1/jobs/{job_id}
DELETE /volunteers/v1/assignments/{assignment_id}
DELETE /volunteers/v1/availability/{availability_id}
DELETE /volunteers/v1/timesheets/{timesheet_id}
DELETE /volunteers/v1/jobs/{job_id}
Finally, we will create lists for all relevant entity types within the Volunteer API, much like the list endpoints that we surface in existing APIs.
Volunteer List Endpoints
GET /volunteers/v1/assignments[?date_added][&last_modified][&sort_token]
GET /volunteers/v1/availability[?date_added][&last_modified][&sort_token]
GET /volunteers/v1/emergency[?date_added][&last_modified][&sort_token]
GET /volunteers/v1/interests[?date_added][&last_modified][&sort_token]
GET /volunteers/v1/jobs[?date_added][&last_modified][&sort_token]
GET /volunteers/v1/timesheets[?date_added][&last_modified][&sort_token]
That said, we are still evaluating what a volunteer list should look like. What is the most important information to you in a list of volunteers? Is the volunteer summary information the most relevant, or is it something else?
I look forward to hearing any and all feedback that you have, and I look forward to building something great together. Thanks, and as always, happy coding!
Comments
-
Is this still in the works? What's the status?0
-
I am new to Sky Api and am trying to find my way around. This appears to be from 2017, any update?
0
Categories
- All Categories
- 6 Blackbaud Community Help
- 213 bbcon®
- 1.4K Blackbaud Altru®
- 400 Blackbaud Award Management™ and Blackbaud Stewardship Management™
- 1.1K Blackbaud CRM™ and Blackbaud Internet Solutions™
- 15 donorCentrics®
- 360 Blackbaud eTapestry®
- 2.6K Blackbaud Financial Edge NXT®
- 655 Blackbaud Grantmaking™
- 576 Blackbaud Education Management Solutions for Higher Education
- 3.2K Blackbaud Education Management Solutions for K-12 Schools
- 939 Blackbaud Luminate Online® and Blackbaud TeamRaiser®
- 84 JustGiving® from Blackbaud®
- 6.6K Blackbaud Raiser's Edge NXT®
- 3.7K SKY Developer
- 248 ResearchPoint™
- 119 Blackbaud Tuition Management™
- 165 Organizational Best Practices
- 241 Member Lounge (Just for Fun)
- 34 Blackbaud Community Challenges
- 34 PowerUp Challenges
- 3 (Open) PowerUp Challenge: Chat for Blackbaud AI
- 3 (Closed) PowerUp Challenge: Data Health
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Product Update Briefing
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Standard Reports+
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Email Marketing
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Gift Management
- 4 (Closed) Raiser's Edge NXT PowerUp Challenge: Event Management
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Home Page
- 4 (Closed) Raiser's Edge NXT PowerUp Challenge: Standard Reports
- 4 (Closed) Raiser's Edge NXT PowerUp Challenge: Query
- 790 Community News
- 2.9K Jobs Board
- 53 Blackbaud SKY® Reporting Announcements
- 47 Blackbaud CRM Higher Ed Product Advisory Group (HE PAG)
- 19 Blackbaud CRM Product Advisory Group (BBCRM PAG)

